- Starting a Process from Outside of Questetra BPM Suite (Preparatory Chapter)
- Starting a Process from Outside of Questetra BPM Suite (curl Chapter)
- Starting a Process from Outside of Questetra BPM Suite (Python Chapter)
- Starting a Process from Outside of Questetra BPM Suite (Error Chapter)
Starting a Process by Curl Commands or External Programs
When you want to Start a new Process in Questetra BPM Suite you usually follow a procedure like log in, then open the Start page and so on. However, if you set a Message Start Event (HTTP) in a Workflow App you can start a Process by sending an HTTP request from a curl command or your own program. This makes it possible to automatically start a Process without human intervention, and to build cooperation between systems.
The Message Start Event (HTTP) is, just like a normal Start Event, placed and used in the Workflow diagram. A user starts a new Process by clicking the “Start and Operate First Step” button manually for a Start Event, whereas with a Message Start Event (HTTP) a Process will be started when it receives an HTTP request from an external system. An endpoint is given to each Message Start Event (HTTP), and it can be used from the external system.
In this series of posts I will deal with the following content.
- Settings of Message Start Event
- Settings of IP Address Filter
- Simple Process Start by GET Request Transmission from Browser
- Starting a Process using Curl Command
- Starting a Process using Python
In this post I will cover up to doing a simple Process Start by sending a GET Request from a browser.
Settings of Message Start Event (HTTP)
To see how a Message Start Event (HTTP) works let’s create a simple App. Create a new App, then draw a Workflow diagram like the following figure. The Message Start Event (HTTP) icon is listed in the Start Event category in the advanced palette.
Concerning Data Items, only a Title is required for the moment, and for Data editing permissions, in the Message Start Event (HTTP) set the Title to “Editable”, and in the Check Task set it to “Only display”.
By default the Swimlane will be set to your account, so you can leave this as it is.
Once you’ve finished making the above settings save the App and release it. By doing this the endpoint is determined. In the Workflow diagram on the App details screen open the Message Start Event (HTTP) properties and you should be able to click the URL / Parameter Details button. Click it to open the Message Start Event (HTTP) Detail screen where you can confirm the endpoint URL and the Parameter names.
Simple Process Start by GET Request Transmission from Browser
First, let’s try starting a new Process by accessing a particular URL with a browser. Leave the Message Start Event (HTTP) Detail screen open since you will need the endpoint URL of the Message Start Event (HTTP) that you placed on the created App.
For this trial, we are going to send content to be input to the Title Data Item when starting the Process. By appending parameters to the end of the endpoint URL you can pass the data you want to send to the App. For example, when you want to set the title to “test” it will be in the following form.
Put a question mark (?) at the end of the endpoint URL, and following that, append data in the format “name=content“. The API key (halfwidth alphanumeric characters, at most 100 in length) is mandatory; as it is written in the list of Reception Parameters on the Message Start Event (HTTP) details screen, copy it from there and paste it into the URL. Reception Parameter Names are also listed in the same list.
When you finish composing the URL, access it with a browser and a 403 error will be returned. That is because the access was blocked by the IP address filtering function of Questetra BPM Suite. When using an API from an external network it is necessary to relax the IP address restriction appropriately on the Questetra BPM Suite side.
Setting the IP Address Filter
Let’s learn how to register the IP address used to access the endpoint to Questetra BPM Suite. With the default settings, all access to the Message Start Event (HTTP) from external networks is denied.
To go to the IP address filter settings, go to the System Settings and in the left menu under the Security section click on IP Address Filtering. Let’s set the access permissions for the Message Start Event (HTTP) of the App you created earlier.
Specifying Path Prefix
You can set the IP address filter for each path prefix. To restrict the IP address to a specific Message Start Event (HTTP) add an item Message Start Event (HTTP) – a specific node. You can select it in the pull-down menu in Path Prefix in the “Message Start Event/Catching Message Intermediate Event Configuration” section. A Path Prefix for a particular node is as follows.
The processModelInfold part refers to the number assigned to each application, and nodeNumber refers to the number assigned to each node on the workflow diagram. Since these two numbers are also included in the endpoint URL of the Message Start Event (HTTP), I recommend you check them. For example, if the endpoint URL is;
the processModelInfold is 8, and the nodeNumber is 0. Confirm the endpoint URL from the workflow diagram on the app detail screen.
Another way to confirm the App ID is available, since the processModelInfold is equal to the App ID without the “m”. For the nodeNumber, it is indicated on the properties screen of each node on the Workflow diagram.
Specifying IP addresses to permit access
You can specify an IP address to permit for each Path Prefix. Please enter the IP address in the following manner.
- Enter a global IP address.
- Please use IPv4 as IPv6 is not supported.
- Specification of IP address can be both single and ranged.
- Please use a Subnet Mask for ranged specification. (e.g. 22.214.171.124/22)
- Access from all global IP addresses is permitted if 0.0.0.0/0 is specified.
- Access from all global IP addresses is denied if nothing is specified (blank).
In addition, longer Path Prefixes are preferentially applied to the IP address filter settings. For example, even if 0.0.0.0/0 is permitted for the Global Configuration and for a /System/-level Path Prefix, if a stricter IP address filter is set for a specific node, the setting to that node will be applied. The order of the setting items does not affect the priority. Let’s try setting a narrow range of access permissions, such as a single IP address to the Message Start Event (HTTP) of the App you created earlier. Then open the Message Start Event (HTTP) Details through the Workflow diagram and confirm the Allowed Hosts/Networks. You see that the settings value has been applied preferentially since the Path Prefix is longer than the other settings items.
Retrying Process Start from Browser
After registering the IP address you will use for accessing the endpoint, let’s try accessing the Message Start Event (HTTP) from the browser again. This time, you may open a page on which only numbers are displayed, but you can just ignore that. When you log in to Questetra BPM Suite with your account (Operator of the Swimlane) you will see that a Process has been started and the Check Task has been allocated to you. Also, confirm whether its title is the same one you passed to the parameter.
In this way you can start a Process without opening Questetra BPM Suite. In the next post, I will mention methods of starting a Process, even without a browser, from a command line using Curl command.
Appendix: Details of IP address filtering settings
Enabling/disabling of IP address filtering
It can be set using the Enable IP Address Filtering checkbox. When you uncheck the box to disable it the following settings items will vanish since filtering is not performed. Basically, please do not disable it.
You can specify an accessible IP address for your entire Questetra BPM Suite environment. The access permission here also applies to icons and events other than the Message Start Event/Catching Message Intermediate Event.
Message Start Event/Catching Message Intermediate Event Configuration
You can specify the access permission to a range finer than the Global Configuration. As we used the Message Start Event (HTTP) in this article, you can select from;
- Message Start Event (HTTP) – all apps
- Message Start Event (HTTP) – a specific app
- Message Start Event (HTTP) – a specific node
The Path Prefix will not be determined until the target App is created if using “- a specific app”, and until the App is Released if using ” – a specific node”. The format of the Path Prefix is as the following.
|Access Permission Range||Path Prefix|
|– all apps||/System/Event/MessageStart/|
|– a specific app||/System/Event/MessageStart/(processModelInfoId)/|
|– a specific node||/System/Event/MessageStart/(processModelInfoId)/(nodeNumber)/|