abas Software AG

1. Hotline ticket requirement

What information must be included in the ticket?

  • abas ERP version

  • On-premises or hybrid installation

  • BPM backend version
    (in Task Overview, Administration Overview or Designer by clicking the i in the top right of the header or by starting the infosystem ESSENTIALSAPPS wkflw version)

  • docker-compose.yml file

  • abas ERP workflow log
    (by executing the command !cat java/log/workflow.log in expert mode from abas ERP)

  • Docker log
    (by executing the command docker logs abas-bpm-engine)

  • Docker container list
    (by executing the command docker ps -a)

2. Designer

2.1. Exclusive Gateway: combining expressions

How can expressions be combined for an Exclusive Gateway?
An expression of the Exclusive Gateway is a logical expression. It can be simple or complex, e.g., "${x>0 && x<100}".
Further information can be found in the Camunda documentation.
Download Example: Exclusive Gateway: combined expressions (DE)

2.2. Workflow in multiple clients

How can a workflow be created in multiple clients?
To create a workflow in multiple clients, the ESDK app must be installed in every client first. The following workflows are possible:

  • Workflows which should be identical in all clients. For this, the workflows must be multiplied. For example, if a quotation approval workflow should run in every client, this workflow must exist for every client.

  • Workflows which should be executed in multiple clients. For this, only one workflow must exist and each abas ERP specific task in this workflow must be connected to the relevant client. It must be ensured that the objects also exist in the relevant clients.

Depending on the use case and requirement, it must be checked which option is appropriate.

2.3. Send Task: changing the sender

How can the sender be changed for a Send Task?
The sender is defined in the configuration of the email server (SMTP) for abas BPM (docker-compose.yml file) and can be changed there.

How can a dynamic link be generated with "Documents & Links"?
With "Documents & Links", all variables in the workflow can be accessed, e.g. https://${url}.
Download Example: Documents & Links: dynamic link (DE)

2.5. Multiple users, identical task

How can a task be assigned to multiple users and how can rules for the workflow process be defined?
Example case: If two out of five users have completed the task, the workflow should continue and the task should no longer be visible to the remaining three users. This can be defined for all types of tasks:
Under Settings, select Parallel (three vertical lines) or Sequential (three horizontal lines) for the task. Then include a defined list of users in the "Collection" field and specify a condition in the "Completion Condition" field.
designer multiInstance
Abbildung öffnen
Download Example: Multi-instance task (DE)

2.6. Iterating over a table

How can I iterate over a table in Designer and create a task for each element?
You can iterate over a table. However, this is only possible for User Tasks and parallel/sequential tasks (see Multiple users, identical task).

2.7. Passing variables to workflows

How can variables be passed if a workflow is started by another workflow?
You can use the so-called Call Activity from the BPMN standard to start a workflow from another workflow. Variables can be passed via the "Variables" tab.
Download Example: Call Activity part 1 (DE)
Download Example: Call Activity part 2 (DE)

2.8. Parameter passing to "abas command"

How can parameters be passed to the "abas command"?
Parameters can be passed for header as well as for table fields. They are defined in the same way as in abas ERP. E.g., „<(Sales)><(New)>,(Quotation)?kunde=001|bem=Erstellt am 1.03.2019|[insert]=|#:artikel=e1“.
Download Example: Quotation approval with parameter passing (DE)

2.9. Workflow should start automatically every day

How can a workflow be started automatically every morning?
Use the Timer Start event for this. A "cycle" can be defined there (comparable with a cron definition).
Further information can be found in the Camunda documentation - Timer Events.
Download Example: Timer Start Event (DE)

2.10. Saving script variables

How can script variables be saved as var mapping?
This can be done using the Task Listener or the Script Task. You can define variables in script format here and use them in the further process of the workflow.

### Inline Script - groovy ###
def newName="abas BPM Designer Training";
execution.setVariable("name", newName);

### Use of variable ###
${name}

2.11. Client name as variable

How can the client name be defined as a variable to execute the workflow in a demo client first and then in a productive client?
For example, the client name can be defined as Execution Listener on the "Listeners" tab in the Start Event.

### Execution Listener ###
var mandant = "docker-erp"
execution.setVariable("mandant", mandant)

### Use of variable ###
${mandant}

2.12. FreeMarker variables

How can FreeMarker variables be used without generating an error (missing variable)?
Write an exclamation mark after the variable, e.g., ${user!}.
Alternative: Define a default value, e.g., ${user!'not set'}.

2.13. Save variables centrally

How can variables, for example a list of department heads, be saved and changed centrally?
Another workflow can be started via a call activity. Variables can be transferred and read out in this workflow. The actual workflow does not continue until the started workflow has been ended via the call activity.
It is therefore possible to save all variables, such as a list of department heads, in one workflow (Download Example: Workflow Bereichsleiter (DE)) and then to call this workflow from another workflow and to save the variables (Download Example: Workflow Bereichsleiter auswählen (DE)). As a result, the variables, such as a list of division managers, only have to be saved and changed at one point.

3. Task Overview

3.1. Opening a screen included in workflows

Can a user who is not the assignee of the task open and save a screen included in a workflow (e.g., a quotation to be approved)?
Anyone who has the required permission can open the screen. If another user than the user to whom the task is assigned tries to edit the screen, a message stating that the screen is included in a workflow is displayed.
taskoverview maskeBefidetSichInWF
Open figure

3.2. Opening the mask in an abas ERP workflow task does not work

If you open the mask, you get the error message: Set language: function is not implemented
This is due to an outdated GUI version. You can find the latest GUI version hier.

3.3. Missing permission for screen

Can a task (ERP Template) be performed if the user does not have the permission to access the screen in abas ERP?
When executing ERP commands with missing permissions, e.g., when creating or editing a customer (<(Customer)><(New)>,(Customer) or <(Customer)>${objectId}<(Edit)>,(Customer)), an error message of the ERP is displayed: "<Customer> <Edit>,Customer No permission to run command".
taskoverview fehlendeBerechtigung
Open figure

If the ERP permissions are changed for the running workflow, they become active immediately.
Example: A workflow which includes the permission DB Customer, Edit "-" (Customer must not be changed) is started. During editing, an error message informs the user about missing permissions. The permission is changed and the editing of the customer is permitted. This change becomes effective immediately and the task can be completed.

3.4. Workflow stops at User Task

The User Task has been completed/performed in Task Overview. However, the workflow does not continue. It is displayed continuously in Task Overview. What is the reason for this?
The following reasons are possible:

  • The current User Task is an abas ERP task which tries to map parameters that do not exist.

  • The current User Task is an abas ERP task and the entry of the abas BPM event handler in fop.txt is missing.

  • The next BPMN element, e.g, a task, gateway or event, has not been configured correctly. Therefore, the workflow always jumps back to the last User Task. A reason might be, for example, that the next element tries to access variables which do not exist.

3.5. ERP Task does not open native UI

When executing an ERP User Task via the native UI, the abas ERP screen does not open. What is the reason for this?
There reason for this may be that the Windows registry for using the native UI is not set.

3.6. Not every user should be able to start all workflows

Can be set up that only certain users can start certain workflows?
That can be adjusted in the Camunda surface, a detailed instruction can be found here.

4. Viewer

4.1. Opening Viewer from the PROCESSCENTER infosystem

How can Viewer be opened from the PROCESSCENTER infosystem?
If you want to open Viewer from the PROCESSCENTER infosystem, define the BPM_VIEWER_URL environment variable in ERP and assign it the URL of Viewer, e.g., BPM_VIEWER_URL = https://demo.eu.abas.cloud/workflow/viewer. Then you can use the Show workflow diagram button in the PROCESSCENTER infosystem to open Viewer.

5. Administration Overview

5.1. Trigger does not become active

The created trigger does not start a workflow in the defined screen event. What could be the reason for this?
Proceed as follows:

  1. Ensure that you have activated the trigger by activating the "Active" checkbox.

  2. Ensure that you have written the Event Handler workflow for the database group to the Fop.txt file.

  3. Ensure that there is only one trigger per database group.

  4. Ensure that you have created a User Task which represents the specified function in the trigger after the Start Event in Designer. It must be possible to start and execute the workflow also without a trigger. Further information can be found in the trigger documentation.
    trigger example workflow
    Open figure

5.2. Trigger Condition for tables

How can table fields be accessed in the trigger condition?
Here is an example in which the open quantity is checked in the delivery note. If the open quantity is unitQty for all columns 0, true is returned and the trigger is triggered.

if (bpmEditor instanceof de.abas.erp.db.EditableTableProvider){
     de.abas.erp.db.EditableTableProvider eWithTable = (de.abas.erp.db.EditableTableProvider<de.abas.erp.db.EditorObject>)bpmEditor;
     List<de.abas.erp.db.RowRecord> tableRows = (List<de.abas.erp.db.RowRecord>) eWithTable.getTableRows();
	 List<String> tableResult = new ArrayList<String>();
     for (de.abas.erp.db.RowRecord rowRecord : tableRows) {
      if(rowRecord.getDouble("unitQty") == 0) {
		tableResult.add("true");
      }
	  else {
	    tableResult.add("false");
	  }
     }

	 if (tableResult.contains("false")){
	   return false
	 }
	 else {
	   return true
	 }
 } else {
         return false
 }

6. Error handling

6.1. Log file in abas ERP

How can the log file be opened in abas ERP?
Proceed as follows:

  1. Open expert mode.

  2. Enter and execute !cat java/log/workflow.log.

6.2. Log file in the Docker container

How can the log file be displayed in the Docker container?
Proceed as follows:

  1. Start the console on the computer on which the Docker container should run.

  2. Enter the command docker logs abas-bpm-engine and execute it.
    Alternatively, enter the command docker logs abas-bpm-engine –tail 1000 and execute it in order to only output the last 1,000 lines.

6.3. Error message in the browser

How can the error message be displayed in the browser if, for example, a task cannot be completed?
Proceed as follows:

  1. In the browser, right-click and open "Inspect Element" or press F12.

  2. Go to the "Network" tab.

  3. Repeat the error/problem.

  4. Click the error line (highlighted in red).

  5. Go to the "Preview" tab.

  6. Check the error message.

6.4. NoSuchMethodError

Why is the error message NoSuchMethodError displayed in the workflow.log?
The abas-bpm-essentials app is no longer compatible. This can happen if you change to a more recent ERP version. Solution: Update the backend installation (abas-bpm-engine and abas-bpm-essentials app).

workflow.log
...
2017-09-21 15:34:54,103 DEBUG [....] DialogHelper       - There was an error while checking for the available workflow steps!
java.lang.NoSuchMethodError: de.abas.erp.db.EditorObject.abort()V
...

6.5. 401 in the browser

Why is the error message 401 unauthorized displayed in the browser?
The connection to your process engine (Camunda) cannot be established.
Proceed as follows:

  1. Ensure that you have written the correct IP address to the configuration.json file.

    1. If this is not the case, shut down the container first. For this, go to the folder in which the configuration.json file is located.

    2. Execute the command docker-compose down.

    3. Edit the file (e.g., using the vi editor).

    4. Execute the command docker-compose up -d.

6.6. 403 in the browser

Why is the error message 403 forbidden displayed in the browser?
The connection to your license server cannot be established.
Proceed as follows:

  1. Ensure that you have configured the license server in the docker-compose.yml file correctly (docker-compose.yml).

    1. If this is not the case, execute the command docker-compose down.

    2. Edit the file (e.g., using the vi editor).

    3. Execute the command docker-compose up -d.

6.7. 404 in the browser

Why is the error message 404 page not found displayed in the browser?
Your Docker container is not working properly.
Proceed as follows:

  1. Ensure that you have configured the docker-compose.yml file correctly (docker-compose.yml).

  2. Ensure that the container is running.

    1. Execute the command docker ps -a.

    2. Check the abas-bpm-engine container. If problems occur, restart the container.

6.8. 502 in the browser

Why is the error message 502 bad gateway displayed in the browser?
There may be a problem with the firewall. Please check your firewall settings, if necessary activate port 8088.

6.9. 504 in the browser

Why is the error message 504 timeout displayed in the browser?
There is a problem with abas Cloud Connect. Further information can be found in the Cloud Connect documentation.

7. Installation

7.1. ERP Connection doesn’t work

The ERP connection does not work, for example the infosystem Pocess Center (PROCESSCENTER) cannot be opened.
The web user establishes the communication between abas ERP and the abas BPM process engine.
Proceed as follows:

  • Ensure that the web user has been correctly configured and that there is only one record with this login (case sensitive).

  • Ensure that the user is present in the Administration Overview and Camunda and is in the erp_user group.

  • Ensure that the E-Mail field in the abas ERP password definition has the same e-mail address as in the Administration Overview.

  • Ensure that the abas ERP-Login field is activated in the abas ERP password definition.

  • Ensure that you are logged in to abas ERP with a BPM user.

  • Ensure that in an on-premises installation the user in Keycloak is filled with first and last name and has the same e-mail address as in the Administration Overview.

7.2. Invalid client

What must be done if the error invalid client occurs when installing the abas-bpm-essentials-app?
Execute eval $(sh denv.sh) in your client directory.

error on screen
...
Starting app installation for wkflw
Checking preconditions
An error occurred: /abas/s3: Ungültiger Mandant
/abas/s3: Kein Mandantenverzeichnis see log file /abas/s3/esdk-installations/wkflw/0.0.1-SNAPSHOT/installation.log for further information
...

7.3. FOP entry for identical database

How must the entry for the Fop.txt file be written in order to use an identical database?
Set the [C] flag (continue), e.g.: 35 neu maskende * * * [C] ow1/DMS.VK.BUCHEN.ARCHIV

7.4. Restoring an old version

What must be done to restore an older abas ERP version? What happens to running workflow instances and possibly locked abas ERP objects?
When saving the abas ERP state, you should always also back up the abas BPM state. In this way, you always have a consistent state when you reset your system to an older state.
If you have only backed up abas ERP and restored an older version of if, there may be workflow instances which were started after saving the abas ERP state and for which, for example, there is a locked object which does no longer exist after the reset. Then you must end all workflow instances in the Camunda interface for which abas ERP objects were used. Further information can be found under Ending a Camunda workflow instance.

7.5. Creating a user - permissions

If a user was created via the Tenant Management, where do the permissions for abas ERP come from?
The users are configured by Cloud Connect.
Further information can be found in the Cloud Connect documentation.

7.6. EDP Config

Where can I find the ID, host name, and DDE server?
The ID can be found in the mandantdir.env file. The host name can be found in the homedir.env file, the DDE server name can be found in the native UI under Settings and External interfaces.