In version 8 of the app nugets actions in tasks were introduced. This makes it possible for developers to associate ActionButtons in the UI with UserActions in the backend. It is possible to authorize each action in a task separately in the policy file.
Actions with special altinn logic connected to them write Default action that is performed when a data or feedback task is submitted. This is also the permission a user needs to update data in the application. »
The template follows the BPMN 2.0 standard.
Supported process elements Process tasks tasks that require users or systems to perform actions before the process continues
Flow control controls navigation through a process with gateways
Process Examples A process with data task A process with data and confirmation tasks A process with data, confirmation, and feedback task A process with data and confirmations and optional confirmation A process with data and confirmation and optional confirmation with options to go back to the data task Process configuration In Altinn Studio, the App developer can configure the process. »
The template follows the BPMN 2.0 standard.
Supported process elements Process tasks tasks that require users or systems to perform actions before the process continues
Flow control controls navigation through a process with gateways
Process Examples A process with data task A process with data and confirmation tasks A process with data, confirmation, and feedback task A process with data and confirmations and optional confirmation A process with data and confirmation and optional confirmation with options to go back to the data task Process configuration In Altinn Studio, the App developer can configure the process. »
BPMN is a standard for business process modeling that provides a graphical notation for specifying business processes in a Business Process Diagram, based on a flowcharting technique very similar to activity diagrams from Unified Modeling Language (UML).
BPMN 2.0 has a standardized XML format for exchanging BPMN 2.0 processes between different parties and software. BPMN 2.0 supports defining collaboartion between two or more collaborators. BPMN 2.0 XML Extensibility In the formal specifications chapter 8. »
Prerequisites Your application uses version 7.1.0 or newer of the Altinn nugets. Application with a process containing a exclusive gateway Example process with exclusive gateways <?xml version="1.0" encoding="UTF-8"?> <bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:altinn="http://altinn.no" id="Altinn_SingleDataTask_Process_Definition" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="10.2.0"> <bpmn:process id="SingleDataTask" isExecutable="false"> <bpmn:startEvent id="StartEvent_1"> <bpmn:outgoing>Flow_s_t1</bpmn:outgoing> </bpmn:startEvent> <bpmn:sequenceFlow id="Flow_s_t1" sourceRef="StartEvent_1" targetRef="Task_1" /> <bpmn:task id="Task_1" name="Utfylling" altinn:tasktype="data"> <bpmn:incoming>Flow_s_t1</bpmn:incoming> <bpmn:outgoing>Flow_t1_g1</bpmn:outgoing> </bpmn:task> <bpmn:sequenceFlow id="Flow_t1_g1" sourceRef="Task_1" targetRef="Gateway_1" /> <bpmn:exclusiveGateway id="Gateway_1"> <bpmn:incoming>Flow_t1_g1</bpmn:incoming> <bpmn:outgoing>Flow_g1_g2</bpmn:outgoing> <bpmn:outgoing>Flow_g1_t2</bpmn:outgoing> </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="Flow_g1_g2" sourceRef="Gateway_1" targetRef="Gateway_2" /> <bpmn:sequenceFlow id="Flow_g1_t2" sourceRef="Gateway_1" targetRef="Task_2" /> <bpmn:task id="Task_2" name="Bekreftelse" altinn:tasktype="confirmation"> <bpmn:incoming>Flow_g1_t2</bpmn:incoming> <bpmn:outgoing>Flow_t2_g2</bpmn:outgoing> </bpmn:task> <bpmn:sequenceFlow id="Flow_t2_g2" sourceRef="Task_2" targetRef="Gateway_2" /> <bpmn:exclusiveGateway id="Gateway_2"> <bpmn:incoming>Flow_g1_g2</bpmn:incoming> <bpmn:incoming>Flow_t2_g2</bpmn:incoming> <bpmn:outgoing>Flow_g2_end</bpmn:outgoing> </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="Flow_g2_end" sourceRef="Gateway_2" targetRef="EndEvent_1" /> <bpmn:endEvent id="EndEvent_1"> <bpmn:incoming>Flow_g2_end</bpmn:incoming> </bpmn:endEvent> </bpmn:process> <! »
Prerequisites Your application uses version 7.1.0 or newer of the Altinn nugets. Application with a process containing a exclusive gateway Example process with exclusive gateways v8 <?xml version="1.0" encoding="UTF-8"?> <bpmn:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:altinn="http://altinn.no" id="Altinn_SingleDataTask_Process_Definition" targetNamespace="http://bpmn.io/schema/bpmn" exporter="bpmn-js (https://demo.bpmn.io)" exporterVersion="10.2.0"> <bpmn:process id="SingleDataTask" isExecutable="false"> <bpmn:startEvent id="StartEvent_1"> <bpmn:outgoing>Flow_s_t1</bpmn:outgoing> </bpmn:startEvent> <bpmn:sequenceFlow id="Flow_s_t1" sourceRef="StartEvent_1" targetRef="Task_1" /> <bpmn:task id="Task_1" name="Utfylling"> <bpmn:incoming>Flow_s_t1</bpmn:incoming> <bpmn:outgoing>Flow_t1_g1</bpmn:outgoing> <bpmn2:extensionElements> <altinn:taskExtension> <altinn:taskType>data</altinn:taskType> </altinn:taskExtension> </bpmn2:extensionElements> </bpmn:task> <bpmn:sequenceFlow id="Flow_t1_g1" sourceRef="Task_1" targetRef="Gateway_1" /> <bpmn:exclusiveGateway id="Gateway_1"> <bpmn:incoming>Flow_t1_g1</bpmn:incoming> <bpmn:outgoing>Flow_g1_g2</bpmn:outgoing> <bpmn:outgoing>Flow_g1_t2</bpmn:outgoing> </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="Flow_g1_g2" sourceRef="Gateway_1" targetRef="Gateway_2" /> <bpmn:sequenceFlow id="Flow_g1_t2" sourceRef="Gateway_1" targetRef="Task_2" /> <bpmn:task id="Task_2" name="Bekreftelse"> <bpmn:incoming>Flow_g1_t2</bpmn:incoming> <bpmn:outgoing>Flow_t2_g2</bpmn:outgoing> <bpmn2:extensionElements> <altinn:taskExtension> <altinn:actions> <altinn:action>confirm</altinn:action> </altinn:actions> <altinn:taskType>confirmation</altinn:taskType> </altinn:taskExtension> </bpmn2:extensionElements> </bpmn:task> <bpmn:sequenceFlow id="Flow_t2_g2" sourceRef="Task_2" targetRef="Gateway_2" /> <bpmn:exclusiveGateway id="Gateway_2"> <bpmn:incoming>Flow_g1_g2</bpmn:incoming> <bpmn:incoming>Flow_t2_g2</bpmn:incoming> <bpmn:outgoing>Flow_g2_end</bpmn:outgoing> </bpmn:exclusiveGateway> <bpmn:sequenceFlow id="Flow_g2_end" sourceRef="Gateway_2" targetRef="EndEvent_1" /> <bpmn:endEvent id="EndEvent_1"> <bpmn:incoming>Flow_g2_end</bpmn:incoming> </bpmn:endEvent> </bpmn:process> <! »
Process API Apps created in Altinn Studio have a seperate Process API that exposes functionality to clients to controll the process.
See github for source code.
Instance API Process Service The process service is where the business logic for BPMN processing is located. It is responsible for verifying state, and changes of state
See github for source code.
BPMN Reader BPMN reader is the component that parses BPMN process in apps. »
⚠️ Signing task require version 8.0.0 or newer of app-libs
Setting up a signing task in the process file requires a bit more work than a regular data, confirm or feedback task.
This page will walk you through what you need to configure and how that is connected to other parts of the configuration.
Defining and configuring a signing task A signing task in its simples format looks something like this: »
⚠️ Signing task require version 8.0.0 or newer of app-libs
Setting up a signing task in the process file requires a bit more work than a regular data, confirm or feedback task.
This page will walk you through what you need to configure and how that is connected to other parts of the configuration.
Defining and configuring a signing task A signing task in its simples format looks something like this: »