Script Task Element
Add, copy, delete, change the color, align, and configure Script Task elements in your Process model.
Don't Know What a Script Task Element Is?
See Process Modeling Element Descriptions for a description of the Script Task element.
Permissions Required
Your user account or group membership must have the following permissions to configure a Script Task element in the Process model unless your user account has the Make this user a Super Admin setting selected:
Processes: Edit Processes
Processes: View Processes
See the Process permissions or ask your Administrator for assistance.
Add a Script Task Element to the Process Model
Add a Script Task element from one of the following locations in Process Modeler:
Explorer panel: The Explorer panel is to the left of the Process Modeler canvas. The Explorer panel contains Process model objects and PM Blocks which may be added to the Process model.
Objects bar: The Objects bar is at the bottom of the Process Modeler canvas. This bar contains pinned Process model objects which are easily accessible to add to the Process model.
Follow these steps to add a Script Task element from the Explorer panel to the Process model:
Locate the Task object category from one of the following locations in the Explorer panel:
Pinned Objects: The Task object category displays from the Pinned Objects section when it is pinned. This element type is pinned by default.
Object Category: The Task object category displays from the Object Category section when it is not pinned.
Its icon displays adjacent to the mouse icon to indicate this element type may be placed into the Process model.
Click the location in the Process model to place this element. Follow these guidelines when placing this element:
Optionally place this element between two existing Process model objects already connected with a Sequence Flow element. Process Modeler automatically places this element between the existing objects and adds a new Sequence Flow element following the new element. The existing Sequence Flow element precedes the new element. If necessary, configure the Sequence Flow element following the newly placed element.
If a Pool element is in your Process model, the Script Task element cannot be placed outside of the Pool element.
After adding the Script Task element, consider adding either of the following Boundary-type Process model elements to design business solutions when your best-case scenarios don't happen:
After the element is placed into the Process model, you may adjust its location in the following ways:
Move the element by dragging it to a new location.
Select the element with other elements and/or connectors, and then move them collectively by dragging them to new locations in relation to one another.
Align and/or distribute the element in relation to other selected elements and/or connectors.
Moving a Script Task element has the following limitations in regards to the following Process model elements:
Pool element: If the Script Task element is inside of a Pool element, it cannot be moved outside of the Pool element. If you attempt to do so, Process Modeler places the Script Task element inside the Pool element closest to where you attempt to move it.
Lane element: If the Script Task element is inside of a Lane element, it can be moved to another Lane element in the same Pool element. However, the Script Task element cannot be moved outside of the Pool element.
Connect to Another Process Model Object with a Sequence Flow Element
See Connect Two Process Model Objects with a Sequence Flow Element.
Reconnect a Sequence Flow Element from This Process Model Object to Another
See Reconnect a Sequence Flow Element from One Process Model Object to Another.
Place a Script Task Element Between Two Process Model Objects Already Connected with a Sequence Flow Element
Replace a Script Task Element with a Different Task Type or Sub Process Element
After a Script Task element is added to a Process model, you may replace it with a different Task type or a Sub Process element:
Form Task element
Manual Task element
Sub Process element
The selected Script Task element is replaced by the default settings and color of the replacing element.
Follow these steps to replace a Script Task element with a different Task type element or a Sub Process element:
Select the Script Task element to change to another element. Available options display above the selected element.
Click Confirm. The new element replaces the Script Task element with its default settings and color.
Change a Script Task Element's Appearance
See Customize the Appearance of a Process Model Object.
Copy a Script Task Element
See Copy Process Model Objects into the Clipboard.
Clone a Script Task Element
See Clone Process Model Objects Without the Clipboard.
Delete a Script Task Element
See Delete Process Model Objects.
Preview the Script for the Task
After a Script Task element is added to a Process model and selected the Script to run for the Task, you may preview the associated Script, which allows you to interact with and verify the Script content in the same Process Modeler.
Ensure to select a Script for each Script Task element in your Process model. If a Script is not specified and the Script Task previews, the following placeholder displays:
Follow these steps to preview the associated Script from a Script Task element:
Select the Script Task element to preview the associated Script. Available options display above the selected element.
In the Preview window, you can do the following:
Click another Task or connector element to change the asset in the same preview window.
Settings
The Script Task element has the following panels that contain settings:
Configuration panel
Loop Characteristics panel
Documentation panel (available when the Documentation package is installed)
Error Handling panel
Vocabularies panel (available when the Vocabularies package is installed)
Advanced panel
Configuration Panel Settings
Edit the Element Name
An element name is a human-readable reference for a process element. Process Modeler automatically assigns the name of a Process element with its element type. However, an element's name can be changed.
Follow these steps to edit the name for a Script Task element:
Select the Script Task element from the Process model in which to edit its name.
In the Name setting, edit the selected element's name and then press Enter.
Select the Script to Run
Since Script Task elements are designed to run a Script, specify which Script a selected Script Task element uses. A Script must already exist before it can be selected for use in a Script Task element.
See the following topics for more information:
Ensure to select a Script for each Script Task element in your Process model. If a Script is not specified and Requests are started for that Process, a placeholder Script displays when that Script Task element triggers.
The placeholder Script allows the Request without causing it to pause indefinitely.
This functionality also allows Process Designers to place the basic Process objects into a Process model and then evaluate it during development.
Follow these steps to select a Script for a Script Task element:
Select the Script Task element from the Process model in which to specify its Script.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Expand the Configuration panel if it is not presently expanded, and then locate the Script setting.
Do one of the following:
From the Script drop-down menu, select which Script that Script Task element references. After a Script is selected, the Open Script link displays.
Click the Create a new script link. A new browser window opens to create a new Script. After creating the Script, the Script drop-down menu automatically populates with the created Script. Otherwise, be sure to select the new Script in the Script drop-down menu.
Optionally, click the Open Script link to view and/or edit your Script. Note that your user account must have appropriate Script category permissions or be a Project member in which this Script is an asset.
If no Scripts exist, the Script drop-down menu contains no options. Ensure to select and configure a Script for every Script Task element in the Process model before deploying your Process.
Configure the Selected Script
After selecting the Script for the Script Task element, optionally provide a JSON object that configures variable values for the selected Script. Providing a JSON script from the Script Task is identical to providing JSON configuration script in the Script Config JSON panel in Scripts Editor for a Script.
See the following topics for more information:
Script Editor, including the Reference a Request Variable from a Script Configuration Setting section
Example Script Executor Use Case, specifically the Import the Process section how a JSON object is used to configure a Script for a Script Task element
If a JSON script exists in the Script Task element, that script is used for the Script. An existing JSON configuration script displays in the Script Configuration option for a selected Script Task element.
The JSON script in the Script Task element overrides any JSON script entered in the Script Config JSON panel in Scripts Editor for the associated Script.
Follow these steps to enter or edit a JSON configuration script for a Script Task element:
Select the Script Task element from the Process model in which to specify its Script.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Expand the Configuration panel if it is not presently expanded, and then locate the Script Configuration option.
Enter your JSON configuration script. Use the scroll panel to the right of the Script to scroll to different sections of the Script if necessary. This is useful especially when you are editing a long Script.
You can enter your JSON configuration script directly into the Script Configuration option instead of using the Script Config Editor.
Loop Characteristics Panel Setting
Specify Characteristics to Perform Multiple Instances of the Task
Use the Loop Characteristics panel settings to specify how to perform multiple instances of this element. The following loop modes are available for this element:
No Loop Mode: Select the No Loop Mode option to perform this element's Task only once.
Loop: Select the Loop option to sequentially repeat this element's Task multiple times until an exit condition is
True
. This is useful when a Task should be performed multiple times with the same set of data, such as, processing a credit card payment. This loop mode has the following characteristics:The element's Task is repeated until the exit condition is
True
or the maximum iterations limit is reached.At any given time, only one instance of the Task is active. The subsequent instance does not begin until the current instance completes.
The same exit condition evaluates at the end of each instance; however, value(s) of the Request variable(s) used in the exit condition can change during an instance resulting in the exit condition to eventually evaluate as
True
.If any one instance of that Task does not complete, workflow pauses.
All active instances are terminated if an interrupting boundary-type event element triggers.
Multi-instance (Parallel): Select the Multi-instance (Parallel) option to perform this element's Task multiple times in parallel a fixed number of times. This is useful when performing any action in bulk, such as sending an email to several people. This loop mode has the following characteristics:
Instances of the Task are governed by the size of an array-type Request variable where a new instance is created for each item in this variable. For example, an array with 10 items will create 10 parallel instances of this Task that each contains data from its respective array index.
All instances begin simultaneously when this element triggers; however, they perform their Task independently of each other.
The Task as a whole completes when all instances are complete.
The output from each instance can either be saved in the source Request variable or a new array-type Request variable.
All active instances terminate if an interrupting boundary-type event element triggers.
Multi-instance (Sequential): Select the Multi-instance (Sequential) option to perform this element's Task multiple times sequentially a fixed number of times or until an exit condition is
True
. This is useful when sequentially repeating a Task multiple times but with a different set of data each time. This loop mode has the following characteristics:Instances of the Task are governed by the size an array-type Request variable where a new instance is created for each item in this variable. For example, an array with 10 items will create 10 parallel instances of this Task that each contains data from its respect array index.
At any given time, only one instance of the Task is active. The subsequent instance does not begin until the current instance completes.
At the end of each instance an exit condition evaluates and the loop activity halts if the exit condition is
True
.The Task as a whole completes when all instances are complete.
The output from each instance can either be saved in the source Request variable or a new array-type Request variable.
All active instances terminate if an interrupting boundary-type event element triggers.
Follow these steps to specify characteristics to perform multiple instances of the Task:
Select the element from the Process model in which to specify multiple instance characteristics.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Expand the Loop Characteristics panel. The Loop Characteristics setting displays. By default, Loop Activity is set to No Loop Mode and the Task is performed only once.
From the Loop Mode setting, select one of the following options to perform this element's Task more than once.
Loop: Select the Loop option. The settings for this loop mode display:
Follow these steps:
In the Maximum Iterations setting, enter an integer value representing the maximum number of times this Task should be performed.
In the Exit Condition setting, enter a condition in FEEL syntax. When this condition is True the loop activity is halted.
Multi-instance (Parallel): Select the Multi-instance (Parallel) option. The settings for this loop mode display:
Follow these steps:
In the Request Variable Array setting, enter the name of an array-type Request Variable. The size of this array will determine how many times this loop iterates.
In the Output Data Variable setting, enter the name of an array-type Request variable in which to store the results of all instances. Each instance of the loop saves to a separate JSON object within the array of the specified Request variable. If the Output Data Variable setting is not configured, then the output data replaces the source data in the Request Variable Array.
Multi-instance (Sequential): Select the Multi-instance (Sequential) option. The settings for this loop mode display:
Follow these steps:
In the Request Variable Array setting, enter the name of an array-type Request Variable. The size of this array will determine how many times this loop iterates.
In the Exit Condition setting, enter a condition in FEEL syntax. When this condition is True the loop activity is halted.
In the Output Data Variable setting, enter the name of an array-type Request variable in which to store the results of all instances. Each instance of the loop saves to a separate JSON object within the array of the specified Request variable. If the Output Data Variable setting is not configured, then the output data replaces the source data in the Request Variable Array.
Documentation Panel Settings
Edit the Element's Description Displayed in Process Documentation
If the Documentation package is installed, describe the element's purpose and how it functions in the Process. This description does not affect Requests for the Process, but may be useful for Process model maintenance such as how the element is configured. Edit information by using the What-You-See-Is-What-You-Get (WYSIWYG) rich text editor.
A Process's entered documentation displays by selecting the View Documentation icon for that Process.
Package Required
The Documentation package must be installed to view or edit the documentation for a Process element. Use the Documentation package to view documentation for Processes that includes an image of the Process map and entered description of its elements and connectors.
Follow these steps to edit the description for an element:
Select the element from the Process model in which to edit its description.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Follow these guidelines to use the WYSIWYG rich text editor to stylize your text:
Select the required text from the Rich Text control.
In the URL setting, enter the destination URL.
In the Text to display setting, edit or enter the text displayed in the Rich Text control.
In the Title setting, enter the text to display when a user hovers over the displayed text.
From Open link in… drop-down menu, select one of these options:
New window: Select this option to open the destination page in a new browser window.
Current window: Select this option to open the destination page in the current browser window.
In the Source setting, enter a URL for the image.
In the Alternative Description setting, enter the text to display if the source URL of the image is not accessible.
In the Width setting, enter the maximum width for the image.
In the Height setting, enter the maximum height for the image.
Click Save.
Format text: Follow these guidelines to format text:
Headings: From the Paragraph/Formats menu, select Headings and then select a heading size.
Bold: Do one of the following:
From the Paragraph/Formats menu, select Inline and then Bold.
Italics: Do one of the following:
From the Paragraph/Formats menu, select Inline and then Italic.
Underline: From the Paragraph/Formats menu, select Inline and then Underline.
Strikethrough: From the Paragraph/Formats menu, select Inline and then Strikethrough.
Superscript: From the Paragraph/ Formats menu, select Inline and then Superscript.
Subscript: From the Paragraph/Formats menu, select Inline and then Subscript.
Code: From the Paragraph/Formats menu, select Inline and then Code.
Paragraph: From the Paragraph/Formats menu, select Blocks and then Paragraph.
Blockquote: From the Paragraph/Formats menu, select Blocks and then Blockquote.
Division: From the Paragraph/Formats menu, select Blocks and then Div.
Preformatted: From the Paragraph/Formats menu, select Blocks and then Pre.
Select one of the color swatches from the color palette. The selected text changes to that color.
Align text: Follow these guidelines to align text:
Left align: Do one of the following:
From the Paragraph/Formats menu, select Align and then Left.
Center align: Do one of the following:
From the Paragraph/Formats menu, select Align and then Center.
Right align: Do one of the following:
From the Paragraph/Formats menu, select Align and then Right.
Justify: Do one of the following:
From the Paragraph/Formats menu, select Align and then Justify.
Error Handling Panel Settings
Edit Timeout and Retry Settings When Errors Occur
Follow these guidelines to set how to handle Script Task runtime errors:
Set how many seconds to wait when an unexpected error occurs during runtime before displaying the error in that Script Task, thereby causing that Request to be in Error status.
Set how many consecutive attempts to run the Script Task before displaying a runtime error.
Requests are going to wait the configured number of seconds and consecutive runtime attempts for an unresponsive Script Task before displaying the error.
Optionally, notify the Process Manager of the Script Task runtime error via an in-platform or email notification.
Follow these steps to edit the Error Handling settings:
Select the Script Task element from the Process model in which to edit the Error Handling.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
In the Timeout setting, configure how many seconds to wait for an unresponsive Script Task before declaring a time-out as follows:
Enter the number of seconds. Use the up and down arrows to increase or decrease seconds.
Set
0
for no timeout.Leave empty to use the Script Task default setting.
In the Retry Attempts setting, configure how many times to re-run the Script Task if the Script Task returns a runtime error as follows:
Enter a number. Use the up and down arrows to increase or decrease the number.
Set
0
for no retry attempts.Leave empty to use the Script Task default setting.
In the Retry Wait Time setting, configure how many seconds to wait before attempting a retry as follows:
Enter the number of seconds. Use the up and down arrows to increase or decrease seconds.
Set
0
for no timeout.Leave empty to use the Script Task default setting.
Enable the In-app Notification toggle to notify through the user interface to the Process Manager that there is a Script Task runtime error.
Enable the Email Notification toggle to notify through an email to the Process Manager that there is a Script Task runtime error.
Vocabularies Panel Settings
Assign Vocabularies That Validate Request Data from This Element
Assign Vocabularies that validate that Request data complies with a specific JSON schema. This is often mandatory for many types of business sectors including banking and healthcare. Ensure the quality and compliance of Request data. For example, during a Loan Application process, ensure that personal information has been included in the Request to that moment in that in-progress Request. The Vocabularies package must be installed to make this configuration.
Use a Vocabulary on a Script Task element to validate that Request data complies with the Vocabulary's JSON schema after the Script Task runs its Script but prior to when the Request continues workflow. See What is a Vocabulary? for more information.
Each moment ProcessMaker evaluates workflow routing for an in-progress Request, ProcessMaker Platform also evaluates the Request data's conformity to the Vocabularies applied to the Process and/or a specific BPMN 2.0 element in the Process model. The Request's JSON data model must conform to the Vocabulary's JSON schema.
During an in-progress Request, if ProcessMaker Platform evaluates that the Request data no longer complies with all Vocabularies to that moment, the Request status changes from In Progress to Error. The error displays in the Request summary. Vocabularies are cumulative in an in-progress Request: as the Request progresses, if Request data does not conform with any Vocabulary's JSON schema to that moment in the Request, the Request errors.
If no Vocabularies are assigned, ProcessMaker Platform does not validate that Request data complies with a specific JSON schema prior to continuing workflow for that Request.
One or more Vocabularies must be created before assigning a Vocabulary. See Create a New Vocabulary. Multiple Vocabularies can be assigned to a Script Task element.
Package Required
The Vocabularies package must be installed to assign which Vocabularies validate Request data at a Script Task element. Use the Vocabularies package to maintain uniform JSON schemas across all assets in your organization. These assets include Processes, Screens, and Scripts.
A Vocabulary is a JSON schema. The JSON schema describes the data objects, types, and structure that you want in both a machine and human readable format. Apply one or more Vocabularies to your Processes and/or specific BPMN 2.0 elements in your Process models to ensure the JSON data model in Request data complies with the data structure outlined in the JSON schema that you need to meet regulatory specifications or ensure Request data contains required information.
Follow these steps to assign Vocabularies that validate Request data from a Script Task element:
Select the Script Task element from the Process model in which to assign Vocabularies that validate Request data prior to when this element completes.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Expand the Vocabularies panel if it is not presently expanded. The Assigned setting displays.
From the Select Vocabulary drop-down menu, select a Vocabulary from which to validate Request data complies with its JSON schema.
If no Vocabularies are configured, then the following message displays: List is empty. Create at least one Vocabulary. See Create a New Vocabulary.
Click Save.
Repeat Steps 3 through 6 as necessary for each Vocabulary required to validate Request data complies with its JSON schema.
After one or more Vocabularies are assigned to a Script Task element, the Vocabulary icon displays in that element.
Advanced Panel Settings
Edit the Node's Identifier Value
Process Modeler automatically assigns a unique value to each Process node added to a Process model. However, a node's identifier value can be changed if it is unique to all other nodes in the Process model, including the Process model's identifier value.
All identifier values for all nodes in the Process model must be unique.
Follow these steps to edit the identifier value for a Script Task element:
Select the Script Task element from the Process model in which to edit its identifier value.
Ensure that the Configuration panel displays. If not, show it. Panels to configure this element display.
Expand the Advanced panel if it is not presently expanded. The Node Identifier setting displays. This is a required setting.
In the Node Identifier setting, edit the Script Task element's identifier to a unique value from all nodes in the Process model and then press Enter.
Related Topics
Process Modeling Element DescriptionsView Active and Inactive ProcessesCreate a New ProcessWhat is a Script?Vocabularies PackageWhat is a Vocabulary?Create a New VocabularyLast updated