Loading...
Follow examples that use Collections to guide and inspire your own business solutions.
Loading...
Loading...
Loading...
Follow examples that use ProcessMaker Decision Tables to guide and inspire your own ProcessMaker implementations.
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Follow examples that use ProcessMaker Script Executors to guide and inspire your own ProcessMaker implementations.
Loading...
Loading...
Loading...
Follow examples how to configure settings in ProcessMaker Platform.
Loading...
Loading...
Follow examples that use Data Connectors to guide and inspire your own business solutions.
Follow examples that use DocuSign to guide and inspire your own business solutions.
Follow examples that use Process Design to guide and inspire your own ProcessMaker implementations.
Learn how to reference Request data and Collection record data as parameters when calling a ProcessMaker Platform API endpoint.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Collections; PMQL; Request Variable
In the example below, reference Request data and data from a specified r in the URL query to a ProcessMaker API endpoint. Determine dynamically the specific Collection record by including a PMQL query within a ProcessMaker Platform API call. The PMQL query uses a Request variable's value using mustache syntax for the Request variable's value in the URL to the API call.
Consider the following use case. Reference Collection data from Collection 5
for records created based on Requests started on a specific date. Determine the date dynamically by referencing a date in Request data stored in a Request variable date
. The date that each Request starts is stored in another Request variable date_work_start
.
Log on to ProcessMaker Platform.
Open a new Web browser tab or window.
Append to your URL the Collections syntax as desired such as https://MyOrganization.processmaker.net/api/1.0/collections/5/records
.
In the URL above, collections/5/records
calls for the records in Collection 5
.
Perform PMQL syntax as desired such as https://MyOrganization.processmaker.net/api/1.0/collections/5/records?pmql=data.date_work_start
. Where data
is calling the information of the collection records which specifically call information in the variable date_work_start
.
Add a Request variable to your PMQL such ashttps://MyOrganization.processmaker.net/api/1.0/collections/5/records?pmql=data.date_work_start="{{date}}"
, where the {{date}}
is a comparison value that requires quotations marks.
Optionally, test your URL using a Data Connector Endpoint.
Learn how to authenticate applications using password authentication.
Some client applications use Password Grant authentication, despite that this authentication type is deprecated in OAuth 2.1 specification. Use the following example to allow password authentication.
This example requires the following procedures and possibly two different roles to perform them in this order:
ProcessMaker Platform administrator: Configure password authentication for the client application.
Application developer:
Follow these steps to configure password authentication for the client application:
View authenticated clients. The Auth Clients page displays.
In the Name setting, enter a name for this client authentication. This examples uses Client Authentication for Client Application
.
Click Save. A new authenticated client is created.
Follow these steps to prepare the first API call:
Prepare the body of your first request in JSON format. Replace the values in brackets below with the actual values from your environment.
Send the prepared JSON body as a POST
request to the endpoint /oauth/token
in your ProcessMaker Platform instance. Below is an example using the test environment from the image above. Most notable is the client_id
value, which is the row designated in the Client ID column of the Auth Clients page, and its client secret value.
Send the first request. Your ProcessMaker Platform instance responds in JSON format. This is the bearer token from which future API calls may be used. Below is an example of the bearer token.
Below is an example of using the bearer token to make a request that lists all users.
Note that the response containing your bearer token also contains a time of expiration and a refresh token. The expiration time is the number of seconds until the bearer token expires. After that time, request a new bearer token using the refresh token. Below is an example API call that obtains a new bearer token using the refresh token.
Intended audience: Process Owners and Designers
Tags: Decision Table; Request Variables; Formulas
This example show how to use formulas in a Decision table. The Decision table used in this example has four input columns: Gross Income, Credit Score, Loan Amount Requested, and Net Income. The table also has one output column: Approval Status.
Click on the following link to download this Decision Table.
Follow these steps to import and use this Decision Table:
Click Browse to locate the downloaded Decision Table.
Click Import. The Import Decision Table screen displays to indicate that the Decision Table imported correctly.
From the Preview options on the right, select Sample Input to test the Decision Table.
Enter the following JSON data.
Modify the JSON as needed to try out different input values.
Insert a Decision Task into a process and configure properties to use Decision Tables in your processes.
Follow an example that uses a Data Connector to get a list of worldwide universities that become the options in a Select List control within a Screen.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Data Connector; Select List control; higher education; Screen design
This example demonstrates how a Select List control in a Screen can display the names of major universities around the world as its options in a drop-down menu. The options in this Select List control come from a Data Connector that calls a third-party Application Program Interface (API) when the Screen containing the Select List control opens. Click in the Select List control's drop-down menu to select an option or start typing into the control to filter those university names that match the text entered into the control.
Note that after creating this Data Connector, it may be used for any ProcessMaker Platform asset that can use a Data Connector. It is not limited to being used with a Select List control.
Click the video below to watch a demonstration of this example.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Viewing time: 9 minutes; contains narration
Note: The video demonstrates how to configure the Data Connector using obsolete settings. The written form of this example documents how to configure the Data Connector using current settings.
This example contains the following procedures in this order:
Log on to ProcessMaker Platform.
Click the Designer option from the top menu. The Processes page displays.
Verify the Data Connector Category exists in which to assign this Data Connector. If this Category does not exist, see Create a New Data Connector Category.
In the Name setting, enter the name of the Data Connector. This example uses the name Get List of Major Universities in the World
.
In the Description setting, enter a description of this Data Connector. This example uses the description:
This ProcessMaker Platform Data Connector gets a list of major universities around the world in JSON structure.
From the Authentication Type drop-down menu, select the No Auth option. This example uses this option because the host does not require authentication from its publicly accessible API. Note that the video of this example uses Basic Auth, which is not necessary for this example since the data source is publicly accessible.
Click Save. The Data Connector is created and the Resources tab displays.
In the Name setting, optionally edit the purpose for this Resource. The value the Name setting displays from the ProcessMaker Platform asset when configuring the data source from that asset. In this example, this setting value displays from the Select List control to select this Resource to get the list of universities. Therefore, provide a concise but relevant purpose for this Resource so other Process designers understand its function. This example uses list universities
for this setting.
In the Description setting, enter a description of this Resource. This example uses the following description: This Resource gets a JSON list of worldwide universities.
From the Method drop-down menu, select the GET option. The GET method reads data.
Notice which element in each JSON object within the API endpoint response contains the name of the university. Look at the first JSON object that is the list of universities:
{
"domains": [
"marywood.edu"
],
"country": "United States",
"web_pages": [
],
"name": "Marywood University",
"state-province": null,
"alpha_two_code": "PA"
},
The name
element contains the name of each university in this JSON object. Make note of the element's name that contains relevant data from a data source, as the ProcessMaker Platform asset requires this element name when configuring which data that asset requires from the Data Connector's Resource response. In this example, the Screen containing the Select List control is the ProcessMaker Platform asset.
Click Save to save the Resource. The Data Connector is configured for this example.
Your user account or group membership must have the following permissions to configure a Select List control unless your user account has the Make this user a Super Admin setting selected:
Screens: Edit Screens
Screens: View Screens
See the Screens permissions or ask your Administrator for assistance.
Create a Screen for this example. This example uses the Form type and the name Data Connector Example Using a Select List Control
for the Screen.
Most settings for the Select List control are outside the scope of this example. The default settings can be used for required settings, and optional settings do not need to be configured.
From the Data Source drop-down menu, select the Data Connector option. Settings in the Data Source panel display to configure which Data Connector and Resource this control uses as its data source.
In the Options Variable setting, keep the default response
value. This setting represents the name of the JSON object that contains the response from the Data Connector's Resource. In this example, response
will contain the JSON array of universities.
From the Type of Value Returned drop-down menu, select the Single Value option because this example requires only one element value from the JSON response.
In the Value setting, enter the JSON element name that contains the value to use as the Select List option in each JSON object of the Resource response. In this example, enter name
because the name
JSON element contains the name of each university in each JSON object.
In the Content setting enter name
for the same reason as above.
From the Data Connector drop-down menu, select the Data Connector the Select List control uses to access the data source. For this example, select Get List of Major Universities in the World.
From the End Point drop-down menu, select which Resource in the selected Data Connector to access the data source. For this example, select list universities.
Add a Submit Button control to the Screen page so that the Screen can be submitted.
In the Submit Button control, enter a value for the Variable Name setting. This example uses submit
for the Variable Name setting value.
Save your Screen. The Select List control is configured for this example.
Create a new Process. This example uses the Process name List Universities Example
.
Add the following BPMN elements to the Process model in that order, and then connect them with Sequence Flow elements:
From the Form Task element, select the Screen for this example. This example uses the Screen named Data Connector Example Using a Select List Control
.
Save your Process model. None of the other Process model settings are in the scope of this example. The Process is configured for this example.
The example is ready to demonstrate. To demonstrate this example, start a Request of this Process.
Start a Request of this Process. Remember that the Process name is List Universities Example
.
Open the Form Task from your To Do Tasks. The Process model is configured by default that the Request starter is the Task assignee. After opening the Form Task, the Screen with the Select List control in the example displays.
Decision Tables using Collections and Variables in the Inputs
Intended audience: Process designers, Web designers
Tags: Decision Table; Request Variables; Magic Variables; Collections; Mustache Syntax
This example compares a loan ratio, which is stored in a Request variable with credit scores, that are stored in a Collection. Then, this Decision Table rates a loan ratio and credit scores to see if lenders are creditworthy for a loan.
Follow these steps to add a Decision Table:
It displays the following:
The input Borrower Credit Score, which conditions the number score from the Collection FICO Score that has been previously imported. The Collection is called using mustache syntax, calls the row number, and the Collection field score.
The input Front-End Ratio conditions the variable loanRatio
by entering mustache syntax and selecting the variable.
According how the Inputs rate, the Borrower Rating output displays features for lenders and its creditworthiness.
On the left side of the Decision Table, Click Sample Input. The JSON data model for the Decision Table displays.
Add the loanRatio
object in the JSON model.
Enter values as follows:
Click Run.
If the Decision Table evaluates successfully, its output displays in the Output panel as follows:
Follow an example that demonstrates how to configure the DocuSign to integrate with the DocuSign eSignature platform.
Intended audience: Administrators, Process designers
Tags: DocuSign; Process design
To use DocuSign eSignature with the DocuSign, you require the following from the DocuSign platform:
a DocuSign eSignature account
at least one document template with at least one defined role from which to use with your document requiring signatures
a DocuSign app to manage authentication and integration with ProcessMaker Platform
ProcessMaker Platform does not provide a DocuSign eSignature account. However, this example provides URLs to how to design a DocuSign eSignature template and DocuSign app.
From the DocuSign platform, upload your document, create a DocuSign template, and then add at least one role in that template. This template dictates which signers are required to sign this document.
Follow these instructions from DocuSign to prepare your document:
From the DocuSign platform, create a DocuSign app. Get both the DocuSign integration key and the generated secret key from the DocuSign platform, and then add the redirect URI for the callback after DocuSign authenticates a valid DocuSign app in ProcessMaker Platform.
Select the Authorization Code Grant authentication type to generate a secret key for ProcessMaker.
In the ADD URI setting, enter the URL for the callback after DocuSign authenticates a valid DocuSign app in ProcessMaker Platform. Use the following format for this URI:
https://<ProcessMakerPlatformURL>/docusign/authorization
where <ProcessMakerPlatformURL>
is the URL to your ProcessMaker Platform instance.
From your ProcessMaker Platform instance settings, add the DocuSign app's integration and secret key acquired from the DocuSign platform. This step may require the assistance of an Administrator
Follow these steps to configure ProcessMaker Platform settings with your DocuSign account information for this document:
Click the Admin option from the top menu. The Users page displays.
Click the DocuSign tab.
Enter the DocuSign app's integration key you stored for later reference, and then click Save.
Enter the DocuSign app's secret key you stored for later reference, and then click Save.
Enter https://account-d.docusign.com
as the DocuSign server name, and then click Save.
Click the Grant DocuSign Access button. A Task displays with a button labeled Authorize Access DocuSign.
Click the Authorize Access DocuSign button to grant the DocuSign eSignature platform access to your ProcessMaker instance after it authenticates your DocuSign app.
Click the Allow Access button.
From your Process model, ensure that a DocuSign connector is in the Process to manage acquisition of the digital signatures for the document, and then configure that DocuSign connector.
Follow these steps to configure the DocuSign connector for this document this document:
Expand the Document for Signature panel. Settings for this panel display.
After selecting the DocuSign template, roles populate from the selected template. Select each role that is a recipient of the document for signing, and then configure the email recipient and message that displays to each role when this document sends to each recipient's email for signing. Configuring the email recipient associates the vendor with one of the following ProcessMaker Platform participant types that would receive the document to provide a signature:
Connect to the API for your ProcessMaker Platform instance, such ashttps://MyOrganization.processmaker.net/api/1.0
. For more information, see .
Click the +Auth Client button. The Create Auth-Client screen displays.
Select the Enable Password Grant setting.
Locate the authenticated client in the Auth Clients page, and then click the Copy Client Secret to Clipboard icon.
Click the Import button. The Import Decision Table displays.
From the list of Decision tables, click the menu next to the table just created, and select Edit to open the Decision Table for editing.
Click on the formula icon to view the formula defined on this column. This formula uses Request Variables, income and tax, which are part of the JSON data for the request.
Click Run to test the table. The table output will be shown in the Output section.
Click the Data Connectors iconfrom the left sidebar. The Data Connectors tab displays all Data Connectors in the Data Connectors page.
Click the +Data Connector button. The Create Data Connector screen displays.
From the Category drop-down menu, select the Data Connector Category to assign this Data Connector. This example uses the following settings.
Click the +Resources button. The Create Resource screen displays.
In the URL setting, enter the following URL for this example: http://universities.hipolabs.com/search?
. This URL is truncated from the host's documented example how to search its public API.
Click Add. The new Resource displays in the Configuration tab.
Click the Send button. If configured correctly, the Response Body tab displays the Resource response.
Expand the Data Source panel.
Click the Select List control. The list of universities displays in the same order as they are listed in the host's JSON array. When the Screen opens for the Form Task, the Select List control uses the Data Connector to call the host's Application Program Interface (API) and get the complete JSON array, but only display the name
element value for each JSON object in that array.
Type in the Select List control to filter the list of universities that display for selection in the control. For example, start to type Harvard
to select Harvard University.
This example shows Decision Table Inputs calling through . And you can call specific rows and fields delimited by dots.
This example also shows Decision Table Inputs calling and through mustache syntax.
To use the Decision Table with a variable, called loanRatio
that works on a to enter data.
fico_scores.json, which is at the end of this example. It has data about credit scores, which is on the page .
Decision Table v4.json, which is at the end of this example. The editor displays the imported Decision Table.
to see data outputs.
This example demonstrates how to administer a account with the DocuSign service. DocuSign eSignature provides a service to digitally sign legally-binding documents including contracts, account openings, and invoices.
.
When creating the DocuSign template, ensure to add the .
Follow DocuSign's guidelines to , keeping the following points in consideration:
Copy the Integration Key setting to use when .
Copy the Secret Key setting to use when .
.
to ProcessMaker Platform.
Click the Settings iconfrom the left sidebar. The Settings tab displays all Administrator settings.
Click the Edit iconfor the Integration Key setting. The Integration Key screen displays.
Click the Edit iconfor the Secret setting. The Secret screen displays.
Click the Edit iconfor the Server setting. The Server screen displays.
The DocuSign for ProcessMaker Platform, via a Task, calls the DocuSign eSignature platform. In doing so, DocuSign returns the call as entered in the redirect URI for your DocuSign app. When successful, DocuSign requests access to your ProcessMaker Platform instance. (If you have already authorized your DocuSign app access, then the Settings page displays.) If a DocuSign error displays, ensure that the redirect URI configured in your DocuSign app is correct.
.
, and then click the Open Modeler iconto edit the selected Process model model to use DocuSign to manage signatures for this document.
in the Process model.
From the Template ID setting, select the DocuSign template that references the document to send for eSignature. The template list populates from the DocuSign server specified in the . For this example, use the template named Vendor Agreement since this is the name of the template .
User: Select the User option to specify a user as the document recipient. When selected, the Send to User setting displays below the Select a Type setting to select which user is the document recipient.
Requester: Select the Requester option to deliver the document to the Request starter for signature.
User ID: Select the User ID option to specify the user ID associated with a user as the document recipient. When selected, the Send to User ID setting displays below the Select a Type setting to enter the user ID associated with the user as the document recipient for signature.
Email Address: Select the Email Address option to enter the email address and name for the document recipient for signature. When selected, the Recipient Email and Recipient Name settings display below the Select a Type setting to enter the document recipient's email address and name, respectively.
Process Manager: Select the Process Manager option to indicate that the is the document recipient for signature.
.
for the Process.
Follow examples of how to configure Conditional Start Events with Global Data Expression Syntax.
Conditional events are triggered when an external condition is enabled or disabled. The data that can be used to assert conditions can be divided into two groups:
Request Data, which is all the request’s variables.
Global Data, which is all the data external to a request such as the server time, user data, or other requests data. ProcessMaker publishes some functions with the Symfony Formal Expression that allow access to the most relevant global data. For more information about these functions, see Global Data Expression Syntax.
In Intermediate Conditional Event elements we can use both Request and Global Data. Conditional Start Event elements use Global Data only.
The following examples use Global Data Expression Syntax functions in the Condition setting of the Conditional Start Events configuration.
Start a Request when the current year is 2022: date(“Y”) == 2022
Start a Request every time that the current minute is 2: date("i") % 2 == 0
Start a Request when the environment variable API_TIMEOUT is set to a time that is greater than 30000: env(“API_TIMEOUT”) > 30000
Start a Request when the email server has an SMTP configuration: env(“MAIL_DRIVER”) == “smtp”
Start a Request when the third node and the first Request of a Process is triggered: getActiveTaskAt('node_3', 1) != null
The syntax allows you to navigate through attributes using the dot notation. Then, start a Request when the Task with ID node_3
of Request 1 is assigned to a user from Argentina:
getActiveTaskAt('node_3',1).user.country == “AR”
Start a Request when user 1 has firstname test
: lowercase(user(1).firstname) == “test”
Start a Request when a Process ID 86 is present in the database: process(86) != null
Start a Request if the Process 86 description is set to Outage
: process(86).description == “Outage”
Access the Process's Request information. For example, start a Request when Process 86 has one or more Requests: process(86).requests.count()>0
Start a Request when the last added Request is assigned to a user with ID 2: process(86).requests.last().user_id == 2
Start a Request when the Request 1000 is created: request(1000) != null
All elements of Request data can be accessed using arrays. For example, start a Request when Request 1 stock is less than 100: request(1).data['stock'] < 100
Start a Request when Request 1 has a user with username admin
assigned to it: request(1).data[”_user”][”username”] == “admin”
Start a Request when Request 1 is created later than the first day of 2023: request(1).created_at > '2023-01-01'
Start a Request when user 1 has firstname TEST
: uppercase(user(1).firstname) == “TEST”
Start a Request when user 1 changes its username to anonymous
: user(1).username == “anonymous”
Syntax allows the use of regular expressions. For example, starts a Request when the user 1 firstname starts with Admin
: user(1).firstname matches "/^Admin*/" == 1
Follow examples that use Screen Builder to guide and inspire your own ProcessMaker implementations.
Follow an example that uses the Enable Password Protect setting for Web Entries in Start Event elements.
Intended audience: Process designers, Web designers, graphic designers, software developers
Tags: Exclude Data, Web Entry, Start Event
This example demonstrates how to configure Web Entry in Start Events. This example demonstrates enhanced security by using the Enable Password Protect setting in the Start Event element's Web Entry that requires the Request starter to enter a password to display the Web Entry Screen. This use case can be useful to update this secure-level password every week, for example.
Follow these guidelines to use the Enable Password Protect setting for a Web Entry in a Start Event element:
Design a Form-type Screen with two Line Input controls and a Submit Button control.
Design a Process with the following elements:
Start Event element using Web Entry
Form Task element
Assign your created Screen to the Start Event element as Web Entry and the Form Task element.
Configure the Web Entry in the Start Event element as follows:
In the Mode setting, select Anonymous.
In the Screen Associated setting, select a screen to display for the Web Entry.
In the Completed Action setting, select Screen.
In the Screen For Completed setting, select a screen after the Web Entry screen submit.
Check the Enable Password Protect setting, the Password Protect setting displays.
In the Password Protect setting, enter a password.
Start a Request of this Process.
Follow an example that uses the Exclude Data setting for Web Entries in Form Task elements.
Intended audience: Process designers, Web designers, graphic designers, software developers
Tags: Exclude Data, Web Entry, Form Task
This example demonstrates how to configure Web Entry in Form Tasks. This Web Entry uses the Exclude Data setting to hide sensitive data, such as when displaying a code.
Follow these guidelines to use the Exclude Data setting for a Web Entry in a Form Task element:
Design a Form-type Screen with two Line Input controls and a Submit Button control.
Design a Process with the following elements:
Start Event element
Form Task element
Form Task element using Web Entry
Assign your created Screen to the first and second Form Task elements.
Configure the Web Entry in the second Form Task element as follows:
In the Mode setting, select Anonymous.
In the Completed Action setting, select Screen.
In the Screen For Completed setting, select a Screen after the Web Entry Screen submission.
In the Exclude Data setting, click the plus icon.
Enter the variable that will not display in the Web Entry Screen. For this example, it is Code
.
Start a Request of this Process.
Follow an example that uses the Allow Query String Data setting for Web Entries in Start Event elements.
Intended audience: Process designers, Web designers, graphic designers, software developers
Tags: Embed Code, Allow Query String Data, Web Entry, Start Event
This example demonstrates how to configure Web Entry in Start Events. Save your query string information in the Request data by using the Allow query string data setting. This use case can be useful when sharing a Web Entry with multiple participating stakeholders: the shared query string data is stored for different countries as this example demonstrates. If you do not want to show the URL information that could result complex to the users, with this use case you can embed the Web Entry in a HTML file.
Follow these guidelines to use the Allow query string data setting for a Web Entry in a Start Event element:
Design a Form-type Screen with two Line Input controls and a Submit Button control.
Design a Process with the following elements:
Start Event element using Web Entry
Form Task element
Assign your created Screen to the Start Event element as Web Entry and the Form Task element.
Configure the Web Entry in the Start Event element as follows:
In the Mode setting, select Anonymous.
In the Screen Associated setting, select a Screen to display for the Web Entry Task.
In the Completed Action setting, select Screen.
In the Screen For Completed setting, select a Screen that displays after the Web Entry Task is submitted.
Select the Allow query string data setting to automatically save your string data information when running a Request. Otherwise, additional information in the URL is not stored.
Start a Request of this Process.
Below is an example of an HTML file with the embedded code.
Follow an demonstrative example that shows and hides controls in a Screen based on visibility rules set by the selected button.
Intended audience: Process designers, Web designers, graphic designers
Tags: Submit Button control; Rich Text control; Multicolumn / Table control; visibility rule; Screen design
Use visibility rules to design how Screen Builder controls show and/or hide based on Request variable values while that Screen is open during a Task. The following example demonstrates how to use visibility rules in Screen design. From among four different Submit Button controls, after one button is selected, one among four Rich Text controls display while the others hide. This example demonstrates how to show and/or hide controls in the Screen as the user interacts with it.
This example contains the following procedures in this order:
Log on to ProcessMaker Platform.
In the Name setting, enter the name of the Screen. This example uses the name Show and Hide Controls Based on Visibility Rules
.
In the Description setting, enter a description of this Screen.
From the Type setting, select the Form option.
Click Save. The Screen is created and opens in Screen Builder to design.
This example uses four (4) columns. Since the total column span must equal to 12, each of the four columns must be a column span setting of 3
. Follow these steps to configure these four columns:
In the Column Width setting, enter 3
.
Click OK. The new column with a column span setting of 3
displays.
Remove the other default column that has a column span of 6.
Repeat steps 2 through 4 to add a third column with a column span of 3.
Repeat steps 2 through 4 to add a fourth column with a column span of 3.
This example uses four Submit Button controls from which to demonstrate how Rich Text controls show and hide based on which of the four buttons is selected.
Add the first Submit Button control to the leftmost column in the Multicolumn / Table control, and then configure that control with the following setting values:
Label: In the Label setting, enter Tip 1
for this example.
Variable Name: In the Variable Name setting, enter tip
for this example. Note this value because this will be used for the other Submit Button controls as well.
Value: In the Value setting, enter 1
for this example to represent the first of the four Submit Button controls. When this button is clicked, this control sets the tip
variable to 1
.
Type: From the Type setting in the Configuration panel, select the Regular Button option for this example. The default Submit Button option submits the Screen when used in a Request, which is not the intended design for this example. Furthermore, when previewing this Screen, a message displays that the Screen was submitted.
Add the second Submit Button control to the second column in the Multicolumn / Table control, and then configure that control with the following setting values:
Label: In the Label setting, enter Tip 2
for this example.
Variable Name: In the Variable Name setting, enter tip
for this example.
Value: In the Value setting, enter 2
for this example to represent the second of the four Submit Button controls. When this button is clicked, this control sets the tip
variable to 2
.
Type: From the Type setting in the Configuration panel, select the Regular Button option.
Add the third Submit Button control to the third column in the Multicolumn / Table control, and then configure that control with the following setting values:
Label: In the Label setting, enter Tip 3
for this example.
Variable Name: In the Variable Name setting, enter tip
for this example.
Value: In the Value setting, enter 3
for this example to represent the third of the four Submit Button controls. When this button is clicked, this control sets the tip
variable to 3
.
Type: From the Type setting in the Configuration panel, select the Regular Button option.
Add the fourth Submit Button control to the fourth column in the Multicolumn / Table control, and then configure that control with the following setting values:
Label: In the Label setting, enter Tip 4
for this example.
Variable Name: In the Variable Name setting, enter tip
for this example.
Value: In the Value setting, enter 4
for this example to represent the fourth of the four Submit Button controls. When this button is clicked, this control sets the tip
variable to 4
.
Type: From the Type setting in the Configuration panel, select the Regular Button option.
This example uses four Rich Text controls that show or hide based on which of the four Submit Button controls are selected.
Add the first Rich Text control below the Multicolumn / Table control, and then configure that control with the following setting values:
Content: In the Content setting, enter text that displays when this Rich Text control shows. This example uses the following text: <h2>Tip 1</h2>
<p>This is Tip 1 that displays when the "Tip 1" button is selected.</p>
Visibility Rule: In the Visibility Rule setting in the Advanced panel, enter tip == "1"
. Whenever the variable tip
equals 1
, then this control displays. In this example, tip
is set to 1
only when the Submit Button control that is labeled Tip 1 is selected.
Add the second Rich Text control below the first Rich Text control, and then configure that control with the following setting values:
Content: In the Content setting, enter text that displays when this Rich Text control shows. This example uses the following text: <h2>Tip 2</h2>
<p>This is Tip 2 that displays when the "Tip 2" button is selected.</p>
Visibility Rule: In the Visibility Rule setting in the Advanced panel, enter tip == "2"
. Whenever the variable tip
equals 2
, then this control displays. In this example, tip
is set to 2
only when the Submit Button control that is labeled Tip 2 is selected.
Add the third Rich Text control below the second Rich Text control, and then configure that control with the following setting values:
Content: In the Content setting, enter text that displays when this Rich Text control shows. This example uses the following text: <h2>Tip 3</h2>
<p>This is Tip 3 that displays when the "Tip 3" button is selected.</p>
Visibility Rule: In the Visibility Rule setting in the Advanced panel, enter tip == "3"
. Whenever the variable tip
equals 3
, then this control displays. In this example, tip
is set to 3
only when the Submit Button control that is labeled Tip 3 is selected.
Add the fourth Rich Text control below the third Rich Text control, and then configure that control with the following setting values:
Content: In the Content setting, enter text that displays when this Rich Text control shows. This example uses the following text: <h2>Tip 4</h2>
<p>This is Tip 4 that displays when the "Tip 4" button is selected.</p>
Visibility Rule: In the Visibility Rule setting in the Advanced panel, enter tip == "4"
. Whenever the variable tip
equals 4
, then this control displays. In this example, tip
is set to 4
only when the Submit Button control that is labeled Tip 4 is selected.
Click the Preview button if you are in Design mode. The four Submit Button controls display.
Upon selection, the Rich Text control displays in which its Visibility Rule setting is set for tip == "1"
. When that Submit Button control is selected, it sets the variable tip
to the value 1
. ProcessMaker Platform evaluates all visibility rules that meet that condition, and then displays those controls that meet that condition. All other controls in the Screen hide.
Follow an example that uses a Page Navigation control to navigate between multiple pages within a Screen.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Page Navigation Control; multiple page form; Multicolumn / Table control; Screen design
The image below shows a multi-page Screen that uses Page Navigation controls in the following ways:
Each Page Navigation control at the bottom of of each Screen page guides the Request participant in a sequential order of the multiple pages similar to a wizard. Information must be provided or reviewed in a specific order.
Page Navigation controls along the top of each all pages in the Screen provide menu navigation similar to a website.
Follow an example that uses a Collection containing records of all countries and their regions that display in dependent Select List controls.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Collections; Select List control; dependent fields; geographical location; Screen design
Each record in the Collection contains multiple fields, including but not limited to the following:
Country Name
Sub-country (region or city)
For the purposes of this example, only the country name and region are relevant. Below is an example of a Collection with the relevant country name and associated region or city within that record after columns within the Collection are configured.
The two Select List controls for this example both reference the same Collection as the data source for their options. When a country is selected from one Select List control, only the regions associated with that selected country are available as options in the second Select List control: the second Select List control depends on the first Select List control for its options.
This example requires the following procedures:
Download the attached ZIP file below the following screenshot.
Extract the JSON file contained within the downloaded ZIP file. This is the Collection for this example.
Add the Select List control from which to select a region from the selected country in the first Select List control. This is the dependent control.
For the first Select List control, configure the following settings:
Variable Name: Enter Countries
in the Variable Name property.
Data Source: Select the option Collection from the Data Source property.
Label: From the Label drop-down menu, select the option Countries
.
For the second Select List control, configure the following settings:
Variable Name: Enter Countries
in the Variable Name property.
Data Source: Select the option Collection from the Data Source property.
Label: From the Label drop-down menu, select the option Countries
.
Value: From the Value drop-down menu, select the option Countries
.
Select a country from the list. The Regions in the Selected Country Select List control only displays regions from the selected country. The second Select List control depends on the first for its options.
Follow an example that uses two Data Connectors and a Watcher to get a list of all countries and their regions that display in dependent Select List controls.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Data Connector; Watchers; Select List control; dependent fields; geographical location; Screen design
Click the video below to watch a demonstration of this example.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Viewing time: 21 minutes; contains narration
Note: The video demonstrates how to configure the Select List controls using obsolete settings. The written form of this example documents how to configure the Select List controls using current settings.
This example refers to Request data, Request variables, and uses JSON. If you are not familiar with these concepts or JSON, see the following topics for a primer:
This example contains the following procedures in this order:
Create the Data Connector that gets the list of states and/or provinces for the dependent Select List control based on the first Select List control's option selection: After selecting a country as an option from the first Select List control, create another Data Connector that gets the region for the selected country based on its two-letter ISO country code.
Click the Designer option from the top menu. The Processes page displays.
In the Name setting, enter the name of the Data Connector. This example uses the name Call Countries API
.
In the Description setting, enter a description of this Data Connector.
From the Authentication Type drop-down menu, select the No Auth option. This example uses this option because the host does not require authentication from its publicly accessible API.
Click Save. The Data Connector is created and the Resources tab displays.
Go to the Configuration tab to disable the Enable SSL certificate verification setting, which is enabled by default.
Click Save. The Data Connector is updated.
In the Description setting, enter a description of this Resource. This example uses the following description: Gets a list of countries.
.
From the Category drop-down menu, select the Data Connector Category to assign this Resource.
From the Method drop-down menu, select the GET option. The GET method reads data from the API host.
Notice which element in each JSON object within the resource response contains the name of the country. Look at the first JSON object. Notice the following key names in this JSON object:
name
: Notice that the name
key name in the JSON object contains the name of each country; the value of the name
key name displays as each option in the Select List control from which a country name is selected.
Click Save to save the Resource. The Data Connector is configured for this example.
Click the Designer option from the top menu. The Processes page displays.
In the Name setting, enter the name of the Data Connector. This example uses the name Get Regions
.
In the Description setting, enter a description of this Data Connector. This example uses the description:
Gets the region(s), state(s), department(s), and/or province(s) for the country selected from the first Select List control after the Watcher gets that country selection.
Click Save. The Data Connector is created and the Resources tab displays.
Go to the Configuration tab to disable the Enable SSL certificate verification setting, which is enabled by default.
Click Save. The Data Connector is updated.
In the Name setting, optionally edit the purpose for this Resource. Therefore, provide a concise but relevant purpose for this Resource so other Process designers understand its function. This example uses the default list
for this setting.
In the Description setting, enter a description of this Resource. This example uses the following description: Gets a list of regions from the selected country.
From the Category drop-down menu, select the Data Connector Category to assign this Resource.
From the Method drop-down menu, select the GET option. The GET method reads data.
In the Key setting for the first request header, enter X-RapidAPI-Host
as specified by the API host for this request parameter.
In the Default setting for the first request header, enter wft-geo-db.p.rapidapi.com
as specified by the API host for this request parameter.
Click Required to mandatory use this header for the API authentication.
Click Save. The first request header displays in the Headers tab.
Click the +Header button to add the second request header. The Add screen displays.
In the Key setting for the second request header, enter X-RapidAPI-Key
as specified by the API host for this request parameter for authentication.
In the Default setting for the second request header, enter your unique application key for authentication.
Click Required to mandatory use this header for the API authentication.
Click Save to save the Resource with the two configured request headers.
Click Send. If configured correctly, the Response Body tab displays the Resource response. This example returns only the first five JSON objects in its JSON array response since this example uses this API host for demonstration purposes.
Notice the following:
data
: Notice that the JSON array containing the response is called data
. The name of this JSON array is relevant when configuring the Select List control from which to select the country's region.
name
: Notice which key in each JSON object within the Resource response contains the name of the region: in this test, the states and provinces within the United States. Look at the first JSON object. Notice that the JSON key called name
contains the name of the state; the value of the JSON keyname
displays as each option in the Select List control from which a region is selected.
Click Response Mapping to map data from the API response to a ProcessMaker Platform asset; which is the Screen containing the Select List controls in this example.
In the first Source setting, select from where you want to map the data. For this example, select BODY.
In the Process Variable, enter the Request variable in which to save the list of regions to display in the Select List control. This example uses Regions
.
In the second Source setting, enter the key name from the API response containing the names of the regions as describe in step 34 above. This example uses name
.
Click Save to save the Resource with the response mapping.
Click the Data Source panel.
In the Watcher Name setting, enter the name of the Watcher. This example uses the name Get Region
.
From the Variable to Watch drop-down menu, select country. country
is the Variable Name setting value for the Select List control from which a country is selected. This Watcher monitors for when a value is selected from this control: in this example, a country name. After the monitored control has a value, then the Watcher triggers.
Select the Run Synchronously toggle key to run the Watcher while still interacting with the Screen.
From the Source drop-down menu, select Get Regions. Get Regions
is the name of the Data Connector that gets the list of regions from the selected country.
From the Resource drop-down menu, select list. list
is the name of the Data Connector's Resource that gets the list of regions from the selected country.
In the Outbound Configuration section, add the parameters that the Watcher passes to the Data Connector Get Regions
. This Data Connector requires the selected country's ISO code as a parameter to get a list of regions in that country. The Select List control that displays a list of countries also saves the selected country's ISO code in the Request variable {{country}}
. When the Screen previews or displays during a Request, the selected country name in that Select List control replaces {{country}}
.
In the Output panel, specify how to map data returned by the Watcher or the Watcher's output to a Request variable. In this example, the Watcher's output is saved in the JSON object called data
; use this in the Source setting. The Request variable receiving the Watcher's output is Regions
; use this in the Form Variable setting.
In the Variable Name setting, enter regionName
.
Click the Data Source panel.
The Watcher outputs data it receives from the Data Connector to the Request variable called Regions
.
The Data Connector receives its response from the API endpoint in a JSON object element called response
by default.
Click the Preview button. The Screen is in Preview mode.
Click the Region Select List control. The first five alphabetical states in the United States are options. There are only five options since this example uses the API host that returns only five JSON objects in the JSON array response for demonstration purposes.
Expand the Data Preview panel. Notice the JSON data model generated by the ProcessMaker Platform assets used in this example:
country
: The JSON data object with the key name country
represents the Select List control from which the country was selected. This JSON data object contains the two-letter International Organization for Standardization (ISO) code for the United States ("US"
).
regions
: The JSON array called regions
contains the JSON objects for the first five alphabetical states in the United States.
This example is complete.
Use the Variable Name setting values for the Line Input controls as Code and Name respectively as shown below. For this example, exclude the value for the Line Input control that has the Variable Name setting Code
.
End Event element
In the Web Entry URL setting, click Copy to use the URL to start a Request.
When starting a Request through this Start Event element using the Enable Password Protect option, the Web Entry URL displays the Protected screen to enter the configured password.
Use the Variable Name setting values for the Line Input controls as Code and Name respectively as shown below. For this example, exclude the value for the Line Input control that has the Variable Name setting Code
.
End Event element
In the Web Entry URL setting, click Copy to use the URL when starting a Request for this Process.
When opening the Web Entry URL, the Screen does not display the Line Input control's value that has the Variable Name setting Code
.
Use the Variable Name setting values for the Line Input controls as Code and Name respectively as shown below. For this example, exclude the value for the Line Input control that has the Variable Name setting Code
.
End Event element
In the Web Entry URL setting, click Copy to use the URL to start a Request.
When starting a Request through this Start Event element using the Allow query string data setting in this example, the Web Entry uses the following URL https://{ServerURL}/webentry/15/node_9?country=usa
. {ServerURL}
is the name of the ProcessMaker Platform instance. The information after the quotation mark country=usa
stores in the Data section as follows:
Create a new Screen. The Create Screen screen displays.
From the Category drop-down menu, select the Screen Category to assign this Screen. This example uses the following settings.
Add a Multicolumn / Table control. The control displays with two columns by default, each with a 6 column span setting.
Remove one of the default columns with a column span of 6 by clicking its Remove icon since the default columns are too wide to accommodate two more columns and still equal 12 column span.
Click the Add Column button to add a new column. The Add New Column screen displays.
The Multicolumn / Table control now has four columns, each with a column span setting of 3
.
The four Submit Button controls are now placed in the Multicolumn / Table control.
Select any of the Submit Button controls, such as the one labeled Tip 1.
Use to equidistantly space the Page Navigation controls on the top and/or the bottom of each page in the Screen. In the image below, the top of each page uses a Multicolumn / Table control with four columns, each with a of 3
; the bottom of each page uses a Multicolumn / Table control with two columns, each with a Colspan setting of 6.
To imply that previous pages within the Screen are completed, add a unique character preceding the default button label in the for those Page Navigation controls on the latter pages of the Screen for which the preceding pages are complete. For example, to imply that the information in the Profile page of your multi-page Screen is complete, on all pages after the Profile page for those Page Navigation controls that link to that page, set those controls' Button Label settings to ✓Profile
.
The in ProcessMaker Platform allows Process Designers to filter the contents of a list in real-time by using PMQL. Through this feature, the data displayed in a Select List control can change dynamically depending on the selection in another control or the value in a .
Would you like to see this example that uses two Data Connectors that access the data sources from which the Select List controls reference countries and their corresponding regions? See .
The following example demonstrates dependent fields: how the options in one depend on which option is selected from a previous Select List control. This example demonstrates that after a country is selected from one Select List control, a second Select List control contains as options the regions in that selected country. This example uses a that contains a list of countries and regions within those countries.
: Import a that serves as a data source for both Select List controls.
: Design a which displays two dependent Select List controls where the data in the second control is dependent on the selection made in the first control.
Follow these steps to import the needed :
. The Collection displays in the Collections page.
Follow these steps to design a that uses dependent Select List controls as :
. The Screen displays in Screen Builder.
from which to select a country from the list of countries.
Label: Enter Countries
in the Label property.
Collection: From the Collection drop-down menu, select the Collection Countries with Regions
. If you are unable to see this Collection as an option, then review the steps in section again.
Value: From the Value drop-down menu, select the option Countries
.
Label: Enter Countries
in the Label property.
Collection: From the Collection drop-down menu, select the Collection Countries with Regions
. If you are unable to see this Collection in the list, review the steps in section again.
PMQL: Enter data.Countries = "{{Countries}}"
in the PMQL property.
. The Countries Select List control displays a list of countries from the Countries with Regions Collection.
The following example demonstrates dependent fields: how the options in one depend on which option is selected from a previous Select List control. This example demonstrates that after a country is selected from one Select List control, a second Select List control contains as options the states and/or provinces in that selected country. This example uses two , one to get the list of countries, the other to get the list of regions.
Would you like to see this example that uses a Collection data source from which the Select List controls reference countries and their corresponding regions? See .
The Select List control that contains the countries as its options gets those options from a Data Connector that uses a to get the list of countries and their corresponding (ISO) country code from a third-party application program interface (API). A monitors when a country is selected, and then another Data Connector uses a Resource to get the list of states and/or provinces from that selected country based on that country's ISO code. The Watcher stores that list of states/provinces as a in that so that the second Select List control may access that list to display as its options. The second Select List control's options depend on the first Select List control's selection.
Create the Data Connector that gets the list of countries for one Select List control: Create the Data Connector that gets a JSON array containing a JSON object for each country. One Select List control in this example uses this Data Connector's API response to get the list of countries as its options. This Data Connector accesses a public API that has been made available for demonstration purposes, so it does not require host authentication. As part of the Data Connector's JSON array response, it includes the two-letter International Organization for Standardization (ISO) country code in each JSON object, which is required for the second Data Connector as described below. See .
This Data Connector accesses an API host under that requires signing up for authentication. To demonstrate how to add request headers to a Data Connector's Resource, the authentication information for this API host is configured in a Resource's request headers instead of the Authentication tab of the Data Connector. Before creating this Data Connector, , and then . This example uses this API host for demonstration purposes since it returns only the first five JSON objects in its JSON array response for the United States that has the two-letter ISO country code of US
. Note that third-party APIs change their terms of use, so ensure that you are comfortable signing up to use this API host for this example. See .
Configure the Select List control to select a country: From the Screen to use for this example, add and configure the first Select List control from which to select a country. When a country is selected, that country's ISO code is stored in a Request variable called country
for the Watcher that monitors when a country has been selected. The Watcher, in turn, sends that country's ISO code to the second Data Connector to get that country's regions as described below. See .
Configure the Watcher that monitors for a country selection: Configure the Watcher that monitors when a country is selected from the first Select List control, and then sends that country's ISO Code to the second Data Connector to get the regions for that country. The second Select List control contains no options until the Watcher sends the country's ISO code to the second Data Connector; this Data Connector's Resource URL requires that ISO code to successfully get the list of regions for that country. After the Data Connector gets the list of regions for the selected country as a JSON array, the Watcher stores that JSON array in that Request's data in a Request variable called Regions
, from which the second Select List control's regional options are available. See .
Configure the dependent Select List control to select a region based on the country selection: Below the first Select List control, add and configure the second Select List control from which to select a region. The regional options that display in this second Select List control depend on which country is selected from the first Select List control. The regional options for this Select List control are not available until the Watcher receives them from the second Data Connector, and then adds them to that Request's data as described below. See .
Preview the Screen: Preview the Screen to see how the second Select List control depends on the country selected from the first Select List control. Further, preview the JSON data model from the controls as you interact with them. See .
Follow these steps to create the Data Connector that gets a JSON array containing the JSON objects of countries that the first Select List control uses to display a list of countries as its options as :
to ProcessMaker Platform.
Click the Data Connectors iconfrom the left sidebar. The Data Connectors tab displays all Data Connectors in the Data Connectors page.
Verify the Data Connector Category exists in which to assign this Data Connector. If this Category does not exist, see .
Click the +Data Connector button. The Create Data Connector screen displays.
From the Category drop-down menu, select the Data Connector Category to assign this Data Connector. This example uses the following settings.
Go back to the Resources tab and click the +Resource button. The Create Resource screen displays.
In the Name setting, optionally edit the purpose for this . Therefore, provide a concise but relevant name for this Resource so other Process designers understand its function. This example uses the default list
for this setting.
In the URL setting, enter the following URL for this example: https://restcountries.eu/rest/v2/all
. This URL is provided by .
Click Add. The new Resource displays in the Configuration tab.
Click the Send button. If configured correctly, the Response Body tab displays the Resource response.
alpha2Code
: Notice the alpha2Code
key name contains the two-letter for each country; this Select List control stores the value of the alpha2Code
key name element. In this example, a uses the ISO country code to determine which regions to display in the dependent Select List control.
Make note of the relevant key name(s) that contains relevant data, as the ProcessMaker Platform asset requires this key name when configuring which data that asset requires from the Data Connector's response. In this example, the Screen containing the Select List control is the ProcessMaker Platform asset. See
Before creating this Data Connector, , and then . Note that third-party APIs change their terms of use, so ensure that you are comfortable signing up to use this API host for this example.
Follow these steps to create the Data Connector that gets a JSON array containing the JSON objects of regions for the selected country from the first Select List control as :
to ProcessMaker Platform.
Click the Data Connectors iconfrom the left sidebar. The Data Connectors tab displays all Data Connectors in the Data Connectors page.
Verify the Data Connector Category exists in which to assign this Data Connector. If this Category does not exist, see .
Click the +Data Connector button. The Create Data Connector screen displays.
From the Authentication Type drop-down menu, select the No Auth option. To demonstrate how to add request headers to a Data Connector's , the authentication information for this API host is configured in a Resource's request headers instead of the Authentication tab of the Data Connector.
From the Category drop-down menu, select the Data Connector Category to assign this Data Connector. This example uses the following settings.
Go back to the Resources tab and click the +Resource button. The Create Resource screen displays.
In the URL setting, enter the following URL for this example: https://wft-geo-db.p.rapidapi.com/v1/geo/countries/{{country}}/regions
Notice how this URL contains the API resource parameter {{country}}
within it. This URL uses to get the value from the ; in this example, the Watcher monitors when the Select List control of which its Variable Name setting value is country
has a selected option, and then sends that country's ISO code to this Data Connector. By using mustache syntax in this Resource's URL, that country's ISO Code replaces {{country}}
as an API resource parameter when this Resource calls that endpoint. See and .
Click Add. The new Resource displays in the Configuration tab.
Click the Headers tab to add request headers that contain the authentication information to access the host's API. This example requires two request headers that provide valid authentication to access this API's endpoint.
These request headers are required header parameters for the Country Regions endpoint using the GET method: X-RapidAPI-Host
and X-RapidAPI-Key
. Note that the X-RapidAPI-Key
header parameter value is unique for each person using this API for authentication. To obtain this information, see and then copy the following information:
Click the +Header button to add the first request header. The Add screen displays.
Click Save. The second request header displays in the Headers tab.
To test if the Resource and its authentication application key function as intended, click the Params tab to add a value for the country
parameter in this Resource to a real two-letter ISO country code. This example uses the ISO country code US
.
Click +Mapping. The Add screen displays.
Click Save. The response mapping is listed.
Follow these steps to configure the Select List control's data source to get the list of countries as :
to ProcessMaker Platform.
for the example to contain the two Select List controls and the .
from which to select a country from the list of countries.
In the , entercountry
since both the Watcher and the that gets the regions for the selected country from this Select List control expect this Variable Name setting value.
From the Data Source drop-down menu, select Data Connector.
From the Options Variable setting, do not change the default response value.
From the Show Control As drop-down menu, select whether to show this Select List control's options as a drop-down menu or as a group of checkboxes. This example uses the Dropdown/Multiselect option.
Do not select the Allow Multiple Selections option. In this example, only one country must be selected for this example to function because the that monitors when a selection is made may only send one country name to the that gets the regions in that country.
From the Type of Value Returned setting, do not change the default Single Value option since this example requires only one value from the selected JSON object and not the entire JSON object itself.
From the Value setting, enter alpha2Code
to get the value of the alpha2Code
JSON object key name's value. ,
alpha2Code
is the JSON object key name that contains the two-letter ISO country code the second Data Connector uses to get that country's regions.
From the Content setting, enter name. , name
JSON object key contains the country name as its value within each JSON object of the JSON array response.
From the Data Connector drop-down menu, select Call Countries API, which is the .
From the End Point drop-down menu, select list, which is the name of the in the Call Countries API that gets the list of countries from the API's resource.
, and then continue to .
Follow these steps to configure the Watcher as :
to ProcessMaker Platform.
the Screen for this example. Ensure that this Screen contains
Click the Watchers button. The Watchers screen displays all Watchers configured for this Screen.
Click the +Watcher button. The Watchers screen displays with the Configuration panel expanded.
Check and confirm the settings in the Configuration panel.
Select the Source panel.
Confirm the settings in the Source panel.
Click the Output panel.
Confirm the settings in the Output panel.
Click Save. The Watcher displays in the Watchers screen.
Close the Watchers screen, and then
Follow these steps to configure the Select List control's data source to get the list of regions as :
to ProcessMaker Platform.
the Screen for this example. Ensure that this Screen
below the first Select List control from which to select a region from the selected country.
From the Data Source drop-down menu, select Request Data.
In the Options Variable setting, enter the Request variable Regions
that saves data configured in the Watcher:
The JSON array nested in theresponse
JSON object is called data
as shown .
In the Option Label Shown setting, entername
. When testing the Data Connector that gets the list of a country's regions, the key name called name
contains the region in each JSON object of the JSON array the Data Connector returns to the Watcher. The Watcher then outputs this JSON array to the Request variable Regions
from which this Select List control's options derive.
From the Show Control As drop-down menu, select whether to show this Select List control's options as a drop-down menu or as a group of checkboxes. This example uses the Dropdown/Multiselect option.
Select the Allow Multiple Selections option if you would like the Request participant to select more than one country region. This example does not use this setting.
From the Type of Value Returned setting, do not change the default Single Value option since this example requires only one value from the selected JSON object and not the entire JSON object itself.
From the Variable Data Property setting, enter name
to store the selected country region in a JSON object key name called name
.
. The Screen is now how this Select List control depends on the country selected from the first Select List control.
Follow these steps to preview the Screen as :
to ProcessMaker Platform.
the Screen for this example.
From the Country Select List control, select United States of America. After making a selection, a screen displays while the Watcher sends the selected country's ISO code to the Data Connector that gets that country's regions, returns that JSON array of objects to the Watcher, and then the Watcher stores that response to the Regions
Request variable in the preview.
Select one of the five states.
Below is one JSON object from the Resource response that gets the list of countries. The key names relevant in this JSON object for are Call Countries API
and alpha2Code
.
Follow an example that uses Screen Builder's built-in functionality to disable a form-submission button until a toggle key is selected (acknowledge the form). This example does not use custom scripts.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Screen design; Check Box control; Rich Text control; Visibility Rules; HTML
When designing a Screen, it is possible to customize functionality by using custom scripts. However, such customization makes the Screen prone to errors and difficult to support or debug later. Most design needs can be met without custom scripts by simply using the functionality available in the Screen Builder.
Consider a Screen design that uses the following controls with their respective default display states:
Check Box control: A Check Box control displays by default with the toggle key to acknowledge the terms of the form.
Rich Text control: A Rich Text control displays HTML containing the image of a disabled button until all required information in the form has been entered. The Rich Text control displays by default to appear as a disabled button.
Submit Button control: A Submit Button control remains hidden until the state of the Check Box control is True
. Since the the Check Box control is FALSE
by default, the Submit Button control is hidden by default.
For example, the Save Form button in the following screen appears disabled until the user agrees to the terms of the form.
After the terms are agreed to, the Save Form button enables.
Follow these guidelines to design a Screen with a disabled button until a toggle key is selected. This example does not use a custom script as described in this best practice:
Create a new Screen. The new Screen opens in Design mode.
Add a Check Box control and configure the following settings:
From the Variable panel, enter in the Variable Name setting i_agree
.
Add a Rich Text control and configure the following settings:
From the Configuration panel, enter the following HTML in the Content setting:
Insert a Submit Button control and configure the following settings:
Click the Preview icon to test the Screen.
Follow an example how to use a Signal Start Event element in the Process Modeler using a Signal with a webhook.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Signal Manager; Process Modeler, Signal Start Event; Screen design
The following example demonstrates signals: how a Process uses a Signal Start Event with a Webhook Signal collection. This example demonstrates that external thirdparties are available to configure in a Webhook Signal. For this example, the external thirdparty to use is Docparser. Docparser send the signal and the payload request.
Follow these steps to use a Webhook Signal in a Process:
In the Accepted Form Fields without fields.
In the Accepted Method, the POST option selected.
In the Authentication, the None option selected.
In the Restrict Access From, without URLs.
In the Webhook URL, click Copy to Clipboard to copy the URL to use it in the external third-party app.
Click Save to save the signal webhook configuration.
In the Name setting, enter the webhook name.
In the Payload format setting, select the JSON format.
In the Target URL setting, copy the ProcessMaker Platform's Webhook URL .
In the Name setting, enter the Signal Start Event name, which is Webhook sent from DocParser.
In the Signal setting, select the signal created in step 1.
In the Request Variable setting, enter the variable name that store the payload data. For this example, it is payload.
Configure your Process elements and Screens as necessary.
Follow an example to either preview or download multiple files in a Screen that have been uploaded from a previous Task in that Request.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Loop control; File Upload control; File Preview control; File Download control; Screen design
If multiple files have been uploaded to a Task within a Request, those files can be previewed and then downloaded from the current Task in that Request.
In the Screen of the Task from which to preview or download those multiple files, use a File Preview control or File Download control, respectively, with a Loop control.
See the following sections regarding how to view and/or configure each control used in this example:
Locate the File Upload control from the Screen page designed to upload multiple files. This Screen is used in the previous Task of the Request that the Request participant uploads those files.
Add the Loop control to the Screen page from which to preview multiple files.
In the Variable Name setting of the Loop control, enter the Variable Name setting value from the File Upload control. For this example, enter MultiFileUploadControl
.
Add the File Preview control to the Screen page from which to preview multiple files.
This value is required because the Request data stores each file in within a JSON array named from the File Upload control's Variable Name setting value; within this JSON array, each file uploaded to the File Upload control is stored in a JSON object with a unique file ID referenced by the key name file
. This value is not case sensitive.
Add the Loop control to the Screen page from which to download multiple files.
Add the File Download control to the Screen page from which to download multiple files.
Follow an example to configure a PHP executor with the SQLSRV module.
Intended audience: ProcessMaker Administrators, coding engineers
Tags: Script Executor; PHP; SQLSRV
Follow the next steps to configure the PHP executor with the SQLSRV module:
Click the +Script Executor button. The Add New Script Executor screen displays.
In the Name setting, enter the unique name for the Script Executor. This name displays from Script configuration settings, so enter a descriptive name so that Process designers configuring their Scripts understand what customization this Script Executor provides. For example, you can enter PHP + SQLSRV.
In the Description setting, enter a description for the Script Executor.
Click Save and Build to build the Docker container from which the Script Executor runs Scripts. The Build Command Output setting displays below the Dockerfile setting as the Script Executor builds the Docker container in real-time. If the Docker container builds successfully, the following message displays: Executor Successfully Built. You can now close this window. If building the Docker container is unsuccessful, the following message displays: Error Building Executor. See Output Above.. The Build Command Output setting displays the Dockerfile error.
Click Close. The PHP Script Executor with the SQLSRV module is now available in the list of languages when creating a new script.
Follow an example that uses Loop and File Upload controls to limit how many files may be upload to a Screen.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Loop control; File Upload control; Screen design
Follow these steps to design a Screen that limits how many files may be uploaded:
Add a File Upload control to the Loop control by dragging it into the Loop control.
Reference this Screen from a Process model or as an editable Screen in a Collection.
Follow an example that uses a Process, a custom Script Executor and a Script to migrate records in a Microsoft Excel spreadsheet to a Collection.
Intended audience: Process designers, Web designers, graphic designers, software developers, coding engineers
Tags: Script Executor; Collection; administration; Microsoft Excel; record migration; employee data
This example uses the following ProcessMaker Platform assets:
A specified Request participant reviews the migrated Excel file records.
If that Request participant indicates that the Excel file records read correctly, save those records to an existing Collection; otherwise, workflow returns to the same Request participant who uploaded the Excel file to do so again.
Scripts: This example uses the following Scripts:
Save Records to Collection: This Script writes the records stored in the Request variable persons
to the Collection.
Upload Person Records: This Screen allows a specified Request participant to upload the Excel file from which to migrate its records.
Review Uploaded Person Records: This Screen allows a specified Request participant to review the migrated Excel file records and then indicate if those records migrated correctly.
The Collection uses its own Screens which are not relevant to how this example functions.
Collection: This example uses an existing Collection to save the read spreadsheet records that the Save Records to Collection Script writes to create the Collection records. This Collection contains 18 records already to demonstrate the content of each record and how fields in the Excel spreadsheet must correspond with the Collection content.
Click the video below to watch a demonstration of this example.
This example contains the following procedures in this order:
Prior to importing the Collection, download the Collection this example uses named people.json
:
Click Browse to locate the Collection you downloaded named people.json
.
Click List Collections. The Collections page displays.
Prior to importing the Process, download the Process model this example uses named Process - Excel Spreadsheet Records to Collection Records Example.json
:
Follow these steps to import the Process:
Click the Import button. The following message displays: You are about to import a Process. After importing, you can reassign users and groups to your process.
Click Browse to locate the Process model you downloaded named Process - Excel Spreadsheet Records to Collection Records Example.json
.
Click Import. The Import Process screen displays.
From the Configuration section, assign the Request participants and user accounts for this example. Follow these guidelines:
Assign which user and/or group can start a Request of your imported Process. Type into the Assign Start Event setting to filter users and/or groups that display in that setting's drop-down menu. If you will start a Request for this example, then assign the Start Event element to your user.
Assign which user and/or group uploads the Excel file to the Process from which its records migrate to the Collection. Type into its Assign Task setting to filter users and/or groups that display in that setting's drop-down menu. Optionally, use the Requester option to assign that Task to the user that started that Request.
Assign the Form Task element named "Review Upload" to the user and/or group
Assign which user and/or group reviews the records after they have been read from the Excel file. Type into its Assign Task setting to filter users and/or groups that display in that setting's drop-down menu. Optionally, use the Previous Task Assignee option to assign the Task to the assignee of the "Upload File" Form Task.
Select which user to run the "Read Excel File to JSON" Script
Select which user account to run the "Read Excel File to JSON" Script, which is the Script that reads the Excel spreadsheet records and stores them to that Request's JSON data model. This Script runs when the Process File
Script Task element triggers. Type into its Run script setting to filter users and/or groups that display in that setting's drop-down menu. Ensure that the selected user or group members have appropriate permissions to run Scripts.
Select which user to run the "Save Records to Collection" Script
Select which user account to run the "Save Records to Collection" Script, which is the Script that writes the records stored in that Request's JSON data model to the Collection. This Script runs when the Save to Collection
Script Task element triggers. Type into its Run script setting to filter users and/or groups that display in that setting's drop-down menu. Ensure that the selected user or group members have appropriate permissions to run Scripts.
Assign which user and/or group can cancel Requests
Assign which user and/or group can edit Request data
Assign which user or group has permission to edit Request data from this Process. By editing Request data, these users and group members can adjust the data that Request participants have submitted during a Request. If no user or group are selected, no one can edit Request data from this Process. Type into the Assign Edit Data setting to filter users and/or groups that display in that setting's drop-down menu.
Click Save. The Processes page displays the imported Process.
The settings for this Script Task element display.
{
"recordsVariableName": "persons",
"collectionId": 18
}
Would you prefer to save the Excel spreadsheet records to a different Request variable than persons when the Read Excel File to JSON
Script that run when the Process File Script Task element triggers? Locate the Script Configuration setting for the Process File Script Task element as described above, and then change the JSON key name recordsVariableName
's value to the Request variable name you want:
{ "fileVariableName": "recordsFile", "recordsVariableName": "persons" }
Ensure to change the JSON key name recordsVariableName
's value for the Save to Collection
Script's configuration to the same value.
In the Name setting, enter the unique name for the Script Executor. This name displays from Script configuration settings, so enter a descriptive name that designers configuring their Scripts understand what customization this Script Executor provides. This example uses the name PHP with PHPSpreadsheet
.
In the Description setting, enter a description for the Script Executor.
From the Dockerfile setting, add the following commands that contain the dependencies to use the PHPSpreadsheet and integrate this into this Docker container:
RUN apt-get update -y \
&& apt-get install -y \
libpng-dev \
&& apt-get clean -y \
&& docker-php-ext-install gd zip \
&& docker-php-ext-enable gd zip
RUN composer require phpoffice/phpspreadsheet
Click Save and Build to build the Docker container from which the Script Executor runs Scripts. The Build Command Output setting displays below the Dockerfile setting as the Script Executor builds the Docker container in real-time. If the Docker container builds successfully, the following message displays: Executor Successfully Built. You can now close this window. If building the Docker container is unsuccessful, the following message displays: Error Building Executor. See Output Above.. The Build Command Output setting displays the Dockerfile error.
Click Close.
Click Save.
The second Script this example uses, Save Records to Collection
, by default configures to use the Script Executor named PHP Executor
when it is imported.
The example is ready to demonstrate. To demonstrate this example, start a Request of this Process.
From the Upload File Task, click the Select File button, locate the Excel file you downloaded, and then click the Upload File button.
From the Review Upload Task, click the Save File button.
View the imported Collection records to see two additional records in this Collection that have been migrated from the Excel spreadsheet.
Enter in the Label setting I agree to the terms of this form
.
From the Design panel, select the Toggle Style setting.
<span class="btn btn-primary disabled">Save Form</span>
. This HTML uses the btn
(button) class to display a disabled button using the same text SAVE FORM
as the Submit Button control displays its Label setting value (described below).
From the Advanced panel, enter in the Visibility Rule setting i_agree == false
. This visibility rule means that the Rich Text control remains hidden while the Check Box control's state remains FALSE
(not selected).
From the Variable panel, enter in the Label setting Save Form
.
From the Advanced panel, enter in the Visibility Rule setting i_agree == true
. This visibility rule means that the Rich Text control hides while the Check Box control's state becomes TRUE
(selected). The Submit Button control displays.
The Screen is now complete. Save your Screen.
Enable the webhook access for the created signal with the default values:
Configure the Docparser account to use the webhook URL. This configuration depends on the third-party app and its version. For Docparser, it is configured in the Integrations section as follows:
In the Include Fields setting, select the fields that Docparser is going to send to ProcessMaker Platform.
Create a process and model the process including a Signal Start Event. In this example the Signal Start Event is Webhook sent from DocParser:
Configure the Signal Start Event to broadcast the external Docparser signal as follows:
Use the JSON data from the payload request variable in your Screens as follows: The Variable Name setting of a control setting calls the Signal payload by calling the JSON object as payload.bol. In this example, bol is the object called.
Note the Variable Name setting value for that File Upload control. This example uses the value MultiFileUploadControl
.
From the Data Source setting, select the Existing Array option.
From the File Name setting, enter file
.
From the Data Source setting, select the Existing Array option.
From the Name setting, enter file
.
This example outlines best practices when creating a PHP with the module in ProcessMaker. This example ensures a seamless integration of the SQL Server functionality into your scripts.
. The Script Executors page displays.
From the Language setting, select the PHP programming language that the Script Executor uses to run the Script. After selecting the programming language, the default content to run Scripts using that language displays in the Dockerfile setting. The Dockerfile content includes the SDK for that language.
From the Dockerfile setting, append the default Dockerfile content with the the Script Executor runs when it builds the Docker container. Consider following . For this example, enter the following code to integrate correctly the SQL Server functionality.
Use the and controls to limit how many files may be uploaded to a Screen. Though the File Upload control , any number of files can be uploaded if this feature is enabled. Therefore, this example provides a way to limit the number of files that may be uploaded to a Screen.
Download an example of this Screen at the end these instructions, and then .
from which users may upload multiple files.
From the Data Source setting, select the New Array of Objects option.
In the Default Loop Count setting, enter how many files by default that may be uploaded to this Screen. 3 is the default setting.
Select the Allow additional loops option to allow additional files be uploaded to this Screen. By default this setting is not selected, which would prevent additional files be uploaded.
Do not enter a visibility rule in the so that the Loop control always remains visible.
as necessary. These settings do not affect how this example functions.
as necessary. These settings do not affect how this example functions.
to this Screen. Ensure not to add the Submit Button control inside the Loop control.
your Screen.
This example demonstrates how to migrate records in a Microsoft Excel spreadsheet to an existing . In this example, the Collection stores information about each company employee, such as each employee's first and last name, hire date, salary, and how many vacation days used. These employee records already exist in an Excel spreadsheet, but must be migrated to the Collection to save time and prevent human error. The Collection must already exist with its Screens that correspond with the fields in the Excel spreadsheet records.
While it would be easier to export a Comma-Separated Values (CSV) file from the Excel spreadsheet and then to automatically create multiple records, this use case and its accompanying ProcessMaker Platform assets benefits those organizations where business stakeholders do not have access to Collections or the appropriate permissions to edit them. Any User may benefit from this use case.
Process: This example uses a Process named "Excel Spreadsheet Records to Collection Records Example," which may be downloaded for this example and then Except for the and Collection, the remaining ProcessMaker Platform assets in this example import with the Process and are already referenced in appropriate Process model nodes. This Process manages the migration process as summarized below:
A specified participant uploads the Excel file from which to migrate its records to the Collection.
A reads the Excel file records and stores them in that Request's JSON data model.
Script Executor: This example uses a custom Script Executor based on the default PHP Script Executor, but requires the . The PHPSpreadsheet is an open-source PHP library that reads and writes spreadsheet files. Note that after creating this Script Executor, it may be used for any Script that uses PHP and requires the PHPSpreadsheet.
Read Excel File to JSON: This Script reads the records from the Excel file, then stores the Excel spreadsheet records in that Request's JSON data model. This Script runs from the custom PHP Script Executor to read the records from the Excel spreadsheet. By default, this Script stores the Excel spreadsheet records in a named persons
.
Screens: This example uses the following:
Import the Collection: Since the purpose of this example is to demonstrate how to use a custom Script Executor, this example provides the Collection that the example uses. See .
Import the Process: Import the Process that this example uses. The Process contains the two Scripts and Screens this example uses. See .
Create the custom Script Executor: Create the Script Executor that builds the PHPSpreadsheet into its Docker container. See .
Configure the Script that reads the Excel file: Configure the Script named "Read Excel File to JSON" to run using the custom Script Executor. See .
Download the Excel file: Download the Excel file that contains sample records to be migrated to the Collection. See .
Start a Request: Start a Request for the Process this example uses. See .
Follow these steps to import the Collection as :
. The Collections page displays.
Click the Import button. The Import Collection screen displays.
Click Import. The Import Collection screen displays to indicate that the Collection imported correctly.
Make note of the imported Collection's ID as displayed in the Collection ID column. This ID is required to specify to which Collection to write the read Excel spreadsheet records that are stored in the persons
Request variable during a Request. You will revise the Collection ID after you for this example.
named People that this example uses.
in this Collection to see an example of the information to be migrated from the Excel spreadsheet.
Below is the Process model after the Process is imported and edited in Process Modeler.
The Processes tab displays.
From the Import Process screen, locate the Configuration section below the Status section.
Assign the element named "Start Event" to the user and/or group
Assign the element named "Upload File" to the user and/or group
Assign which user and/or group can for your imported Process. If no user or group are selected, no one can cancel a Request from this Process. Type into the Assign Cancel Request setting to filter users and/or groups that display in that setting's drop-down menu.
and then edit the imported Process. The Process model displays.
Select the Save to Collection
Script Task element that runs a Script to write the Excel spreadsheet records stored in that Request's JSON data model in the persons Request variable.
From the Configuration panel, locate the Script Configuration setting, and then click theicon to edit this Script's configuration. The Script Config screen displays with configuration settings the Request sends to the Script when the Save to Collection
Script runs.
Change the value of the collectionID
key name to the Collection ID you .
the Process model.
Follow these steps to create the custom Script Executor as :
. The Script Executors page displays.
Click the +Script Executor button. The Add New Script Executor screen displays.
From the Language setting, select the PHP option. The default content to run PHP Scripts displays in the Dockerfile setting. The Dockerfile content includes the SDK for that language.
Follow these steps to configure the Scripts as :
. The Scripts page displays.
Click the Configure iconfor the Script named Read Excel File to JSON
. The Edit Configuration page displays.
From the Script Executor drop-down menu, select the to run this Script.
Download the Excel file uses to migrate its records to an existing Collection.
Follow these steps to start a Request of this Process as :
as a user you configured from the Start Event element that can start Requests for this Process.
. Remember that the Process name is Excel Spreadsheet Records to Collection Records Example
.
Open the Upload File Task from your . After opening the Task, the Screen to upload the Excel file in the example displays. Ensure that you have .
The Review Upload Task automatically opens because the Upload File Form Task element in the Process model uses the . The Read Excel File to JSON
Script read the records from the Excel spreadsheet, stored them into the persons
Request variable, and now displays their contents in the Review Upload Task.
Configure LDAP settings for Microsoft Active Directory.
The LDAP for Microsoft Active Directory configuration allows ProcessMaker Platform users to log on by authenticating directly into a Microsoft Active Directory server.
Consider the following:
For security reasons, do not use anonymous connections.
ProcessMaker Platform does not support sub-groups or sub-departments. Therefore, user groups cannot be organized hierarchically, and nested groups or departments cannot be created.
Follow these steps to configure LDAP for Microsoft Active Directory:
View your LDAP Settings. The LDAP tab displays.
Enable the Enabled toggle key to always synchronize your Active Directory whenever your hierarchy of entities changes to keep ProcessMaker Platform synchronized.
From the Synchronization Schedule setting, set at which interval to synchronize with your Active Directory server. Consider that when setting this interval, the more users, groups, and/or departments your Active Directory server contains, the more time ProcessMaker Platform requires to synchronize your Active Directory server. Follow these steps:
In the Quantity setting, enter how many times to synchronize for each configured frequency. 1 is the default setting.
In the Frequency setting, select the frequency in which to synchronize from the following options:
Minutes (default setting)
Hours
Days
Click Save. The following message displays: The setting was updated.
From the Type setting, select to which LDAP server type ProcessMaker Platform connects to synchronize as follows:
Select the Active Directory option.
Click Save. The following message displays: The setting was updated.
From the Server Address setting and the Server Port setting configure as follows:
Enter the Active Directory IP address or hostname to which ProcessMaker Platform synchronizes.
Click Save. The following message displays: The setting was updated.
Enter the port number the Active Directory server uses. By default, Active Directory uses port 389.
Click Save. The following message displays: The setting was updated.
Active Directory uses Transport Security Layer (TLS) to connect to the Authentication Source. Then enable the TLS toggle key. The following message displays: The setting was updated.
From the Certificate setting, upload the Active Directory certificate file that will be stored on ProcessMaker Platform. For more information about how to get your Active Directory certificate, see Obtain an Active Directory certificate.
Active Directory uses distinguished names (dn) to identify users, groups, and other types of entities.
The distinguished name describes entities starting from the specific and moving to the general in the hierarchy of entities. For example: cn=John Doe,ou=managers,ou=regionalbranch,dc=acme,dc=com
Then, configure distinguished names as follows:
Enter each DC of the Base DN following the guidelines above.
Click Save. The following message displays: The setting was updated.
Enter Active Directory credentials as follows:
Enter the username to log on to the Active Directory server.
Click Save. The following message displays: The setting was updated.
Enter the password to log on to the Active Directory server.
Click Save. The following message displays: The setting was updated.
Select which groups and departments to synchronize as ProcessMaker Platform groups. Ensure to have the correct previous settings to select groups and departments:
Enable the toggle key for each Active Directory group to synchronize as ProcessMaker Platform groups.
Click Save. The following message displays: The setting was updated.
Enable the toggle key for each Active Directory department to synchronize as ProcessMaker Platform groups.
Click Save. The following message displays: The setting was updated.
From the User Identifier setting, enter the Active Directory parameter used to identify users as follows:
Enter samaccountname
that identifies Active Directory users in ProcessMaker Platform. If unsure, enter *
. Synchronization is slower because all object classes are evaluated.
Click Save. The following message displays: The setting was updated.
From the Group Identifier setting, enter the Active Directory parameter used to identify groups as follows:
Enter cn
that identifies Active Directory groups in ProcessMaker Platform. If unsure, enter *
. Synchronization is slower because all object classes are evaluated.
Click Save. The following message displays: The setting was updated.
From the Variable Map setting, map ProcessMaker Platform user properties to Active Directory attributes as follows:
Follow these guidelines to map a ProcessMaker Platform user properties to an Active Directory attribute:
Click the +Add button. A new row displays the existing mapped user properties.
In the ProcessMaker Property setting, enter the ProcessMaker Platform user property to which to map the Active Directory attribute. Select the properties in the following order:
firstname
lastname
username
In the LDAP Attribute setting, enter the Active Directory attribute from which to map to the ProcessMaker Platform user property. Enter attributes in the following order:
givenname
sn
samaccountname
Click Save. The following message displays: The setting was updated.
From the Chunk Size For User Import setting, enter the number of users that will be imported simultaneously as follows:
Enter the number of users. It is recommended 500 as the maximum.
Click Save. The following message displays: The setting was updated.
Reference Environment Variables and Magic Variables in your Scripts.
ProcessMaker Platform uses two global variables that Scripts can call. Variable usage depends on the programming language that the Script uses. Below is a description of these global variables:
Data: The data
variable is a JSON object that contains all Request data to the moment a Script runs.
Config: The config
variable is a JSON object that contains any special configuration to be passed to the Script prior to it running. In Script Task elements of a Process model, special configurations are entered into the Script Configuration setting. See Reference a Request Variable from a Script Configuration Setting as to the best practice when configuring Scripts from Script Task elements in a Process model.
Every Script Executor from which a Script runs has the following default Environment Variables from which a Script may get its value. Refer to the tabs below how to get these Environment Variable values for each supported programming language. Below is a description of these default Environment Variables.
Refer to the tabs below how to use variables in supported programming languages.
The following sample PHP script provides an example to get all Tasks currently assigned to a user. This example also demonstrates the use of optional arguments such as the Request ID or a Task filter.
The following sample PHP script provides an example to retrieve a single Task using its Task ID.
The following sample PHP script provides an example of completing a Task when the Task ID is known.
Configure SSO SAML authentication using Microsoft Entra ID as the Identity Provider and integrating into PM Classic.
Configure ProcessMaker Platform and PM Classic to use SSO SAML authentication with the identity provider Microsoft Entra ID (Microsoft Azure Active Directory) as follows:
It is recommended to create and configure an enterprise application in Microsoft Entra ID concurrently with configuring ProcessMaker Platform and PM Classic. This is because each configuration procedure requires values from the other.
The web browser must support third-party cookies.
Click the Edit iconfor the Synchronization Schedule setting. The Synchronization Schedule screen displays.
Click the Edit iconfor the Type setting. The Type screen displays.
Click the Edit iconfor the Server Address setting. The Server Address screen displays.
Click the Edit iconfor the Server Port setting. The Server Port screen displays.
Click the Edit iconfor the Base DN setting. The Base DN screen displays.
Click the Edit iconfor the Username setting. The Username screen displays.
Click the Edit iconfor the Password setting. The Password screen displays.
Click the Edit iconfor the Groups To Import setting. The Groups To Import screen displays the Active Directory groups on your Active Directory server. If your Active Directory server contains no Active Directory groups, this screen displays no groups with which to synchronize.
Click the Edit iconfor the Departments to Import setting. The Departments To Import screen displays the Active Directory departments on your Active Directory server. If your Active Directory server contains no Active Directory departments, this screen displays no departments with which to synchronize.
Click the Edit iconfor the User Identifier setting. The User Identifier screen displays.
Click the Edit iconfor the Group Identifier setting. The User Identifier screen displays.
Click the Edit iconfor the Variable Map setting. The Variable Map screen displays.
Click the Edit iconfor the Chunk Size For User Import setting. The Chunk Size For User Import screen displays.
Environment Variable
Description
HOST_URL
Domain for the ProcessMaker Platform instance.
API_HOST
ProcessMaker Platform instance API to which to make all RESTful API calls.
API_TOKEN
Token a Script uses to authenticate to our API host. Note that this API token is only valid for the lifetime of the Script: after the Script runs and the Script Executor's Docker container from which that Script ran, its API token is no longer valid.