ProcessMaker 4.0.4 Release Notes

ProcessMaker version 4.0.4 Release Notes

Overview

Release Date: April 29, 2020

ProcessMaker is proud to announce the immediate availability of ProcessMaker version 4.0.4. This update brings multiple new features, improvements, and bug fixes.

The ProcessMaker 4 platform makes it easy to create business processes that have the power of applications with our low-code approach using our BPMN 2.0-compliant suite of services so that you can design and deploy automated workflows that deliver true digital agility to your organization.

This document contains Release Notes for ProcessMaker version 4.0.4 core-product functionality that is part of the ProcessMaker open-source edition, and does not describe Release Notes for non-core packages. Release notes are cumulative, and document new features, improvements, bug fixes, and/or known issues associated with this release unless otherwise noted.

ProcessMaker version 4.0.4 core product uses the following versions:

  • ProcessMaker Query Language (PMQL): Version 1.1.3

  • Process Modeler: Version 0.24.1

  • Screen Builder: Version 0.23.3

Links to System Requirements and Special Instructions

New Features

This section documents new features for ProcessMaker version 4.0.4.

Core

  1. #2887: ProcessMaker administrators may now add custom third-party packages to properly run ProcessMaker Scripts that require them. For example, to run a ProcessMaker Script that calls a Google API endpoint that requires a Google package to run successfully, add that package to your ProcessMaker instance so that any ProcessMaker Script that requires it can access it when that Script runs.

Process Modeler

  1. #1167: Process Modeler now supports the Terminate End Event element. When a Terminate End Event element triggers during a Request, all workflow associated with that Request, including parallel workflow and child Requests started from a Sub Process element, terminate immediately to end all Request workflow. That Request completes.

  2. #2990, #3007 and #3058: Process Modeler now supports the following BPMN 2.0 elements related to Signal events:

    • Signal Start Event element: Start a new Request when this element receives a selected signal from an Intermediate Signal Throw Event or Signal End Event element from any other Request in that ProcessMaker instance.

    • Intermediate Signal Throw Event element: After this element triggers, broadcast a selected signal. Any of the following elements configured to monitor for that signal trigger:

      • Signal Start Event element

      • Intermediate Signal Catch Event element

      • Boundary Signal Event element

    • Intermediate Signal Catch Event element: Resume workflow for a Request when this element receives a selected signal from an Intermediate Signal Throw Event or Signal End Event element from any other Request in that ProcessMaker instance.

    • Boundary Signal Event element: If this element receives a selected signal from an Intermediate Signal Throw Event or Signal End Event from any other Request in that ProcessMaker instance, alternate workflow routes through that element instead of its associating element. A Boundary Signal Event element can associate with any of the following element types:

      • Task element (now called Form Task element, #1138)

      • Manual Task element

      • Script Task element

    • Signal End Event element: After this element triggers, broadcast a selected signal, and then complete that Request. Any of the following elements configured to monitor for that signal trigger:

      • Signal Start Event element

      • Intermediate Signal Catch Event element

      • Boundary Signal Event element

Improvements

This section documents improvements for ProcessMaker version 4.0.4.

Core

  1. #2896: Links to the Software Development Kit (SDK) and ProcessMaker Application Program Interface (API) documentation are now included when a new ProcessMaker Script is created.

  2. #2982: The shared memory in Docker containers that securely run ProcessMaker Scripts has been increased to 256 MB.

  3. #3036: Web Entry portals using ProcessMaker now have the following improvements:

    • Use the embed code for a ProcessMaker Screen to embed that Screen into your web portal. See an example of this improvement at c19report.com.

    • When clicking the Page Navigation control in a multi-page ProcessMaker Screen for a Task, the page automatically scrolls to the top when it displays.

  4. #3037: The latest Vue Form Elements and Screen Builder packages are now part of core that provide improvements to Screen Builder controls.

  5. #3040: When ProcessMaker runs a Script securely in a Docker container, ProcessMaker ensures resources are allocated for any custom images. This improvement does not affect the ProcessMaker user interface.

Process Modeler

  1. #1098: Process designers may now align and/or distribute multiple BPMN elements and/or connectors (objects) placed in a Process model for greater legibility. Multiple objects must be selected (#1100). Boundary-type elements associated with any selected elements are not affected: they remain with their respective elements. Sequence Flow elements, Message Flow elements, and/or Association elements are not affected: they maintain their connections with their respective objects. Lane elements are not affected.

    Process Modeler now has the following icons from left to right in the same bar as the Process name:

    • Align Left: Left-justifies two or more selected objects based on the left-most element/connector selected.

    • Center Horizontally: Horizontally centers two or more selected objects based on the horizontal center location of all the selected elements/connectors.

    • Align Right: Right-justifies two or more selected objects based on the right-most element/connector selected.

    • Align Bottom: Bottom-justifies two or more selected objects based on the bottom-most element/connector selected.

    • Center Vertically: Vertically centers two or more selected objects based on the vertical center location of all the selected elements/connectors.

    • Align Top: Top-justifies two or more selected objects based on the top-most element/connector selected.

    • Distribute Horizontally: Horizontally distributes three or more selected objects based on the placement of the left-most and right-most selected elements/connectors. If a Pool element is among the selections, elements and/or connectors in that Pool element are not affected.

    • Distribute Vertically: Vertically distributes three or more selected objects based on the placement of the top-most and bottom-most selected elements/connectors. If a Pool element is among the selection objects, objects in that Pool element are not affected. Selected objects that are in different Lane elements may cause one or more objects to move to a different Lane element.

  2. #1099: Process designers may now copy a selected BPMN element or connector that is placed in a Process model. In doing so, the copied element/connector has the same settings as its source. Select the element or connector to copy, and then select the Copy Element icon.

  3. #1100: Process designers may now selected multiple BPMN elements and/or connectors (objects) placed in a Process model to either move them together or or align/distribute them (#1098). If the multiple objects are inside a Pool element, then only the first object is affected: multiple objects cannot be selected. To select multiple objects, select one object, hold the Shift key, and then select other non-Pool element objects.

  4. #1138: The following labeling changes clarify that Request participants use forms when working on Tasks:

    • In the Elements and Connectors palette that is to the left of the Process Modeler canvas, the Task element label has been changed to Form Task.

    • After placing a Form Task element in the Process model, the option to place a Task a Request participant performs has been changed to Form Task.

  5. #1139: If the Process Modeler palettes are hidden when a Process model element or control is selected, the Settings palette now automatically displays to show the selected element/control settings. When the element/control is no longer selected, such as by clicking the Process Modeler canvas, the Settings palette automatically hides.

  6. #1147: Process designers may now change the color of a selected BPMN element or connector that is placed into a Process model. Select from pre-set colors or your own custom color. The color of the text label also changes. Changing the color does not affect workflow routing. Select the element or connector in which to change its color, and then select the Open Color Palette icon.

  7. #1184: Sequence Flow elements can now be set as the default outgoing Sequence Flow element from an Exclusive Gateway or an Inclusive Gateway element. If none of the conditions specified in any of the outgoing Sequence Flow elements meet the Request conditions to trigger, the default outgoing Sequence Flow triggers, thereby preventing the Request from pausing indefinitely. If a Sequence Flow element is set as the default, then its evaluation is ignored and it triggers by default. Only one outgoing Sequence Flow element from an outgoing Exclusive Gateway or Inclusive Gateway element may be set as the default.

Screen Builder

  1. #15: The Rich Text control now supports images and page breaks.

  2. #619: When a Select List control uses a JSON array of objects as its options, settings are redesigned such that any of the following may become the Variable Name setting value for the Select List control:

    • the name of one selected JSON object

    • the value for one selected JSON object

    • a selected JSON object that contains all its object properties

    Example:

    Suppose that a Select List control uses the the following nested JSON array of objects to include as options:

    company = {

    "name": "Company",

    "CEO": "Bob",

    "employees": [

    { "name": "Diane", "more": ["email": "[email protected]", "title": "CTO"] },

    { "name": "Harry", "more": ["email": "[email protected]", "title": "CFO"] },

    { "name": "Beatty", "more": ["email": "[email protected]", "title": "COO"] },

    ]

    }

    If the Request data from the JSON array employees are options for the Select List control, and the options are shown from the object property more.title, then CTO, CFO, and COO would display as options. When one or more options are selected, either the object property more.title or the value(s) CTO, CFO, and/or COO become the Variable Name setting value for the Select List control.

  3. #620: When typing in a multi-select Select List control to filter its options during a Request, the option(s) that match entered text automatically filter. This makes it easier and faster to locate the specific option(s) to select.

  4. #654: Screen Builder now has the following validation rule types for controls that support validation:

    • After a date: Validate that the date entered into the control is after a specified date. Applies to Date Picker and Line Input controls.

    • After or equal to a date: Validate that the date entered into the control is after or the same as a specified date. Applies to the Date Picker and Line Input controls.

    • Before a date: Validate that the date entered into the control is before a specified date. Applies to the Date Picker and Line Input controls.

    • Before or equal to a date: Validate that the date entered into the control is before or the same as a specified date. Applies to the Date Picker and Line Input controls.

    • Regex pattern: Validate that the value entered into the control contains a specified text by matching a specific search pattern for that text. For example, use a Regex pattern validation rule to search for a date within a paragraph entered into a Textarea control.

  5. #622 and #645: Screen Builder controls that use the Default Value setting in the Advanced panel now may use a Calculated Property to determine the default value during that Request.

  6. #646: If a Screen Builder control has a defined default value, that default value is already entered or selected in that control to indicate that default value.

  7. #655 and #175: The Date Picker control now allows only a specific range of dates be selected in the control. Dates that are before and after the configured dates in a Date Picker control are not available for selection.

  8. #661: Any additional Loops added while doing a Task may now be removed if necessary.

  9. #665: The toolbar for the Rich Text control now docks at the top of the Rich Text control editor space.

Bug Fixes

This section documents bug fixes for ProcessMaker version 4.0.4.

Core

  1. #2096: All ProcessMaker assets associated with an exported ProcessMaker Screen are intact when that Screen is imported, including nested Screens, Scripts, and connectors.

  2. #2897: All usernames and passwords are hidden in ProcessMaker Environment Variables.

  3. #2932: Request histories now display the label how a Gateway-type element evaluated in a Request. This bug fix applies to all Gateway-type BPMN elements ProcessMaker supports.

  4. #2975: The Remember me function from the ProcessMaker log on page that remembers the last valid log on credentials now properly functions.

  5. #2977: Packages and their versions that are not part of the core-product functionality properly display in the About page.

  6. #2978: Pending Tasks now properly indicate that they are completed even if such a Task is not accessed through the notification displayed from the Notification icon.

  7. #2979: Columns in the To Do Tasks page now display in a non-English language when the ProcessMaker user changes the language to display ProcessMaker labels and messages. Note that English-language is the default language and the only natural language provided for the ProcessMaker open-source edition. However, if the Translations package is installed to your ProcessMaker instance, you may display the ProcessMaker user interface labels and messages to German-, Spanish-, or French-language.

  8. #2997: The page navigation buttons on the Users page that list all ProcessMaker users in that ProcessMaker instance now function correctly.

  9. #3019: The Composer.lock file now is properly in-sync. This issue did not affect product functionality prior to it being addressed.

  10. #3028: ProcessMaker now properly associates with existing Docker images when running a Script.

PMQL

  1. #13: The PMQL operator != properly functions as the "not equal to" operator.

Process Modeler

  1. #1148: The Process Modeler validation console does not display a validation error when any connector is added to an opened Process model.

Screen Builder

  1. #173: The Rich Text control properly opens hyperlinks that have been placed into its content.

  2. #635: The Loop control can read the value of the _parent variable (introduced in ProcessMaker 4.0.3), but cannot change its value. This prevents the Loop control from possibly changing the _parent variable value to the Variable Name setting value of a control that the Loop control includes in the set of controls that it duplicates, thereby causing an infinite loop whereby the Loop control indefinitely calls itself.

  3. #637: When a Currency data type value that does not use a currency symbol (such as EUR) is entered into a Line Input control, the currency amount no longer displays as a null value in Preview mode.

  4. #638: When a Loop control that contains other controls is placed into a Multicolumn / Table control, that Loop control as well as the control it contains now display properly in the Multicolumn / Table control.

  5. #639: The tooltip for the function to copy a ProcessMaker Screen control and its settings now displays Copy Control to match usability language throughout ProcessMaker.