BIC Process Execution
Welcome to the documentation of BIC Process Execution! BIC Process Execution is an application which is used to execute processes that have been defined and published within BIC Process Design. This enables you to actively implement modeled processes and make them available for your users to execute.
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. In this documentation, mainly the desktop view is described to avoid redundancies. In some sections the mobile view will also be discussed, in case differences between the mobile and the desktop view are relevant for the usage.
Quickstart
BIC Process Execution content structure
Your BIC Process Execution application contains processes that have been modeled in your BIC Process Design. For each of these processes cases can be created. Cases are concrete forms of a process flow. These include executable tasks, which represent the process steps of the corresponding process. The tasks can be executed automatically or manually by assigned, responsible user or user groups.
The processes for the productive work with BIC Process Execution are available for all users (as far as not restricted). The reason is that the processes are based on the published version of the corresponding diagrams. In accordance with the different stages in BIC Process Design, BIC Process Execution offers multiple environments to authorized users in order to track 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 in BIC Process Design. If this requirement is met, you can log in to BIC Process Execution at any time.
The login in BIC Process Execution is executed in the same way as in BIC Process Design. After BIC Process Execution has been called up and the login is completed, you will automatically be directed to your tasks.
If you do not have active tasks, you will be redirected to the process overview.
Hint
In order to make the simultaneous use of BIC Process Design and BIC Process Execution as pleasant as possible, the login is done via Single Sign-On. This means that a single login to one of the two applications is sufficient to automatically be logged in to the other application. This means that you do not need to log in again when you call up the other application.
Warning
Please note that you will receive a notification when attempting to access the application with an unsupported browser. The message informs you that your browser is not compatible. It’s important to note that currently, only Internet Explorer is not supported.
How do I log out?
You can find the Logout function within the menu
After using this function you will be signed off from the BIC Process Execution application.
Note
With the single sign-on function, you are automatically logged out of BIC Process Design after signing off in BIC Process execution.
How is the interface of BIC Process Execution structured?
The interface of BIC Process Execution can be divided in three parts:
Header: The header displays the area which is currently displayed. In addition you will find some basic functionality like the burger menu icon that is used to hide or display 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 area is the central area in which 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 via the sidebars of your desktop. By default, the functions are 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 using the menu icon at the top left.
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 enables you to access the application even faster and allows you to receive push notifications on your mobile device even if the application has been closed. The PWA installation process can differ 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 you can find the instructions for an Android device with the browser Google Chrome 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 directly redirected to the process execution 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 with which your process is displayed in the ProcessApp area in BIC Process Execution can be adapted in the attributes of the corresponding diagram in BIC Process Design. To configure an icon, navigate in BIC Process Design to the details of the relevant diagram. Here you will find the attributes ProcessApp color and ProcessApp icon under the attribute group Automation.
You can use the ProcessApp color attribute to determine 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. As the value of the attribute enter the name of the respective icon.
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 Open Forms editor.
Alternatively, you can open the form editor via the details of a task. To do that, select the activity and open the details on the right-hand side. There you can find the button Open Editor. 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, adapt 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 process in BIC Process Execution, your form can be found in addition to the automatic generated form fields of the task.
Be aware, that the relevant task must have been assigned to a user in order for your form to be editable in a case’s process flow.
You can use process variables in your form. They need to be enclosed by two curly brackets (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 in the JSON file without a nested structure is named with a dot, 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 user form, the form will not close after saving. You will see an error icon on fields with errors. After solving them, the 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 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 is 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, min 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
Be aware 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 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)
Under the following links you can view details of the RegExp class used, which the browser uses in the background for pattern checking, as well as the associated 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 calculating with date values is 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 brackets and need to be separated by a comma.
If you want to use earlier defined process-variable, you need to put them between two curly brackets (e.g.
{{VariableName}}
).Other parameters do not need to be enclosed by curly brackets.
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 here a value which is the lower limit for the user input.
Max value: Enter here a value which is the upper limit for the user input.
Step: This value defines 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 write his own values, as long as they are between the min and the max value.
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 options Development is selected by a user in a case, the process variable “Department” is saved with the value "dev"
.
Multiple choice field
The multiple choice field can be used when the user 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 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 includes the selected answers. Note the possibility to 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"]
.
Date field
The date field can be used when the user needs to input a date or get a specific date shown.
In the example above, two date fields are shown to the user. The desired dates can be chosen in 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 activated 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 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
An URL field can be used to call or enter a web address.
It has the following additional attributes:
Pattern: Enter a regular expression 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 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 email field is (measured in pixels).
In the following example you can see an URL field with the option Read-only activated. In that case the web address will be displayed as a link. When you are selecting 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 groups and include it into the case. Note that you can only add one user or group to a User/User groups field. If you start to enter a value into this field, a suggestion list appears where you can select a user (group). In case of a user, the email address is stored as 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 completion of the corresponding task.
File
The field for files can be used to upload files and embed them in the process.
Please note that the same identifier must be specified for the form field and the associated document 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 this input document will be applied to the read-only fields.
A not read-only form field 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 the 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 will be visible.
If you are using a form with a file upload option and have selected a file for 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 field for sections 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 the position of them within the form preview in the form editor. The position within the form preview can be changed individually. To do so 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 of 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 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 choose the tab Settings.
Here you have the option to select the checkbox Mark this task as a signature task. If you select this checkbox, your activity will be marked as a signature task and your users have to authenticate themselves before finishing the task. How the authentication process work can be found here.
Note
Please note that, this function is not activated by default in your System and must be configured first. To do that 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 those REST calls will 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. Select the option Open Service configuration.
Alternatively, you can open the editor by selecting the activity and choosing Editor in the Details menu. 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 enter the HTTP method which you want to use for your call. Supported HTTP methods are listed below. If no method has been specified the default value for this field is GET.
DELETE
GET
HEAD
PATCH
POST
PUT
OPTIONS
TRACE
URL: Enter here the URL path of your REST endpoint (e.g.: http://serviceUrl:port/service/1).
Authentication: Here you can select the type of authentication that is wanted 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 input 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 body of the request only contains 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?
By the use of variables from your API you can create dynamic REST calls. Within the definition of the REST configuration you can use your process variables in the Request body. Variables should be listed as follows: {{VariableName}}
.
If, for example, you have called up the name and age of an employee using the GET REST call, 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 use those variables and their values then 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 configure my request body as file?
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: Model an activity in your diagram in BIC Process Design and add a document node as output. Maintain the attribute Identifier.
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.
Suppose you have configured a REST call and specified the expected HTTP status codes as patterns. If you receive a response from the API and the received status code matches the pattern, you can consider the response successful. 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?
Suppose you have modeled a Service task. When you open the editor, you have the option of configuring the document creation in addition to the REST call.
If you select the option REST call, the REST configuration is started. Alternatively, if you select the Reports option, the report configuration starts, where you can specify the output format (PDF or DOCX).
Assume that the report task contains an input. If this 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 corresponds to 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. If there is not exactly one input and one output in the report task, the report will not be created and the task will be marked as an error.
Additionally, assuming 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 mail template, your diagram has to be marked as executable process in the attributes. The activity type of the task has to be Send.
Afterwards, right click the activity to open the context menu and find the entry Open Email template editor.
Alternatively, you can open the script editor via the details of the activity.
A click opens the editor. In the top fields, you can enter recipient, email addresses as Reply to, Cc and Bcc as well as a subject. The template can be written in the text field below. Notice the different 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 brackets ({{}}) 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 of the editor and result in a dynamic template that is automatically adjusted in BIC Process Execution. The variables are replaced by 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 brackets: {{VariableName}}
.
Note
Note that you can include process variables with html formatted values in the text editor. For such values you need to add an ” -html” (attention: with a blank space!) to the process variable name. Otherwise the formatting is not processed. Consider a process variable {{CompanyName}}
for which the values are given with a formatting (e.g. in bold via “<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 in the defined formatting (in bold in the example).
With the help of the editor you can configure that your mails will be sent automatically. To do that, 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 substituted 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 attached automatically.
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.
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.
In order to define a script task, your diagram has to be marked as executable process in the attributes. The activity type of the task has to be Script.
Afterwards, right click the activity to open the context menu and find the entry Open Script editor.
A click opens the editor. You can select the desired script language in the drop-down menu and then write the script which will be executed during the runtime of a case. Use process variables to adapt the script to each case dynamically. In the example below you can see a groovy script where the process variable employee_name
is used as an attribute of a new object user
. This object is then returned as a new process variable in line 15.
Alternatively, you can open the editor by selecting the activity and choosing Editor in the Details menu. There you will find the button Open Editor. Select it and the script editor will be opened.
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 13.
Warning
If the result is declared with var result = ...
, it is necessary to explicitly specify the result
again in the ending line.
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 of the list will be stored as a single process variable (of type string here). The following two alternatives should be used instead to include the whole list as one process variable of the 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.
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 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 environment perform as follows: If there is a former version in the respective environment, it will be replaced when the corresponding diagram has changed in public workspace resp. the preview. 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 key word “app”:
https://XXX/process-execution/app/...
You can access the development resp. test environment by modifying the URL. Add the key word “studio” resp. “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 directly test it. You simply have to mark the diagram as executable process in the attributes.
As soon as you check-in the diagram, the Test ProcessApp button will appear.
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 test the process flow quickly since no further configuration of the test case has to be done manually.
Testing a ProcessApp can be started from public workspace of the new user interface as well. If you open the diagram in the diagram view, the button is displayed in the upper right corner.
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.
Testing a ProcessApp in preview stage can be started from the new user interface as well. If you open the corresponding diagram, the button is displayed in the upper right corner of the diagram view.
How can I delete a ProcessApp?
If you tested a ProcessApp in the studio and test environment in different cases, you might not need these data anymore. In the administration, you can delete the ProcessApp including all cases. All started and future tasks of the cases will be removed too. The data are only deleted in your current stage (studio or test environment). This is irrevocable.
Navigate to the administration area and select the option ProcessApps. In the list of all ProcessApps of the environment, scroll to the desired ProcessApp. If you hover of the entry, you can select the three dots to open the menu.
Then choose the option Delete ProcessApp.
Confirm the deletion in the appearing dialog window via the DELETE button. Alternatively, you can cancel the deletion.
Note
Note that only ProcessApp Administrators can access the administration area.
How can I define a default role allocation for the process instantiation?
In BIC Process Design you have the possibility to assign persons or organizational units to roles so that they will be set automatically during the process instantiation in BIC Process Execution. If it is known in advance that the same people or organizational units are nearly always responsible for all cases of a process, you can speed up the process instantiation for this 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 person or organizational unit. You can find this attribute within the attribute group Automation.
Users as well as user groups or organizational units can be 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 person or organizational unit is assigned to the role as 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 has been assigned to a role when the case was created, the case creator will be responsible for each task of the role as soon as the task is started. This means the user who created the case can complete the tasks of this role but is not assigned to the role. He receives the responsibility for the tasks one by one when a task 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 you can work with due dates in BIC Process Execution can you find here
To do that, go into the details of the activity, and there go into the attribute group automation. Here you can find the attribute Due date.
Here you can enter how many days after the start of the task or at what date it is due. BIC Process Execution calculates the correct due date automatically.
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 can find the attribute Case creation restriction within the attribute group Automation.
Analogous to the diagram or repository access restriction you can set the names of multiple users or whole user groups. As soon as you enter the first characters into the entry field a suggestion list will be displayed where you can select the intended entry.
As soon as a case creation restriction has been set and the diagram fulfills all requirements in order to be displayed also in BIC Process Execution, the case creation restriction behaves as follows:
All users, who have been included in the case creation restriction, are enabled to create cases as usual for the corresponding process. Same goes for users who are part of user groups which have been included into the case creation restriction.
The process will still be displayed to all other users but they cannot create cases for this process. This means the function Create a new case 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 will be stored in the archive until this period is expired. Then, the case will be deleted automatically and irrevocably. You can set the 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 for a case is expired while you view the list of archived cases, the case will be removed from the list and you will be informed about this by a message. In case you view the process flow of an archived case and the retention period of this case expires, the case is deleted by the system and you will be redirected to the case list of the corresponding process. You receive an information message about this automatism.
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.
Open the diagram of the process you want to add in BIC Process Design and open its attributes. In the attribute group Automation you can 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 might 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 flow (and reunite them). You can use the following three gateway types:
Exclusive gateway: After this gateway, exactly one sequence flow is followed. You may automate the decision which one to choose in a concrete 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 this case, you have to define expressions for an automatic decision about the course of the process flow. Otherwise, the process will stuck. If you do not want to work with expressions and automated decisions,you must model the process with a gateway (see below). Then, the case owner will get a manual decision task.
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, which specifies the conditions under which the respective decision is made.
To do so navigate first to the diagram in BIC Process Design, which represents the basis for the process in BIC Process Execution in which you want to have decisions made automatically. Here you have to define an expression for each sequence flow after a split gateway, which specifies the condition under which the following 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 they reach 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.
Overview about the notation
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 bigger or equal 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.
If in BIC Process Execution the value of a process variable changes, for example due to a change within a decision table or because of a manual change of a ProcessApp Administrator, all expressions which include this 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. In case the next the return value 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 respecting path is displayed in the process flow.
If none of the expressions return the value true until the decision has been reached, the decision must be made manually by a user.
Warning
If you model an activity with one or more outgoing sequence flows without gateway, you must automate the decision via expressions. Otherwise, undesired behavior may occur since manual decision tasks are created at gateways only. Please find an example here.
Note
Be aware that only automated decisions can be changed, which are still open. This means that decisions which have already been set by starting a task in the respecting path, can not be changed anymore.
Hint
If a task is completed which is the last task before an automated decision, the following task, which results from the path of the decision, is started automatically.
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 created automatically.
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 Open start event settings.
A dialog window opens. 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> <Year>.
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 # |
Year - optional |
empty or 2022-2099 |
, - * / |
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.
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 for the possible characters, which is 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 computes the case start times in the time zone of the server. If your local time deviates from the server time, be sure to take the difference into account when you define the Cron expression.
For example, if a case should start at 8 AM in Germany (UTC+1) but the server is based in the time zone UTC+0, 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 to 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 Cron 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 Open 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 new case of the process is to be started 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 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.
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.
The fields define the time units in order:
<year> <month> <day> <hour> <minute> <seconds> <milliseconds>.
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 |
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 dialogue 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. Afterwards, you will be navigated to the case creation.
You can just copy the link of your process from the address line of your browser when you open all cases of the process. Note that this is also possible 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, just add “/run” after the process ID. You can use this link to navigate to the window for case creation directly.
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/run
Furthermore, you can directly create a case by adding the case name via ?name=NAME-OF-CASE
to the link:
https://XXX/process-execution/app/processes/YOUR-PROCESS-ID/run?name=NAME-OF-CASE
If you use this link, the process flow of the new case NAME-OF-CASE is displayed directly and you do not have to confirm the dialogue window.
In addition, you can set process variables if you add &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 state arbitrarily many process variables of 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 via the front end. As an alternative you can create a case directly over the back end. 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.
How can I start subprocesses from a process?
If you like to call another process from within a case, you can use call activities. This enables you to start arbitrarily many 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.
You choose between two different types of call activities. Synchronous call activities will be executed instantly 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 subcase, and it can continue to be processed.
Asynchronous call activities are also 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 at the completion of the sub case. 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 subcase, and it can continue to be processed.
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.
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 for the called process will be started automatically 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 documents as input for my subprocess?
When dealing with a call activity task, if you model an input document for this call activity, the uploaded document becomes available for this input in the subprocess. Provided you have an input document in a subprocess. If the identifier of this document matches that of the input document for the corresponding call activity in the main process, the input document is available in the subprocess.
Hint
Several input documents can be modeled, all of which are available in the subprocess. In each case, the last uploaded document is used as the one that serves as input.
In both cases, whether within the same case or if the input comes from a parent case, the subprocess can either not overwrite the input or override it. This also applies if the subprocess decides to override the input or if parallel paths cause both an override and no override.
How can I integrate an application into a task’s 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 one 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. Analogous 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 these will be defined before the respective task has been reached. To do so add the respecting variable name in two curly brackets at the appropriate place in the path. Here you can see an example how 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”.
If you have defined your attribute and your diagram fulfills all requirements to be displayed in BIC Process Execution, the application will be displayed under the section Applications within the form of the task. If a title is available for the link, it will be displayed below the application name. Otherwise the URL will be displayed. You can access the application via the Integration Link.
Also multiple links can be integrated into an application. If so a context menu that contains all the links will be shown after the Integration Link has been selected. You can then open the desired with a click on the corresponding link.
Formulas
Formulas can be used for different purposes. For example, you can use them in the form editor to calculate values. You can use them as well to make your forms more dynamic.
In this chapter you will find an overview of all existing formulas and how to use them correctly. At the end of this chapter, you will find a few examples of what you can calculate with these formulas. Additionally, you will find an example which explains how you can make your form dynamic.
The most formulas you can use in Microsoft Office Excel are supported and work the same as in Excel. It is also possible to write formulas with simple JavaScript syntax. E.g. 2+6
would also be a valid formula and return 8.
Some formulas use parameters. Of course, you can use existing process variables. If you want to use already existing process variables, you need to enclose them in two curly brackets (e.g. {{VariableName}}
).
If you use dates or strings as a 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 FormulaJS.
The formulas can be separated into six different categories:
Date formulas
When you use 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 to use 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 want to use a timestamp as well, you need to use one of the formatting options above and append 'hh:mm:ss AM/PM'
. The use of seconds is optional. E.g. '06/14/2021 10:47:32 AM'
would represent 10:47 AM on June 14 2021.
Abbreviations for months:
Month |
January |
February |
March |
April |
May |
June |
July |
August |
September |
October |
November |
December |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Abbreviation |
Jan |
Feb |
Mar |
Apr |
May |
Jun |
Jul |
Aug |
Sep |
Oct |
Nov |
Dec |
Extract data from dates
There are various date formulas with which you can extract specific data out of 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 if the week starts on Sundays ( mode = 1) or if the week starts on Mondays ( mode = 2). If you do not use the parameter, the standard value is mode = 1.
ISOWEEKNUM({{datetime}})
returns the week number of a datetime value. The first week in 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 in a 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. With the parameter method you can define if you want to calculate the difference with the US-american method ( method = FALSE() ) or with the european method (method = TRUE()). For exampleDAYS360('12/1/2021','1/1/2022',TRUE())
would return 30 days. The difference between the 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 it depends on the start date what the formula will calculate. If the start date is earlier than the 30th of a month, the end date will be set to the 1st day of the following month. Otherwise, the end date will be set on 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. E.g.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. E.g.EDATE('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.
Logic gates
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.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. E.g.SWITCH(7,9,'nine',7,'seven')
would return seven.
IFERROR({{formula}}, {{expression}})
evaluates the inner formula formula and returns their return value. If the formula returns an error, expression will be returned. E.g.IFERROR(8/2,'Error')
would return 4 butIFERROR(8/0,'Error')
would return Error. Of course it is possible to nest any other formula into this formula.
String formulas
If your formula needs a parameter of the type string, then it needs to be enclosed by single quotation marks, e.g. LEN('Example')
. Alternatively, you can use pre-defined 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. E.g.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. E.g.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. E.g.REPT('x',5)
returns xxxxx.
SEARCH({{searchTerm}}, {{string}})
searches in string for searchTerm and returns at which character index the searched string starts. E.g.SEARCH('margin', 'Profit Margin')
would return 8. If the string cannot be found, the formula will return 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 let the search start at a different character. E.g.: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. E.g.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. E.g.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. E.g.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. E.g.SUBSTITUTE('Q1-2011', '1', '2')
would replace all 1’s by 2’s therefore returning Q2-2022, butSUBSTITUTE('Q1-2011', '1', '2', 1)
would only replace the first occurrence of 1 therefore returning Q2-2011.
SPLIT({{string}}, {{delimiter}})
will split string at every position where delimiter is. Returns the results as a list. E.g.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. E.g.ARABIC('XVI')
would return 16.
ROMAN({{number}})
converts an Arabic decimal number number into the roman number system. E.g.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 a number down to the next integer.
FLOOR({{number}}, {{i}})
rounds number down to the nearest multiple of i (E.g.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 zeroFLOORMATH(-12.1,1,0)
returns -13. mode = 1 rounds towards zeroFLOORMATH(-12.1,1,-1)
returns -12.
CEILING({{number}}, {{i}})
rounds number up to the nearest multiple of i (e.g.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 zeroCEILINGMATH(-4.1,1,1)
returns -5. mode = 0 rounds towards zeroCEILINGMATH(-4.1,1,1)
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 corresponding values in two list.
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. E.g.: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
In the finance formulas, some variables will be used regularly.
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 beginning of the payment (type = 1) |
|
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 periode 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, e.gDOLLARDE(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, e.g.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 your receive from the cashflows as you reinvest them.
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 cashflows.
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 to convert numbers into different numeral systems are similar to each other: XXX2YYY
. Here stands XXX
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 into 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)
would return 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 like 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 that. 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 formulas nested in each other. First, you create with DATE({{year}},02,29)
a valid variable in the datetime format. 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).
With using the formula MONTH
, you will get the month of the corresponding date back 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 will return TRUE, otherwise it will return FALSE.
In BIC Process Execution it will look like the following:
How do I calculate work days?
In the following we provide an example of how to use different formulas (e.g. how to calculate the number of work days between two dates).
In this example, you want to carry out a project and want to calculate how many work hours the company can offer in a given time.
This example is deliberately kept simple and does not reflect all relevant activities and aspects. It is just 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 can get the data from other processes as well. This example considers only the start and end date of the project, the number of participating employees and their average working hours related to the project.
The start and end date fields are date fields. The fields to input the number of employees and their average work hours 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 will be workDays) between the start and the end date. Here you can find the details of the formula NETWORKDAYS
.
Secondly the calculation of available work power per day happens (variable: workPower). To do this, we simply multiply the number of employees times their average work hours per day.
Finally, the total project capacity is calculated, for this purpose the number of working days is multiplied by the manpower available per day.
If you now open your process in BIC Process Execution, it will look like the following. The three calculated values will refresh automatically as soon as you input new values.
Create dynamic forms
With formulas you can also create dynamic forms i.e. the attributes of form fields can be manipulated by user input. In the following example a process to sell car insurance is used. Our form in the form editor looks like the following:
The name of a legal guardian or parent will only be needed 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 bigger or equal to 21. If the person is younger than 21, the field will be mandatory.
Another option to make your form dynamically is by using the attribute read-only. In the following you see a form field of the type boolean, which 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 i.e. you can only choose 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 is not changeable because the person is younger than 25. But due to the fact that the person is older than 21, you cannot insert the name of a parent or legal guardian.
Tasks
BIC Process Execution offers you a variety of functions that you can use to manage the tasks, which result from your processes. When using these functions, the following questions may arise.
Where do I see my tasks?
Switch to the Tasks section via the menu.
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 area My tasks.
In the main area you will see all tasks, which have been assigned to you. Under the name of each task you can see the name of the corresponding case. The second line of each entry shows the start date of the case, the state and the due date of the task if the latter has been defined in BIC Process Design. If the state of a task changes, the entry will be updated. The status of the individual tasks is shown with the corresponding labels Error (red), Overdue (orange), To do (grey) and Done (green). Further explanations of the status can be found here.
You can filter your task list by ProcessApps on the right side of the main area. If you select the facet ProcessApps, the filtering options will be displayed. As soon as you select an application, only the respective tasks are shown in the task list.
Additionally, you can filter your tasks on the right side of the main area using predefined date range options. If you select the facet Due Date, the different date range options will be displayed. Once you select a predefined date range, your task list will be updated. You will only see the tasks that are due within the chosen time frame.
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 popup window of the task. Alternatively, you can select Navigate to case flow to see the full case flow view.
Your personal task list contains all started tasks, which have been assigned to you during a case creation process. In addition 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 created a case which includes a task without a responsible role, this task will be delegated to you as soon as it is started. This also applies to failed script tasks.
Personal tasks are part of your list until they have been completed.
Your task list may contain tasks which demand manual decisions. Such tasks are created by the system if a gateway has not been modeled with an automation. Decision tasks are assigned to the case owner.
Note
If you are working on your task list and the state of a task has been changed, it will be displayed in your task list automatically.
How can I sort the task list?
When you view a list of tasks, you have the option to sort the tasks by a specific column. To do this, click on the heading of a column.
If no sorting was applied before, the tasks will be sorted in ascending order based on the selected column. At the same time, you are 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 you will be taken 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.
How can I perform a full-text search for task names in my task list of a ProcessApp?
In the task list of a ProcessApp, while the filter panel is open, an input field is available at the top right to perform a full-text search in the Enter term to filter task list name field.
If you perform a full-text search for the Task name field, the list of tasks will be updated and you will see all the results of this search. If there are no search results, you will receive a notification that there are no results in the content area for your search. In the full-text search, you also have the option of using 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 take into account the search term and all selected filter options.
Note
If you reset the search, you will again receive results that correspond to the previously selected filter options.
What is the state of my task?
In your personal task list, each task has the entry State. This state gives you 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 progess: This task has been started and you have started to work on its form fields. But the task has not been completed yet.
Done: If the task has been completed by you or another user, the task name is displayed crossed out. The completed task will disappear from the list as soon as you leave the personal task area.
Overdue: The task has an exceeded due date. The urgency is emphasized in red color.
Error: The task has an error.
If you are currently in your personal task area and the state of a task changes, this change is automatically displayed to you. This means you will always have a good overview on which tasks you have to work on.
In case that an error occurs at your task, the entry will be marked by a red error mark on the right side. Next to this error icon, you can navigate to the corresponding case where you receive further information about the error (if available).
However, if a new task is started for you or if an existing task is delegated to you, you will see that task at the top of the task list.
Hint
If you are in the popup window of your task and someone else completes the task, the Complete Button will be disabled and you will receive a tooltip about the completion of the task.
When is my task due?
The due date of a task is shown in the task list. If the date has been exceeded, the state becomes overdue.
Moreover, you can see the due date in the case 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
As soon as you are delegated a task that is due within a 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 an hour of assignment, you will receive an email reminder about the open task.
How am I notified about my tasks?
BIC Process Execution informs you about currently upcoming tasks by email. The notification rhythm described in the following 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.
Note
You also have the option of receiving an email notification about which group is responsible for a group task. If you have a group task and receive an email notification, you will be informed which group the respective task has been assigned to.
You receive an email at the start of the week which informs you about tasks that are Overdue, Due today, Upcoming and New tasks. Upcoming hereby indicates the tasks that are due within the current week. There is also a link to BIC Process Execution in the email, which takes you directly to the corresponding tasks.
Furthermore, you receive an email on the other workdays, which informs you about tasks that are Overdue, Due today or New tasks. Tasks, which are longer overdue than others will be presented at the top of the list.
At the weekend you will not receive any task reminder emails. But the email on friday also lists all tasks that are due on the weekend or monday.
If you receive a reminder email regarding the due date or a new task on Monday, no information about Friday and Saturday is received in the default configuration.
Hint
In order to receive daily reminders also on weekends, an update of the default configuration is required. This means that on Saturday and Sunday the reminders of the previous days (Friday and Saturday respectively) can be received.
If a new task is assigned to you that is already overdue or due in the next 24 hours, you will be notified by email instantly.
Where can I find my group tasks?
Navigate to the area Tasks via the menu. You will get access to all your group tasks over the register card My groups.
This area lists all started tasks, which have been assigned to user groups you are part of. Under the name of each task you can see the name of the corresponding case, when it was created and the due date of the task. 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 on the right side of the entry, the task has already been claimed by a user.
Once one of these tasks has been completed successfully by one of the users, it will disappear from the personal task area of all users involved.
How can I claim a group task?
If you want to claim a group task first navigate to the group tasks list or to the relevant case. Both views give the information whether the task has already been claimed. If some group member claimed the task, this user is assigned as the responsible in the task form in the case flow view. The corresponding entry in the group task list also shows the initials of this user.
Tasks which can be claimed have a context menu on the right side of the entry instead.
With a click on the context menu you can select the option Claim task. As soon as you have claimed a task your initials will be displayed at the entry and the context menu disappears. From that point on you will find this task also in your personal list of tasks.
If your group task has not been claimed yet, you will also find the button Claim task in the tasks’ form when you view the process flow of the corresponding case. By clicking this button, you can directly claim the task in the case.
If you complete the group task and another task for this group is started in the same case, this task is assigned to you automatically. You do not have 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 role “Software developer”. If another group task of the case is started and this role is responsible for it, this task is assigned to you automatically. But 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 completed a previous task as software tester and thus will be assigned here as well.
Note
If you claim a group task, delegate it to a user afterwards and the user completes the task, the next task of this group in the case will be assigned to this user.
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 has been reached. This means if a task is in the first place within the process flow, it is automatically started as soon as the case was created.
All subsequent tasks are automatically started as soon as the direct predecessor task in the sequence has been completed.
This way, several tasks can also be started automatically at the same time. For example, by using parallel gateway. If the task that is located in front of this gateway is completed, all directly following tasks are started at the same time.
Depending on the definition of your process, it might occur that the first task of a process has to be started manually because the user can decide the first task. However, it should be noted that this can only be done if the Allow users to start tasks manually checkbox is selected. As a ProcessApp Administrator, you have the ability to manually start any task. Tasks are shown and can be started in the process execution view of a case as soon as the first task of their segment is started, i.e., when the segment is active.
To start a task manually, navigate to a task in the process execution view for which you or another user has role responsibility. You can recognize this by the user name, which is displayed below the task in small letters. When selecting the entry of the task and given that the segment of the task is active, you can see the option Start task manually within the form of the task.
Tip
If you are a ProcessApp Administrator you can start every task manually.
Hint
Additionally, there is an option to either use a link or share it to access the form for starting a task.
In the case “A new offer”, you cannot start the task “Verify order” manually until the case has proceeded up to the corresponding segment:
The task will be started manually as soon as this function has been activated. After the manual start the chip with the user’s initials is filled.
Now all users can directly see here, that this task is started in this case. The task also appears in the tasks of the responsible person, who can now work on it.
Hint
If a group is assigned to a role and the first task of this role is started, the group task has to be claimed by a group member. Subsequent tasks of this role will be assigned to this member automatically (as soon as they are started). Further information about this rule can be found here.
Note
A segment of the process flow is defined by the corresponding diagram and consists of a sequence of activities (the tasks) between gateways and events.
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 via the task’s form. The form gives more information and links to applications that are relevant for your task. Moreover, you might have the possibility to up- or download files or enter other data at a user task. There are two ways to find the form of a task. The popup window allows you to complete single tasks faster because you do not need to open the corresponding case flow view of each task.
In a popup window:
Navigate to your tasks where you can find your own tasks that have already been started. If you select a task, it will be opened in a popup window and you can see the form of the task. At the end of the form, you can find a comment field where you can enter a note before completing the task via the complete button. The popup window closes 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 case flow:
Alternatively, you have the possibility to open the case flow view. To do that, select the button Navigate to case flow. The affected task is highlighted in the case flow by a filled chip showing your initials. If you are using the mobile view of BIC Process Execution, the form will be opened when you select the task. In the desktop view you will find the form in the right sidebar.
In the form of your task, you can find a comment field where you can enter a comment before completing the task via the Complete button.
After completing the task, the check mark is displayed in the chip of the task and the task text turns grey, which is directly visible to all users at this point. In the form, the possibly submitted comment can be viewed. The task is not listed in your tasks anymore. This cannot be undone.
If a task has been started but no user has been 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). Then, this user (group) can complete the task as described above.
When a task has been completed, the next task in the sequence is automatically started and thus appears in the task list of the responsible user. This will be done, if the next task is clear successor or the following activity. If the following task is already done, the next task in the sequence is started.
If 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 subsequently in the case details. Then, the user is automatically assigned to a task of the role when it is started. If the responsible role of a task cannot be assigned to a user during its start, it 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 started task 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 ProcessApp User role can work on tasks. If a task is assigned to you and you do not have the ProcessApp User role, you will not be able to perform any actions with this task. You will receive a notification with details to understand that the required role is missing. Assuming you do not have the ProcessApp User role. When you open BIC Process Execution and have been assigned tasks, you can view them on the list of your tasks. A notification is displayed on the task forms indicating that the required role is missing. If you have not been assigned any tasks, you will not be able to access the Task list menu item.
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.
If you have received an email notification with a link to a task form, you can open the link and will be redirected to the task form. Please note that the link is only valid as long as the task is assigned to you as an external user. In the task form, you should fill in all mandatory fields or fill in the optional fields. By clicking on Submit, the task form will be successfully submitted and you should receive a confirmation message.
Once you click Submit, 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.
Note
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 for a gateway?
If a gateway has not been modeled with an automation, the case owner receives a task to decide which path will be executed.
As a case owner, you can find the manual decision task in your task list as soon as the previous task has been completed. Select this task to open its pop-up window. Based on the options shown in the window, you can see whether your decision is an Exclusive Or or an Inclusive Or gateway. Gateways of the type Exclusive Or only allow the selection of one decision option.
On the other hand, Inclusive Or gateways have checkboxes for the decision-making options, which allow multiple selections.
Mark (depending on the gateway type) one or more desired options and confirm your selection using 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 delegate a task?
If a task is assigned to you and has already been started, you can delegate this task to another user. As a ProcessApp Administrator or as a case owner, you can delegate all started tasks, i.e. tasks owned by you or other users. The delegation option will also be displayed to ProcessApp Administrators and case owners if a task has been 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 tasks list, navigate to the pending task you want to delegate. If you click on that task, the form of that task will open as a popup window. Within the form you will find the section Responsible. Next to your user name, you can select the function Delegate task 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 owner can delegate the tasks of other users this way.
If you use this function, a window appears where you can then search for an user (group) using the input field. You can then select a search result from the suggestion list.
Your selection is then displayed as a chip. If you have inadvertently 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 choose between all users and user groups for delegation. If you want to Cancel the delegation, select the corresponding option.
Otherwise, click on Delegate to complete the delegation. The window will close and you will no longer find the task in your tasks list. In the process flow of the concerning case, the initials of the newly assigned user (group) are displayed now. In addition, the task appears in the tasks list of the affected users.
Where can I see comments of completed tasks?
When completing a task, the users can set additional comments. These comments can then be seen by all users. To see a comment, first navigate to the tasks of a running case. On the right side of the entry you will find a Show comments icon.
A click on this button will open the comment window. Next to the comment itself, this window displays the author of the comment and the comment timestamp. The comment is available here in read mode and can therefore not be edited.
Click on Close to return to the original view.
How can I be informed if one of my tasks has been started independently of me?
You have the option of being informed in BIC Process Execution every time one of your tasks has been started independently of you. That means that if one of your tasks was started automatically or by another user, you will receive a push notification.
If you then select this, you will navigate directly to the relevant case and the corresponding task will be highlighted with a short visual animation. In order to be able 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 have to allow push notifications in your browser when using the BIC Process Execution Application. Depending on which browser you are using, you will find this setting on a different place in your browser. The documentation on how to find this setting has been 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 via the browser of your device, you also need to allow notifications to be displayed. 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 has not been opened. In that case it can be that your application must first be granted authorisation to send notifications. The documentation on how to find this setting has been linked below for the two most common operating systems.
Hint
If you use a desktop computer and the PWA has been installed, you will only receive the messages when the application is open.
Note
If a new task is started for you that is overdue or due within the next 24 hours, you will also be informed via email.
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 recognize this directly in the task list. This can be identified by a tooltip that appears as soon as you move the mouse 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 yourself you need to login again. After a successful login you will be redirected back to your task.
As long as the authentication was not successful, the task can not be marked as finished. If you are assigned to more than one signature task, you need to authenticate yourself for each one individually.
Note
If you work with a signature task while being in the popup window the popup will automatically close after you have authenticated yourself.
How can I send the email of a send task?
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.
If a send task has been assigned to you, navigate to the process flow of the case by a click on the task. The form of the corresponding step contains an email preview provided by the created template. If you have specified a user group as the recipient, it is displayed as the recipient.
If process variables have been included to the template, they are replaced by the actual values defined in the case. The form can show a section Input. You can upload a file there which will be attached to the email automatically.
Click Send Email to open a new email in your email client which equals to the preview. You can (if necessary) edit the email and send it there. Afterwards, you can finish your task by clicking complete in the form.
Note
If the option Send mail automatically is activated, the task will start automatically. The email will be sent and the task will be set to done. If an error occurs during automatic sending you will receive an error notification in the process overview. Here you have the option to send the mail 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 explained above, you should check the formatting in your email client. The preview in BIC Process Execution shows the email formatted according to the definition in the editor but some settings can be lost when it is converted to the text in your client. Indentations and tables will be lost and bullet lists will be marked with the character “*” instead. Emails that are sent automatically 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 thereby, the task will be marked by a red chip containing an exclamation mark. In this case, the tasks 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 showing the error message of the system. In the bottom of the dialog, you can close it.
Failed script tasks can be restarted or completed manually. To restart a task, select the button Retry in the error dialog or next to the script task in the case view.
Alternatively, complete the task manually via a click on the equivalent button.
How do I work with the task of a call activity?
If the task of a call activity in a case is started, a new case of the called process will be created automatically. The responsible of the task will be the owner of the case. In case that a group is responsible for the task, the case will be owned by the case owner of the main case instead. The case is named after the call activity plus “- name of the main case”.
If the call activity is synchronous, the main case is blocked as long as you are working on the called sub case. You can only continue working on the main case once the called sub case has been successfully completed.
If the call activity is asynchronous, the main case will not be blocked. Therefore, you can work on both processes independently and parallel. The call activity will instantly be 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 as well, they are inherited from the main case. New roles will be 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 up-to-date again. Variables that have been defined in the sub case exclusively will 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 will not be handed back to the main case.
Note
As a ProcessApp Administrator or case owner you can complete the sub case manually as well. In this case you will get a warning which tells 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. In doing so, you also define a name for the variable that holds the data of 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 completing all tasks, 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 content of the input variable will be replaced by the output. If no output is defined for the task, the corresponding element in the output variables will be null.
Warning
If no output variable has been 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 the corresponding diagram has been published in your BIC Process Design, they can be executed automatically in BIC Process Execution. This means that tasks, which execute REST calls do not have to be started manually, but are started automatically as soon as the previous task has been completed or if they are the first tasks in line.
You can identify tasks which are executed automatically at their labels Automated task below the corresponding entry and the robot icon within the task chip.
The REST call will be executed as soon as the task has been started. If the status code of the REST call matches the status code, which has been defined in your BIC Process Design for this task, the task will be marked as done analogous to the manual execution. The data, which is resulting from that REST call, will be stored in process variables within 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 will be marked as incorrect. This will be indicated by a red chip with an exclamation mark on the right side of the entry.
Tasks which have been executed incorrectly can be restarted at anytime. So with that you can run your REST call at any time later. To manually start an incorrectly executed task click on the red Error chip of the relevant entry in the case overview.
You will receive a message which will inform you about the failed attempt. Click on Retry to start the task again. You can also select this button in the form of the task.
The REST call will then be 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, as usual, the Complete task on the right side of the entry. For more information about how to complete tasks manually, see here.
Cases
How is the case’s process flow view organized?
The process flow of a case corresponds to that of the default case. In contrast to the default case, you can use the process flow of one of your cases to design its specific sequence. Therefore, this is the central view if, for example, you are editing tasks, changing decisions or want to see the current state of the case.
To get to the process flow 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.
As soon as you have selected the entry, the process flow of that case appears in the main area of the application. Analogous to the default case, the process flow 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 of a running case shows the completed and next up process steps (tasks of the active segment). In addition, there might be more steps coming up and the end event might not be visible yet.
Depending on the fully completed cases of the active process, a forecast is generated upon 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 supplemented accordingly. If a different path is taken in the process that has not been completed 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.
If you select one of the elements you will get further information about this element and the possibility to edit or change it via the right sidebar. This bar is called the form. In the mobile view these options will appear as soon as you select one of those elements.
The case owner can choose a desired start if there are several start events in the corresponding process modeling. The selection can be made via 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 an entry in the process flow. You can recognize these entries by the diamond-shaped symbol with an arrow in the middle. Thus, the gateways divide the process flow into segments, which contain the decisions and resulting tasks. This means that you can always see at which point in the process flow a decision has to be made.
Note
Gateways of the Parallel type are only recognisable by the segmentation in the process flow, as no decision can be made there.
Ideally, decisions can be executed automatically at inclusive or exclusive gateways due to 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 will receive a decision task as soon as the previous task has been completed. His decision will determine the further the path of the case after the gateway.
In BIC Process Execution, several users can work simultaneously on the same process flow. To ensure this parallel working, your case is updated automatically if a task has been changed by another user (e.g. completed or delegated). Thus, you can always keep track of the current state. When the case is archived while you view 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 that manual decisions are overlooked and further automates your process flow.
Depending on which decision is made at the gateways, the path of the process flow changes and can therefore lead to different results. The changed path is displayed automatically. If the path calculation is not immediately resolved, it is indicated with a loading indicator in the gateway step.
Note
When a process is executed and a throwing event occurs, a message with the associated event ID is sent. At the same time, the event is thrown with the corresponding identifier and the step is marked as completed.
Note
If a task, which is positioned after a decision in the process flow, has been started, then the decision can no longer be changed.
How is the default case structured?
The default case displays the standard 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 process overview. 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 process flow is shown from the top to the bottom.
Each process flow consists of tasks, gateways and the start and end events. You can distinguish these elements from each other by the chip symbol on the left side of the respective entry. End events are represented by a chip with a flag icon in it. You can recognize gateways by a diamond-shaped symbol with an arrow in the middle. In contrast, tasks are displayed with a number indicating when a task has to be done in the process.
Note
When a process is executed and a throwing event occurs, a message with the associated event ID is sent. At the same time, the event is thrown with the corresponding identifier and the step is marked as completed.
By selecting individual entries you will receive further information and options for the respective element via the right sidebar. For example, you can display the form of a task to see the role which is responsible for this task. Gateways and decisions can also be adapted so that alternative paths of the process can be displayed.
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 first need to create a case for the process.
How can 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.
Once the predefined throwing event occurs, a message is automatically generated. This message includes a specified event ID and the previously defined correlation key. Simultaneously, upon the occurrence of the event, 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 do I automatically activate a task after receiving a message via an intermediate event in a case?
There is a possibility that the subsequent task will be automatically activated when an intermediate event intercepts a message in a case, especially when opening the Quick Editor. In this context, the event includes an attribute called correlation key.
If your process includes a catching intermediate event, and this event has an identifier reached in a case, the sequence is automatically paused at this event.
If 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 completed and the process flow is continued.
Additionally, you can initiate a signal event by sending an HTTP POST request to proceed with a waiting event. See here to see how the REST call should be configured.
What is a task’s form and what is it used for?
In BIC Process Execution a form is generated for every task as soon as the corresponding case has been created. This serves as a source of information for a specific task, but also offers you many options to carry out the necessary steps to complete the corresponding task. The information is derived from the information that was provided in the corresponding diagram in BIC Process Design for the corresponding task. But be aware that this form cannot be compared to the profile that you know from BIC Process Design. The form offers you much more. For example, you can see the responsible users and the task’s attributes, or you can access its inputs and outputs. To help you get a better picture of what the form is, the following explains a few of the options available and how you can access the form.
You can access the form of your own task in your task list as soon as the task has been started. Simply select the desired task there and the form will open as a pop-up window.
To be able to access the form of any task, you have to navigate first to the process flow of the corresponding case. There select the desired task. The form of the task now opens in the right sidebar. If you use the mobile view of the application, the form of the task is automatically displayed after selecting the task.
Here you will find among other things, the name of the task, the responsible user or the responsible roles, a description and other attributes of the task. The basis for this is the correspondingly modeled task with 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. So 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. Depending on the hyperlink, e.g. the download of a document is started automatically if it is a link to a document service. If a hyperlink is activated which contains an URL to a website, it will automatically be opened in a new browser window.
You can also make use of decision tables within the form. This provides you users with decision making aids, under which they can adequately work on their task.
In addition to these functions and information you can also make decisions and (provided that you have the permission) delegate tasks within a task’s form.
The majority of the form fields in the form of a task are obtained automatically from the information derived from your diagram in BIC Process Design. In addition, the form of a user task can be enhanced by further form fields using the form editor. The responsible of the task can fill these form fields when the case is executed.
How can I use decision tables within my case?
If in BIC Process Design a task is of the type “Business Rule” the defined decision table can then also be found at the task’s form within 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 has to be started. As soon as you have filled in all input fields with valid data, the result is automatically displayed in the output field of your decision table.
For each of your input fields there exists a process variable which contains the value of your input. Thus, in addition to the information you can receive from the table, you can further use the individual data, for example in automated decisions.
If the value of the process variable has been defined before the Business Rule task has been reached, the corresponding input field is automatically filled with the value of the process variable. Thus, for example REST calls can be used to automatically provide information that is then used in a decision table. If you change the input fields manually in such a case, the corresponding value of the case’s process variable will also be changed.
For Business Rule tasks in which all input fields have been filled in automatically, 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 the need to start the corresponding tasks. This enables you to access these tables without the need of a specific case.
Note
Be aware that the output value can be different, in case 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 chosen 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, when the COLLECT hit policy has been chosen with no aggregation.
How can I use attachments in BIC Process Execution?
In BIC Process Execution you can use attachments, which have been defined at the corresponding objects in BIC Process Design. You can use all attachment types that are available for the attribute *Attachment (URL)* in BIC Process Design. In BIC Process Execution these are displayed in the form of the relevant task at various points.
If the attribute Attachment (URL) has been defined for an activity, you will find these attachments in BIC Process Execution in the form of the corresponding 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’s form. The attachment is represented by a paperclip icon. If you click on the paperclip icon you can access the attachment.
How can I upload or download inputs and outputs in my tasks?
If inputs or outputs have been modelled in your diagram in BIC Process Design, you can make use of them in BIC Process Execution to download or upload documents in the tasks of your case. This enables you to provide important documents for the process flow. You can also use these files for a rest call. These are always assigned to individual tasks in your case. The following section explains in more detail how you can use these functions.
Outputs
If an output document was modeled for an activity in BIC Process Design, you will find a corresponding entry in the form of your task in BIC Process Execution. In order to upload a document, you have to be the responsible of the relevant task and it has to be already started. If that is the case, you can use the Upload file function to select and upload the desired document via a corresponding dialog window.
As soon as you have successfully uploaded a document, the document icon on the left side of the entry is displayed in white to indicate the completed upload process. Documents that have been uploaded as output can be downloaded at any time using the Download function.
If the function Upload file is used when a document has already been uploaded, this document will be replaced by the newly selected one. This means that only one file can be provided per output entry. As soon as the corresponding task has been completed, the function Upload file is greyed out and no further files can be uploaded for the relevant output.
Inputs
Like the outputs, you will find inputs in the form of the corresponding task. If an input exists for a task, you can access the relevant document by using the Download function.
All inputs result from outputs of previously processed tasks in the process flow. You can download the document only if the task that contains the output has successfully been completed and the task containing the input has been started. If that is not the case or no file has been uploaded for the input, the Download function is greyed 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 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 at different places.
In the public workspace and preview, the capability to initiate a new case is restricted to users holding the ProcessApp Creator user role. However, in the published version, this option is exclusive to users with the ProcessApp User user role.
To start a new case via the ProcessApp directly, go to the area ProcessApps and navigate (possibly into a Collection) to the desired ProcessApp. Via a click on the three dots at the desired ProcessApp, you can open its menu.
Now select the function Create a new case to start the creation.
As an alternative 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.
Moreover, you can start the creation process for a new case when you are viewing the corresponding diagram in BIC Process Design in publication stage. The button Create case is displayed in the upper right corner of the diagram view but it is only shown to users who are authorized to create a case for this process.
The button is also available in the diagram view of the new user interface. Select this button to trigger the opening of BIC Process Execution in a new tab where you are directed to the case creation.
Hint
Diagrams with a start timer event cannot be started manually in the publication. If several start events are modeled and at least one start event does not have a configured time, the case for this start event can be started manually.
As soon as you have started the creation process in any of the above explained ways, a dialog appears where you have to assign a name of your new case. You can set a due date for this case in the second field. Furthermore, you can select representatives from your users for every role occurring in the process. This user is then displayed as responsible person for every task that is assigned to the corresponding role. Entire user groups can also be set as responsible persons. In such a case all users of that user group are able to see the tasks of the role they have been assigned for, in their personal task area.
Users and user groups can be assigned as a default person in charge within BIC Process Design. They will be automatically set, when creating a new case of the corresponding process. If no user is assigned to a role, the case owner will automatically be responsible for the tasks of this role as soon as they are started. You as a case owner are not assigned to the role itself but each started task of the role will be delegated to you.
A new case will be added, as soon as you confirm your entries by clicking on Create. You will be taken directly to the process execution view of the case. If the process always starts at one possible starting point, the first task is automatically started. If there are multiple starting points, you (as the case owner) have to choose a starting point in the form of the start event and confirm your choice via the complete button. Then, the first tasks after the starting point will start automatically.
Hint
If the option Hide Start Form was selected during modeling, no dialog will be displayed. Instead, you will be directly redirected to the process execution view of the case. The name of the case will be named after the process name and the timestamp.
Note
In case the corresponding diagram has been depublished within BIC Process Design, you will receive a corresponding message when you tap the plus icon or hold your mouse over it. In this case, you can still edit and terminate all existing cases, but you cannot create new ones. If the plus icon is not visible a case creation restriction has been set.
Tip
In case you want to create cases via other applications you can either use run links or the BIC Process Execution REST API.
Where do I find my cases?
You can use the My cases menu entry to display all cases in which you are involved and view them collectively. This includes cases in which 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, and case progress are displayed. The list is sorted by creation date in descending order, with the oldest case shown at the top. You can adjust 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, you will find additional filtering options. Here, you can search for tasks or filter by creator, owner, due date, or creation date.
The Progress indicates 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 (color gradation), and not yet started (dotted line).
With a click on an entry you will be forwarded directly to the process execution of the running case. Furthermore, the Details are available for each case. You can access these by clicking on the i on the right of the entry.
In the details, the creator, the owner, the due and the creation date as well as the name of the case are displayed. 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 the list of cases of a process?
In the ProcessApps section, navigate to the desired process in the listing and click on the corresponding entry. You are then forwarded to the case list of this process.
Hint
If the Analyst attribute has been maintained in the process, you will not be able to view all cases of the process.
All running cases with the corresponding ProcessApp icons, in which you are involved, are listed here. This means that you can see every case if you have the user role *ProcessApp Administrator*, 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 every entry within the case list you can see the following information:
Name: Name of the case
Creation date: Start date of a case
Creator: User who started the case
Owner: User to whom the case is assigned. The owner can be changed when you are in the details. In addition, if a task in your case is overdue, you as the owner will receive a notification in your reminder emails for overdue tasks. Even if you do not have any (over)due 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.
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). You also have the option of sorting the column by the percentage of tasks completed by clicking on the column header of the progress column.
Due date: Date when the case should be completed
The list is sorted descending by creation date whereas the oldest case is at the top.
Furthermore, you have the possibility to filter the entries by specific case owners. To do that, choose the filter facet OWNER on the right-hand side and select the corresponding owners whose cases you want to view. The case list refreshes automatically. This function is also available for the overview of archived cases.
Additionally, you can filter the entries by the due date of the case. If you select the facet Due Date on the right side, you will see the different date range options. Once you have selected a predefined date range, your case list will automatically update. You will only see the cases that are due within the chosen time frame.
Click on an entry in the list to open the process execution view of the case. Use the Back arrow to go back to the list of cases.
In addition, you can access a case’s details view over the circled i icon. In addition you can 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 when selecting this entry.
How can I sort the case list of a process?
When you view the case list of a process, 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 heading of a column.
If no sorting was applied before, the cases will be sorted in ascending order according to their creation date.
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 you will be taken back to the top of the case list of the process.
Note
Sorting is done for one column at a time.
Hint
Sorting is done in the same way for My cases.
How can I apply a filter facet for a creation date range in the case list?
Suppose you are on the case list page and there are multiple cases with different creation dates listed. When the filter option Creation Date is called, predefined date options should appear as follows:
This week
This month
Last 3 months
Last 6 months
This year
If you have selected the filter option Creation Date and have selected a predefined date range, such as This Month, the list of cases should be updated accordingly. Only cases created within the selected date range should be displayed.
How can I perform a full-text search for case names in my case list of a ProcessApp?
In the instance list of a ProcessApp, while the filter panel is open, an input field is available at the top right to perform a full-text search in the Enter term to filter instance list field.
If you do a full text search for the Case name field, the list of cases will be updated and you will see all the results of this search. If there are no search results, you will receive a notification that there are no results in the content area for your search. In the full text search, you also have the option of using 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 filter options you have selected.
Note
If you reset the search, you will again receive results that match the previously selected filter options.
How can I export an event log of the cases of 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 you trigger the export, you can create the event log for a restricted case list.
Select the option Export completed cases by clicking on the icon Export cases to Excel file. Then the event log is generated for you.
As soon as the export is available, you will find a download button at the Export completed cases option. Note that this event log is only available for you. Other users have to create an event log themselves to download it. Select the arrow button to download the created event log.
In the file you will find the following data for each process:
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 this, you will find additional tabs in the process list of your ProcessApp. You can view archived cases and a monitoring cockpit to analyse the status of active cases.
How can I access the case’s details view?
In the details view of a case, you can get detailed information about a specific case. To access a case’s details view, you got two options. The first option is via the case list. To do that, navigate first 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 form of a circled i icon on the right side of the list entry.
The second option is via the case itself. You can open the context menu next to the title of your process. Click here on the menu entry View Case Details and the details of your process will appear.
The following information will be displayed in the details view: the creator, the owner, the creation date, the optional due date and the name of the case. In addition, in the section Team you will see all roles, which are included in the corresponding process, and all users which have been assigned to these roles.
Here you can also reassign the team members.
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. When the date has exceeded but the case has not been completed yet, the progress of the case is emphasized in red color in the personal as well as in the case list of the corresponding process.
If you create a new case, you can directly set a due date in the corresponding field. This statement is optional. Enter a date in the format MM/DD/YY or click the calendar button and choose a date in the appearing calendar.
As a ProcessApp Administrator or case creator, you can set and change the due date of your case subsequently. Navigate to the details of your case. You can find the due date below the owner. If no date has been set before, the field will be empty. Click the placeholder due date to enter a date or click the calendar to choose a date there.
In case there was a due date before, you can change it here. Click the date to enter a new one or use the calendar as stated above.
How can I reassign team members of a case?
As a case owner, you can reassign team members of your case at any moment. To do so first navigate to the case’s details view.
Here you can see all roles of the corresponding process. Below the role description you will find the name of the user or user group currently assigned to the role. If no one has previously been assigned to the role, the lettering Add team member is displayed.
To reassign a role of your team just click on the name of the currently assigned user or user group, or if nobody has been assigned yet click on Add team member. A dialog appears in which you can reassign the corresponding role.
Just enter the name of the user or user group into the input field and then select the corresponding entry from the drop-down menu.
By using the ADD button your changes will be adopted and the role will be reassigned. The name of the assigned user or user group is now displayed below the relevant tasks within the case’s process flow and in the details view of the case.
Note
Tasks, that have already been started before the reassignment, will 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 newly assigned user or user groups you have to delegate them.
Note
If no user or user group has been assigned to a role when the case was created, the case creator will be responsible for each task of the role as soon as the task is started. This means the user who created the case can complete the tasks of this role but is not assigned to the role. He receives the responsibility for the tasks one by one when a task is started.
When is a case finished?
A case is finished as soon as all tasks within the process flow have been completed. From that moment on, elements from that case can no longer be changed. It is noted for every finished case at which end event the case has been finished.
Hint
Please note that a process will be successfully finished immediately when reaching an end event with the event type Terminate, even if other sequence flows are still active.
Once your case is finished it will be 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 will be archived as soon as they are completed.
How can I archive unfinished cases?
You also have the option to archive cases even if they are not finished yet. 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 on the right side of the entry and select the option Move to archive.
A dialog appears which informs you that some tasks have not been finished yet. If you still want to archive the case, select the option Do it anyway. All uncompleted tasks are then canceled and the case is archived.
After your case has been archived, you will be informed about the successful completion by a message. The case will disappear from the case lists. Instead it appears in the archive.
Warning
If you abort a synchronized call activity prematurely and therefore archive the case, its subcases will be archived as well.
Note
If the case was the last case that has not been archived of a depublished diagram of your BIC Process Design, the corresponding process will also disappear from the process overview.
Where do I find archived cases?
The archive enables you to view archived cases. There is an archive for your personal cases as well as for each process.
If you view your case list, you can navigate to the list of archived cases via the tab Archive in the upper right corner.
For each archived case, you can view the details by a click on the i button and the process flow by a click on the case name - just like with regular cases. Click on the tab Cases 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 tab Archive to see all cases that have been created and archived for this process. The process flow and details can be displayed for each listed case as stated above. Click on the tab Cases to navigate back to current cases of the process.
What are process variables used for in my cases?
In BIC Process Execution you have the option of using process variables in your cases in order to process data dynamically during the process flow. Some process variables are created by default while others will be 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, with which these users can then successfully complete their tasks. Process variables can be used in user forms. In addition, the provided data can also be used in further automated tasks, like 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, with the 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 will be created for every role used that has an Identifier. The name of the variable will be the used Identifier, the value will be the corresponding email of the assigned role.
Within the process flow 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 standard process variables be grouped as smart variables in a case object?
When an instance 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)
“creationDate” (not changeable)
“owner” object (not changeable)
“creator” object (not changeable)
Note
In this context, it should be noted that the variables .name and .email belong to the owner and creator object.
The variables are accessible in the following way:
_case.name
_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 this variable is modifiable, the adjustments will be reflected throughout the application. If the process variable is not modifiable, the changes will not be saved, and the process variable will remain unchanged.
When viewing the process variables of a case, the attributes of the case-variable as well as the “old” standard variables become visible. If you open an older case where the case-object did not exist, only the “old” standard variables will be displayed when checking the process variables.
Hint
Please note that the new object applies only to newly created cases. Existing cases do not have this updated element. While the previous method to access these variables is still supported, it is deprecated.
How can I see process variables for archived cases?
If a case is archived, there are different authorizations for accessing the process variables 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?
Within the process flow of a case users with the user role ProcessApp Administrator and case owners have the possibility to display 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 so 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 option Edit process variables.
A dialog appears where you will find 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. In case you have edited the value of a process variable you can confirm the changes by using the button Save.
If you just want to exit the dialog or in case you don’t want your changes to be adopted, click on the button Cancel.
Note
By default, every case has a set of standard 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 to a local scope. If you work on the task and change the variables for example by editing or adding values in the form, the variables will be updated locally. The list of process variables still shows the values set before the task was started. Completing the task will transfer the local variables to the process variables of the case. Then they are available in following tasks.
How can I link a role to a process variable?
When you model 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 choose the responsible of following tasks in a user form or the responsible can be determined by a preceding REST call. Moreover, you might 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 (which is a name or an email address) is set for the identifier process variable within preceding process steps and a task of the role is started, the value of the variable is evaluated and if there is a corresponding user (group) in BIC Process Execution, this user (group) is assigned to the task. Otherwise, the task is assigned to the default responsible (according to the Staffing attribute or case creator, see at the end of this section). Note that the user (group) is only applied to the started task but not to all tasks of the role. Therefore you have the possibility to change the assigned user by editing the identifier value in the process variables of the case. If another task of the concerning role is started afterwards, it is assigned to the corresponding user of the new value.
For example, the role “Executive Manager” is part of the “Selection process” and the Identifier is set as executive-manager
. In the 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 with with a text field is modeled where the ID of the field equals 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 assigned to a user yet.
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 has been started, the corresponding user is assigned as responsible.
ProcessApps
In the ProcessApp overview, you can find all processes of your organization that are relevant (for you) as ProcessApps. They can be grouped according to departments, teams or other structures 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 using the menu.
Depending on the configuration, this area can differ. However, you can find all executable, published processes (BPMN and EPC) of your tenant which are displayed as ProcessApps.
If there are ProcessApps Collections defined in your tenant, you will see the ProcessApps grouped into these Collections. The 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 or multi-column list. The first Collection in the upper left corner is always the favorite tile.
Each Collection can appear with an individual icon and color. Note that a Process App Collection only appears in this area if at least one ProcessApp has been assigned to it. Therefore, not all Collections that have been created in the administration might be involved here.
If you have ProcessApps which 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 shown for each Collection. Thus, you can access frequently used ProcessApps quicker. If you select a ProcessApp in the preview, you will be navigated to the list of all running cases of the corresponding process.
If you select the header of a ProcessApp Collection or the button Go to at a ProcessApp Collection, all ProcessApps of this Collection will be presented to you as a list.
Each ProcessApp is represented by an icon and the name of the process in the chosen content language. In addition, the number of the running cases you are involved in, is noted. The ProcessApps are displayed in a multi-column list which is depending on your device and zoom factor.
If you select the ProcessApp itself, you will be directed to the list of current cases for the process. If 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 corresponding process. The first one enables you to (un)mark the process as your favorite. The second option allows you to navigate to the corresponding diagram in BIC Process Design. Given that there is no case creation restriction defined for the concerning ProcessApp, you will find the option to create a new case for the process at last.
In case that 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 possibilities as described above.
Note
Users with the user role ProcessApp Administrator can access all running cases even if they are not involved in these cases.
Users with the role ProcessApp Creator or higher can switch the environment to view the processes of executable but still unpublished diagrams.
Tip
You can configure every process icon individually. Also you can search for specific processes or add them as favorites to your favorites list to access them faster.
How can I search for a certain ProcessApp?
Within the ProcessApps area you have the possibility to search for certain processes. To do so, use the search field in BIC Process Execution while you are in the ProcessApps section. There, enter the term you want to search for. The search is started as soon as you click on the magnifying glass icon or press the enter key. As result all ProcessApps are displayed which contain the term in the selected content language. The search result is not grouped into ProcessApp Collections.
If the name of a process has not been maintained, the corresponding ProcessApps will not be displayed.
Note
The search is case insensitive. Expressions like wildcards are not supported by the search.
How can I see my favorites and add a ProcessApp?
In BIC Process Execution you can mark single ProcessApps as your favorites. They will be marked by a star icon.
In the ProcessApp overview, these favorites will appear in the Favorites Collection.
To add a ProcessApp to your favorites, go to the ProcessApps and navigate to the desired ProcessApp (possibly into a Collection first). Then open the menu of the ProcessApp via the three dots.
If you select the function Add to favourites, the ProcessApp will be displayed with a yellow star icon.
In case you like to remove a ProcessApp from your favorites, you have to use the function Remove from favourites 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 ProcessApp Quick Editor.
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.
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.
How can I monitor the status of the cases for a ProcessApp?
As a ProcessApp Administrator, you can view a dashboard for each ProcessApp, which provides you with information about the status of all running cases. You can switch to the tab Monitoring in the case list of a ProcessApp.
Hint
Please note that only users with the user role ProcessApp Administrator can access the overview.
When you open the overview for a ProcessApp, you are presented with a donut chart that summarizes the status of the running tasks in the following categories:
(current) processes running on time, i.e. 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 middle 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 that shows the status of the active tasks accessible to you.
The donut chart is designed to visually display the task data. It is sorted clockwise and presents 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 in 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 representing tasks for which no due date has been set.
By viewing this donut chart, you can get a quick assessment of the distribution of your active tasks based on their status.
Hint
Please note that only users with the user role ProcessApp Administrator can access the overview.
How can I see the status of the started tasks, grouped by the assignees?
When you open the Monitoring for a ProcessApp, you are presented with a third donut chart that shows the state of the tasks that have been started.
The donut chart consists of two circles, which 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 brackets.
The outer circle represents the task status of the started tasks for the assignees. The ring is divided into different segments that present the following information:
Number of tasks completed on time: This segment area in the chart represents the number of tasks assigned to the particular assignee that were successfully completed within their designated time frame.
Number of overdue tasks: Another segment in 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 diagram contains the number of tasks for which no due date has been set.
The donut chart gives you an overview of the current stats of the started tasks, grouped by the respective assignees.
Hint
Please note that only users with the user role ProcessApp Administrator can access the overview.
Administration
To access the administration area, you need to select the Administration button in the left sidebar.
To access the administration fully, you need to be assigned to the role ProcessApp Administrator. You can edit your user details here.
Here you see an overview of all options you can administer.
Warning
The functions update case details, archive a case, open the case variables dialogue and change values of case variables are only available for ProcessApp Administrators.
BIC Process Execution API
How can I manage my API key?
To ensure that only authenticated users can access the API of your BIC Process Execution, every 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 first have to navigate to the administration area. To do so select the entry Administration in the menu. Here select the option API Key.
Here you can manage your personal API key. If no API key has been created so far you can see this information in the main area. There you can also find the button CREATE API KEY. 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 button COPY API KEY is displayed with which you can can copy the key into the clipboard of your device.
If the API KEy is no longer used or out of date, you can remove it. To do so 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 window appears. The API key will be deleted and can no longer be used as soon as you click on DELETE.
Within the administration area you can then create a new API key.
How can I create a new case using the REST API?
The BIC Process Execution REST API enables you to create new cases via 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, as well as a valid API key.
The REST endpoint is defined as:
{{host}}/process-execution/external/tenants/{{tenantId}}/stages/{{stageId}}/processes/{{processAppId}}/instances?apiKey={{apiKey}}
The variables you need to replace are:
{{host}}
: The host can be found in your web address when you open BIC Process Design and take a look at the URL. It is the first part before/client/
or/portal/
.
{{tenantId}}
: The tenant ID can be found when you open a diagram in BIC Process Design and take a look at the URL. It is the part between/tenant/
and/repository/
.
{{stageId}}
: In order to create the case in the desired environment, you have to replace the stage ID by the corresponding keyword. Use the keyworddev
to address the development environment,test
to address the test environment and via the keyprod
, you can address the productive stage. Please be aware that the keywords differ from the URL keys of the environments.
{{processAppId}}
: The ProcessApp ID can be found in the URL when creating a new case in BIC Process Execution. It is the part after/processes/
.
{{apiKey}}
: You can find and create your api key in the administration area of BIC Process Execution.
Note
Please note that the HTTP method POST has to be used to use this REST API.
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.
In addition to the name of the new case, you can set the values of process variables within the body of the request. These values must be transferred in form of a JSON object.
By default, when creating a new case the name of the case (caseName
) will be transferred as an attribute. If this attribute will not be transferred, the attribute name
will be used as the case name. If both attributes are not transferred the actual timestamp in the format YYYY-MM-DD T HH:mm:ss will be set as name.
If you want to transfer additional attributes, you can use the attribute variables
. In this situation, no additional data other than the caseName
or name
will be transferred. An example could look like the following:
{
"name": "New case",
"variables": {
"manager_name": "John",
"surname": "Doe",
"department": "Marketing"
}
}
Alternatively, you can transfer attributes without using the attribute variables
. In this situation all process variables will be handed over to the new case. This may look like the following:
{
"name": "New Case",
"manager_name": "John",
"surname": "Doe",
"department": "Marketing"
}
Note
Cases generated via the REST API do not have a unique owner. The owner of those cases will be set with the value REST API.
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.
The REST endpoint is defined as:
{{host}}/process-execution/external/tenants/{{tenantId}}/stages/{{stageId}}/signal-events
The variables you need to replace are:
{{host}}
: The host can be found in your web address when you open BIC Process Design and take a look at the URL. It is the first part before/client/
or/portal/
.
{{tenantId}}
: The tenant ID can be found when you open a diagram in BIC Process Design and take a look at the URL. It is the part between/tenant/
and/repository/
.
{{stageId}}
: In order to create the case in the desired environment, you have to replace the stage ID by the corresponding keyword. Use the keyworddev
to address the development environment,test
to address the test environment, andprod
to address the productive stage. Please be aware that the keywords differ from the URL keys of the environments.
In the REST call, select the HTTP method type POST, the authentication type API key, and enter the REST endpoint described above in the URL field.
In the body section of your HTTP request, you muss pass the eventIdentifier
and correlationKey
attributes in JSON format:
{
"eventIdentifier": "identifier",
"correlationKey": "correlationKey"
}
ProcessApp Collections
You can use ProcessApp Collections to group different ProcessApps. For example you could group the ProcessApps of a specific department into one ProcessApp Collection. A ProcessApp can be included in as many ProcessApp Collections as you like. In the administration you can see 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 structure your Process Apps better so that your users can more quickly identify and execute the cases that are relevant for them.
Where can I find an overview of all ProcessApp Collections?
If you want to get an overview of all ProcessApp Collections, you need to navigate to the Administration first. Choose the option ProcessApp Collections.
Here you can see an overview of all ProcessApp Collections in alphabetical order.
How can I create a new ProcessApp Collection?
If you want to create a new ProcessApp Collection you need to navigate to the overview of all ProcessApp Collections. In the bottom-right corner you find the button Create new ProcessApp Collection.
Click it and a dialog will appear in which you can enter the details of the new ProcessApp Collection.
You need to give your ProcessApp Collection a unique ID. 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 got the possibility to use an icon (free of charge) from Font Awesome (v5.15.4) and a color of your choice to make your ProcessApp Collection more prominent.
Afterwards, choose Create to create your Collection.
Note
You can choose from all Font Awesome icons in version 5.15.4 except the trademark-protected ones.
How can I edit a ProcessApp Collection?
If you want to edit a ProcessApp Collection, navigate to the Overview of all ProcessApp Collections. If you hover over an entry, a context menu will appear on the right side. Open the menu of the desired Collection and select the option Edit collection.
Then, a dialog window will open where you can 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 icons in version 5.15.4 except the trademark-protected ones.
How can I delete a ProcessApp Collection?
If you want to delete a ProcessApp Collection, navigate to the Overview of all ProcessApp Collections. Hover over the entry of the desired Collection. Then you can open the appearing context menu on the right side of the entry.
Here you find the option Delete collection. If you select this option, a confirmation window appears. If you select Delete, your ProcessApp Collection will be deleted. The contained ProcessApps will not be deleted.
ProcessApps
Where can I find a list of all ProcessApps?
In the Administration you will find an overview of all ProcessApps. To get to this, first navigate to the Administration and select the option ProcessApp. You will then get an overview of all ProcessApps that are available. Furthermore, you can see here how many processes of the respective ProcessApp are currently active or archived.
Note
Be aware that the administration is only accessible for users with the role ProcessApp Administrator.
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 for each stage (Public workspace, Preview and Publication) separately.
To open the overview of all existing global variables, open the administration area and choose the option Global Variables.
A list with all globally created variables opens. You can see the name and the values of the variables for the corresponding stages. The variables are sorted alphabetically by their 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 will appear. 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 the creation of it.
If the name of a global variable contains special characters, punctuation marks, or spaces (e.g., +, /, =, >, ?, ., ;), it cannot be saved. Additionally, the name of a global variable is not allowed to include accents and specific letters (e.g., á, à, ß, ç, ñ, ö, ü). In these cases, you will receive an error message at the bottom right corner of the page.
Hint
For already existing global variables with a dot in the name, the dot is replaced by an underscore. If this creates a duplicate, the global variable will be removed.
Note
When you do not provide a value for one (or more) stage, the value will be saved 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?
If 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.
This will open a pop-up window where you need to confirm the deletion. Once you click DELETE, the deleted global variable will appear with a strikethrough in your list and will be permanently removed upon reloading. If a global variable is deleted by another user, it will also be displayed 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 if a global variable with the provided name exists. The system then requests the value for the stage in 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.
When a global variable is modified within a task, the value is changed within the context of that task. If a global variable is not modified within a task, the value is not transferred to the context of the operation.
If the value of a global variable is changed within the context of a task and the task has not yet been completed, the change only applies within that task.
Profile
In the profile area, you can 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 not available for a longer time, you can change your availability status. You can set a general deputy, who will be responsible for your tasks as long as you are out of office. Therefore, important tasks cannot be forgotten and the normal workflow can continue as usual.
When you set your availability status to out of office and have a deputy set, your new tasks will be automatically assigned to your deputy.
Note
If your deputy has also set a deputy and is out of office as well, your tasks will not be assigned to their deputy. This way you can ensure that your tasks will only be assigned to people you have personally selected.
Note
You will not get any email notifications or push notifications if your task is delegated to your deputy automatically. If you have been automatically assigned to a task, you will receive all notifications related to the task.
How can I change my availability status?
With the availability status you can set whether you can currently work on your tasks or if you are not available (e.g. vacation or sickness). If you want to change your availability status, you need to navigate to your profile first. Here you can see your current status. Your selected option is highlighted in color.
You have the possibility to switch between Available and Out of Office.
Note
Your availability status does not reset, i.e. the status stays the way you set it until you change it again.
How can I set my general deputy?
If you want to set your general deputy, you need to open your profile first. On the right-hand side you can see the Deputy-Overview. Here you can set a General Deputy. Select the option Define General Deputy for that.
An input field where you can enter your general deputy appears.
Use the Button Save to save your general deputy. After the confirmation your deputy will be shown in the list on the right-hand side.
How can I remove my current general deputy?
To remove your general deputy, you need to open your profile first. On the right-hand side you can see the Deputy-Overview and your General Deputy.
Right to the name of your deputy is a trashcan icon. Select this icon.
A dialog window appears where you can confirm the deleting of your general deputy. After confirmation your general deputy is removed.
How do I change language settings?
To change the content language of your BIC Process Execution application navigate to the Profile via the menu.
Here, you can select the desired content language using the drop-down menu. If you have not selected anything else, the content language corresponds by default to the language that was specified as the preferred language in the User language under the User Administration in your administration in BIC Process Design.
As soon as you have selected a suitable content language, your settings will be adopted in BIC Process Execution. This setting will persist even if you close the application or the cache has been deleted from your browser.
Note
Changes of the content language applied to the BIC Process Execution application have no effect on the content language settings of your BIC Process Design. With that you can set different content languages in the two applications.
Note
The content languages which are available for 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. Like in your BIC Process Design the UI language depends on the browser settings, which have been chosen for the corresponding browser. You can find more information about this subject here
Note
In case the UI language settings can not be applied, then the user interface will be displayed in English by default.