BIC Process Execution
Welcome to the BIC Process Execution Documentation! BIC Process Execution is an application which is used to execute processes that have been defined and published within BIC Process Design. It allows you to actively implement modeled processes and make them available to your users for execution.
BIC Process Execution is a Progressive Web App (PWA) and therefore available on all end devices. In addition to the desktop version, you can also access the mobile view, for example, via an icon on your tablet. The mobile view is optimized and differs slightly from the desktop version, but is similar in its operation. This documentation mainly describes the desktop view to avoid redundancy. In some sections the mobile view is also discussed when the differences between the mobile view and the desktop view are relevant to your use.
Quickstart
BIC Process Execution content structure
Your BIC Process Execution application contains processes that have been modeled in your BIC Process Design. Cases can be created for each of these processes. Cases are concrete forms of a process flow. They contain executable tasks that represent the process steps of the corresponding process. The tasks can be executed automatically or manually by assigned, responsible users or user groups.
The processes for the productive work with BIC Process Execution are available to all users (unless restricted). This is because the processes are based on the published version of the corresponding diagrams. In accordance with the different stages of BIC Process Design, BIC Process Execution provides authorized users with multiple environments to follow the development of a process.
First steps
How do I log in?
To be able to use BIC Process Execution, you must be a registered user of BIC Process Design. Once this requirement is met, you can log in to BIC Process Execution at any time.
Logging in to BIC Process Execution is the same as logging in to BIC Process Design. After launching BIC Process Execution and completing the login, you will be automatically directed to your tasks.
If you do not have any active tasks, you will be redirected to the process overview.
Tip
To make the simultaneous use of BIC Process Design and BIC Process Execution as convenient as possible, single sign-on is used. This means that a single login to one of the two applications is sufficient to be automatically logged in to the other application. This means that you do not have to log in again when you start the other application.
Warning
Please note that you will receive a notification if you attempt to access the application with an unsupported browser. The message will inform you that your browser is not compatible. It is important to note that only Internet Explorer is currently not supported.
How do I log out?
You can find the Logout function in the menu
After using this function, you will be logged out of the BIC Process Execution application.
Note
The single sign-on function automatically logs you out of BIC Process Design after you sign out of in BIC Process Execution.
How is the interface of BIC Process Execution structured?
The BIC Process Execution interface can be divided into three parts:
Header: The header shows the area that is currently displayed. In addition, you will find some basic functionality such as the burger menu icon, which is used to show or hide the menu sidebar. In the mobile view you will also find, for example, the back arrow, which is used to navigate back through the different layers.
Main area: This is the central area where you can, for example, work on tasks, view processes or check the progress of the cases.
Sidebars: Navigation elements and functions, such as the menu, are provided through the sidebars of your desktop. By default, the sidebar is shown or hidden depending on your current screen size, your zoom setting and the level you are currently at. You can expand or collapse the menu as needed by clicking the menu icon in the top left corner.
How can I install BIC Process Execution as PWA on my device?
You can install BIC Process Execution as a Progressive Web App on your mobile device or desktop computer. This give you faster access to the application and allows you to receive push notifications on your mobile device even when the application is closed. The PWA installation process may vary depending on the operating system and browser on your device. For detailed instructions on how to install a PWA on your device, please refer to the corresponding help. For example, instructions for an Android device using the Google Chrome browser can be found here.
Where can I find the help?
In the menu, click on the question mark to open the help. Here you can view the user documentation.
Modeling
If you use BIC Process Execution, BIC Process Design will allow you more possibilities than before. You can enhance send tasks with an email template or configure user tasks with an individual form to help users accomplish their tasks. Moreover, you can automate process steps by defining REST calls or script tasks.
If you model a process in BIC Process Design, you can test it in BIC Process Execution before you publish it.
Which processes are displayed in BIC Process Execution?
BIC Process Execution is directly connected to BIC Process Design. Processes that are displayed and can be executed in BIC Process Execution, have previously been defined as such in BIC Process Design. This can be done using the diagram attribute Executable process within the attribute group Automation of the diagram types Business Process Model and Notation (BPMN) and Event-Driven Process Chain (EPC). This checkbox has to be activated to declare the process as executable. How to display the attributes of a diagram is explained in this chapter.
In the productive environment, you will only see processes in BIC Process Execution as long as the corresponding diagrams in BIC Process Design are available in the publication. If so, the process will be available within BIC Process Execution within the ProcessApps. When you depublish a diagram in BIC Process Design, you cannot create new cases of the associated process. As long as there are running or archived cases of that process, the ProcessApp will continue to be available. The associated ProcessApp will be completely removed once all cases are deleted in accordance with the configured retention period. After every change that has been made to a diagram, it has to be published again to make these changes also visible in the corresponding process of the productive environment.
Hint
In the development und test environment of BIC Process Execution, a process can already be tracked during its development. This reflects the modeling of the corresponding diagram in BIC Process Design.
Note
Note that access restrictions, defined in BIC Process Design, will also effect the visibility of processes in BIC Process Execution. This means that diagrams which have an access restriction in BIC Process Design, will only be visible to you as a process in BIC Process Execution, if you are part of the corresponding access restriction.
Additionally, ProcessApp Administrators have the option to determine whether other user groups are allowed to start tasks manually. To do this, the checkbox Allow users to start tasks manually can be activated. This enables the initiation of previously unstarted active segments of a task.
By selecting the option Hide Start Form, you can configure that when creating new cases for the process, you will be redirected directly to the process flow view, skipping the case start form. The new case will be named based on the process name and the timestamp.
How can I configure my ProcessApp icons?
The icon used to display your process in the ProcessApp area in BIC Process Execution can be customized in the attributes of the corresponding diagram in BIC Process Design. To configure an icon, navigate to the details of the relevant diagram in BIC Process Design. Here you will find the attributes ProcessApp color and ProcessApp icon under the attribute group Automation.
You can use the ProcessApp color attribute to specify the icon’s color. As value enter the RGB color code of your desired color, for example red via 255,0,0. You can also use HEX codes, such as #FF0000 for red, or the corresponding color names. The task icon is always the same color as the ProcessApp.
The icon can be defined via the attribute ProcessApp icon. You can choose an icon provided by Font Awesome (v6.5.1), which is available for free. Enter the name of the icon as the value of the attribute.
An example could be as follows:
The result will then be displayed like this:
The default icon for undefined processes is a diagram icon.
Note
You can choose from all Font Awesome icons in version 5.15.4 except the trademark-protected ones.
How can I restrict the visibility of all cases in the ProcessApp?
If you want to restrict the visibility of processes within the ProcessApp section of BIC Process Execution, you can do so during modeling. Navigate to the details of the regarding diagram in BIC Process Design. Here, under the Automation attribute group, you will find the Analyst attribute.
The Analyst attribute allows you to maintain multiple users or user groups that can view all cases within the ProcessApp after the process is published. It is important to note that users must be assigned to the ProcessApp Analyst role. All other users will only be able to see the cases assigned to them within the ProcessApp.
If you change the users or user groups in the Analyst attribute, previously maintained users and user groups will no longer have access to all cases within the ProcessApp.
Form Editor
With the form editor, you can create the form of a user task. You can configure different form fields that will be displayed in the form of the task when the process is executed. The responsible of the task can fill the fields when completing the task.
How can I create and configure my own form?
In order to use the form editor, your diagram has to be marked as executable process in the attributes. The activity type of the task has to be User.
Now you can open the form editor. To do so first open the context menu of the activity with a right click on it. There select the entry Forms editor.
Alternatively, you can open the form editor via the options of a task. To do that, select the activity and open the options on the right-hand side. There you can find the Open editor button in the Process Execution Editor option. Select this button and the form editor will open.
The form editor opens in a new dialog window. On the left side of the form editor you will find all available form fields that can be added or configured. In the middle of the editor you can see a preview of the form which contains all elements that have already been added to your form. If one of those elements has been selected you can see its details on the right side of the dialog.
Within the form editor, you can add new elements to your form, adjust the position of the different form fields within the form, change their attributes, or remove single form fields from the form.
To apply your changes, confirm your entries by pressing the Save function in the top right corner of the form editor. With Cancel you can leave the form editor and the changes will be discarded.
As soon as you have saved your changes and the corresponding diagram meets all requirements to be displayed as a process in BIC Process Execution, your form can be found in addition to the automatically generated form fields of the task.
Note
Please note that in order for your form to be editable in a case’s process flow, the appropriate task must be assigned to a user.
You can use process variables in your form. They need to be enclosed by two curly braces (e.g., {{variableName}}
). If you received a data object via a rest call, you can use that as well in your form. The following example shows a JSON file with the data object ‘address’. To use the zip-code as a variable, you need to use address.zip
. You can nest as many data objects as you like.
Hint
If a data object is named with a dot in the JSON file without a nested structure, it will be replaced with an underscore. In this example, if address.zip is not nested, the name will automatically be renamed to address_zip. After the replacement, you need to use the underscore(s) to continue using the variable(s).
Warning
Remember to also save the diagram, after you have applied changes within the form editor. Otherwise your changes will be lost when leaving the diagram.
Note
If you have errors in your task form, the form will not close after saving. You will see an error icon on fields with errors. After solving them, the task form can be saved and closed.
Which form fields exist and how can I add a new form field to my form?
You have the possibility to add these form fields into your form:
Text: A simple text field for the in- and output of alphanumeric strings.
Text area: Text field for the input of longer text such as descriptions and comments, which also allows formatting the text.
Formula: Formula for calculating numeric or logical values.
Number: Field for the in- and output of numeric values. Can store numbers with decimal places.
Single choice: Choice field where a user can choose exactly one option of several predefined options. This can be configured as a list or drop-down menu.
Multiple choice: Choice field where a user can choose one or more options of several predefined options. This can be configured as a list or drop-down menu.
Date: Field for the in- and output of dates.
Boolean: Field with a binary decision.
Email: Field where a user can enter an email address or get an email address as output to write an email.
URL: Field for the in- and output of web addresses.
Users/User groups: Field to add a user or user group.
File: Field to upload files.
Section: Field to define the arrangement of multiple columns in a form.
To add a new form field into the form, first open the form editor at the corresponding activity. In the left sidebar, select the desired form field that you want to add to your form.
A new entry will be created at the bottom of the form preview. If you select the new entry you can edit the form field according to your needs. Every form field has different attributes which are explained in the following sections. Alternatively you have the option to add a form field via drag & drop into the designated position.
The field will be inserted underneath the blue line.
Which attributes does a form field have?
With attributes, you can configure your form fields in the right sidebar individually. For every form field there is a set of commonly available attributes:
ID: If you add a new form field it automatically gets an ID. This ID is available as a process variable in your process and is necessary if you want you can change the ID of your form field. This can be helpful if you want to use your input again. Furthermore you have the option to use already existing process variables as ID’s. In this way you can get the current value of the corresponding variable in your process.
Label: With the label you enter a name for your form field which will be displayed to the user in the form field at the top left.
Placeholder text: Here you enter a text which explains what kind of input is expected (for example, a short description or an example).
Mandatory: If this checkbox is activated, the user needs to make an input before being able to continue.
Read-only: Values of form fields which have activated this attribute cannot be changed by the user in BIC Process Execution. This means the corresponding process variable cannot be changed via this form field.
Hidden: This attribute can be used, if you do not want the user to see the form field. When a field is Hidden, no validations (e.g., mandatory, minimum length, etc.) are performed.
Hint: This attribute can be used to display a hint below the input field for the user.
Default value: This attribute can be used to define a default value. You can decide whether you use a value or a formula that needs to be evaluated. Process variables must be enclosed by two curly braces.
With some attributes you have the possibility to choose whether they should always behave as specified or just in some cases. You have this option on the form fields Hidden, Mandatory, and Read-only. There are two different options possible for this. Always ensures that the corresponding form field always behaves as specified. Conditionally lets you type in a formula which decides whether the attribute is applied or not.
In the following screenshot you can see an example where the field will be Hidden if the variable value is bigger than 5.
After editing the attributes you can confirm your changes by using the function Save.
Note
Please note that the values of the properties apply to all content languages and cannot be defined individually for each.
The following sections explain which additional attributes each form field has.
Text field
The simple text field can be used for the in- and output of short alphanumeric strings.
It has the following additional attributes:
Pattern: Enter a regular expression the input must match in order to be valid.
Size: This value indicates how wide the input field is (measured in characters).
Min length: This value defines the minimum of characters needed to make a valid input.
Max length: This value defines the maximum of characters needed to make a valid input.
Hint
An example for a pattern could be ([a-z]\d\d)+
. This regular expression indicates that a combination of a lowercase letter followed by 2 digits is valid. Those can be repeated several times. An example for a valid input would be a14b22
or q41c96b74e44
. Other inputs like A54b41
or 1d23
would not be valid.
The basics of a regular expression are demonstrated below:
A regular expression (RegExp) is a pattern that is searched for in character strings.
Syntax:
/pattern/flags
Pattern: The character string that is being searched for.
Flags: Modifiers such as
g
(global),i
(ignore case),m
(multi-line).
Permitted patterns:
Character classes:
.
: Any character except line break\d
: digit (0-9)\w
: Alphanumeric character and underscore\s
: White space character (space, tab, etc.)
Groupings and alternatives:
(...)
: Grouping|
: Or operator
Quantifier:
*
: 0 or more+
: 1 or more?
: 0 or 1{n}
: Exactly n{n,}
: At least n{n,m}
: Between n and m
Anchor:
^
: Start of the input$
: End of the input
Examples:
^\d{5}$
: Five-digit number^(https?|ftp)://
: URL that starts with http, https or ftp^[a-zA-Z]+$
: Only letters (upper and lower case)
The following links allow you to view details about the RegExp class used, which the browser uses in the background for pattern checking, as well as the corresponding online tester for RegExp:
In a running case, the text field above results in:
Text area field
The text area field can be used for longer alphanumeric strings. For example, it could be used to save or show descriptions or comments. It also allows to format the input (e.g. bold, italic, etc…).
It has the following additional attributes:
Height: This value indicates how high the text area is (measured in pixels).
Width: This value indicates how wide the text area is (measured in pixels).
In a running case of the example above, the text area is displayed as follows:
Formula field
The formula field can be used to calculate a variable. It can be a numeric or logical value, even calculations with date values are possible. You can get an overview of all available formulas in this chapter.
It has the following additional attribute:
Formula: Here you select the formula you want to use. Possibly one or more parameters are necessary to calculate your formula.
Note
Please be aware that the attribute read-only is always active for the formula field.
When entering your formula, you must pay attention to the following:
The formula needs to be written in capital letters.
Parameters have to be in braces and need to be separated by a comma.
If you want to use earlier defined process variables, you need to put them between two curly braces (e.g.,
{{VariableName}}
).Other parameters do not need to be enclosed by curly braces.
In the example above, the formula computes the number of absence days. This is done in a running case as soon as both start and end date have been entered:
Number field
The number field can be used to save or show numeric values. The use of decimal numbers is also possible.
It has the following additional attributes:
Min value: Enter a value here which is the lower limit for the user input.
Max value: Enter a value here which is the upper limit for the user input.
Step: This value defines by how much the input value increases or decreases when using the input form. The standard step is 1. Regardless of the step size, the user can enter their own values as long as they are between the min and the max values.
In the example above, the attributes min and max value of the number field “Contract number” are maintained in such a way that the user must specify a four digit number.
Single choice field
The single choice field can be used when the user needs to choose exactly one of several predefined options.
It has the following additional attributes:
Options: A list of available options from which the user can choose. The options are separated by a line break.
Show single choices as a dropdown: If you activate this attribute, the user can select the desired option from a drop-down menu. These can be selected with a mouse click or entered manually. When the user makes an input, the number of choices is reduced to match the input. If the input does not match any option, no options are displayed. Deactivating the attribute will lead to a presentation of the options in a list.
The single choice field “Reason for absence” in the example above is configured as a drop-down menu. In the following, the option “vacation” has been chosen:
Keys
You can define a key for each option that is stored as the value of the process variable instead of the actual option. You can add the key to the respective option using a semicolon as separator. If an option itself contains semicolons, the last one is detected as separator. For example, the form field “Department” will have the option-key pairs Development - dev
, Human Resources - hr
and Sales - sls
:
If the option Development is selected by a user in a case, the process variable “Department” is saved with the value "dev"
.
You can also make the selection options dynamic. In this case, the options can come from process variables that can change.
The {{…}} notation is used as a placeholder and is replaced by the value of the corresponding process variable.
If the value of the process variable used as a placeholder is a comma-separated string, the string is split by the comma. Each split element is then displayed as an independent option that can change depending on other variables.
In this example, {{MultipleDevelopments}}
is specified as an option, which is a comma-separated string. The task form now displays all the options contained in the process variable.
Tip
Keys can also be defined for dynamic options using a semicolon. As with static options, the key associated with the selected option is stored as a process variable.
Multiple choice field
The multiple choice field can be used when the user can or needs to choose one or more of several predefined options.
It has the following additional attributes:
Options: A list of available options from which the user can choose. The options are separated by a line break.
Show multiple choices as a dropdown: If you activate this attribute, the user can select the desired option in a drop-down menu. Deactivating the attribute will lead to a presentation of the options in a list.
Save selected options as string array: This attributes indicates whether the process variable is saved as a string or as a string array. If you deactivate the attribute, the process variable is saved as a string. If you activate the attribute, the process variable is saved as an array of strings. The array contains the selected answers. Note that you can define keys that are stored in the process variable array. You can find an explanation below the next screenshot.
The multiple choice field “Supported Locations” above is only visible in the form if the process variable contract.international
has the value TRUE
. The process variable can be set to TRUE
via the boolean field “Does the company supply internationally?”. In a running case, the fields are displayed as follows:
Keys
If you activate the attribute Save selected options as string array, you can define a key for each option that is stored in the string array instead of the actual option. You can add the key to the respective option using a semicolon as separator. If an option itself contains semicolons, the last one is detected as separator. For example, the form field “Department” will have the option-key pairs Development - dev
, Human Resources - hr
and Sales - sls
:
If the options Development and Human Resources are selected by a user in a case, the process variable “Department” is saved with the value ["dev", "hr"]
.
You can also make the selection options dynamic. In this case, the options can come from process variables that can change.
The {{…}} notation is used as a placeholder and is replaced by the value of the corresponding process variable.
If the value of the process variable used as a placeholder is a comma-separated string, the string is split by the comma. Each split element is then displayed as an independent option that can change depending on other variables.
In this example, {{MultipleDevelopments}}
is specified as an option, which is a comma-separated string. The task form now displays all the options contained in the process variable.
Tip
Keys can also be defined for dynamic options using a semicolon. As with static options, the key associated with the selected option is stored as a process variable.
Date field
The date field can be used when the user needs to enter a date or display a specific date.
In the example above, two date fields are shown to the user. The desired dates can be selected from a drop-down calendar:
Boolean field
The boolean field can be used for binary (yes/no) or logical (true/false) decisions.
It has the following additional attribute:
Show boolean as checkbox: The appearance of the field will change and it will be displayed to the user as a checkbox instead of a slider.
In the example, the checkbox is deactivated so that the boolean field is displayed in the form as follows:
Note
If you mark a boolean field as mandatory, users must check this field during a case in BIC Process Execution to proceed with their case. If they are not doing that, an error message will appear to inform users that they need to complete the task to proceed further.
Email field
The email field can be used to input or display an email address.
It has the following additional attributes:
Pattern: Enter a regular expression that the input must match in order to be valid. If you do not enter a custom pattern, a standard pattern will check if the input matches an email address.
Min length: This value defines the minimum of characters needed to make a valid input.
Max length: This value defines the maximum of characters needed to make a valid input.
Width: This value indicates how wide the email field is (measured in pixels).
In the following example you can see an email field with the option Read-only activated. In that case the email address will be displayed as a link. When you are selecting the link, you will be redirected to your mail program, where you can send an email.
URL field
A URL field can be used to call or enter a web address.
It has the following additional attributes:
Pattern: Enter a regular expression that the input must match in order to be valid. If you do not enter a custom pattern, a standard pattern will check if the input matches a URL.
Min length: This value defines the minimum of characters needed to make a valid input.
Max length: This value defines the maximum of characters needed to make a valid input.
Width: This value indicates how wide the URL field is (measured in pixels).
In the following example, you can see a URL field with the option Read-only activated. In this case, the web address will be displayed as a link. When you select the link (Ctrl + mouse click), it will open in a new tab in your browser.
Users/User groups
A Users/User groups field can be used to enter a user or user group to be included in the case. Note that you can only add one user or group to a Users/User groups field. If you start to enter a value in this field, a list of suggestions appears from which you can select a user (group). In the case of a user, the email address is stored as a process variable, and in case of a user group, the name is stored.
If the ID of the form field is the same as the identifier attribute of a role in the process, then this role will be linked to the form field. This means, that the initial value of the form field will be the user (group) that occupies the role in the current case. Also, if a new user (group) is set in the form field, this user (group) will occupy the role after the corresponding task is completed.
File
The file field can be used to upload files and embed them in the process.
Note
Please note that the form field and the associated document must have the same identifier for the form field to work. The document then represents either the input or the output document.
If you define a form field as read-only and the input document is linked to the same identifier as the form field, the actions of that input document are applied to the read-only fields.
A form field that is not read-only allows data to be entered, while a conditionally read-only field is editable under certain conditions. If an output document has the same identifier as a form field, the actions of that document are applied to the field.
If multiple documents have the same identifier, only the actions of the document whose identifier is displayed in the form field are visible.
If you are using a form with a file upload option, and you have selected a file to upload, a visual representation of the file name of the uploaded file is displayed. This makes it easier to identify the uploaded file in the context of the upload process.
Note
You have the option to use the same file field for both input and output documents. If both the input and the output have the same identifier as the form field for files and only the input contains a document, you can use the file field to download the input file. Conversely, if the output contains a document, you can use the file field to download the output file.
Additionally, you have the option to view uploaded PDF files in the integrated browser PDF viewer by clicking on Download.
If an uploaded file is not supported, the file will be downloaded directly.
The above field for a file is prepared in the following way in the current process:
Section
The sections field can be used to create multiple sections with different column layouts.
To create a section with a specific column layout, please open the form editor and add a new section. Once a section has been added, you will receive a message informing you how to change its layout. Select the section to make further adjustments, such as adding form fields.
Once you have created sections and form fields, you can click on them to display an overview with their details in the right panel.
If you rearrange or remove fields within a section, the original column arrangement will be maintained. This means that the layout of the columns remains unchanged even if changes are made to the fields.
It is possible to add multiple sections to the form, each with its own independent layout for the columns of form fields.
When previewing or publishing the form, it will be displayed in accordance with the sections and fields included within them.
How can I rearrange the position of my elements within the form?
You can change the position of your elements in the form in BIC Process Execution by changing their position within the form preview in the form editor. The position within the form preview can be changed individually. To do this, drag the element over the rearrange symbol on the left side of the entry to the desired position within the form preview.
How can I remove one of my form fields from the form?
To remove a form field from the form you need to select the option Delete Element on the right side of the field. The entry will be removed from the list of form fields within the form.
How can I view and edit the source code of a form?
As a ProcessApp Creator, you can view the source code of the form and adapt it if necessary. This can be done manually by typing, copying, cutting or pasting something into the source code. To do this, open the form editor and select the Source code tab.
You can use various keyboard shortcuts within the source text to get a better overview:
1. Search and Navigation
Ctrl + F: Find in the current file.
Ctrl + H: Find and replace.
F3: Find the next match in the search.
Ctrl + F3: Select the next occurrence of the current word or selection.
Ctrl + G: Go to a specific line in the file.
Ctrl + Shift + O: Go to symbol in a file.
2. Text Selection
Ctrl + A: Select all text in the file.
Ctrl + L: Select the current line.
Ctrl + D: Select the next occurrence of the current word or selection.
Ctrl + Shift + L: Select all occurrences of the current word or selection.
Shift + ← / →: Select text left or right, character by character.
Ctrl + Shift + ← / →: Select text left or right, word by word.
Shift + ↑ / ↓: Select text line by line, up or down.
Ctrl + Shift + ↑ / ↓: Move the current line up or down while maintaining selection.
Ctrl + Shift + Home: Select from the current position to the start of the document.
Ctrl + Shift + End: Select from the current position to the end of the document.
Shift + Home: Select from the current position to the beginning of the line.
Shift + End: Select from the current position to the end of the line.
3. Text Editing
Ctrl + Z: Undo the last action.
Ctrl + Shift + Z: Redo the last undone action.
Ctrl + Shift + K: Delete the current line.
Ctrl + U: Undo the last cursor action.
Alt + Click: Insert a cursor at multiple locations (multi-cursor).
Alt + Shift + ↓ / ↑: Move the selected line down or up.
Ctrl + Alt + ↓ / ↑: Copy the selected line down or up.
Alt + ↓ / ↑: Move the selected line down or up.
4. Code Formatting
Alt + Shift + F: Format the code.
5. Code Folding
Ctrl + Shift + [: Collapse the current JSON block.
Ctrl + Shift + ]: Expand the current JSON block.
6. Line Insertion
Ctrl + Enter: Insert a new line below the current line.
Ctrl + Shift + Enter: Insert a new line above the current line.
Any changes you make in the source code are immediately updated and displayed in the form.
Hint
Please note that it is not possible to save or change the view if the source code is invalid. In this case you will be informed about the invalid source code within the source code.
How can I create a signature task?
You can create your forms in a way that your users must authenticate themselves before they can complete the task. To create a signature task, the activity must be of the type User. Open the form editor of the corresponding activity and select the Settings tab.
Here you have the option to select the Mark this task as a signature task checkbox. If you select this checkbox, your activity will be marked as a signature task and your users will have to authenticate themselves before completing the task. How the authentication process works can be found here.
Note
Please note that this function is not activated by default in your system and must be configured. To do so, please contact your contact partner at GBTEC.
Service task with REST call
BIC Process Execution offers you the possibility, in interaction with your BIC Process Design, to exchange data via REST endpoints. The REST calls are defined in your BIC Process Design and automatically executed via the processes in BIC Process Execution. The data which is resulting from these REST calls is then be stored in process variables and can be used and displayed for further tasks during the process flow of the corresponding case.
Note
You have the possibility to define your REST request in the REST configurator described further on. This request is executed prioritized. If you have defined a REST call in a previous version via the Service call attributes and did not set any configuration in the REST configurator, the Service call attributes will be used as fallback.
How can I define my REST calls?
In order to define the REST call, your diagram has to be marked as executable process in the attributes. The activity type of the task has to be Service.
Afterwards, right-click the activity to open the context menu and select the option Service configuration.
Alternatively, you can open the editor by selecting the activity and choosing Process Execution Editor from the Options. There you will find the button Open editor. Select it and the Service configuration will be opened.
A dialog window opens where you can define your REST call. You will be guided by the following three steps. Click the fields to edit them or select the desired option.
Tip
You can also define your REST calls dynamically via process variables. For example: Using variables, the header data or request body can depend on the data of each case.
1. Connection
HTTP Method: In this field, select the HTTP method which you want to use for your call. The supported HTTP methods are listed below. If no method is specified, the default value for this field is GET.
DELETE
GET
HEAD
PATCH
POST
PUT
OPTIONS
TRACE
URL: Enter the URL path of your REST endpoint here (e.g.: http://serviceUrl:port/service/1).
Authentication: Here you can select the type of authentication that you want to use for your REST Call. We offer you different options for authentication:
No Authentication: You do not need any authentication and therefore do not need to enter more details.
Basic Authentication: When you select this option, two new input fields will appear where you can enter your username and password for the desired service.
OAuth2: Three new input fields will appear when you select this option. You need to enter the Client ID, the Client secret and the Authentication URL. Via the eye icon you can hide and show the Client secret.
API Key: After selecting this option, two input fields will appear: Key and Value where you can enter your corresponding API key and its value. Below the fields you have the option to add the key-value pair to your header or to your query parameters.
Go to the second step using the button NEXT. Alternatively, you can click the tabs Connection, Request and Response to switch between the steps arbitrarily.
2. Request
The input fields of the request options drop down if you select the respective option.
Request header: Here you can enter all header data that has to be transferred in the REST call. This data is in a key-value table. Click on the plus-sign to add new entries or select the recycle bin icon to delete an entry.
Body: Here you can enter the content that has to be transferred in the REST call. In the drop-down menu Type, choose one of the following options:
JSON: Here you can enter the content in the Request body field using JSON-structure.
Binary (file): Choose this type to read the request body from a file. In this case, the request body will contain only the contents of the file.
Multipart (file): This type displays a key-value table where the request body is partially generated from a file. Once you have entered a key, you can choose between Text and File under “Type”. If you select Text, you can enter text including variables as placeholders. If you choose File, you can specify an identifier for a file. You can also enter multiple files in the table by clicking Add new empty row and creating a combination of Text and File.
If you choose one of the types that import the content from a file, another field appears where you can link the desired file. Use the process variable defined in the identifier attribute of the file. You can find a detailed explanation in the linked section.
3. Response
Connection timeout in seconds: Here the time limit (in seconds) for your REST call can be set.
Expected HTTP status code: Here you can set one or more expected status codes for your REST call.
Response Type: Here you can enter if your output is in the JSON format or if it is a file. An explanation regarding how to include files in REST calls can be found here.
Response Mapping: Here you can specify whether the returned data should be stored and used as process variables. The default setting is Automatic. If you select None, the response will not be processed as process variables.
Click the equivalent button to Save your configuration. If you do not want to save your changes, select Cancel to close the dialog window.
Regardless of the Response Mapping, a _response
variable is stored, allowing you to access Request header and HTTP status code. If you have configured multiple service tasks, the _response
variable will be overwritten after their execution. You can access the _response
variable, for instance, through _response.headers.NAME[0]
or _response.headers["NAME-NAME"][0]
for keys with a hyphen.
Note
Please note that if a service task with REST call returns an error status code such as 4XX or 5XX, BIC Process Execution does not store information from the _response.headers
. Only the _response.statusCode
will be stored.
Hint
Please note that the _response
variable can only be used for the active main process and its subprocesses.
How can I use variables to create dynamic REST calls?
You can create dynamic REST calls by using variables from your API. Within the REST configuration definition, you can use your process variables in the Request body. Variables should be listed as follows: {{VariableName}}
.
For example, if you used the GET REST call to get an employee’s name and age, you can use these values in the following REST call by using the corresponding variables. The result of the first GET REST call could be: {"name": "John Doe", "age": 35}
. You can then use these variables and their values in the following POST REST call within the field Request body (if you select JSON in the Body field) as follows: {"managerName": "{{name}}", "managerAge": {{age}}"
.
You can also use variables in the connection or response.
How can I use files in my REST calls?
If you configure your REST call (i.e., a service task), you can read the request body from a file. The file has to be added to the case as an attachment of a previous task. Moreover, you have the possibility to define a REST call which returns a file. The system will save the file as an attachment of the service task. To configure your REST call using files, follow the next steps.
Request body as type file: If you want to read a document via a REST call and provide it as output to the user, you can do the following. In your diagram, model an activity marked as a Service task. On this activity, model a document and mark it as Output. Then, maintain the attribute Identifier of the document.
In the process flow, the service task has to occur after the task with the output. When you configure the REST call request, choose the type Binary (file) (or Multipart (file) if it is a data-form format) in the drop-down menu of the Body. Enter the identifier you defined previously.
If you use JSON Body Type with a corresponding Request Body (e.g., { “file”: “{{fileID}}” }), you can utilize file identifiers as placeholders on service tasks. This functionality allows the substitution of the placeholder with the file content of the identifier, encoded as Base64 data.
To upload a file in your running case, you need to add a document as an output in a previous task. When the service task is executed, it will retrieve the latest version of the file data, incorporate it into the JSON body, and automatically replace the placeholder.
File as response: In order to link a file returned by a REST call to your case, the activity representing the service task in BIC Process Design has to be modeled with at least one document as output. The attribute Identifier has to be maintained for the document to link it to the REST call response. In the REST configurator choose the option File as Response Type and enter the identifier in the upcoming field. The Identifier needs to be enclosed by two curly braces.
If the document’s identifier matches a property of the REST call and that property is formatted as Base64-encoded data, the file content of the property is decoded and automatically added as an output file. The name of this file will be the name of the existing file. If no name is available, the file is automatically named after the Identifier and the file type (e.g., .pdf). The name can be changed if necessary.
Note
If there are multiple files with an identifier and the REST call matches them, all files will be attached to the activity as output documents in case of Base64-encoded data.
After the REST call has been executed in your case, you can download the response file at the service task just as if it was uploaded manually.
How can I define multiple values as expected response status codes for REST calls?
As a ProcessApp Creator, you can define multiple values as expected response status codes for REST calls.
To do so, open the REST call for service tasks and navigate to Response. In the Expected HTTP status code input field, you can now define multiple status codes. You can define both predefined status codes (e.g., 200) and regular expressions such as 200|201 (both status codes are accepted), 20. (anything from 200-209 is accepted), or combinations thereof.
If you have configured a REST call and specified the expected HTTP status codes as patterns, you can consider a response from the API successful if the received status code matches the pattern. Otherwise, the response is treated as an error, and appropriate actions are taken based on the received status code.
Note
The pattern also accepts numbers, pipes, dots and queries.
How can I automatically create an output document with a service task for reports?
If you have modeled a service task, you can configure the report configuration for document creation in addition to the REST call in the editor.
Selecting the REST call option starts the REST configuration. Alternatively, selecting the Reports option starts the report configuration, where you can specify the output format (PDF or DOCX).
If the report task contains an input and that input has an attached file in your configured default language in DOCX format, this file is used as a template for the report. If there is an output in the report task and it is executed, the result is added to the output. The name of the output file is the same as the name of the template file.
Hint
Please note that if the input or output is missing or the input has no attachment, the report will not be created and the task will be marked as an error.
Additionally, if there is a Design Document in the input and the input does not have an Instance Attachment, the template for creating the report will be the Design Document. If there is a Design Document in the input and the input has an Instance Attachment, the template for creating the report will be the Instance Attachment.
How can I create an email template?
You can integrate send tasks in your process to enable users to send emails based on a template. In order to change the email template, your diagram has to be marked as an executable process in the attributes. The activity type of the task has to be Send.
Afterwards, right-click on the activity to open the context menu and select the entry Email template editor.
Alternatively, you can open the email template editor via the Process Execution Editor in the Options of the activity.
In the upper fields, you can enter the recipient in To, the email addresses in Reply to, Cc and Bcc, as well as a subject. The template can be written in the text field below. There you can find various formatting functions in the header.
The To function also allows you to specify user groups. The email will then be sent to all members of the specified user group.
Note
Please note that you should not use curly braces ({{}}) with user groups.
By using the Reply to function, you can specify an email address to which all responses to your sent email should be forwarded.
Note
Please note that only if the option Send email automatically is activated, the Reply to-address can be taken into account. Otherwise, the Reply to configuration will be ignored for manually sent emails.
Process variables can be used in every field in the editor and result in a dynamic template that is automatically adjusted in BIC Process Execution. The variables are replaced with the case-specific values in the form of each case as soon as they are set in prior process steps. Integrate process variables via double curly braces: {{VariableName}}
.
Note
Please note that you can include process variables with html formatted values in the text editor. For such values, you must add a ” -html” (attention: with a blank space!) to the process variable name. Otherwise the formatting will not be processed. Consider a process variable {{CompanyName}}
for which the values are given with a formatting (for example, in bold over “<b>GBTEC Software AG</b>”). If you use the placeholder with the html tag {{CompanyName -html}}
in the text editor of your template, the value will appear with the defined formatting (in bold in the example).
How can I send an email automatically?
With the help of the Email template editor, you can configure your emails to be sent automatically. To do this, activate the option Send email automatically. When you start this task in BIC Process Execution, your mail will automatically be sent from a no reply address. If you use process variables in your form, they will be automatically replaced with their corresponding value.
If the automatically sent email is supposed to contain an attachment, the desired file can already be included to the case in BIC Process Execution. Model a preceding activity connected to an output object which is either a document, business object, norm or data store. Add the same object as input to the send activity. Then, the responsible of the corresponding task can upload a file in the form and complete the task. When the send task is started, the file is automatically attached.
Note
Please note that the input is only attached if the email is sent automatically (option Send email automatically activated).
In the example above, the document “Invoice” is the output of the task “Create invoice” and the input of the send task “Submit invoice to customer”. The attachment of the email will be the latest version of the file in case. Thus, if the responsible uploads a new file (version) when working on the task “Revise invoice”, this file is attached to the email.
If your process variables are empty or not existing, BIC Process Execution will display an error icon and you have to send the mail manually via a human task. Alternatively, you got the option to replace these kinds of process variables with empty strings. For that you need to select the option Replace placeholders with empty values if process variables are missing.
Tip
Use the form editor to enable users to define the process variables in prior steps.
Warning
If an email is sent manually, there is a restriction for the length of the template. If your template is longer than a certain length, BIC Process Execution will automatically truncate the mail and only a part of it will be displayed in your email client. If the email is sent automatically, this restriction does not hold.
Script task
How can I create a script task?
You can execute tasks automatically in your process by integrating script tasks. The supported script languages are JavaScript and Groovy. Starting from version 7.12.0, the JavaScript scripting language is based on the GraalVM Script Engine. The JavaScript ECMA version 5.1 is backward compatible, supporting the new components introduced in version 13.0. You can find detailed information about the used JavaScript Standard ECMA and the Groovy Engine in the following links.
Hint
The Nashorn JavaScript Engine is no longer supported starting from version 7.12.0.
Hint
The version of the Groovy engine used to execute and create script tasks has been updated to version 4.0.12.
First, open the corresponding diagram in BIC Process Design. In order to define a script task, your diagram must be marked as executable process in the attributes. The activity type of the task has to be Script.
Afterwards, right-click on the activity to open the context menu and select the entry Script-Editor.
Alternatively, you can open the editor by selecting the activity and choosing Process Execution Editor in the Options panel. There you will find the button Open editor. Select it and the script editor will be opened.
You can select the desired script language from the drop-down menu, and then write the script which will be executed during the runtime of a case. Use process variables to dynamically adapt the script to each case. The example below shows a Groovy script that uses the process variable employee_name
as an attribute of a new object user
. This object is then returned as a new process variable in line 13.
You can work with the process variables in a JavaScript in a similar way. The example below leads to the same behavior as above. The last statement of the script is the return. Thus, the new object user
is returned to the process variables of the case in line 9.
Warning
If the result is declared with var result = ...
, it is necessary to explicitly specify result
again in the ending line.
As a ProcessApp Creator, you also have the option of saving the data entered in order to check the result before completing the task. To do this, click on the Test your script button.
If the script has been executed successfully you will receive the result as key-value pairs in JSON format.
Note
Please note that outputs larger than 64 KB will not be displayed.
Afterwards, select Save to store your script and close the editor. If you click the button Cancel, the editor will close without saving your changes.
Hint
Please use the correct JavaScript syntax to add a list from a script task to the process variables. This is demonstrated in the following.
*JavaScript*
var userList = ["John Doe", "Max Mustermann"];
vars = {
scriptListVar:userList
}
If you define your list via the syntax above, each entry in the list will be stored as a single process variable (here of type string). The following two alternatives should be used instead to store the entire list as a single process variable of type list.
*JavaScript*
var List = Java.type("java.util.List");
var userList = List.of("John Doe", "Max Mustermann");
vars = {
scriptListVar:userList
}
*JavaScript*
var Arrays = Java.type("java.util.Arrays");
var userList = ["John Doe", "Max Mustermann"];
vars = {
scriptListVar:Arrays.asList(userList)
}
You can also use date values as output variables in the script. Date values in process variables are stored as String. However, there is an exception for JavaScript: If a Date object is returned as part of a response instead of formatting the object value, the variable can contain the value null. The following examples illustrate the different behavior of the two scripting languages.
Hint
Please note that scripts cannot return date values of the datatype Date.
Using Javascript:
let localdate = new Date()
output = {
javaScriptDate: localdate,
javaScriptDate_String: localdate.toISOString()
};
If you want to return the javaScriptDate object as a variable value, the output of the script will be null. To return the date as a string, methods such as toISOString()
or toJSON()
must be used, as in javaScriptDate_string.
Using Groovy:
Map output = new HashMap();
Date testDate = new Date();
output.put("groovyDate", testDate);
return output;
Returning a Map with a Date object, as shown in the previous code, always returns the date value as a string, unlike JavaScript.
How can I create a script task with the help of AI?
As a ProcessApp Creator, you can create a script task with the help of our AI assistant Arty. To do so, open the script editor in the corresponding diagram in BIC Process Design. The corresponding diagram must be marked as executable process and the task type of the activity must be of type Script.
Afterwards, right-click on the activity to open the context menu and select the entry Script-Editor.
Alternatively, you can open the editor by selecting the activity and choosing Process Execution Editor in the Options panel. There you will find the button Open editor. Select it and the script editor will be opened.
In the Script language field, select AI Prompt from the drop-down menu. Then, enter a prompt for Arty in the upper input field and specify the relevant variables in the Input Variables for the test field. To preview the result before completing the script task, click Run test.
The placeholders in the upper input field will then be replaced with the specified input variables and the defined prompt will be executed as Output. If the script runs successfully, you will receive the output as key-value pairs in JSON format.
Hint
Please note that the AI-enabled feature of Arty is not included in the standard licence. Please contact your representative for more information. Please also refer to the notes on using the AI feature.
Development and test environment
In addition to the productive environment where processes can be executed, BIC Process Execution offers two more environments where processes can be examined and tested while the diagram is still being modeled in BIC Process Design.
A process in the studio or development environment is based on the version of its related diagram in the public workspace. If you have modeled a diagram as executable process in BIC Process Design, it will be visible in the development environment right after check-in.
As soon as this diagram is available in preview stage of BIC Process Design, it also appears in the test environment.
The development and test environments perform as follows: If there is a former version in the respective environment, it will be replaced when the corresponding diagram in the public workspace or preview has changed. All existing cases of the process in the environment will be deleted. This helps authors to view and examine changes in the process right after modeling the corresponding diagram.
Which environments are existing?
The execution of established processes is done in the productive environment of BIC Process Execution. This environment is accessible for all registered users of BIC Process Design. A process is displayed and usable in the productive environment if the corresponding diagram is published in BIC Process Design.
There are two more environments: the development and the test environment. Users with the user role ProcessApp Creator or higher can access these environments to test processes before publishing them. More information can be found in the chapter “Development and test environment”.
How can I change the environment?
You are viewing the productive environment if the URL of your browser contains the keyword “app”:
https://XXX/process-execution/app/...
You can access the development or test environment by modifying the URL. Add the keyword “studio” or “test” behind .../process-execution/
:
Use
https://XXX/process-execution/studio
to enter the development environment/the studio.Use
https://XXX/process-execution/test
to enter the test environment.
The following table serves as a short overview of the environments:
Development environment |
Test environment |
Productive environment |
|
---|---|---|---|
Diagram version |
public workspace |
preview |
publication |
URL key word |
|
|
|
How can I test a process while it is modeled?
If you define a process by modeling a diagram in BIC Process Design, you can test it directly. You simply have to mark the diagram as an executable process in the attributes.
As soon as you check-in the diagram, the Test ProcessApp button appears.
Select the button to open the studio of BIC Process Execution in a new browser tab. A new case of the modeled process will be created there automatically. The case name is maintained by the system with the name of the process and a timestamp. All roles will be assigned to you (even if the roles have a default allocation). This enables you to quickly test the process flow, as no further manual configuration of the test case is required.
How can I test a process before publication?
New processes modeled in BIC Process Design can be tested while the concerning diagram is in preview stage. This enables you to create a final test case in the scope of reviewing the diagram before it is published. Note that the diagram has to be marked as executable process in the attributes.
In the diagram view, you will find the button Test ProcessApp.
Select the button to open the test environment of BIC Process Execution in a new browser tab. A dialog window to create a new case of the defined process will open there. Follow the steps as in the productive environment to configure your test case.
How can I define a default role allocation for the process instantiation?
In BIC Process Design, you have the possibility to assign users or organizational units to roles so that they are automatically set during the process instantiation in BIC Process Execution. If it is known in advance that the same users or organizational units are nearly always responsible for all cases of a process, you can speed up the process instantiation for that particular process.
To use this function, navigate to the relevant role in the desired diagram in BIC Process Design. In the attribute Staffing enter the user or organizational unit. You can find this attribute within the attribute group Automation.
After the users as well as user groups or organizational have been entered, the diagram has to be published afterwards to apply the changes to the process in the productive environment. Once the new version of the diagram has been published, the user or organizational unit is assigned to the role of Responsible in the instantiation process by default.
Tip
During the instantiation process the allocation can then still be changed if needed.
… note:: If no user or user group was defined for a role when the case was created, the case creator is responsible for executing the task as soon as the case is started.
How can I model a dynamic due date for my activities?
You can model your activities with a dynamic due date. This means that the resulting tasks have to be completed in a certain number of days or on a certain date. An explanation of how to work with due dates in BIC Process Execution can be found here
To do this, go to the Details of the activity and there go to the attribute group Automation. Here you will find the attribute Due date.
Here you can enter how many days after the start of the task or on what date the task is due. BIC Process Execution will automatically calculate the correct due date.
Note
If you do not give any input in the field, the due date will be set to the same value as the case due date.
Tip
Declare at least one date field in advance in the form editor to determine a due date with this value as well.
In the following, some examples of how to determine the due date using at least one date field are provided. Here, two date fields are created in the form editor and declared with the IDs “DueDate1” and “DueDate2”. For these examples, DueDate1 is always set to 03/28/2023
and DueDate2 to 04/05/2023
.
Hint
You can also determine dates in ISO 8601 format when using the form field Text and millisecond timestamps by using the form field Number through the following commands.
To move the due date by X days/weeks/months/years, you can use the commands:
nameID.plusDays(X).plusWeeks(X).plusMonths(X).plusYears(X)
nameID.minusDays(X).minusWeeks(X).minusMonths(X).minusYears(X)
nameID
here stands for your declared date field ID.plusDays(X) / minusDays(X)
allows you to move the due date back or forward by X days.plusWeeks(X) / minusWeeks(X)
allows you to move the due date back or forward by X weeks.plusMonths(X) / minusMonths(X)
allows you to move the due date back or forward by X months.plusYears(X) / minusYears(X)
allows you to move the due date back or forward by X years.
Examples:
DueDate1.plusDays(4)
gives the output 04/01/2023
.
DueDate1.plusWeeks(2).minusDays(1)
gives the output 04/10/2023
.
DueDate2.plusYears(1).minusMonths(2).plusWeeks(3)
gives the output 02/26/2024
.
DueDate2.minusWeeks(3).minusYears(1).plusDays(10).plusMonths(6)
gives the output 09/25/2022
.
To set the due date to the first day of the month, you can use the command
.withDayOfMonth(X)
Set X to the number 1 to give the first day of the month as the output.
Examples:
DueDate1.withDayOfMonth(1)
gives the output 03/01/2023
.
DueDate2.plusYears(2).withDayofMonth(1)
gives the output 04/01/2025
.
DueDate2.plusMonths(3).minusYears(1).withDayofMonth(1)
gives the output 07/01/2022
.
Alternatively, you can choose any number between 1-31 for X.
DueDate1.plusYears(1).minusMonths(2).withDayOfMonth(15)
gives the output 01/15/2024
.
Hint
Avoid numbers above 28, since not every month has the same number of days. For a number higher than 28, proceed as in the next example.
To set the due date to the last day of the month, you can use the command
nameID.plusMonths(X).withDayOfMonth(1).minusDays(X)
where nameID
stands for your declared date field ID.
Examples:
DueDate1.plusMonths(1).withDayOfMonth(1).minusDays(1)
gives the output 03/31/2023
.
DueDate1.plusMonths(2).withDayOfMonth(1).minusDays(1)
gives the output 04/30/2023
.
DueDate2.plusMonths(1).withDayOfMonth(1).minusDays(1).plusYears(3)
gives the output 03/31/2026
.
DueDate2.plusMonths(1).withDayOfMonth(1).minusDays(2)
gives the output 04/29/2023
.
You can also use an if-else-then-statement to determine the due date if the output is determined by a Boolean value. For this, you need the operators ? and :, and a TRUE and FALSE condition. In addition, at least two date field IDs must be declared.
To compare two dates with each other, use the command:
nameID_1.equals(nameID_2) ? X : Y
equals()
is the command to compare two dates with each other.nameID_1 / nameID_2
stand for your declared date field IDs.?
terminates the request, followed by the TRUE and FALSE conditions.X
is the output if the request is TRUE.Y
is the output if the request is FALSE.:
is inserted to separate the TRUE condition from the FALSE condition.
Examples:
DueDate1.equals(DueDate2) ? 5 : DueDate1.plusWeeks(1)
gives the output 04/04/2023
, because the condition is FALSE.
DueDate2.equals(DueDate1) ? DueDate2.plusWeeks(2) : DueDate2.minusDays(3).plusMonths(1)
gives the output 05/02/2023
, because the condition is TRUE.
DueDate1.equals(DueDate2) ? 5 : 10
adds 10 days to the date when the task was created since the condition is FALSE. For example, if this date is set to 01.04.2023, the output will be 04/11/2023
.
To check whether a date is before or after another date, you can use the following commands:
nameID_1.isBefore(nameID_2) ? X : Y
nameID_1.isAfter(nameID_2) ? X : Y
isBefore()
checks if the date (nameID_1) is before the other date (nameID_2).isAfter()
checks if the date (nameID_1) is after the other date (nameID_2).
Examples:
DueDate1.isBefore(DueDate2) ? DueDate1.plusMonths(1).withDayOfMonth(15) : DueDate2
gives the output 04/15/2023
, because the condition is TRUE.
DueDate2.isBefore(DueDate1) ? DueDate2.minusDays(5) : DueDate2.plusWeeks(2).plusMonths(1)
gives the output 05/19/2023
, because the condition is FALSE.
DueDate1.isAfter(DueDate2) ? 10 : DueDate2.minusMonths(1).withDayOfMonth(20)
gives the output 02/20/2023
, because the condition is FALSE.
DueDate2.isAfter(DueDate1) ? 20 : DueDate2.plusYears(1)
adds 20 days to the date when the task was created because the condition is TRUE. For example, if this date is set to 04/01/2023, the output will be 21/04/2023
.
Hint
If the output value of a TRUE or FALSE condition is deposited with a numeric number, this number will always be added to the date on which the task was created.
How can I set up a case creation restriction?
In BIC Process Design, you have the possibility to define a case creation restriction for diagrams, which will be executed with BIC Process Execution. This enables you to decide, individually for every process, which users have the possibility to create new cases.
To define such a restriction navigate to the Details of the relevant diagram. You will find the attribute Case creation restriction within the attribute group Automation.
Analog to the diagram or repository access restriction, you can set the names of multiple users or whole user groups. As soon as you start typing in the input field, a list of suggestions is displayed to you to choose from.
Once a case creation restriction is set and the diagram meets all requirements in order to be displayed also in BIC Process Execution, the case creation restriction behaves as follows:
All users included in the case creation restriction are enabled to create cases for the corresponding process as usual. Same goes for users who are part of user groups which have been included in the case creation restriction.
All other users will still see the process, but will not be able to create cases for this process. This means that the Create a new case function will neither be displayed in the menu of the corresponding ProcessApp nor in the case list of the process.
How can I set a retention period for the archived cases of my process?
If you model a process in BIC Process Design, you can configure a retention period for all archived cases of the process. When a case is archived, it is stored in the archive until the retention period expires. Then the case will be automatically and irrevocably deleted. You can set the time period in the attribute Retention period, which is part of the attribute group Automation. Enter a time period in days, e.g. “365” in order to store the archived cases for one year.
When the retention period of a case expires while you are viewing the list of archived cases, the case will be removed from the list and you will be informed by a message. In case you are viewing the process flow of an archived case and the retention period of this case expires, the system deletes the case and you will be redirected to the case list of the corresponding process. You receive a message informing you of this automatic action.
Warning
Maintaining a retention period leads to the irrevocable deletion of archived cases. For each case, the period starts to expire from the time it was moved to the archive.
How can I add a process to a ProcessApp Collection?
If you want to add a process to a ProcessApp Collection, you need to do the following.
In BIC Process Design, open the diagram of the process you want to add and open its attributes. In the attribute group Automation, you will find the attribute ProcessApp Collections.
Here you can enter as many ProcessApp Collection IDs as you want.
How can I model the process flow with gateways?
Usually, a process does not follow one exact flow linearly. Based on decisions, the path splits into multiple flows, which can also run parallel. In BIC Process Design, you can model this with sequence flows and gateways. In a concrete case in BIC Process Execution, gateways result in decisions or introduce parallel flows (and reunite them).
You can use the following three types of gateways:
Exclusive gateway: After this gateway, exactly one sequence flow is followed. You can automate the decision of which one to choose in a particular case.
Inclusive gateway: After this gateway, one or more of the following sequence flows can be executed.
Parallel gateway: With a parallel gateway, all subsequent sequence flows are executed.
Note that it is possible to model multiple outgoing sequence flows at an activity without using gateways.
In the case of the image above, you have to define expressions for an automatic decision about the course of the process flow. Otherwise, the process will get stuck. If you do not want to work with expressions and automated decisions, you must model the process with a gateway (see below). The case owner then receives a task for manual decision.
How can I model an automated decision?
During the execution of one of your cases, you can have decisions made automatically in order to archive the right result for your process. To use this function, you must define expressions in the sequence flow in BIC Process Design that specify the conditions under which the respective decision is made.
To do this, first navigate to the diagram in BIC Process Design that represents the basis for the process in BIC Process Execution in which you want decisions to be made automatically. Here, for each sequence flow after a split gateway, you have to define an expression which specifies the condition under which the next path is to be followed. To define the expression, first select the corresponding sequence flow. Within the section Automation in the attributes of the sequence flow, you will find the input field Expression.
Note
If you use the parallel gateway in your process, the definition of expressions is not necessary since every outgoing path is executed.
Here you can define your expression using the syntax of the programming language Java (an overview about the notation can be found in the table below). The return value of this expression should then be of the type boolean. The basis for the conditions are always process variables which receive their value before reaching the gateway within the process flow in BIC Process Execution. For example you can use process variables from previously executed REST calls, or process variables from previously executed rule-based tasks.
Symbol |
Description |
Symbol |
Description |
---|---|---|---|
|
logic and |
|
smaller than |
|
logic or |
|
smaller or equal |
|
comparison of expressions (is used with |
|
equal |
|
expression is true |
|
not equal |
|
expression is wrong |
|
bigger or equal |
|
bigger than |
Therefore, the expression (age >= 18) == true
checks whether the value of the process variable age
is greater than or equal to 18. If this is true, the corresponding path will be taken.
As soon as you have defined your expressions and the diagram meets all requirements, you can access the respective process with the automated decision in BIC Process Execution.
In BIC Process Execution, when the value of a process variable changes, for example due to a change within a decision table or due to a manual change by a ProcessApp Administrator, all expressions which include that process variable are checked for their return value.
When the return value of the first expression returns the value true for a gateway of the type Exclusive Or, the corresponding path in the process flow of the case is selected and displayed. If the return value of the expression is false, the next expression is checked.
With gateways of the type Inclusive Or, all expressions are checked regardless of their order. For all expressions that return the value true, the corresponding path is displayed in the process flow.
If none of the expressions return the value true by the time the decision is reached, the decision must be made manually by a user.
Warning
If you model an activity with one or more outgoing sequence flows without a gateway, you must automate the decision via expressions. Otherwise, undesirable behavior may occur since manual decision tasks are created only at gateways. Please find an example here.
Note
Be aware that only automated decisions that are still open can be changed. This means that decisions which have already been set by starting a task in the respecting path, cannot be changed anymore.
Hint
If a task which is the last task before an automated decision is completed, the following task resulting from the decision path is automatically started.
How can I configure an automatic time event?
Start Timer Event
You can manually create a new case in BIC Process Execution. Alternatively, you can model a timer in your process so your cases will be started automatically (recurring).
Hint
Please note that start timer events are only executed in the productive environment (i. e. for published processes). The following Cron definition is not applied in the test and development environments.
Hint
Please note that start timer events only apply to BPMN modeling, not to EPC modeling.
To do that, open the concerning diagram in BIC Process Design. In the attributes of the start event, select the event type Timer (in the attribute group Typing).
Then, open the context menu of the start event via a right-click on the symbol. Choose the option Start event settings.
Selecting this option opens a dialog window. In the field Starting timer configuration, you can enter a Cron expression to define the (temporal) logic that will be applied to start new cases of the process in BIC Process Execution.
Save your configuration to close the dialog, or use the Cancel button in order to discard your changes.
As soon as your process is published, it will automatically start a new case each time the timer is triggered. Such a case is always named by the start time of the case, and participating roles are assigned to their default staffing. Note that the case does not have an owner which implies that tasks without a default staffing have to be delegated manually. If there is no responsible user assigned for a started task, the task has to be delegated before you can complete it.
Note
If the diagram is depublished or no longer marked as executable, the automatic case creation will be stopped.
Tip
ProcessApp Administrators can edit the case name in the process variables.
Cron Expression:
A Cron expression is a chain of fields which are separated by blank spaces. The fields define the time units in the order
<Second> <Minute> <Hour> <Day-Of-Month> <Month> <Day-Of-Week>.
A field can consist of one or a combination of the following valid values and/or characters.
Field |
Rang of values |
Valid characters |
---|---|---|
Second |
0-59 |
, - * / |
Minute |
0-59 |
, - * / |
Hour |
0-23 |
, - * / |
Day-Of-Month |
1-31 |
, - * ? / L W |
Month |
0-11 or JAN-DEC |
, - * / |
Day-Of-Week |
1-7 or SUN-SAT |
, - * ? / L # |
Hint
Please note that support for specifying both a day-of-week and a day-of-month parameter at the same time is not implemented.
By combining these characters, you can configure the start event (“set a timer”) in such a way that cases are started at recurring times. The following section gives an explanation of the possible characters based on this page.
Tip
On Freeformatter.com, you can find a free tool to generate Cron expressions.
- *: The timer is set for every <time-unit>.
Example: ‘*’ as <Month> means that a new case is started every month (JAN-DEC).
- ?The timer is set on each <Day-Of-Week> resp. on each <Day-Of-Month>.
Example: ‘?’ as <Day-Of-Week> means that a new case is started regardless of the day of the week.
- -The timer is defined for a time span (from-to).
Example: ‘MON-SAT’ as <Day-Of-Week> means that a new case is started on each working day.
- ,The comma can be used to enumerate multiple values for one time unit. List the values without blank spaces.
Example: ‘8,15’ as <Hour> means that new cases are started at 8 AM and 3 PM.
- /The timer can be defined using individual increments.
Example: ‘1/7’ as <Day-Of-Month> means that new cases are started every 7 days starting on the first day of a month.
- LThe last value of the <time-unit>. It is also possible to combine this character with numerical values, e.g. using ‘L-2’ to get the second last value.
Example: ‘L’ as <Month> means that a new case is started on the last day of each month, i.e. on 31.01, 28./29.02., 31.03. usw.
- WThe timer is set dynamically on the nearest week day (MON-FRI).
Example: ‘1W’ as <Day-Of-Month> means that a new case is started on the nearest week day to the first day of the month. If the first day of the month is a Saturday, the new case will already be started on Friday. If the first day of the month is a Sunday, the case will be started on the following Monday.
- #<n>The timer is set to the <n>-th occurrence of the <Day-Of-Week> where <n> is a natural number.
Example: ‘2#1’ as <Day-Of-Week> means that a new case is started on the first Monday of a month.
Hint
Note that the system calculates the case start times in the time zone of the server. If your local time differs from the server time, be sure to take the difference into account when defining the Cron expression.
For example, if you want a case to start at 8 AM in Germany (UTC+1), but the server is located in the UTC+0 time zone, you have to set the timer to 7 AM.
The following three examples show some possibilities to configure a recurring start using the values and characters:
- 0 30 8 ? * MON-FRI
New cases start each day from Monday to Friday at 8 AM.
- 0 0 15 1 * ?
New cases start each first day of a month at 3 PM.
- 0 0 12 ? JAN,JUN 2#1
New cases start at the first Monday of January and June at 1 PM.
Intermediate Timer Events
You have the option to pause your case for a specified period before it continues. This can be especially useful, e.g., when waiting for a payment confirmation. This way, you can set the case to resume, for instance, after 3 days.
Hint
Please note that intermediate timer events are only executed in the productive environment (i. e. for published processes). The following ISO8601 definition is not applied in the test and development environments.
Hint
Please note that intermediate timer events only apply to BPMN modeling, not to EPC modeling.
To do that, open the concerning diagram in BIC Process Design. In the attributes of the intermediate event, select the event type Timer (in the attribute group Typing).
Then open the context menu of the intermediate event via a right-click on the symbol. Choose the option Intermediate event settings.
Selecting this option opens a dialog window. In the Timer definition field, you have the option of defining the duration using the ISO8601 format or a variable. This defines the time logic according to which a case of the process is to be continued in BIC Process Execution.
Save your configuration to close the dialog, or use the Cancel button in order to discard your changes.
Once an intermediate event is integrated into the corresponding process diagram, it becomes visible in the process flow. Subsequently, the publication date and time for the intermediate event and the configured timing will be displayed to you.
When the release time is reached, the intermediate timer event is marked as done, and the date and time of release are displayed.
Warning
When selecting an intermediate time event in the process flow of a process diagram, only the name and description of the event are displayed in the task form.
After the diagram has been published, the case will only continue when the intermediate event is reached and the configured time is triggered. If you are in a different stage, the case will resume immediately. This also applies for incorrectly or not configured times and for times configured in the past.
Note
If the configured time is triggered while the servers are down, the case will only resume once the servers are restarted.
Hint
If an active case is aborted, all timers will be stopped.
ISO8601 format:
An ISO8601 format is a string of fields that specifies the time span of a time interval and is represented by the format P(n)Y(n)M(n)DT(n)H(n)M(n)S. The capital letters P, Y, M, W, D, T, H, M, and S are identifiers for each of the date and time elements and are not replaced, but can be omitted.
P : is the duration designator (for period) at the beginning of the duration representation.
Y : is the year designator that follows the value for the number of years.
M : is the month designator that follows the value for the number of months.
W : is the week designator that follows the value for the number of weeks.
D : is the day designator that follows the value for the number of days.
T : is the time designator that precedes the time components of the representation.
H : is the hour designator that follows the value for the number of hours.
M : is the minute designator that follows the value for the number of minutes.
S : is the seconds designator that follows the value for the number of seconds.
The fields define the time units in order:
<year> <month> <day> <hour> <minute> <second> <millisecond>.
Each field can contain one or a combination of the permitted values and/or characters.
Representation according to ISO 8601 |
Value range |
---|---|
Year (Y) |
YYYY, four digits, shortened to two digits |
Month (M) |
MM, 01 to 12 |
Week (W) |
WW, 01 to 53 |
day (T) |
T, day of the week, 1 to 7 |
Hour (h) |
hh, 00 to 23, 24:00:00 as end time |
minute (m) |
mm, 00 to 59 |
second (s) |
ss, 00 to 59 |
Decimal fraction (f) |
Fractions of a second, any accuracy |
Examples:
PT15S
- 15 seconds
P14DT1H30M
- 14 days, 1 hour and 30 minutes
P3Y6M4DT12H30M5S
- 3 years, 6 months, 4 days, 12 hours, 30 minutes and 5 seconds
Note
Please note that the n is replaced by the value for each of the date and time elements that follow the n.
How do I define a correlation key for a throwing event?
In a process initiated by a throwing event, there is an option to access specific configurations through the Details menu of the editor. Here, you can set a JUEL expression as a correlation key.
When the predefined throwing event occurs, a message is automatically generated. This message contains a specified event ID and the previously defined correlation key. At the same time, when the event occurs, the associated process step is triggered and marked as completed.
Note
The defined correlation key is retrievable in the context of the process instance.
How can I process waiting events using the REST API?
With the BIC Process Execution REST API, in addition to creating new cases from external applications, you can also process waiting events. To use this feature, you need the REST endpoint and an API key that you pass along in the Request Header.
You can use the following link to the Swagger UI to view the available public endpoints and process a waiting event. At the top right of the screen, under Select a definition, select BIC Process Execution API. In the list that appears then, you will find the Throw a signal event endpoint, where you can edit the variables and process a waiting event.
Hint
The old {{host}}/process-execution/external/tenants/{{tenantId}}/stages/{{stageId}}/signal-events
REST endpoint is currently still available. However, please use the new endpoint in the future.
Hint
If you have previously worked with the old REST endpoint and are now working with the Swagger UI, you will need to generate a new API key. Please note that the new API key will need to be adjusted accordingly in the REST call.
How can I start subprocesses from a process?
If you want to call another process from within a case, you can use call activities. This enables you to start any number of new subordinated cases. If you want to call a process in BIC Process Execution, it needs to be marked as executable as well. If the called process is not marked as executable, the task will be handled as a normal user task and needs to be done manually.
Here you can find an explanation of how you can work with a call activity.
Model an activity in your diagram and set its process type to Call activity. You will find the attribute in the attribute group Typing.
Open the context menu of your call activity with a right-click on it. Select Open Call activity settings.
Here you can choose whether your call activity shall be synchronous or asynchronous.
Synchronous call activities will be executed immediately and stop the main case. The process variables will be handed over to the sub case. After the completion of the sub case, the process variables will be handed back to the main case. If the ProcessApp Administrator manually completes the synchronous call activity, nothing will change in the existing sub case and it can continue to be processed.
Asynchronous call activities will also be started immediately, but will not pause the main case. The process variables will also be handed over to the sub case at the start, but they will not be handed back when the sub case completes. Furthermore, one can continue their work on the main case before the sub case is completed. If the main case is archived, nothing will change in the existing sub case, and it can continue to be processed.
Maintain the attribute Subprocess of the call activity with the desired process to link it. The following example shows the attribute of the call activity “Produce special order” which is part of an order process. The subprocess diagram “Custom-made product” is an executable BPMN diagram.
If the order process is executed in BIC Process Execution, a new case is automatically started for the called process as soon as the task of the call activity is started. The case is named after the call activity plus “- name of the main case”. In the example, the call activity “Produce special order” of the the main case “Order 2503” triggered the creation of a new case of the process “Custom-made product”.
Main case “Order 2503”:
Sub case (new case of the process “Custom-made product”):
Max Mustermann is responsible for the tasks of the sub case because he is the default assignee of the corresponding role. The system is defined as the creator of the subprocesses of the call activities.
How can I provide input documents for my subprocess?
Once an input document has been modeled for a call activity task, the uploaded document is made available for use in that input within the subprocess. If an input document has been provided in a subprocess, the identifier of that document matches that of the input document for the corresponding call activity in the main process, the input document is made available in the subprocess.
Hint
Multiple input documents can be modeled, all of which are available in the subprocess. In each case, the most recent uploaded document is used as the input document.
In both cases, whether within the same case or when the input originates from a main case, the subprocess can either not override the input or override it. This also applies in cases where the subprocess decides to override the input or when parallel paths result in both an override and no override.
How can I integrate an application into a task form?
Application objects that you have modeled in BIC Process Design can also be integrated into BIC Process Execution. They are available to the users within the process flow. In order to be able to integrate an application object, it must have a connection to an activity object in your diagram in BIC Process Design.
Within the Details of the application object, you can link the application of your choice to make it accessible in BIC Process Execution. To do so, use the attribute Integration link within the section Automation. Analog to the attribute Attachment (URL), you can add links or alternatively upload documents.
When adding a link to one of your applications, you can also integrate process variables if you know that they will be defined before the respective task is reached. To do so, add the respecting variable name between two curly braces at the appropriate place in the path. Here you can see an example of what such a path could look like:
mailto://{{emailRecipient}}?subject={{emailSubject}}&cc={{emailRecipientCC}}&body={{emailText}}
In this example, the process variables are “emailRecipient”, “emailSubject”, “emailRecipientCC” and “emailText”.
Once you have defined your attribute and your diagram meets all requirements to be displayed in BIC Process Execution, the application will be displayed under the section Applications within the task form. If a title is available for the link, it will be displayed below the application name. Otherwise, the URL is displayed. You can access the application via the Integration Link.
Multiple links can also be integrated into an application. When this is the case, a context menu containing all the links is displayed after the Integration Link has been selected. You can then open the desired link by clicking on it.
Formulas
Formulas can be used for different purposes. For example, you can use them in the form editor to calculate values. You can also use them to make your task forms more dynamic.
This chapter provides an overview of all existing formulas and how to use them correctly. At the end of this chapter, you will find some examples of what you can calculate with these formulas. Additionally, you will find an example which explains how you can make your form dynamic.
Most of the formulas you can use in Microsoft Office Excel are supported and work the same as in Excel. It is also possible to write formulas using simple JavaScript syntax. For example, 2+6
would also be a valid formula and would return 8.
Some formulas use parameters. Of course, you can also use existing process variables. If you want to use already existing process variables, you need to enclose them in two curly braces (e.g. {{VariableName}}
).
If you use dates or strings as the data type for parameters, you need to enclose them in single quotation marks (e.g. LEN('example')
).
Tip
Formulas can be nested within each other. That means you can use a formula as an input parameter for another formula.
Which formulas exist?
Note
This section is currently under revision and therefore not complete. A complete overview of all usable formulas can be found in the documentation of Formula.js.
The formulas can be separated into six different categories:
Date formulas
When using date formulas, you will often need parameters in the datetime format.
The data type datetime can be written in different formats. If you are not using predefined process variables, you need to make sure that you are using the correct form. A datetime without time looks like the following: 'month/day/year'
, e.g. '06/14/2021'
for June 14, 2021. Alternatively, you can use 'day-month-year'
, e.g. '14-Jun-2021'
. Note that it is important to abbreviate the month according to the table below. If you also want to use a timestamp, you need to use one of the formatting options above and append 'hh:mm:ss AM/PM'
. The use of seconds is optional. For example, '06/14/2021 10:47:32 AM'
would represent 10:47 AM on June 14 2021. More examples using datetime variables can be found here.
Month |
January |
February |
March |
April |
May |
June |
---|---|---|---|---|---|---|
Abbr. |
Jan |
Feb |
Mar |
Apr |
May |
Jun |
Month |
July |
August |
September |
October |
November |
December |
Abbr. |
Jul |
Aug |
Sep |
Oct |
Nov |
Dec |
Extract data from dates
There are various date formulas that you can use to extract specific data from a date.
YEAR({{datetime}})
returns the year of a datetime value in the range of 1900-9999.
MONTH({{datetime}})
returns the month of a datetime value in the range of 1-12.
WEEKNUM({{datetime}},[{{mode}}])
returns the week number of a datetime value in the range of 1-53. The parameter mode defines whether the week starts on Sunday (mode = 1) or on Monday (mode = 2). If you do not use this parameter, the default value is mode = 1.
ISOWEEKNUM({{datetime}})
returns the week number of a datetime value. The first week of the year is the week which has the first Thursday in it.
WEEKDAY({{datetime}}, [{{mode}}])
returns the number of the day of a datetime value in the range of 1-7. The parameter mode behaves equivalent to the one in the formulaWEEKNUM
.
DAY({{datetime}})
returns the day of a datetime value in the range of 1-31.
HOUR({{datetime}})
returns the hour of a datetime value in the range of 0-23.
MINUTE({{datetime}})
returns the minute of a datetime value in the range of 0-59.
SECOND({{datetime}})
returns the second of a datetime value in the range of 0-59.
Calculate time spans
The following table shows you the different modes and which parts of the week belong to the weekend.
<mode> |
Weekend |
<mode> |
Weekend |
---|---|---|---|
1 |
Saturday and Sunday |
11 |
only Sunday |
2 |
Sunday and Monday |
12 |
only Monday |
3 |
Monday and Tuesday |
13 |
only Tuesday |
4 |
Tuesday and Wednesday |
14 |
only Wednesday |
5 |
Wednesday and Thursday |
15 |
only Thursday |
6 |
Thursday and Friday |
16 |
only Friday |
7 |
Friday and Saturday |
17 |
only Saturday |
With the following formulas you can measure the time span between two dates.
DAYS({{enddate}}, {{startdate}})
returns the difference in days between a start date and an end date. You can find a concrete example here.
WORKDAY({{date}}, {{k}})
returns the k-th next workday starting at date. Workdays are all days of the week except Saturday and Sunday.
WORKDAYINTL({{date}}, {{k}}, {{mode}})
returns the k-th next workday from date. mode defines which part of the week belongs to the weekend. Above you can find a table with an overview of all available weekend definitions.
NETWORKDAYS({{startdate}}, {{enddate}}, [{{listOfHolidays}}])
returns the number of work days (Monday-Friday) between two dates. Optionally, you have the possibility of adding holidays. They will also be excluded from counting. A more specific example can be found here.
NETWORKDAYSINTL({{startdate}}, {{enddate}}, {{mode}}, [{{listOfHolidays}}]
returns the number of workdays between two dates. mode defines which part of the week belongs to the weekend. Above you can find a table with an overview of all available weekend definitions.
DAYS360({{start}}, {{end}}, {{method}})
returns the difference in days between a start and an end date. This formula assumes that a year has 360 days, therefore every month has 30 days. You can use the method parameter to specify whether you want to calculate the difference using the US method (method = FALSE()) or the European method (method = TRUE()). For example,DAYS360('12/1/2021','1/1/2022',TRUE())
would return 30 days. The difference between these two methods is explained below:
European method: If the start or end date falls on the 31st of a month, the formula will calculate with the 30th day of the month instead.
US-american method: If the start date falls on the 31st of a month, the formula will calculate with the 30th instead. If the end date falls on the 31st of a month, what the formula calculates depends on the start date. If the start date is earlier than the 30th of a month, the end date is set to the 1st day of the following month. Otherwise, the end date is set to the 30th.
YEARFRAC({{start}}, {{end}}, {{mode}})
returns the time span between two dates as a number. With the parameter mode you got five different options to calculate the difference.
mode = 0: The difference will be calculated with the 30-day month US-American definition (see formula
DAYS360
) and divided by 360.mode = 1: The actual difference in days will be divided by the actual number of days in the year.
mode = 2: The actual difference in days will be divided by 360.
mode = 3: The actual difference in days will be divided by 365.
mode = 4: The difference will be calculated with the 30-day month european definition (see formula
DAYS360
) and divided by 360.
DATEDIF({{startdate}}, {{enddate}}, {{unit}})
returns the difference between two dates in a specified unit. You can choose between the following units:
Y: Difference of fully completed years.
M: Difference of fully completed months.
D: Difference of days.
MD: Difference of days; months and years are being ignored.
YM: Difference of months; days and years are being ignored.
YD: Difference of days; years are being ignored.
Current date
You can use the following formulas to get the current date.
TODAY()
returns the current date in the datetime format.
NOW()
returns the current date, including the current time in the datetime format.
Convert into datetime format
With the following formulas you can convert dates or other data types into the datetime format.
DATE({{year}}, {{month}}, {{day}})
lets you create a variable in the datetime format.
TIME({{hour}}, {{minute}}, {{second}})
returns a time span as floating point number in days. Therefore 24 hours correspond to the value 1, 12 hours to the value 0.5, etc.
DATEVALUE({{string}})
converts a string, if possible, into a valid datetime format.
TIMEVALUE({{string}})
converts a string, if possible, into a time span as floating point number (seeTIME
).
Adding timespans
EDATE({{start}}, {{k}})
will add k months to start and return the result. k can be negative to calculate dates in the past. For example,EDATE('2/5/2021',3)
will return the 5th May 2021.
EOMONTH({{start}}, {{k}})
will add k months to start and return the end of the corresponding month. k can be negative or zero. For example,EOMONTH('2/1/2021',3)
will return the 31st May 2021.
Logic formulas
Logic formulas can be used for evaluating logical expressions.
Note
Logical expressions are always TRUE or FALSE.
TRUE()
returns the logic value TRUE.FALSE()
returns the logic value FALSE.
Logical operators
AND({{log_a}}, {{log_b}}, ...)
returns TRUE if all expressions are TRUE. Returns FALSE otherwise.
OR({{log_a}}, {{log_b}}, ...)
returns TRUE if at least one expression is TRUE. Returns FALSE otherwise.
XOR({{log_a}}, {{log_b}}, ...)
returns TRUE if exactly one expression is TRUE. Returns FALSE otherwise.
NOT({{log_a}})
negates the parameter. TRUE becomes FALSE, FALSE becomes TRUE.
Conditional expressions
IF({{cond}}, {{value1}}, {{value2}})
returns depending on the condition a different value. If cond evaluates to TRUE, value1 will be returned, otherwise value2 will be returned.
IFS({{cond1}}, {{value1}}, {{cond2}}, {{value2}}, ...)
allows the possibility of multiple evaluations. It will be checked if one of the conditions evaluates to TRUE, the corresponding value will be returned. If a condition is FALSE the next condition will be checked until a condition which is TRUE is found. But only the first condition that evaluates to TRUE will return a value. For example,IFS(TRUE, 2, TRUE, 5)
returns 2.
SWITCH({{value}}, {{check_1}}, {{return_1}}, {{check_2}}, {{return_2}})
compares the parameter value with check_1, check_2, etc. until a match is found. The formula returns the corresponding return value then. For example,SWITCH(7,9,'nine',7,'seven')
would return seven.
IFERROR({{formula}}, {{expression}})
evaluates the inner formula formula and returns its return value. If the formula returns an error, expression is returned. For example,IFERROR(8/2,'Error')
would return 4, butIFERROR(8/0,'Error')
would return Error. Of course, you can nest any other formula inside this formula.
String formulas
If your formula requires a parameter of the type string, then you need to enclose it in single quotation marks, for example, LEN('Example')
. Alternatively, you can use predefined process variables. You can find an explanation for that here.
String extraction
With the following formulas you can extract strings or specific information out of a string.
RIGHT({{string}}, {{num}})
returns the num right characters of string. For example,RIGHT('Profit margin',6)
would return margin.
LEFT({{string}}, {{num}})
returns the num left characters of string.
MID({{string}}, {{startPos}}, {{num}})
returns a part of string. Starting at startPos, num characters will be returned. For example,MID('Pete drives his car', 6, 6)
returns drives.
LEN({{string}})
returns the number of characters in string.
REPT({{string}}, {{num}})
repeats string num-times. For example,REPT('x',5)
returns xxxxx.
SEARCH({{searchTerm}}, {{string}})
searches in string for searchTerm and returns the character index at which the searched string starts. For example,SEARCH('margin', 'Profit Margin')
would return 8. If the string cannot be found, the formula returns an error.
FIND({{searchTerm}}, {{string}}, [{{startPos}}])
searches in a string string for a search term searchTerm and returns the first occurrence of it. startPos allows you to start the search at a different character. For example,FIND('i','Pete drives his car',10)
would return 14. If you do not use the parameter startPos, the formula starts searching at the first character.
REGEXEXTRACT({{string}}, {{expression}})
searches in string for the regular expression expression and returns the index of the first occurrence.
String manipulation
With the following formulas, you can manipulate a string.
LOWER({{string}})
converts string into lowercase letters.
UPPER({{string}})
converts string into uppercase letters.
PROPER({{string}})
converts the first character of string into an uppercase letter and the following characters into lowercase letters. For example,PROPER('bicYCle')
returns Bicycle.
TRIM({{string}})
deletes multiple spaces in string.
CLEAN({{string}})
returns string without non-printable characters.
CONCATENATE({{string1}}, {{string2}}, ...)
concatenates two or more strings into one string. For example,CONCATENATE('John', ' ', 'Doe')
returns John Doe.
REPLACE({{string}}, {{pos}}, {{num}}, {{replace}})
replaces a character in a string with another character. Starting with the character at the position pos, num characters are replaced by the string replace. For example,REPLACE('abcdefghijk', 6, 5, '*')
will return abcde*k
SUBSTITUTE({{string}}, {{old}}, {{new}}, [{{pos}}])
substitutes in string the character old by new. If you do not want to replace all occurrences of old, you need to add the parameter pos. This will define which character gets replaced. For example,SUBSTITUTE('Q1-2011', '1', '2')
would replace all 1’s by 2’s, therefore returning Q2-2022, butSUBSTITUTE('Q1-2011', '1', '2', 1)
would replace only the first occurrence of 1 therefore returning Q2-2011.
SPLIT({{string}}, {{delimiter}})
will split string at every position where delimiter is and returns the results as a list. For example,SPLIT('Peter&Max&Antonia', '&')
will return [‘Peter’, ‘Max’, ‘Antonia’].
String comparison
With the following formula, you are able to check whether two strings are the same or not.
EXACT({{string1}},{{string2}})
checks if two strings are the same. This function is case-sensitive. It will return TRUE if the strings are the same, otherwise it will return FALSE.
REGEXMATCH({{string}}, {{expression}})
checks whether the regular expression expression is in string or not. It will return TRUE if the regular expression matches at least once and will return FALSE otherwise.
T({{var}})
checks if var is a string. If var is a string, it will be returned, otherwise an empty string will be returned.
Convert strings
With the following formulas, you can convert numbers into strings and vice versa. These formulas use the unicode standard.
UNICHAR({{number}})
formats a value and converts it into a string.
UNICODE({{character}})
formats a string and converts it to a number.
ARABIC({{string}})
converts a roman number string into the Arabic number system. For example,ARABIC('XVI')
would return 16.
ROMAN({{number}})
converts an Arabic decimal number number into the roman number system. For example,ROMAN(16)
would return XVI.
Math formulas
Round numbers
With the following formulas you can round numeric values.
ROUND({{number}}, {{n}})
rounds number to n decimal places.
ROUNDDOWN({{number}}, {{n}})
rounds number down to n decimal places.
ROUNDUP({{number}}, {{n}})
rounds number up to n decimal places.
INT({{number}})
rounds number down to the next integer.
FLOOR({{number}}, {{i}})
rounds number down to the nearest multiple of i (for example,FLOOR(3.1415,2)
will return 2).
FLOORMATH({{number}}, {{i}}, {{mode}})
rounds number down to the nearest multiple of i. mode decides whether you want to round away or towards zero. mode = 0 rounds away from zero (FLOORMATH(-12.1,1,0)
returns -13). mode = 1 rounds towards zero (FLOORMATH(-12.1,1,1)
returns -12).
CEILING({{number}}, {{i}})
rounds number up to the nearest multiple of i (for example,CEILING(3.1415,3)
returns 6).
CEILINGMATH({{number}}, {{i}}, {{mode}})
rounds number up to the nearest multiple of i. mode decides whether you want to round away or towards zero. mode = 1 rounds away from zero (CEILINGMATH(-4.1,1,1)
returns -5). mode = 0 rounds towards zero (CEILINGMATH(-4.1,1,0)
returns -4).
TRUNC({{number}}, {{n}})
truncates a number to an integer by removing the decimal.
ODD({{number}})
rounds number up to the nearest odd number.
EVEN({{number}})
rounds number up to the nearest even number.
SIGN({{number}})
determines the sign of a number. Returns 1 if the number is positive, returns -1 if the number is negative and returns 0 if the number is 0.
Arithmetic operations
QUOTIENT({{dividend}},{{divisor}})
performs division and returns only the integer portion of the division result. Use this function when you want to discard the remainder of the division.
MOD({{dividend}}, {{divisor}})
returns the remainder after a number is divided by a divisor.
POWER({{number}},{{power}})
returns the result of number to the power of power.
FACT({{number}})
returns the factorial of number.
ABS({{number}})
returns the absolute value of number.
SQRT({{number}})
returns the square root of number.
SQRTPI({{number}})
returns the square root of{{number}} * Pi
.
MAX({{num1}},{{num2}}, ...)
returns the largest number value of the parameters. Logical values and text are being ignored.
MAXA({{num1}}, {{num2}}, ...)
returns the largest number value of the parameters. Logical values and text are not being ignored.
MIN({{num1}},{{num2}}, ...)
returns the smallest number value of the parameters. Logical values and text are being ignored.
MINA({{num1}}, {{num2}}, ...)
returns the smallest number value of the parameters. Logical values and text are not being ignored.
SUM({{num1}},{{num2}}, ...)
returns the sum of all parameters.
SUMIF({{range}}, {{criterion}}, {{[sum_range]}})
returns the sum of numbers in a list that meet a specific criterion. The criterion is applied to the list range. If that is not the list that should be summed up, the parameter sum_range must be used.
SUMPRODUCT({{list1}}, {{list2}})
returns the sum of the products of the lists.
SUMSQ({{num1}}, {{num2}}, ...)
returns the sum of the squares of the numbers.
SUMX2PY2({{list1}}, {{list2}})
returns the sum of the sum of squares of the corresponding values in two lists.
SUMXMY2({{list1}}, {{list2}})
returns the sum of squares of differences of corresponding values in two arrays.
PRODUCT({{num1}},{{num2}}, ...)
returns the product of all parameters.
LCM({{num1}}, {{num2}}, ...)
returns the least common multiple of all parameters.
GCD({{num1}}, {{num2}}, ...)
returns the greatest common divisor of all parameters.
Information functions
ISEVEN({{number}})
returns TRUE when number is even. Otherwise it will return false.
ISODD({{number}})
returns TRUE when number is odd. Otherwise it will return false.
Trigonometric functions
RADIANS({{number}})
converts degrees into radians. For example,RADIANS(180)
returns 3.14159.
SIN({{number}})
returns the sine of number.
SINH({{number}})
returns the hyperbolic sine of number.
COS({{number}})
returns the cosine of number.
COSH({{number}})
returns the hyperbolic cosine of number.
COT({{number}})
returns the cotangent of number.
COTH({{number}})
returns the hyperbolic cotangent of number.
CSC({{number}})
returns the cosecant of number.
CSCH({{number}})
returns the hyperbolic cosecant of number.
SEC({{number}})
returns the secant of number.
SECH({{number}})
returns the hyperbolic secant of number.
TAN({{number}})
returns the tangent of number.
TANH({{number}})
returns the hyperbolic tangent of number.
ASIN({{number}})
returns the inverse sine of number.
ASINH({{number}})
returns the inverse hyperbolic sine of number.
ACOS({{number}})
returns the inverse cosine of number.
ACOSH({{number}})
returns the inverse hyperbolic cosine of number.
ACOT({{number}})
returns the inverse cotangent of number.
ACOTH({{number}})
returns the inverse hyperbolic cotangent of number.
ATAN({{number}})
returns the inverse tangent of number.
ATANH({{number}})
returns the inverse hyperbolic tangent of number.
Logarithm functions
LN({{number}})
returns the natural logarithm of number.
LOG({{number}}, {{base}})
returns the logarithm of number to the base. If the parameter base is not given, the standard value will be 10.
LOG10({{number}})
returns the logarithm of number to the base 10.
Random numbers
RAND()
returns a random decimal number between 0 and 1.
RANDBETWEEN({{num1}},{{num2}})
returns a random integer between num1 and num2.
Finance formulas
Variable |
Meaning |
---|---|
|
describes the number of periods |
|
describes the number of periods per year |
|
describes the present / current value of an investment |
|
describes the future value of an investment |
|
describes whether a payment is due at the end of the payment (type = 0) or at the |
|
describes the period you want to inspect. The value can only be between 1 and |
|
describes the payment made each period |
Other variables will be explained with the formula.
ACCRINT({{issue}}, {{first_interest}}, {{settlement}}, {{rate}}, {{par}}, {{frequency}}, {{[basis]}}, {{[calc_method]}})
returns the accrued interest for a security that pays periodic interest. Issue is the security’s issue date. Settlement is the date after the issue date when the security is traded to the buyer. Frequency describes the number of payments in a year.
CUMPINT({{rate}}, {{nper}}, {{pv}}, {{start_period}}, {{end_period}}, {{type}})
returns the cumulative interest paid on a loan between start_period and end_period.
CUMPRINC({{rate}}, {{nper}}, {{pv}}, {{start_period}}, {{end_period}}, {{type}})
returns the cumulative principal paid on a loan between two dates.
DB({{cost}}, {{salvage}}, {{life}}, {{period}}, {{[month]}})
returns the depreciation of an asset using the fixed-declining balance method. cost describes the initial cost of the asset. Period describes the period for which you want to calculate the depreciation. It must have the same unit as the variable life.
DDB({{cost}}, {{salvage}}, {{life}}, {{period}}, {{[factor]}})
returns the depreciation using the double-declining balance method. The needed variables are the same as in the formulaDB
.
DOLLARDE({{fractional_Dollar}}, {{fraction}})
converts a number expressed as an integer part and a fraction part into a decimal number, for example,DOLLARDE(1.02,16)
returns the value 1,125 (1 + 2/16).
DOLLARFR({{decimal_Dollar}}, {{fraction}})
converts a decimal number into a number that has an integer and a fraction part, for example,DOLLARFR(1.125,16)
returns 1,02.
EFFECT({{nominal_rate}}, {{npery}})
returns the effective annual interest rate.
FV({{rate}}, {{nper}}, {{pmt}}, {{[pv]}}, {{[type]}})
returns the future value of an investment.
FVSCHEDULE({{Principal}}, {{Schedule}})
returns the future value of an investment where interest rates are not constant. The variable Schedule must be given in list form.
IPMT({{rate}}, {{per}}, {{nper}}, {{pv}}, {{[fv]}}, {{[type]}})
returns the interest payment for a given period.
IRR([{{value1}}, {{value2}}, ...], {{guess}})
returns the internal rate of return of an investment. guess is used to determine at which return rate the algorithm starts to calculate. The closer guess is to the real rate, the preciser is the value calculated by the formula. Normally, 0.1 (10%) is a good estimation for the IRR.
ISPMT({{rate}}, {{per}}, {{nper}}, {{pv}})
returns the interest over a specific time, with even interest rates and principal payments.
MIRR({{values}}, {{finance_rate}}, {{reinvest_rate}})
returns the modified internal rate of return for a series of periodic cash flows. values must be given in list form. finance_rate is the interest rate you pay on the money, reinvest_rate is the interest rate you receive from reinvesting the cash flows.
NOMINAL({{effect_rate}}, {{npery}})
returns the nominal annual interest rate.
NPER({{rate}}, {{pmt}}, {{pv}}, {{[fv]}}, {{[type]}})
returns the number of periods for an investment.
NPV({{rate}}, {{value1}}, {{value2}}, ...)
returns the net present value of an investment by using the discount rate rate. value1, value2 … represent the corresponding cash flows.
PDURATION({{rate}}, {{presentValue}}, {{futureValue}})
returns the number of periods needed by an investment presentValue to reach futureValue. rate is the interest rate per period.
PMT({{rate}}, {{payments}}, {{presentValue}})
calculates the payment for a loan based on constant payments and a constant interest rate rate. payments denotes the number of payments. presentValue is the amount of the loan.
PPMT({{rate}}, {{per}}, {{nper}}, {{pv}}, {{[fv]}}, {{[type]}})
returns the payment on the principal for a given period.
PV({{rate}}, {{nper}}, {{pmt}}, {{[fv]}}, {{[type]}})
returns the present value of an investment.
RATE({{nper}}, {{pmt}}, {{pv}}, {{[fv]}}, {{[type]}}, {{[guess]}})
returns the interest rate per period of an annuity.
Conversion into different numeral systems
The formulas for converting numbers into different numeral systems are similar to each other: XXX2YYY({{number}})
. Here XXX
stands for the original numeral system and YYY
for the target numeral system. In the table below you can find the abbreviations and the usable numbers and characters of the different numeral systems. For example, BIN2DEC({{number}})
will convert number from the binary system to the decimal system.
Numeral system |
Abbreviation |
Usable characters |
---|---|---|
Binary |
BIN |
0-1 |
Decimal |
DEC |
0-9 |
Hexadecimal |
HEX |
0-F |
Octal |
OCT |
0-7 |
Additionally, there are two more general formulas which you can use to convert numbers into different numeral systems.
BASE({{number}}, {{base}})
converts a decimal number into a number of a numeral system with the base.
DECIMAL({{string}}, {{base}})
converts a number of a different numeral system with the base base into the decimal system.
Therefore, the formula DECIMAL('101',2)
and the formula BIN2DEC(101)
have the same output.
Statistic formulas
Basics
AVERAGE({{num1}}, {{num2}}, ...)
returns the arithmetic mean of all numeric parameters.
AVERAGEA({{num_1}}, {{num_2}}, ...)
returns the average of all variables. Logical values and texts are not ignored.
AVERAGEIF({{range}}, {{criteria}}, {{[average_range]}})
returns the average of the parameters that meet the given criterion. The parameter with the exception of the criterion must be given in form of a list.
AVERAGEIFS({{average_range}}, {{criteria_range1}}, {{criteria1}}, {{criteria_range2}}, {{criteria2}}, ...)
returns the average of the parameters that meet the given criteria. The parameter, with the exception of the criteria, must be given in form of lists.
MEDIAN({{num1}}, {{num2}}, ...)
returns the median of all numeric parameters.
COUNT({{num1}}, {{num2}}, ...)
returns the number of values.
COUNTIF({{range}}, {{criteria}})
returns the number of elements in a list, that meet a given criterion.
COUNTIFS({{criteria_range1}}, {{criteria1}}, {{criteria_range2}}, {{criteria2}}, ...)
returns the number of elements in a list that meet the given criteria.
LARGE([{{num1}}, {{num2}}, ...],{{k}})
returns the k-th largest number. For example:LARGE([2,3,5],2)
returns the second largest number 3.
SMALL([{{num1}}, {{num2}}, ...],{{k}})
returns the k-th smallest number.
Examples for formulas
How do I calculate a leap year?
If you want to calculate whether a year is a leap year, you cannot use a predefined formula. But you can easily create your own formula to do this. First, you need a number input field in your form. In this case, the variable is called year
. In BIC Process Execution, you can enter the year you would like to check in the number field.
Now use the following formula:
As you can see, the formula consists of multiple nested formulas. First, you create a valid variable in the datetime format with DATE({{year}},02,29)
. Depending on the year, the date will be March 1 (if the year is not a leap year) or February 29 (if the year is a leap year).
Using the formula MONTH
will return the month of the given date as an integer. As already explained, the return value will be 2 (if the year is a leap year and therefore the month is February) or 3 (if the month is March).
Last but not least, we use the formula EXACT
to check whether our result is 2 or not. If it is true and the year is a leap year, it returns TRUE, otherwise it returns FALSE.
In BIC Process Execution it will look like this:
How do I calculate workdays?
In the following, we provide an example of how to use different formulas (for example, how to calculate the number of workdays between two dates).
In this example, you want to carry out a project and want to calculate how many working hours the company can offer in a given period of time.
This example is deliberately kept simple and does not reflect all relevant activities and aspects. It is intended to give you an overview of what you can accomplish with formulas.
First, you could use form fields to enter some key aspects of our project. Alternatively, you could get the data from other processes as well. In this example, we only consider the start and end dates of the project, the number of participating employees, and their average hours they worked on the project.
The start date and end date fields are date fields. The fields for entering the number of employees and their average hours worked are number fields. The IDs of the corresponding form fields in this example are:
start date: start
end date: end
number of employees: people
number of working hours: hours
With these values, it is now possible to calculate the following variables.
The first formula calculates the number of workdays (the variable ID is workDays) between the start and the end dates. Here you can find the details of the formula NETWORKDAYS
.
The second calculation is the available work power per day (variable: workPower). To do this, we simply multiply the number of employees by their average working hours per day.
Finally, the total project capacity is calculated by multiplying the number of workdays by the available work power per day.
When you now open your process in BIC Process Execution, it will look like the following. The three calculated values are automatically updated as soon as you enter new values.
Create dynamic forms
You can also use formulas to create dynamic forms, which means that the attributes of form fields can be manipulated by user input. The following example uses a process to sell auto insurance. Our form in the form editor looks like this:
The name of a legal guardian or parent is only required if the person to be insured is younger than 21. For this, we use the attribute Hidden and choose the option Conditionally. Here we can enter a condition or formula under which circumstances the field should be hidden. In this example, it will be the case if the variable age is greater than or equal to 21. If the person is younger than 21, the field will be mandatory.
Another way to make your form dynamic is to use the attribute read-only. Below you can see a form field of the type boolean that is used to indicate whether the insurance includes fully comprehensive or not. As you can see, the field is read-only (and therefore not changeable) if the person is younger than 25, which means you can only select fully comprehensive cover if the person to be insured is older than 25.
In BIC Process Execution it is possible to start this case and see the form. In the following you can see that the field comprehensive cover cannot be changed because the person is younger than 25. However, due to the fact that the person is older than 21, you cannot enter the name of a parent or legal guardian.
Tasks
BIC Process Execution offers you a variety of functions to help you manage the tasks that result from your processes. When using these functions, the following questions may arise.
Where do I see my tasks?
Use the menu to switch to the Tasks section.
On the right side of the menu entry you can already see how many of your tasks are still open. As soon as you select the menu entry, you will be directed to the My tasks area.
In the main area you will see all tasks assigned to you. Any new task, whether you started it, it was started for you, or an existing task was delegated to you, is displayed at the top of the task list. Below the name of each task you will see the name of the corresponding case. On the same line of each entry, you will see the start date of the case, the status and the due date of the task, if the latter has been defined in BIC Process Design. When the status of a task changes, the entry will be updated. The status of each task is displayed with the corresponding labels Error (red), Overdue (orange), To do (gray) and Done (green). Further explanations of the status can be found here.
The chip of a task is based on the icon of the underlying ProcessApp. You can directly navigate to the case list of the ProcessApp by a click on the chip.
A click on the list entry itself leads you to a pop-up window of the task. Alternatively, you can select Navigate to case flow to see the full process flow view.
Your personal task list contains all started tasks assigned to you during a case creation process. This list also contains tasks that have been delegated to you or group tasks which you have claimed. If you created a case and did not specify a responsible for a role, the corresponding tasks will appear in your task list (one by one) as soon as they are started. Moreover, if you have created a case which includes a task without a responsible role, that task will be delegated to you as soon as it is started. This also applies to failed script tasks.
Personal tasks remain part of your task list until they are completed.
Your task list may contain tasks that require manual decisions. These tasks are created by the system if a gateway is not modeled with an automation. Decision tasks are assigned to the case owner.
Note
If you are working on your task list and the status of a task has been changed, it will automatically be displayed in your task list.
How can I filter and sort the task list?
Filter and Search:
On the right side of the main area of your task list, you will see the filter panel where you can search and filter for specific tasks.
You can filter your task list by ProcessApps. When you select the ProcessApps facet, all existing ProcessApps are displayed for filtering. Once you select a specific ProcessApp, only its tasks are displayed in the task list.
Additionally, you can filter your tasks using predefined date range options. When you select the Due Date facet, the different date range options are displayed. Once you select a predefined date range, your task list is updated. You will only see the tasks that are due within the selected date range.
When you search for a task name, the task list will be updated and you will see all the results of this search. If there are no search results, you will see a corresponding message in the main area. You also have the option to use both “a AND b” and “a OR b” to display all results that contain either “a” and/or “b”.
Note
If you have applied a filter, the search will include the search term and any selected filter options. If you reset the search, you will get results that match the previously selected filter options.
Sort:
When you view the task list in the main area, whether you have applied a filter or not, you have the option to sort the tasks by a specific column. To do this, click on the column header.
If no sorting was applied before, the tasks are sorted in ascending order based on the selected column. At the same time, you will be scrolled to the top of the task list.
If you have already sorted by a column and the tasks are displayed in ascending order, you can change the sorting direction by clicking on the same column heading again. This will reverse the sorting and take you back to the top of the task list.
Hint
Please note that when entering the task list, tasks are sorted by default according to their creation date in ascending order. This serves as the starting point if no specific column sorting has been selected.
Note
Sorting is done for one column at a time.
What does the status of my task mean?
In your personal task list, each task has an entry in the Status column. This status gives you at least one of the following information:
To Do: This task has been started and you have to work on it or delegate it to another user.
In progress: This task has been started and you have started to work on its task form. But the task is not been yet completed.
Done: If the task has been completed by you or another user, the task name is displayed crossed out. The completed task disappears from the list as soon as you leave the task list.
Overdue: The task is past its due date. The urgency is highlighted in red.
Error: The task has an error.
When you are currently in your personal task list and the status of a task changes, the change is automatically displayed. This way you will always have a good overview of which tasks you need to work on.
If there is an error in your task, the entry will be marked with a red error icon on the right side. Next to the error icon, you can navigate to the corresponding case to receive further information about the error (if available).
Hint
If you are in the pop-up window of your task and someone else completes the task, the Complete Button will be disabled and you will receive an information about the completion of the task.
When is my task due?
The due date of a task is displayed in the task list. When the due date has been exceeded, the status becomes overdue.
Moreover, you can see the due date in the process flow view.
If your task is overdue the due date will be shown in red.
Note
If you want your tasks to have a due date, you have to model it in BIC Process Design first. An explanation of how to do this can be found here.
Hint
If you are assigned to a task that is due within one day, you will receive an email notification immediately. Please note that if you are assigned an urgent task that is due within one day and is not completed within one hour of being assigned, you will receive an email reminder of the unfinished task.
How am I notified about my tasks?
BIC Process Execution notifies you of upcoming tasks via email. The notification cycle described below includes your personal tasks as well as open group tasks if you are a member of the group and no member has claimed the respective task yet. You will also receive an email notification about which group is responsible for a group task.
As the owner of a task in your case, you will receive a notification in your overdue task reminder emails if the task is overdue. Even if you do not have any overdue tasks, but there are overdue tasks in your cases that are assigned or not assigned to other users or groups, you will still receive the email notification.
Notification cycle
Weekdays:
At the beginning of each week, you will receive an email informing you of tasks that are Overdue, Due today, Upcoming, and New tasks. Upcoming indicates tasks that are due within the current week. The email also contains a link to BIC Process Execution. which takes you directly to the corresponding tasks.
On the other weekdays, you will receive an email notifying you of tasks that are Overdue, Due today or New tasks. Tasks that are longer overdue than others are displayed at the top of the list.
Note
If a new task has been assigned to one of your group members or to you within the last 24 hours and has not yet been completed, that task will appear in the New tasks section. However, if the task has been assigned to multiple users, only the most recently assigned user will receive a notification.
Weekends:
You will not receive any task reminder emails on weekends. However, the Friday email will include any tasks that are due on the weekend or Monday.
In the default configuration, if you receive a reminder email regarding the due date or a new task on Monday, you will not receive information about Friday and Saturday.
Note
In order to receive daily reminders also on weekends, you need to update the default configuration. This means that on Saturday and Sunday you can receive reminders for the previous days (Friday and Saturday).
Hint
You are immediately notified by email when a new task is assigned to you that is overdue or due in the next 24 hours.
What is a task form and what is it used for?
In BIC Process Execution, a form is generated for each task when the corresponding case is created. This serves as a source of information for a specific task, but also provides you with many options for performing the necessary steps to complete the corresponding task. The information is derived from the information provided in the corresponding diagram in BIC Process Design for that task. However, be aware that the task form is not the same as the profile that you know from BIC Process Design. The form gives you much more. For example, you can see the responsible users and the attributes of the task, or you can access its input and output documents. To give you get a better idea of what the task form is, the following explains a few of the options available and how you can access the form.
You can access your own task form in your task list once the task has been started. Simply select the desired task there and the form will open as a pop-up window.
To access the form of any task, you must first navigate to the corresponding ProcessApp and select the desired case. The task form will open in the right sidebar. If you are using the mobile view of the application, the task form is automatically displayed after selecting the task.
Here you will find the name of the task, the responsible user or the responsible roles, a description and other attributes of the task. This information is based on the modeled task anf its properties in the respective diagram of BIC Process Design.
In addition to the information that you can get, it also provides you with some functions. For example, you can download input documents or upload output documents for the task.
You can also access document services and other web applications or websites by selecting individual attachments. For example, depending on the hyperlink, if it is a link to a document service, the download of a document will be started automatically. If a hyperlink is activated which contains a URL to a website, the website will automatically open in a new browser window.
You can also make use of decision tables within the form. This provides your users with the decision making support they need to complete their task.
You have the option of saving the decision table data entered in order to check the result before completing the task. To do this, click on the Calculate result button. If the result is “null”, you will receive a message indicating that the result is empty.
In addition to these functions and information, you can also make decisions and (if you have the permission) delegate tasks within a task form.
Most of the form fields in the task form are automatically obtained from the information derived from your diagram in BIC Process Design. In addition, additional form fields can be added to a user task form of a user task using the form editor. The responsible for the task can fill in these form fields when executing the case.
How do I start a task?
In BIC Process Execution, tasks are usually started automatically as soon as the corresponding step in the process flow is reached. This means that if a task is in the first place in the process flow, it will be automatically started as soon as the case is created.
All subsequent tasks are automatically started as soon as the direct predecessor task in the sequence is completed.
In this way, multiple tasks can be started automatically at the same time, for example, by using a parallel gateway. When the task in front of this gateway is completed, all tasks directly following it are started at the same time.
Depending on the definition of your process, the first task of a process may have to be started manually because the user can decide which task to start first. Note, however, that this is only possible if the Allow users to start tasks manually checkbox is selected. As a ProcessApp Administrator, you can start any task manually. Tasks are displayed and can be started in the process flow view of a case as soon as the first task of its segment is started, which means, when the segment is active.
Note
A segment of the process flow is defined by its corresponding diagram and consists of a sequence of activities (the tasks) between gateways and events.
To start a task manually, navigate in the process flow view to a task for which you or another user has role responsibility. You can identify this by the user name displayed in small letters below the task. If you select the task entry and the task segment is active, you will see the option Start task manually in the task form.
In this example, in the case “A new offer”, you cannot manually start the “Verify order” task until the case has progressed to the corresponding segment:
The task is started manually as soon as this function is activated. After the manual start, the chip is filled with the user’s initials.
Now all users can directly see that this task in this case has been started. The task also appears in the task list of the responsible user, who can now work on it.
Hint
When a group is assigned to a role and the first task of that role is started, the group task must be claimed by a group member. Subsequent tasks of that role are automatically assigned to that member (as soon as they are started). Further information about this rule can be found here.
How can I delegate a task?
If a task is assigned to you and has already been started, you can delegate it to another user. As a ProcessApp Administrator or as a case owner, you can delegate all started tasks, whether they are owned by you or by other users. The delegation option is also displayed to ProcessApp Administrators and case owners when a task is started but not yet assigned to a user. A delegation only affects the respective task. All other tasks keep the assignment that was defined when the case was created.
In your task list, navigate to the pending task that you want to delegate. When you click on the task, the task form opens as a pop-up window. Within the form, you will find the Responsible section. Next to your username, you can select the Delegate task function on the right side.
Alternatively, you can find this function in the form of the started task in the process flow view. ProcessApp Administrators and case owners can delegate the tasks of other users this way.
When you use this function, a window appears where you can then search for a user (group) using the input field. You can then select a search result from the list of suggestions.
Your selection will be displayed as a chip. If you have accidentally not made the desired selection, you can remove the chip via the x, or select and delete it on the desktop with the backspace key. In general, you can select all users and user groups for delegation. If you want to Cancel the delegation, select the corresponding option.
Otherwise, click Delegate to complete the delegation. The window closes and the task no longer appears in your task list. The initials of the newly assigned user (group) will now appear in the process flow view of the relevant case. In addition, the task appears in the task list of the affected users.
How do I complete a task?
In general, a task can be completed after it has been started and assigned to a user. You can see your own started tasks in “Tasks”. In BIC Process Execution, tasks are completed using the task form. The form provides more information and links to applications relevant to your task. You may also be able to upload or download files or enter other data in a user task. There are two ways to find the task form. The pop-up window allows you to complete single tasks more quickly because you do not need to open the corresponding process flow view of each task.
In a pop-up window:
Navigate to your tasks, where you can find your own tasks that have already been started. When you select a task, it will open in a pop-up window and you can see the task form. At the bottom of the form, you will find a comment field where you can enter a note before completing the task via the complete button. The pop-up window will close automatically.
Hint
The possibility to complete a call activity is only available to the user who has the role of the ProcessApp Administrator. If you are the owner of a task but do not have the ProcessApp Administrator role, you cannot complete the task manually.
In a process flow view:
Alternatively, you have the possibility to open the process flow view. To do so, select the Navigate to case flow button. The affected task will be highlighted in the process flow with a filled chip with your initials. If you are using the mobile view of BIC Process Execution, the form will open when you select the task. In the desktop view, the form is located in the right sidebar.
In the form of your task, you will find a comment field where you can enter a comment before completing the task via the Complete button.
After completing the task, a check mark will appear in the chip of the task and the task’s text will turn gray, which will be directly visible to all users. In the form, you can see the comment that may have been submitted. The task is no longer listed in your tasks. This cannot be undone.
If a task is started but no user is assigned, it cannot be completed. The hint No user assigned will be shown in the Responsible section of the form. In this case, ProcessApp Administrators can delegate the task to a user (group). This user (group) can then complete the task as described above.
When a task is completed, the next task in the sequence is automatically started and thus appears in the task list of the responsible user. This happens if the next task is a clear successor or the following activity. If the following task has already been completed, the next task in the sequence is started. When the last task of a case has been completed, the case will be finished.
Hint
Please note the difference between a role being responsible for a task and an explicit user being assigned to the task. A user can be assigned to a role during the case creation or later in the case details. In this case, the user is automatically assigned to a task of the role when the task is started. If the responsible role of a task cannot be assigned to a user when the task is started, the task cannot be completed.
Tip
As a ProcessApp Administrator, you can complete every task by delegating it to yourself and then completing it as described above.
Note
A task started without an assigned user can occur in cases started by the system. These cases have no owner who would be responsible if no other role responsibility has been defined.
Warning
Please note that only users with the roles ProcessApp User or ProcessApp Participant can work on tasks. If a task is assigned to you and you do not have one of these roles, you will not be able to perform any actions for this task. You will then receive a notification stating that you do not have the required role. If you open BIC Process Execution without the user role ProcessApp User or ProcessApp Participant and you have been assigned tasks, you can view them in your task list. In this case, however, you will be informed in the task forms that you do not have the necessary role for processing. If no tasks are assigned to you, the menu item Tasks will not be available.
Where can I see comments of completed tasks?
When completing a task, users can add additional comments. These comments are then visible to all users. To view a comment, first navigate to the process flow view of a running case. When a task is completed, you will see a Show comments icon to the right of the entry.
Clicking on this button opens the comment window. In addition to the comment itself, this window displays the author of the comment and the comment timestamp. The comment is in read-only mode and cannot be edited. Click on Close to return to the original view.
Where can I find my group tasks?
In order to find your group tasks, navigate to the Tasks area via the menu. You can access to all your group tasks over the Group tasks tab.
This area lists all started tasks assigned to the user groups you are part of. Under the name of each task, you can see the name of the corresponding case. Next to the task, you can see when the task was started, the due date of the task, the status of the task, the role and the task owner. The due date is empty if the corresponding attribute has not been maintained in BIC Process Design. In case there is a chip with initials to the right of the entry, the task has already been claimed by a user.
As soon as one of these tasks is successfully completed by one of the users of the group, it disappears from the personal task list of all involved users.
How can I claim a group task?
To claim a group task, first navigate to the group tasks list or to the relevant case. Both views show whether the task has already been claimed. If a group member has claimed the task, that user will be assigned as the responsible user in the task form in the process flow view. The corresponding entry in the group task list also shows the initials of this user.
Tasks that can be claimed have a context menu to the right of the entry instead.
By clicking on the context menu, you can select the Claim task option. Once you have claimed a task, your initials will be displayed at the entry and the context menu will disappear. From then on, you will find the task in your personal list of tasks as well.
If your group task has not yet been claimed, you will also find the button Claim task in the task form when you view the process flow of the corresponding case. By clicking this button you can claim the task directly in the case.
If you complete the group task and another task is started for this group in the same case, this task will be assigned to you automatically. You do not have to claim it manually. Note that this is only the case for tasks arising from the same role.
Consider the following example: In a case, the group “Team Development” is responsible for the roles “Software developer” and “Software tester”. As a member of this group, you have claimed and completed the first group task which was defined for the “Software developer” role. If another group task of the case is started for which this role is responsible, this task is automatically assigned to you. However, if a task with the responsibility “Software tester” is started in the case, this task has to be claimed by a group member - unless a user has already completed a previous task as software tester and is therefore assigned to this task as well.
Note
If you claim a group task, then delegate it to a user, and the user completes the task, the next task of that group in the case will be assigned to that user (when the task is started).
How can I edit a task as an external user?
If you have the role of an external user, you can edit a task assigned to you in the task form to provide the required information.
Once a task is started and your email address is stored in the process as an external user identifier, you will receive an email notifying you of the pending task.
This email will contain a link to a task form where you should complete all mandatory and/or optional fields. By clicking on Submit, the task form will be successfully submitted and you should receive a confirmation message. Once the task form has been submitted, you will no longer be able to edit the task. If you click the link again, you will only be able to view the task form in read-only mode.
Hint
Please note that the link is only valid as long as the task is assigned to you as an external user.
Hint
It is not possible to delegate the task to another external user.
Hint
Please note that signing tasks cannot be performed by external users.
How can I make a manual decision task for a gateway?
If a gateway is not modeled with an automation, the case owner receives a task to decide which path to executed.
As a case owner, you will find the manual decision task in your task list once the previous task has been completed. Select this task to open its pop-up window. Based on the options displayed in the window, you can see whether your decision is an Exclusive Or or an Inclusive Or gateway. Exclusive Or gateways only allow you to select one decision option.
Inclusive Or gateways, on the other hand, have checkboxes for the decision options that allow multiple selections.
Select one or more options (depending on the type of gateway) and confirm your selection with the Complete button.
Warning
If an activity is modeled with one or more outgoing sequence flows without a gateway, the decision must be automated via expressions. Otherwise, undesired behavior may occur. Please find an example here.
How can I use attachments in BIC Process Execution?
In BIC Process Execution, you can use attachments that have been defined on the corresponding objects in BIC Process Design. You can use all attachment types that are available for`the “Attachment (URL)” attribute <../../../help/process-design/de/details.html#attach-files>`_ in BIC Process Design. In BIC Process Execution, these are displayed in various places in the corresponding task form.
If the Attachment (URL) attribute has been defined for an activity, you will find these attachments in BIC Process Execution in the corresponding task form under Attachment (URL).
If you have defined an attachment in the attributes of a document object that represents an input or output of an activity, you will find the attachment in the Inputs or Outputs section of the corresponding task form. The attachment is represented by a paperclip icon. You can access the attachment by clicking the paperclip icon.
How can I upload or download files to my tasks?
If files have been modeled in your diagram in BIC Process Design, you can make use of them in BIC Process Execution to upload or download documents in the tasks of your case. This allows you to provide important documents for the process flow. You can also use these files for a REST call. They are always assigned to individual tasks in your case. The following section explains in more detail how to use these functions.
Outputs
If an output document has been modeled for an activity in BIC Process Design, you will find a corresponding entry in your task form in BIC Process Execution. In order to upload a document, you have to be the responsible of the relevant task and the task must already be started. If this is the case, you can use the Upload file function to select and upload the desired document via a corresponding dialog window.
Once you have successfully uploaded a document, the document icon on the left side of the entry will turn white to indicate that the upload process is complete. Documents that have been uploaded as output can be downloaded at any time using the Download function.
If the Upload file function is used when a document has already been uploaded, that document will be replaced by the newly selected document. This means that only one file can be provided per output entry. Once the corresponding task is completed, the Upload file function is grayed out and no more files can be uploaded for the relevant output.
Inputs
As with outputs, you will find inputs in the corresponding task form. If an input exists for a task, you can access the relevant document by using the Download function.
All inputs are the result of outputs from previously processed tasks in the process flow. You can only download the document if the task containing the output has been successfully completed and the task containing the input has been started. If this is not the case, or if no file has been uploaded for the input, the Download function is grayed out and cannot be used.
Note
You can use the following objects to upload or download files: Document, Business object, Norm, and Data store.
Tip
Attachments that have already been added to the document object in BIC Process Design can also be accessed via the corresponding input/output entries.
How do I work with decision tables?
If a task in BIC Process Design is of the type “Business Rule”, the defined decision table will also be found in the task form in BIC Process Execution.
In the processes, you will see the Input variables in the form of input fields in the form of the corresponding task. To use the input fields within the decision table, the task must be started. Once you have filled in all the input fields with valid data, you can click on the Calculate result button and check the result before completing the task. If the result is “null”, you will receive a message indicating that the result is empty.
For each of your input fields, there is a process variable that contains the value of your input. In addition to the information you can get from the table, you can use the individual data in other ways, such as automated decisions.
If the value of the process variable is defined before the Business Rule task is reached, the corresponding input field is automatically filled with the value of the process variable. For example, REST calls can be used to automatically provide information that is then used in a decision table. If you manually change the input fields in such a case, the corresponding value of the case’s process variable is also be changed.
For Business Rule tasks where all input fields are automatically filled in, the output of the decision table is determined and the task is then automatically completed.
Tip
Within the default case, you can also make use of the decision tables without starting the corresponding tasks. This allows you to access these tables without the need for a specific case.
Note
Be aware that the output value may be different if you use the COLLECT hit policy. This depends on whether the hit policy was selected with or without aggregation. In case the COLLECT hit policy was selected with aggregation, the output value is equal to the result out of the matching rules’ output values. The result can be the greatest matching value (MAX), the minimum (MIN), the number of matching rules (COUNT), or all the matching values combined (SUM). Otherwise, the value of the output variable is a comma-separated string with all the results for the matching rules if the COLLECT hit policy was selected without aggregation.
How can I be notified when one of my tasks is started independently of me?
In BIC Process Execution, you have the option to be notified every time one of your tasks is started independently of you. This means that if one of your tasks is started automatically or by another user, you will receive a push notification.
When you then select this, you will be taken directly to the corresponding case and the corresponding task will be highlighted with a short visual animation. In order to use this function, you must first configure some settings on your device. Since these settings differ depending on whether you are using a mobile device or the desktop version, both types are discussed separately below.
Desktop version:
If you are using the desktop version, you will need to allow push notifications in your browser when using the BIC Process Execution Application. Depending on the browser you are using, you will find this setting in a different location in your browser. The documentation on how to find this setting is linked below for the three most common browsers.
Microsoft Edge (Privacy -> Change website permissions)
Mobile version:
If you have a mobile device and you are using the application through your device’s browser, you will also need to allow notifications. Please refer to the help of your respective application/browser to find out how you can activate the notifications.
In case you have BIC Process Execution installed on your mobile device, you will receive notifications about your started tasks even if your application is not open. In this case, your application , may need to be authorized first to send notifications. The documentation on how to find this setting is linked below for the two most common operating systems.
Hint
If you are using a desktop computer and the PWA has been installed, you will only receive the messages when the application is open.
How do I identify signature tasks in my task list?
If you check your task list and a task is configured as a signature task, you can see this directly in the task list. This is indicated by a tooltip that appears when you hover over the task icon.
How do I work with a signature task?
There are tasks that are marked as signature tasks. To successfully complete these tasks, you need to authenticate yourself. To authenticate, you will need to log in again. After a successful login, you will be redirected back to your task.
Until authentication is successful, the task cannot be marked as completed. If you are assigned to more than one signature task, you need to authenticate for each task individually.
Note
If you are working on a signature task while being in the pop-up window, the pop-up will automatically close after you authenticate.
How can I send the email of a send task?
In BIC Process Design, tasks typed as Send can be linked to sending an email in BIC Process Execution. This section explains how to create a template for these tasks.
When a send task is assigned to you, navigate to the process flow view of the case by a click on the task. The task form for that step contains an email preview provided by template you created. If you have specified a user group as the recipient, it will be displayed as the recipient.
If process variables have been included in the template, they will be replaced with the actual values defined in the case. The form can display an Input section. Here you can upload a file that will be automatically attached to the email.
Click Send Email to open a new email in your email client that looks like the preview. You can edit the email (if necessary) and send it from there. You can then complete your task by clicking Complete in the form.
Note
If the Send mail automatically option is activated, the task will start automatically. The email is sent and the task is set to done. If an error occurs during automatic sending you will receive an error message in the process flow view. Here you have the option to send the email manually.
Note
If an automatic send task is defined in the development or test environment of a process, only the creator of the case receives an automatic email when it is executed. However, the configured recipients are displayed in the email preview. When the case is executed in a production environment, all configured recipients receive the automatically sent email.
Hint
If you send an email manually as described above, you should check the formatting in your email client. The preview in BIC Process Execution will show the email formatted as defined in the editor, but some settings may be lost when it is converted to the text in your client. Indentations and tables will be lost and bulleted lists will be marked with the character “*” instead. Automatically sent emails do not lose their formatting. They are formatted according to the html definition in the template editor.
How can I execute a script task?
Script tasks are executed by the system. If an error occurs during execution, the task is marked with a red chip containing an exclamation mark. In such cases, the task is assigned to the responsible role and appears in the task list of the corresponding user. If the role has not been modeled or set, the task is assigned to the case owner.
You can click the error mark to open a dialog displaying the system’s error message. At the bottom of the dialog, you can close it by clicking on Cancel.
Failed script tasks can be restarted or completed manually. To restart a task, click the Retry button in the error dialog or next to the script task in the process flow view.
As a ProcessApp Creator, you also have the option of saving the data entered in order to check the result before completing the task. To do this, click on the Test your script button.
If the script has been executed successfully you will receive the result as key-value pairs in JSON format.
Note
Please note that outputs larger than 64 KB will not be displayed.
Alternatively, you can manually complete the task by clicking the equivalent button.
How do I work with a call activity task?
When a call activity task is started within a case, a new case is automatically created for the called process. The responsible of the task is the owner of the case. If a group is responsible for the task, the case is owned by the case owner of the main case instead. The case is named according to the call activity plus “- name of the main case”.
If the call activity is synchronous, the main case is blocked while you are working on the called sub case. You cannot continue working on the main case until the called sub case has been successfully completed.
If the call activity is asynchronous, the main case is not blocked. Therefore, you can work on both processes independently and in parallel. The call activity is immediately marked as complete.
The process variables of the main case are copied to the sub case and can be edited there. If the roles of the main case are present in the sub case, they are inherited from the main case. New roles are assigned to the default user (group) (if the attribute has been maintained) or can be set in the details of the sub case.
If the call activity was synchronous and the sub case is completed, the process variables are handed over to the main case. If they have been changed, the process variables of the main case are updated. Variables defined exclusively in the sub case are not be copied to the main case. Moreover, the sub case is automatically archived after its completion.
If the call activity was asynchronous, the process variables are not returned to the main case.
Note
As a ProcessApp Administrator or case owner, you can also complete the sub case manually. In this case, you will receive a warning notifying you about an ongoing call activity task.
How do I work with a parallel multi-instance activity?
When you mark an activity as a parallel multi-instance activity, you can define a process variable that serves as input. You also define a name for the variable that holds the data from each array element for that task.
Once the multi-instance activity is reached within a case, a task is created in BIC Process Execution for each element in the input array. The data of each element is accessible under the defined variable name. Additionally, there is a smart variable (_loopCounter) that stores the index of its own task. After all tasks have been completed, the next step in the process is activated. In the event that the input array is empty or contains no elements, the multi-instance activity will be immediately completed.
Additionally, there is the option to configure an output variable for a multi-instance activity, which will be available as an object in the output variables after a task is completed. If the output variable is identical to the input variable, the contents of the input variable are replaced by the output. If no output is defined for the task, the corresponding element in the output variables is null.
Warning
If no output variable is specified, the outputs of the tasks are not saved.
Hint
Please note that you are not allowed to use the same name for the output variable in different multi-instance activities that could be executed at the same time.
Hint
Please note that DMN tasks are currently not supported.
How will my REST calls be executed?
If you have defined REST calls and published the corresponding diagram in your BIC Process Design, they can be executed automatically in BIC Process Execution. This means that tasks that execute REST calls do not need to be started manually, but are started automatically as soon as the previous task is completed or if they are the first tasks in sequence.
You can identify tasks which are executed automatically by the Automated task label below the corresponding entry and the robot icon inside the task chip.
The REST call is will be executed once the task is started. If the status code of the REST call matches the status code defined for this task in your BIC Process Design, the task is marked as completed, analogous to the manual execution. The data, which is resulting from this REST call is stored in process variables in the corresponding case. They can then be used for further processing, for example, in other REST calls.
If the transmitted status code does not match the expected status code, the task is marked as incorrect. This is indicated by a red chip with an exclamation mark to the right of the entry.
Tasks that fail can be restarted at any time. This allows you to re-run your REST call at any time. To manually restart a failed task, click on the red Error chip of the relevant entry in the case overview.
You will receive a message informing you of the failed attempt. Click on Retry to start the task again. You can also select this button from the task form. The REST call is then restarted.
If the automated service task is a task that has not been configured, it can also be completed manually by the responsible user (the linked role or the case owner) after the first failed attempt to execute it automatically. To do this, use the Complete task button on the right side of the entry, as usual. For more information about completing tasks manually, see here.
How can I automatically activate a task after receiving a message from an intermediate event in a task?
There is a possibility that the subsequent task is automatically activated when an intermediate event intercepts a message in a case. In this context, the event contains an attribute called “correlation key”.
If your process contains an intercepting intermediate event, and that event has an identifier reached in a case, the sequence is automatically paused at that event.
When an event that triggers a message is executed in any process, the message is received if the message event has the same identifier and the same correlation key. The entry is then marked as complete and the process flow continues.
Additionally, you can trigger a signal event by sending an HTTP POST request to proceed with an intermediate event. See here for how to configure the REST call.
Cases
Where do I find my cases?
The My cases menu entry allows you to view all cases in which you are involved and view them collectively. This includes cases where you are the creator, the owner or the task owner.
In the main area, you will now see a list of your ongoing, not yet completed cases. For each case, the case name, creation and due dates, owner, case progress, and status are displayed. The list is sorted by creation date in descending order, with the oldest case shown at the top. You can change the sorting by column by clicking on a column name. The arrow indicates whether you have sorted in ascending or descending order.
In the right sidebar provides additional filtering options. Here, you can search for cases or filter by creator, owner, due date, or creation date.
The Progress shows the percentage of the total progress of each case. The percentage is calculated based on the currently selected path in the case and the tasks completed in that path. The progress bar shows how many tasks have been completed, started (color gradient), and not yet started (dotted line).
Clicking on an entry will take you directly to the process flow view of the running case. Furthermore, the Details for each are also available. These can be accessed by clicking on the i to the right of the entry.
The details show the creator, the owner, the due date, the creation date and the name of the case. In the Team section, you can see all the roles that are involved in the process and the assigned users for this case.
Where do I find all cases of a process?
To find all cases for a process, go to the ProcessApps section, navigate to the desired process in a ProcessApp, and click on the corresponding entry. This will take you to the case list for that process.
Hint
If the Analyst attribute is maintained in the process, you will not be able to see all cases in the process.
All running cases in which you are involved are listed here with the corresponding ProcessApp icons. This means that you can see any case. if you created it, if you have the “ProcessApp Administrator” user role, if you are assigned to a role or task of the case, or if you are part of a user group that is assigned to a role or task. For each entry in the case list, you can see the following information:
Name: Name of the case
Creation date: Start date of a case
Owner: User to whom the case is assigned. The owner can be changed when you are in the case details.
Due date: Date by which the case should be completed
Progress: The Progress defines the percentage of the total progress of the respective case. The percentage is calculated based on the currently selected path in the case and the tasks completed in that path. The progress bar shows how many tasks have been completed, started (colored gradient) and not yet started (dotted line).
Status: Defined status for the case
The list is sorted by creation date in descending order, with the oldest case at the top.
Click on an entry in the list to open the process flow view of the case. Use the Back arrow to return to the list of cases.
In addition, you can use the circled i icon to access the details view of a case. You can also use the Create a new case function to create a new case for this process.
Note
If there are no cases for a process, you will navigate to an empty list.
How can I filter and sort the case list?
Filter and Search:
On the right side of the main area of the case list, you will see the filter panel where you can search and filter for specific cases. You can do this in your own case list as well as in the case list of a process.
You can filter the case list entries by specific case creator and case owner. To do so, select the Creator and/or Owner filter facet and select the corresponding person whose case you want to view. The case list is updated automatically. This function is also available in the archived cases view.
In addition, you can filter the entries by the due date and creation date of the case. When you select the Due Date and/or Creation Date facet on the right, you will see the different date range options. Once you select a predefined date range, your case list will automatically update. You will see only those cases that are due or created within the selected date range.
When you search for a case name, the case list will be updated and you will see all the results of this search. In the case list of all cases of a process, you can search for variables of type String/Text in addition to the case name in order to display the corresponding cases. If there are no search results, you will see a corresponding message in the case list. You also have the option to use both “a AND b” and “a OR b” to display all results that contain either “a” and/or “b”.
Note
If you have applied a filter, the search will include the search term and any selected filter options. If you reset the search, you will get results that match the previously selected filter options.
Sort:
When you view the case list of a process or your own cases in MyCases, whether you have applied a filter or not, you have the option to sort the cases by a specific column. The list can be sorted by Name, Creation date, Owner, Due date or Progress. To do this, click on the column header.
If no sorting was applied before, the cases are sorted in ascending order based on the selected column. At the same time, you will be scrolled to the top of the case list.
If you have already sorted by a column and the cases are displayed in ascending order, you can change the sorting direction by clicking on the same column heading again. This will reverse the sorting and take you back to the top of the case list.
Hint
Please note that when entering the case list, cases are sorted by default according to their creation date in ascending order. This serves as the starting point if no specific column sorting has been selected.
Note
Sorting is done for one column at a time.
How is the case process flow view organized?
The process flow view of a case is the same as that of the default case. Unlike the default case, you can use the process flow view of one of your cases to design its specific sequence. Therefore, this is the central view, for example, when you want to edit tasks, change decisions, or see the current status of the case.
To access the process flow view of a case, simply select the entry of the desired case in the case list of the corresponding process. If you are the case owner, you will also find the case in your personal case list.
Once you have selected the case, the process flow view of this case will appear in the main area of the application. Similar to the default case, the process flow view here consists of tasks, decisions, and the start and end events. If multiple end events have been modeled, they will all be visible in the process flow view. The process flow view of a running case shows the completed and next up process steps (tasks of the active segment). In addition, there may be more steps coming up and the end event may not be visible yet.
Depending on the fully completed cases of the active process, a forecast is generated for subsequent runs. The forecast is based on the sequence of archived cases. The most frequently completed task among all possible subsequent tasks is identified, and the process flow of the active process is completed accordingly. If a different path is taken in the process that has not been taken by any other completed case of the same process version, or if the process is run for the first time, no forecast can be made. Additionally, forecasts are not applicable across different process versions.
Note
Please note that an updated ProcessApp can calculate forecasts using the process sequences from previous versions only if the updates do not alter the execution sequence or the basic structure of the ProcessApp. Changes can be categorized as non-structural or structural. Non-structural changes, such as renaming diagrams or activities, updating IDs and forms, or rearranging elements in the diagram, do not affect the execution sequence, allowing the history of completed instances to still be used for forecasts. Structural changes, such as adding or removing segments or nodes, alter the process sequence, making it impossible to use the existing execution history for forecasts in the updated version.
When you select one of the elements, the right sidebar gives you more information about the element and allows you to edit or change it. This sidebar is called the task form. In the mobile view, these options will appear as soon as you select one of these elements.
The case owner can select a desired start if there are multiple start events in the corresponding process modeling. The selection can be made from a single choice field in the form of the start event in BIC Process Execution. If you are the case owner, select the desired start and confirm by clicking the Complete button.
The path of a case can be changed by decisions (so-called gateways). The gateways Inclusive Or, Exclusive Or and Parallel are taken from the process modeling in BIC Process Design and displayed as entries in the process flow view. You can recognize these entries by the diamond-shaped symbol with an arrow in the middle. In this way, the gateways divide the process flow view into segments containing the decisions and resulting tasks. This means that you can always see where in the process flow view a decision needs to be made.
Note
Gateways of the Parallel type can only be recognized by the segmentation in the process flow view, as no decision can be made there.
Ideally, decisions can be made automatically at inclusive or exclusive gateways base on predefined expressions that determine the outcome. If the modeling does not support automated decisions, they have to be made manually. In this case, the case owner receives a decision task once the previous task is completed. His decision will determine the case’s path after the gateway.
BIC Process Execution allows multiple users to work on the same process flow at the same time. To ensure this parallel work, your case is automatically updated when a task is changed by another user (e.g. completed or delegated). This allows you to keep track of the current status. If the case is archived while you are viewing it, the application will show you the corresponding case in the archive.
Tip
We recommend to automate decisions using expressions. You may use process variables which are set (for example) in a user task. In the end, this configuration prevents manual decisions from being overlooked and further automates your process flow.
Depending on the decision is made at the gateways, the path of the process flow changes and can therefore lead to different results. The changed path is automatically displayed. If the path calculation is not resolved immediately, a load indicator is displayed in the gateway step.
Note
When a throwing event occurs, a message is sent with the associated event ID. At the same time, the event with the corresponding identifier is thrown and the step is marked as completed.
Note
Once a task positioned after a decision in the process flow has been started, the decision can no longer be changed.
How is the default case structured?
The default case displays the default process flow, which is the basis for every case that is created for the respective process.
To display a default case, first navigate to the ProcessApps. Open the menu of the desired ProcessApp and select the option Navigate to default case.
This view shows you the process flow from the first task of your process to its end event. Here you can navigate through the process, for example, by making decisions and being shown the corresponding tasks of the process. The chronological sequence of the process flow is displayed from the top to the bottom.
Each process flow consists of tasks, gateways, and the start and end events. You can distinguish between these elements by the chip icon on the left side of each entry. End events are represented by a chip with a flag icon in it. Gateways are represented by a diamond-shaped icon with an arrow in the middle. Tasks, on the other hand, are represented by a number that indicates when a task has to be done in the process.
By selecting individual entries, the right sidebar provides additional information and options for each element. For example, you can display the form of a task to see which role is responsible for that task. Gateways and decisions can also be adapted to show alternative paths of the process.
Since this is the default view, which is not based on a running case, no tasks are assigned to users here, nor can you start or complete tasks here. To do this, you must first create a case for the process.
How can I create a new case for a process?
Cases represent the concrete, executable form of your processes. In BIC Process Execution and BIC Process Design, you initiate the case creation in different places.
In the public workspace and preview, the ability to initiate a new case is restricted to users with the ProcessApp Creator user role. In the published version, however, this option is available only to users with the ProcessApp User user role.
To start a new case directly from the ProcessApp, go to the ProcessApps area and navigate to the desired ProcessApp (possibly in a collection). Click on the three dots on the desired ProcessApp to open its menu.
Now select Create a new case to start the case creation process.
Alternatively, you can initiate the case creation process by using the Create a new case function. You can find this function within the case list of a process.
You can also start the creation process for a new case when you are viewing the corresponding diagram in BIC Process Design at the publication stage. The Create case button is displayed in the upper right corner of the diagram view, but it is only visible to users who are authorized to create a case for that process.
Hint
Diagrams with a start timer event cannot be started manually in the publication. If multiple start events are modeled and at least one start event does not have a configured time, the case for that start event can be started manually.
Once you have started the creation process in one of the ways described above, a dialog will appear asking you to assign a name to your new case. In the second field you can set a due date for this case. Furthermore, you can select representatives from your users for each role that occurs in the process. This user will then appear as responsible person for each task assigned to the corresponding role. Entire user groups can also be set as responsible persons. In such a case, all users of this user group will bd able to see the tasks of the role assigned to them in their personal task list.
Users and user groups can be set as a default person in charge within BIC Process Design. They are automatically set, when a new case of the corresponding process is created. If no user is assigned to a role, the case owner is automatically responsible for the tasks of this role once they are started. You as the case owner are not assigned to the role itself, but any started task of the role will be delegated to you.
A new case is added when you confirm your entries by clicking on Create. You will be taken directly to the process flow view of the case. If the process always starts at a single possible starting point, the first task will be started automatically. If there are multiple starting points, you (as the case owner) have to select a starting point in the form of the start event and confirm your selection with the Complete button. Then the first tasks after the starting point will start automatically.
Hint
If the Hide Start Form option was selected during modeling, no dialog is displayed. Instead, you are redirected directly to the process flow view of the case. The name of the case is named after the process name and the timestamp.
Note
If the corresponding diagram has been depublished within BIC Process Design, you will see a corresponding message when you tap or hover over the plus icon. In this case, you can still edit and complete all existing cases, but you cannot create new cases. If the plus icon is not visible, a case creation restriction has been set.
Tip
In case you want to create cases from other applications, you can either use run links or the BIC Process Execution REST API.
How can I create a case with a run link from outside the application?
BIC Process Execution provides the opportunity to start the case creation from outside the application. The run link corresponding to your process navigates to the dialog window of the case creation. If you use a run link when you are not logged in to BIC Process Execution, you will be asked to enter your login data. You will then be navigated to the case creation dialog.
You can simply copy the link of your process from the address bar of your browser when you open all cases of the process. Note that this is possible even if there are no existing cases yet.
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/instances
In order to generate the run link for the case creation of your process, simply add “/run” after the process ID. You can use this link to navigate directly to the window for case creation.
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/run
Furthermore, you can create a case directly by adding the case name to the link with ?name=NAME-OF-CASE
:
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/run?name=NAME-OF-CASE
When you use this link, the process flow view of the new case NAME-OF-CASE is displayed directly and you do not have to confirm the dialog window.
In addition, you can set process variables by adding &caseVariable=VALUE
to the link, where caseVariable is the name of a process variable and VALUE is a valid input for this variable. It is possible to specify any number of process variables for your case:
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/run?name=NAME-OF-CASE&caseVariable1=VALUE1&caseVariable2=VALUE2
Subsequently, you can add the team members in the details.
Tip
The links mentioned above are executed through the frontend. Alternatively, you can create a case directly through the backend. To do so use the following format: https://XXX/process-execution/api/run/processes/YOUR-PROCESS-ID/instances?name=NAME-OF-CASE
. Please be aware that this kind of run link can only be used by external applications that also include an authentication header.
Hint
Please note that you must be in the Public Workspace or Preview in order to create a case with a run link from outside the application. This option is only available to users with the ProcessApp Creator role. In Publication, however, this function is only available to users with the ProcessApp User role.
How can I create a new case using the REST API?
The BIC Process Execution REST API allows you to create new cases from external applications. To use this function, you will need the REST endpoint of the desired process for which you want to create a new case and a valid API key which you pass along in the Request Header.
You can use the following link to the Swagger UI to view the available public endpoints and create a new case. At the top right of the screen, under Select a definition, select BIC Process Execution API. In the list that appears then, you will find the Create instance endpoint, where you can edit the variables and create a new case.
Hint
The old {{host}}/process-execution/external/tenants/{{tenantId}}/stages/{{stageId}}/processes/{{processAppId}}/instances?apiKey={{apiKey}
REST endpoint is currently still available. However, please use the new endpoint in the future.
Hint
If you have previously worked with the old REST endpoint and are now working with the Swagger UI, you will need to generate a new API key. Please note that the new API key will need to be adjusted accordingly in the REST call.
Hint
Please be aware that the ProcessApp ID depends on your stage. Make sure that you use the ProcessApp ID of the stage you want to address.
Note
Cases generated using the REST API do not have a unique owner. The owner of these cases is set with the value REST API.
How do I access the case details view?
The case details view allows you to view detailed information about a specific case. There are two ways to accessthe detailed view of a case. The first way is through the case list. To do this, first navigate to the case list of the corresponding process.
Then use the Details function to get to the details view of the desired case. You will find the function in thr form of a circled i icon to the right of the list entry.
The second option is via the case itself. You can open the context menu next to the title of your case. Click on View case details and the details of your case will appear.
The details view displays the following information: the creator, the owner, the creation date, the optional due date, and the case name. In addition, under the Team section, you will see all roles involved in the corresponding process and all users assigned to those roles.
You can also reassign the team members here.
Note
Please note that only ProcessApp Administrators and owners can modify the details of a case.
How can I set or change the due date of a case?
The due date defines when a case should be completed. If the due date has exceeded but the case has not been completed yet, the progress of the case is highlighted in red color in the personal as well as in the case list of the corresponding process. Cases that contain one or more overdue tasks are highlighted in the case list with a red marker on the ProcessApp icon. Cases with overdue tasks that have since been completed appear with a grey marker. You receive more information if you move your mouse over the marker. If all tasks are within their due dates or have been completed on time, the cases appear in the list without a marker.
When you create a new case, you can set a due date directly in the corresponding field. This statement is optional. Enter a date in the format MM/DD/YY or click the calendar button and select a date from the calendar that appears.
As a ProcessApp Administrator or case creator, you can set and change the due date of your case later. Navigate to the case details. The Due date is located below the owner. If no date has been set, the field is empty. Click the Due date placeholder to enter a date, or click the calendar to select a date.
In case a due date was previously set, you can change it here. Click the date to enter a new date, or use the calendar as described above.
How can I define status changes for a process?
As a ProcessApp Creator, you can define the status of a process so that the status of a case can be easily read. When you are working on a process diagram and open the Process Execution Editor for an object such as a task, event or gateway, you have the option of entering a status value as text (string) in addition to the due date.
For example, if a node in an instance is completed or started and that node has a status change value, the status of the case is set to that value.
The status of a ProcessApp can be viewed at any time in the case list of the ProcessApp in the Status column. This status is also available as a facet. If a case has a status and an active task is completed while the next task has no status, the case retains the last active status. This status is also available as a facet.
Hint
Please note that the due date only applies to tasks.
Hint
The custom status status field may contain a maximum of 255 characters.
How can I reassign team members of a case?
As the case owner, you can reassign team members to your case at any time. To do so, first navigate to the case details view.
Here you can see all roles of the corresponding case. Below the role description is the name of the user or user group currently assigned to the role. If no one has been assigned to the role yet, the Add team member button is displayed.
To reassign a role to your team, simply click on the name of the currently assigned user or user group, or if no one has been assigned, click Add team member. A dialog will appear allowing you to reassign the corresponding role.
Simply enter the name of the user or user group in the input field and then select the corresponding entry from the drop-down menu.
Select the Add button to apply your changes and reassign the role. The name of the assigned user or user group will now appear below the relevant tasks in the process flow of the case and in the case details view.
Note
Tasks that were started before the reassignment are not be reassigned. These tasks will still be visible in the personal task list of the corresponding user. If you want them to be processed by the reassigned user or user groups you have to delegate them.
… note:: If no user or user group was defined for a role when the case was created, the case creator is responsible for executing the task as soon as the case is started.
How can I export an event log from a ProcessApp?
In the case list of a ProcessApp, you can download an event log of the cases. Navigate to the case list of a ProcessApp and open the options in the ride sidebar. By filtering the list before triggering the export, you can generate the event log for a restricted case list.
Select the Export cases option by clicking on the Export cases to Excel file icon. The event log will then be generated for you.
Once the export is available, you will see a Download Excel file button next to the Export completed cases option. Note that this event log is only available to you. Other users will need to create an event log themselves in order to download it. Select the arrow button to download the created event log.
The file contains the following data for each case:
Case ID
Case name
Activity ID
Activity name (in your content language)
Task start date (in ISO format)
Task end date (in ISO format)
Task due date (in ISO format)
Activity performer role (in your content language)
Hint
If your UI language is not maintained, the default template is English.
Note
The export function is not available in the mobile version of BIC Process Execution.
Tip
If your user role allows, you will find additional tabs in the process list of your ProcessApp. You can view archived cases and a monitoring cockpit to analyze the status of active cases.
When is a case completed?
A case is completed when all tasks within the process flow have been completed. From that moment on, no elements of the case can be changed. For each completed case, the end event at which the case was completed is recorded.
Hint
Please note that a process will be successfully completed immediately upon reaching an end event with the event type Terminate, even if other sequence flows are still active.
Once the case is completed, it is archived and the sequence of events is stored in the system. These are used for predicting subsequent flows of new cases for the same process.
Note
The completion time or end time of a task is displayed when a step is completed in a given case.
Note
In a given case, the start time is displayed if the step is considered as an activity in progress. The start time is also displayed if the step has an error.
How can I archive cases?
By default, cases are archived as soon as they are completed.
How can I archive unfinished cases?
You can also archive cases even if they are not yet completed. To do so open, the case list of the corresponding process and open the case you want to archive.
There, click on the context menu with the three dots to the right of the entry and select the option Move to archive.
A dialog will appear informing you that some tasks have not yet been completed. If you want to archive the case anyway, select the Do it anyway option. All uncompleted tasks will be canceled and the case will be archived.
After the case is archived, a message informs you that the case has been successfully archived. The case disappears from the case lists. Instead, it appears in the archive.
Warning
If you cancel a synchronized call activity early and archive the case, its sub cases are also archived.
Note
If the case was the last case unarchived of a depublished diagram in your BIC Process Design, the corresponding process will also disappear from the process overview.
Where do I find archived cases?
The Archive allows you to view archived cases. There is an archive for your personal cases and for each process.
When viewing your case list, you can navigate to the list of archived cases by clicking the Archive tab in the upper right corner.
For each archived case, you can view the details by clicking on the i button, and the process flow by a click on the case name - just like with regular cases. Click on the Cases tab to navigate back to your current cases.
If you would like to view the archived cases of a process, navigate to the case list of your process.
Then click on the Archive tab to view all cases created and archived for that process. For each case listed, you can view the process flow and details as described above. Click the Cases tab to navigate back to the current cases in the process.
What are process variables used for in my cases?
In BIC Process Execution, you have the option to use process variables in your cases in order to dynamically process data during the process flow. Some process variables are created by default, while others are generated by executing REST calls, script tasks, or decision tables of rule-based tasks.
These process variables can be used during the process flow to provide users with data that they can use to successfully complete their tasks. Process variables can be used in task forms. In addition, the data provided can also be used in other automated tasks, such as new REST calls or script tasks.
Note
Note that the values of process variables change locally in the task until the task is completed.
Which process variables are created by default?
In BIC Process Execution, a set of process variables is provided by default for each case. The following process variables and associated values are therefore available for each case:
Name of the variable |
Default value |
---|---|
createdDate |
Date when the case was created |
creatorEmail |
Email of the user who created the case |
creatorName |
Name of the user who created the case |
caseName |
Case name |
Additionally, a process variable is created for each role used that has an Identifier. The name of the variable is the Identifier used and the value is the corresponding email of the assigned role.
Within the process flow view of a case, you can view the values of all process variables. ProcessApp Administrators can also change the case name there (value of caseName).
How can the default process variables be grouped as smart variables in a case object?
When a case of a new process is created, a case object is automatically created that contains all the required process variables.
The following variables are available in the _case object:
“name” (changeable)
“dueDate” (changeable)
“case” (not changeable)
“creationDate” (not changeable)
“owner” object (not changeable)
“creator” object (not changeable)
Note
In this context it should be noted that the .name and .email variables belong to the owner and creator objects.
The variables are accessible in the following way:
_case.name
_case.url
_case.dueDate
_case.creationDate
_case.owner.type / _case.creator.type
_case.owner.id / _case.creator.id
_case.creator.ATTRIBUTE
You can set a new value for a process variable. If the variable is modifiable, the changes will be reflected throughout the application. If the process variable is not modifiable, the changes are not saved and the process variable remains unchanged.
When viewing the process variables of a case, both the attributes of the case variable and the “old” default variables are visible. If you open an older case where the case object did not exist, only the “old” default variables will be displayed when reviewing the process variables.
Hint
Please note that the new object only applies to newly created cases. Existing cases do not have this updated element. While the previous method of accessing these variables is still supported, it is deprecated.
How can I see process variables for archived cases?
When a case is archived, there are different authorizations to access the process variable dialog:
As a ProcessApp Administrator, you have the option to open the process variable dialog and view the process variables in all stages.
As a ProcessApp Creator, on the other hand, you can open the process variable dialog to read the process variables only in the public workspace and the preview stage.
How can I find and edit process variables within the process flow view?
Within the process flow of a case, users with the ProcessApp Administrator user role and case owners have the possibility to view and change the value of your process variables. This enables you to adapt the data of your process variables to your needs in case something changes during the case completion.
To do this, first navigate to the process flow view of the corresponding case. There, open the context menu in the upper right corner of the main area.
You can then click on the Edit process variables option.
A dialog will appear listing all available process variables, their data type and their values for this case. In this dialog you can edit the values of the process variables. When you have edited the value of a process variable, you can confirm the changes by clicking the Save button.
If you just want to exit the dialog or if you do not to save your changes, click the Cancel button.
Note
By default, each case has a set of default process variables.
How do the values of process variables change when working on a task?
When a task is started, the current values of the process variables are loaded into a local scope. If you work with the task and change the variables, for example, by editing or adding values in the form, the variables are updated locally. The list of process variables still shows the values set before the task was started. When the task is completed, the local variables are transferred to the process variables of the case. They are then available for use in subsequent tasks.
How can I link a role to a process variable?
When modeling a process in BIC Process Design, you can maintain the identifier attribute of a role and use it as a process variable. This can allow process participants to select the responsible of subsequent tasks in a user form, or the responsible can be determined by a previous REST call. In addition, you can use this process variable as a parameter to create a new case via a REST call against BIC Process Execution or via a run link.
If a value (i.e. a name or email address) is set for the identifier in a case, the identifier is transferred to the process variable. When a task of the identified role is started, the user (or user group) set in the variable is entered as the person responsible for the task, provided a BIC Process Execution user or user group can be found for the value. If no user or user group was defined for a role when the case was created, the case creator is responsible for executing the task as soon as the case is started. Please note, however, that the user (or user group) is only responsible for started tasks and not for all tasks in the role. It is therefore possible to change the responsibility during the course of the case by editing the :ref:Process variable of the identifier <pe-edit-process-variables>. If another task of the relevant role is then started, the latest value determines the responsibility.
For example, the role “Executive Manager” is part of the “Selection process” and the Identifier is set as executive-manager
. In this process, the HR employee should enter the name of the responsible executive manager in a user task to assign him to the task of the role. Therefore, a user form is modeled with a text field where the ID of the field is equal to the Identifier.
In a concrete case, this results in the user task “Examine application formally”. The role “Executive Manager” (responsible for the last task) is not yet assigned to a user.
After the user task is completed, the identifier can be viewed and edited in the process variables.
When the task of the “Executive Manager” role is started, the corresponding user is assigned as responsible.
ProcessApps
In the ProcessApp overview, you can find all your organization’s processes that are relevant (to you) as ProcessApps. They can be grouped by departments, teams, or other structure using ProcessApp Collections. ProcessApp Administrators have a list of all available ProcessApp Collections in the administration and can edit the Collections as well as create new ones.
Where are all available ProcessApps displayed?
Go to the ProcessApps from the menu.
Depending on the configuration, this area may vary. However, you will find all executable, published processes (BPMN and EPC) of your tenant, displayed as ProcessApps.
If ProcessApps Collections defined are defined in your tenant, you will see the ProcessApps grouped into these Collections. Collections are arranged alphabetically from left to right and top to bottom. Depending on your device and zoom factor, they are displayed in a single-column or multi-column list. The first Collection in the upper left corner is always the My favorites tile.
Note
Please note that a ProcessApp Collection only appears in this area if it has at least one ProcessApp assigned to it. Therefore, not all Collections created in the administration may be included here.
If you have ProcessApps that are not grouped into a ProcessApp Collection, you will see a Collection called More ProcessApps as the last Collection on this screen.
As a preview, the assigned ProcessApps with the highest number of running cases are displayed for each Collection. This allows you to access frequently used ProcessApps more quickly. If you select a ProcessApp in the preview, you will be navigated to the list of all running cases for that process.
If you select the header of a ProcessApp Collection or the Go to button at a ProcessApp Collection, you will see a list of all ProcessApps of that Collection.
When you click on the header of a ProcessApp Collection, its ProcessApps are represented by an icon and the name of the process in the selected content language. The number of the running cases in which you are involved is also noted. The ProcessApps are displayed in a multi-column list that varies depending on your device and zoom factor.
Selecting the ProcessApp itself will take you to the list of current cases for the process. When you hover over a ProcessApp, a menu (three dots) appears at the entry. You can open the menu by selecting the three dots once.
The menu (usually) contains three options for the respective process. The first option allows you to (un)mark the process as a favorite. The second option allows you to navigate to the corresponding diagram in BIC Process Design. Finally, if no case creation restriction is defined for the corresponding ProcessApp, you will find the option to create a new case for the process.
If no ProcessApp Collections have been configured, the ProcessApps area directly displays a multi-column list of all ProcessApps. For each ProcessApp, you have the same options as described above.
Note
Users with the ProcessApp Administrator user role have access to all running cases, even if they are not involved in those cases.
Users with the ProcessApp Creator role or higher can switch environments to view the processes of executable but still unpublished diagrams.
Tip
You can configure each process icon individually. You can also search for specific processes or add them as favorites to your favorites list for quick access.
How can I search for a specific ProcessApp?
Within the ProcessApps area, you can search for specific processes. To do so, use the search field in BIC Process Execution while you are in the ProcessApps area. Enter the term you want to search for. The search is started as soon as you click on the magnifying glass icon or press Enter. The result will be all ProcessApps that contain the term in the selected content language. The search results are not grouped into ProcessApp Collections.
If the name of a process has not been maintained, the corresponding ProcessApps are not displayed.
Note
The search is case-insensitive. The search does not support expressions such as wildcards.
How do I add a ProcessApps to my favorites and view my favorites?
In BIC Process Execution, you can mark individual ProcessApps as your favorites. They are marked with a star icon.
In the ProcessApp overview, these favorites will appear in the My favorites Collection.
To add a ProcessApp to your favorites, go to the ProcessApps and navigate to the desired ProcessApp (possibly in a Collection first). Then use the three dots to open the menu of the ProcessApp.
When you select the Add to favorites function, the ProcessApp is displayed with a yellow star icon.
If you want to remove a ProcessApp from your favorites, you have to use the Remove from favorites function, which you will find in the menu of the ProcessApp.
The star icon of the corresponding ProcessApp will disappear then.
How can I add custom columns with my own variables to a ProcessApp?
As a ProcessApp Creator, you have the ability to define custom columns with your own variables for the processes within a ProcessApp. To do this, go to the Modeling section and mark the process as an Executable process. Then, open the Process Execution Editor through the options on the right side.
Here, you can define the layout for your custom columns. The layout must be entered as an array in JSON format and contain the following objects:
id: Here you need to enter the name of the variable to be used.
headerName: Here you need to enter the column name that should be displayed in the ProcessApp.
width: [Optional] Here you can enter the width of the column.
type: [Optional] Here you can enter the output type of the variable. Allowed types are text, string, date, datetime, time, and boolean. If no type is specified, the output will be string, number or boolean.
hide: [Optional] Here you have the option to hide a column.
After checking in the diagram and creating an instance for this process, your custom columns and associated variables will now be displayed in the ProcessApp. The columns are displayed in the order in which you have defined them.
You can also apply the headerName, width and hide objects to the default columns of a ProcessApp. This allows you to customize the name and width of the default column, or to hide the default column.
If a ProcessApp has configured columns, you have the option of filtering all instances of a process according to their respective process data. If user-defined columns are available for the process, these are displayed as new facets at the top of the filter area.
Hint
Please note that the facets displayed represent unique values for which no type or string type is defined.
How can I apply (conditional) formatting to a ProcessApp?
As a ProcessApp Creator, you have the ability to apply (conditional) formatting to a ProcessApp. To do this, go to the Modeling section and mark the process as an Executable process. Then, open the Process Execution Editor in the options.
In the Conditional Styles section, you can define the configuration in JSON format and apply CSS styles to individual rows or cells based on expressions. The following objects must be included:
expression: Here you must enter the condition to be evaluated.
style: Here you must enter the CSS style to be applied if the condition evaluates to TRUE.
target: Here you must specify whether the CSS style should be applied to the entire row or only to a specific cell.
columnId: [Optional] Here you can specify the column(s) to which to apply the style when it is applied to a cell. This can be a single column or an array of columns.
Example:
After checking in the diagram and creating an instance for this process, your (conditional) formatting will be displayed in the ProcessApp if the condition is evaluated as true.
Dashboard
As a ProcessApp Administrator, you can view a dashboard for each ProcessApp that provides you with information about the status of all running cases. You can switch to the Monitoring tab from the case list of a ProcessApp.
How can I monitor the status of all open cases for a ProcessApp?
When you open the dashboard for a ProcessApp, you will see three tiles at the top showing the current status of all open cases in terms of number and percentage.
The tiles are divided into different categories to give you a better overview of open cases and to reduce the risk of falling behind. The three categories are:
Off track: Open cases that are already overdue.
At risk: Open cases that have at least one overdue active task.
On track: Open cases that are not overdue and have no overdue active task.
How can I monitor the status of the running cases for a ProcessApp?
When you open the dashboard for a ProcessApp, you see with a donut chart that summarizes the status of the running tasks in the following categories:
(current) processes that are running on time, meaning the due date is in the future.
Transactions without a due date
Overdue cases (according to the server’s time zone, UTC)
The number in the center of the diagram indicates the number of ongoing tasks for the selected ProcessApp.
How can I monitor the status of open tasks for a ProcessApp?
When you open the Monitoring for a ProcessApp, you are presented with another donut diagram showing the status of the active tasks accessible to you.
Hint
Please note that only users with the ProcessApp Administrator user role have access to the dashboard.
The donut chart is designed to visually display the task data. It is sorted clockwise and displays the following information in a specific order:
Number of open tasks: This value is displayed in the center of the chart and indicates the total number of tasks that are currently open and assigned to you.
Number of tasks completed on time: This data point is represented by a specific segment area on the chart. It represents the number of tasks that have been successfully completed within your designated time frame.
Number of overdue tasks: Another segment on the chart represents the number of tasks that have passed their designated due date and are now overdue.
Number of tasks with no due date: The chart also includes a segment that represents tasks that do not have a due date.
By viewing this donut chart, you can get quickly assess the distribution of your active tasks based on their status.
How can I monitor the status of started tasks for a ProcessApp?
When you open the Monitoring for a ProcessApp, you are presented with a third donut chart that shows the status of the tasks that have been started.
Hint
Please note that only users with the ProcessApp Administrator user role have access to the dashboard.
The donut chart consists of two circles that are sorted clockwise.
The inner circle represents the assignees for the tasks. The names of the assignees are displayed with the number of tasks in braces.
The outer circle represents the task status of the started tasks for the assignees. The ring is divided into different segments that display the following information:
Number of tasks completed on time: This segment of the chart represents the number of tasks assigned to the particular assignee that have been successfully completed within their designated time frame.
Number of overdue tasks: Another segment of the chart represents the number of tasks that have passed their designated due date and are therefore overdue.
Number of tasks with no due date: The last segment in the chart shows the number of tasks that do not have a due date.
The donut chart gives you an overview of the current statistics of the started tasks, grouped by their respective assignees. The number of assignees displayed is reduced to the top 10 results.
How can I monitor the end status of completed cases for a ProcessApp?
When you open the dashboard for a ProcessApp, you will see a graph showing the end status of the closed cases, if they have been executed in the last 12 months. In order for the graph to be displayed, you must first set the status in your process.
Hint
Please note that only users with the ProcessApp Administrator user role have access to the dashboard.
Once you have defined the status, a graph appears to visually represent the closed cases. The Y-axis shows the percentage of end states achieved. The X-axis shows the last 12 months.
You can move your mouse over the graph to get more detailed information about the closed cases and your end status.
Administration
To access the administration area, you need to select the Administration button in the left sidebar.
To have full access to the administration, you need to be assigned to the ProcessApp Administrator role. You can edit your user details here.
Here you see an overview of all the options you can manage.
Warning
The functions update case details, archive a case, open the case variables dialog and change values of case variables are available only to ProcessApp Administrators.
BIC Process Execution API
How can I manage my API key?
To ensure that only authenticated users can access your BIC Process Execution API, each ProcessApp Administrator can create an API key. This can then be used in the respecting REST calls for authentication.
To create an API key, you must first navigate to the administration area. To do this, select the entry Administration from the menu. Select the API Key option.
Here you can manage your personal API key. If no API key has been created yet, you can see this information in the main area. There you will also find the Create API Key button. If you click on, it a new key will be created.
The generated key is now available and valid. The creation date of the key is now displayed in the main area. In addition, the Copy API Key button is displayed, which you can use to copy the key to the clipboard of your device.
If the API Key is no longer used or is out of date, you can remove it. To do this, open the context menu with the three dots in the upper right corner of the main area.
Then select the entry Delete API Key.
A dialog will appear. The API key is deleted and can no longer be used once you click Delete.
Within the administration area you can then create a new API key.
ProcessApp Collections
You can use ProcessApp Collections to group different ProcessApps together. For example, you might group the ProcessApps for a specific department into a ProcessApp Collection. A ProcessApp can be included in as many ProcessApp Collections as you like. In the administration, you can view a list of all available ProcessApp Collections and create new ones.
Tip
In the upcoming versions of BIC Process Execution, the functions of ProcessApp Collections will be extended. You will be able to better structure your ProcessApps so that your users can more quickly identify and execute the cases that are relevant to them.
Where can I find an overview of all ProcessApp Collections?
If you want to get an overview of all ProcessApp Collections, you must first navigate to the Administration. Select the ProcessApp Collections option.
Here you can see an overview of all ProcessApp Collections in alphabetical order.
How can I create a new ProcessApp Collection?
To create a new ProcessApp Collection, navigate to the overview of all ProcessApp Collections. In the bottom right corner, you find the Create new ProcessApp Collection button.
When you click it, a dialog will appear where you can enter the details of the new ProcessApp Collection.
You must assign a unique ID to your ProcessApp Collection. This is used to add a process to your ProcessApp Collection.
The title will be seen by users when they use this ProcessApp Collection. You also have the option to use a free icon from Font Awesome (v5.15.4) and a color of your choice to make your ProcessApp Collection more prominent.
Then choose Create to create your Collection.
Note
You can choose from all Font Awesome v5.15.4 icons except the trademarked ones.
How can I edit a ProcessApp Collection?
To edit a ProcessApp Collection, navigate to the overview of all ProcessApp Collections. When you hover over an entry, a context menu appears on the right. Open the menu of the desired Collection and select Edit collection.
Then, a dialog window opens, allowing you to edit the title, icon, and color of your Collection. Note that the ID is read-only. To confirm your changes, press the Save button. Use the Cancel button if you want to discard your changes.
Note
You can choose from all Font Awesome v5.15.4 icons except the trademarked ones.
How can I delete a ProcessApp Collection?
To delete a ProcessApp Collection, navigate to the overview of all ProcessApp Collections. Hover over the entry of the desired Collection. You can then open the context menu that appears to the right of the entry.
Here you will find the option Delete collection. When you select this option, a confirmation window appears. If you select Delete, your ProcessApp Collection will be deleted. The ProcessApps that it contains are not deleted.
ProcessApps
Where can I find a list of all ProcessApps?
The administration provides an overview of all ProcessApps. To access it, first navigate to the Administration and select the ProcessApp option. You will then see an overview of all available ProcessApps. Furthermore, you can see how many processes of eachProcessApp are currently active or archived.
Note
Please note that the administration is accessible only to users with the ProcessApp Administrator role.
How can I delete a ProcessApp?
If you have tested a ProcessApp in the studio and in the test environment in different cases, you may no longer need this data. In the administration you can delete the ProcessApp including all cases. All started and future tasks of the cases are also removed. The data is deleted only in your current stage (studio or test environment). This is irreversible.
Navigate to the administration area and select the ProcessApps option. Scroll to the desired ProcessApp in the list of all ProcessApps in the environment. When you hover of the entry, you can select the three dots to open the menu.
Then select the Delete ProcessApp option.
Confirm the deletion with the Delete button in the dialog that appears. Alternatively, you can Cancel the deletion.
Note
Please note that the administration is accessible only to users with the ProcessApp Administrator role.
Global Variables
Where do I find an overview of all global variables?
Global variables are process variables that can be used in all ProcessApps. You can define them in the administration area of BIC Process Execution. It is possible to define the value of the variable separately for each stage (Public workspace, Preview and Publication).
To open the overview of all existing global variables, open the administration area and select the option Global Variables.
A list of all globally created variables will open. You can see the name and the values of the variables for the corresponding stages. The variables are sorted alphabetically by name.
How can I add a new global variable?
If you want to add a new global variable, you need to do the following. First, open the overview of all global variables. In the bottom right corner you will see a Plus button Add new global variable.
When you select this button, a new dialog window appears. Here you can enter the Variable name and the values for the different stages.
Afterwards, you can press Add to save your new global variable. Alternatively, you can Cancel its creation.
If the name of a global variable contains special characters, punctuation marks, or spaces (e.g., +, /, =, >, ?, ., ;), it cannot be saved. In addition, the name of a global variable cannot contain accents and specific letters (e.g., á, à, ß, ç, ñ, ö, ü). In these cases, you will receive an error message in the bottom right corner of the page.
Hint
For existing global variables with a dot in the name, the dot is replaced by an underscore. If this creates a duplicate, the global variable is removed.
Note
If you do not specify a value for one (or more) stage(s), the value is stored as an empty string.
How can I edit a global variable?
When you are in the overview of all global variables, you have the option to edit global variables. To do so, select the context menu (three dots) of the desired global variable and click on Edit variable.
A dialog box will appear where you can edit the existing values of the different stages. Please note that the name of the global variable cannot be changed.
Confirm with Save if you want to save the changes, or select Cancel to discard the changes.
How can I delete a global variable?
When you are on the overview of all global variables, you have the option to delete global variables. To do so, select the context menu (three dots) of the desired global variable and click on Delete variable.
A pop-up window will appear asking you to confirm the deletion. Once you click Delete, the deleted global variable will appear in your list with a strikethrough and will be permanently removed when you reload. If a global variable has been deleted by another user, it will also appear with a strikethrough in your list.
How are global variables used in the process?
If you use a placeholder in your process that is not defined within the process, the system checks to see if a global variable with the provided name exists. The system then requests the value for the stage at which the case is being executed.
If no value has been set for the stage in which the case is being executed, the placeholder is replaced with an empty string.
If a global variable is modified within a task, the value is modified within the context of that task. If a global variable is not modified within a task, its value is not transferred to the context of the case.
If the value of a global variable is changed within the context of a task and the task is not yet complete, the change is only valid within that task.
Profile
The Profile area allows you to make adjustments to your BIC Process Execution interface. For example, you can change your content language or settings regarding your deputy.
Deputy
If you are going to be unavailable for an extended period of time, you can change your availability status. You can set a general deputy, who will be responsible for your tasks while you are out of the office. This ensures that important tasks are not forgotten and the normal workflow continues as usual.
If you set your availability status to out of office and have a deputy set, your new tasks will automatically be assigned to your deputy.
Note
If your deputy has also set a deputy and is also out of office, your tasks will not be assigned to their deputy. This way you can ensure that your tasks are only be assigned to people you have personally selected.
Note
You will not receive any email notifications or push notifications if your task is automatically delegated to your deputy. If you are automatically assigned to a task, you will receive all notifications related to that task.
How can I change my availability status?
Your availability status indicates whether you are currently available to work on your tasks or whether you are unavailable (for example, vacation or sick). If you want to change your availability status, you must first navigate to your profile. Here you can see your current status. Your selected option is highlighted.
You have the possibility to switch between Available and Out of office.
Note
Your availability status does not reset, so it will remain as you set it until you change it again.
How can I set my general deputy?
If you want to set your general deputy, you must first open your profile. On the right side you can see the Deputy overview. Here you can set up a General Deputy. To do this, select the Define General Deputy option.
An input field will appear where you can enter your general deputy.
Use the Save button to save your general deputy. After the confirmation your deputy will appear in the list on the right.
How can I remove my current general deputy?
To remove your general deputy, you must first open your profile. On the right side you can see the Deputy overview and your General Deputy.
To the right of your Deputy’s name is a trash can icon. Select this icon.
A dialog will appear asking you to confirm the removal of your general deputy. After confirming your general deputy will be removed.
How do I change language settings?
To change the content language of your BIC Process Execution application, navigate to the Profile from the menu.
Here you can select the desired content language from the drop-down menu. If you have not selected anything else, the default content language will be the language that was specified as the preferred language in the User language under the User Details in your administration in BIC Process Design.
Once you have selected a suitable content language, your settings will be adopted in BIC Process Execution. This setting is persist even if you close the application or clear the cache from your browser.
Note
Changes to the content language applied to the BIC Process Execution application do not effect on the content language settings of your BIC Process Design. This allows you to set different content languages in the two applications.
Note
The content languages available to the users are derived from the languages specified in the administration area of your BIC Process Design.
How can I change the language of the user interface (UI)?
You have the possibility to change the language of your user interface. As in your BIC Process Design, the UI language depends on the browser settings that have been selected for that browser. For more information about this topic, click here.
Note
If the UI language settings cannot be applied, the user interface will be displayed in English by default.