Testing and Debugging Automation Flow

Testing and Debugging Automation Flow


Overview

The Flow Debugger in OneEnterprise is an integral feature of Flow Designer, facilitating testing and troubleshooting of flows before deployment. This functionality allows you to execute a flow sequentially, enabling a comprehensive examination of the data at each stage and helping you identify and effectively rectify potential issues. 

Start Debugging

Before you start debugging any flow, get familiar with the following icons:
  1. Run flow: Execute the entire workflow.
  2. Reset/Stop flow: Stop the current execution or reset it to the initial state.
  3. Run the next unit: Continue execution from the next unit in the flow.
  4. Set breakpoint: Pause execution at a specific point for inspection.

Run Flow

  1. When you open any flow, it will be displayed in design mode, and the units will be blue.
  2. Click on the Run flow icon in the toolbar.
  1. On the click of the Run flow icon, the process will be executed. 
  2. You will see an animation on the unit. The unit processing the data will display the animation. 

  1. Once the flow executes successfully, all process units will turn green.

  1. If any error occurs during any process, the flow will stop, and the processing unit will be highlighted in red.

Reset/Stop Flow

  1. This icon allows you to stop/reset the process at any time. 
  2. If the process is running, click the icon to stop it.

  1. After clicking on the Reset/Stop flow icon, the process will stop.

Run the next unit

  1. This option allows you to run the process step by step. To run the process step-by-step, first you need to set the breakpoints. You can set one or multiple breakpoints.
  2. Steps:
    1. Set the breakpoints 
    2. Run the flow. It will continue until it hits the breakpoint and then stop. You can inspect all the units and adjust the data as desired.
    3. Now, click on the Run the next unit icon. The process will start at the breakpoint and continue until the next one. If no additional breakpoints are set after that, the process will run until the End.

Set Breakpoint

You can insert the breakpoints in the flow using this function. You can set multiple breakpoints, or you can set the breakpoints on individual units.

Set Breakpoint on Unit

  1. To set a breakpoint on any unit, hover over it.
  2. A Breakpoint icon will appear on the unit. Click on the icon.

  1. After clicking the Breakpoint icon, a breakpoint is set on the unit and becomes visible.
  2. The unit's color also changes, clearly indicating that the breakpoint has been set in the flow.

Set Multiple Breakpoints

  1. You can also set multiple breakpoints in a flow at once.
  2. Click on the Breakpoint icon.

  1. After clicking the icon, the breakpoint placeholders will appear on the units.
  2. Please note that not all the units will have the placeholder. Only units that have the logical process breakpoint will have the placeholder.

  1. Click on the placeholder.
  2. After clicking the Breakpoint placeholder, a breakpoint is set on the units and becomes visible.
  3. The unit's color also changes, clearly indicating that the breakpoint has been set in the flow.


Review IPO Details of the Unit

  1. To view the IPO details of any unit, click on the unit.

  1. After clicking any unit in the flow, the IPO panel will open.
  2. The panel will display the following sections:
    1. Input
    2. Processing
    3. Output


Input Section

  1. The Input section provides the details on the inbound message, and the following tabs are provided in the section:
    1. Data section: The Data section provides the name of the processed units of the flow. 
    2. Message: The section displays the inbound message of the selected unit. 
    3. Parameters: The section provides the parameter details of the message. 
  2. The section header displays the section name and an icon to toggle between code view and tree view. To display the inbound message, the section provides the following view modes:
    1. Tree View
    2. Code View
  3. By default, inbound data is displayed in tree view mode. 

Switch Between Code and Tree View

  1. By default, the message will be displayed in Tree View.
  2. The tree view provides the following icons in the toolbar:
    1. Find: This option allows you to find any parameter in the inbound message.
    2. Font: You can set the message font for clearer viewing. The available font size range is from 8 to 24. Select the desired value from the drop-down.

  1. Click on the Switch to Code View icon.

  1. The inbound message gets switched to code view.
  2. Click the icon again to switch back to tree view mode.

Data Section

  1. The section provides the list of units that are processed.
  2. A Search option is also provided to search for the unit name from the list.
  3. You can also arrange the units either in ascending order (A to Z) or descending order (Z to A) using the icon next to the search icon. By default, the units are arranged in ascending order. Click the icon to switch to descending order. Click again to return to the default ascending order.
  4. You can click on any of the units to view data processed by the selected unit.

View/Modify Input Message (Tree View)

  1. You can view the inbound message in tree/code view.
  2. By default, the message will be displayed in tree view.
  3. The tree view provides the following icons in the toolbar:
    1. Find: This option allows you to find any parameter in the inbound message.
    2. Font: You can set the message font for clearer viewing. The available font size range is from 8 to 24. Select the desired value from the drop-down.
  4. If you click on any of the parameters in the inbound message, the corresponding parameter in the outbound message will be highlighted.
  5. You can modify any parameter in the message and click the Save button to save the changes.


View/Modify Inbound Message (Code View)

  1. If you have switched to code view mode, the inbound data will be shown in code.
  2. The code view provides the following icons in the toolbar:
    1. Cut
      1. Function: Removes the selected text or object from its current location and places it on the clipboard.
      2. Use Case: Moving content from one place to another.
    2. Copy:
      1. Function: Copies the selected text or object to the clipboard without removing it from its original location.
      2. Use Case: Duplicating content.
    3. Paste:
      1. Function: Inserts the clipboard content into the current location.
      2. Use Case: Adding previously cut or copied content.
    4. Find:
      1. Function: Searches for specific text or patterns within the document or code.
      2. Use Case: Quickly locating words, phrases, or code snippets.
    5. Replace:
      1. Function: Finds specific text and replaces it with new text.
      2. Use Case: Updating repeated terms or correcting errors throughout a document.
    6. Beautify:
      1. Function: Formats code or text to make it more readable and properly indented.
      2. Use Case: Cleaning up messy code for better readability.
    7. Word Wrap:
      1. Function: Ensures that long lines of text automatically wrap to fit within the visible window without horizontal scrolling.
      2. Use Case: Easier reading and editing of long lines.
    8. Maximize
      1. Function: Expands the editor or window to full screen for better focus and visibility.
      2. Use Case: Working without distractions or seeing more content at once.
  3. If you click on any of the parameters in the inbound message, the corresponding parameter in the outbound message will be highlighted.
  4. You can modify any parameter in the message and click the Save button to save the changes.

Parameters

  1. The section will display the defined parameters for the selected unit.
  2. The parameters that are defined in the Processing section will be displayed here.

 Processing Section

  1. This section explains the data that the system uses to transform the input.
  2. The section provides the following tabs:
    1. Details
    2. Configuration
    3. Design
    4. Processed
  3. By default, the Details tab will open. However, you can switch between the tabs by clicking on them.
  4. Each section is explained in detail in the following sections of this article.

Details Tab

  1. By default, the Details tab is shown on the Processing tab. However, if you are on any other tab, click on the Details tab. The section displays the following fields:
    1. Name:
      1. It provides the name of the processing unit.
      2. You can modify the unit name in this field. Click on the field, and modify the name of the unit.
      3. Once you are done with the modification, click on the Save button provided in the action area of the screen.
    2. Description:
      1. It describes the processing unit.
      2. You can modify the unit's description in this field. Click the field and change the unit's description.
      3. Once you are done with the modification, click on the Save button provided in the action area of the screen.

Configuration Tab

  1. Click the Configuration tab; it becomes active and displays configuration details.
  2. The configuration details may vary from unit to unit. Based on the selected unit, the configurational information will be provided on the screen.
  3. You are allowed to modify any configuration values in any field. The fields could be drop-downs, text boxes, toggle switches, etc.


Design Tab

  1. Click on the Design tab; it becomes active and displays design details.

  1. The Storage field lists the XSLT storage location where the files have been stored.
  2. Click on the drop-down to view the storage location.
  3. You can define any other storage location for the XSLT. You can add multiple design documents to that storage location. 

  1. The XSL Stylesheet field lists the currently used XSLT, which will be displayed in the drop-down.
  2. You can choose any other XSLT to use as a design. Additionally, you can add another design document.

Add New Design

  1. To another XSLT in the list, click on the Add button.

  1. After clicking the Add button, a pop-up will appear.
  2. Enter the name in the name field, and click the Add button.

  1. Once the stylesheet is added, it will be displayed.
  2. Please note that the stylesheet will have the basic XML structure. You can now add any design to the sheet. 

Parameter

  1. Click on the Parameter tab.
  1. The list of parameters will be shown on the screen.
  2. To view the parameter details, click on the band.
  3. When you click the band, it expands and displays the parameter details. Please note that the application supports three parameter types. Based on the parameter type, the fields and values will be shown:
    1. Fixed Value: A fixed value that remains constant during execution.
    2. User Defined: A value given by the user during runtime or flow execution.
    3. XPath: A dynamic value fetched from a data source using an XPath expression.


Add New Parameter

  1. If no parameter is defined, click on the Add button.

  1. After clicking the Add button, the Add Parameter pop-up will open.
  2. The pop-up provides the following fields:
    1. Parameter Name:
      1. Enter the parameter name in this field.
    2. Parameter Type:
      1. Select the parameter type from the drop-down:
        1. Fix Value:
          1. A static value that does not change during execution.
          2. Example: Setting a priority to "High" for every new incident.
          3. Use when the value is constant and does not depend on user input or dynamic data.
        2. User Defined:
          1. A value provided by the user at runtime or during flow execution.
          2. Example: Asking the user to enter an approval comment or select an assignment group.
          3. Useful for interactive flows or when input varies per execution.
        3. XPath:
          1. A dynamic value retrieved from a data source using an XPath expression.
          2. Example: Extracting a field from an XML payload or a complex data structure.
          3. The data comes from APIs or structured documents.
  3. Once both fields are filled, click on the Add button.

  1. The parameter gets added to the section. In the example below, the fixed value parameter type is selected.
  2. Expand the parameter band to provide its value.

Define Fixed Value for a Parameter

  1. To define the fixed values for a parameter, click on the band.
  2. Please note that the input fields may vary based on the parameter type.
  3. For example, if the parameter is Priority, then the value is High. There are no restrictions on entering any value into your parameter.
  4. Once the parameter's value is defined, click the Save button to save it.

Define Value for User-Defined Parameter 

  1. To define the value for a user-defined parameter, click on the band.
  2. Please note that the input fields may vary based on the parameter type.
  3. You need to define all the following fields:
    1. Label for User:
      1. The label name will be displayed to the end user during parameter value setup.
    2. Default Value:
      1. A pre-filled value that will be used as a default value if no other value is provided at runtime.
    3. Value Mandatory:
      1. Indicates if the parameter is required.
      2. If set to true, the flow cannot run without this value.
    4. Data Type:
      1. Defines the type of data expected, such as String, Integer, Boolean, Date, or Reference.
    5. Description:
      1. A short description explaining what the parameter is for.
  4. Once the parameter's value is defined, click the Save button to save it.

Define Values for XPath

  1. To define the value for an XPath parameter, click on the band.
  2. Please note that the input fields may vary based on the parameter type.
  3. You need to define all the following fields:
    1. XPath:
      1. XPath is used to extract data from structured XML or similar payloads.
      2. Define XPath from the Input section.
    2. Section:
      1. A drop-down provides the unit name of the process from where the XPath will be picked.
  4. Once the parameter's value is defined, click the Save button to save it.

Run Unit and View Output

  1. The Run button is provided in the header. This allows you to run the selected unit individually and view its output data in the Output section.
  2. You can modify its configurations and run the process to view the output. 
  3. Click on the Run button.
  1. The unit processes input data and produces output. 
  2. This allows you to adjust the input for the desired output. Using this option, you can control the production of each process unit.


Output Section

  1. The Output section provides details about the message's output. 
  2. The section header displays the section name and an icon to toggle between code view and tree view. To display the inbound message, the section provides the following view modes:
    1. Tree View
    2. Code View
  3. By default, inbound data is displayed in tree view mode. 

Toolbar

The following action icons must be provided in the toolbar:
  1. Save: TBD 
  2. Find: This option lets you locate any parameter in the outbound message.
  3. Adjust Font Size: You can set the message font for clearer viewing. The available font size range is from 8 to 72. Select the desired value from the drop-down.

Switch Between Code and Tree View

  1. By default, the message will be displayed in Tree View.
  2. The tree view provides the following icons in the toolbar:
    1. Find: This option lets you locate any parameter in the outbound message.
    2. Font: You can set the message font for clearer viewing. The available font size range is from 8 to 72. Select the desired value from the drop-down.

  1. Click on the Switch to Code View icon.

  1. The message gets switched to code view.
  2. Click the icon again to switch back to tree view mode.


Toolbar

  1. If you have switched to code view mode, the output data will be shown in code.
  2. The code view provides the following icons in the toolbar:
    1. Cut
      1. Function: Removes the selected text or object from its current location and places it on the clipboard.
      2. Use Case: Moving content from one place to another.
    2. Copy:
      1. Function: Copies the selected text or object to the clipboard without removing it from its original location.
      2. Use Case: Duplicating content.
    3. Paste:
      1. Function: Inserts the clipboard content into the current location.
      2. Use Case: Adding previously cut or copied content.
    4. Find:
      1. Function: Searches for specific text or patterns within the document or code.
      2. Use Case: Quickly locating words, phrases, or code snippets.
    5. Replace:
      1. Function: Finds specific text and replaces it with new text.
      2. Use Case: Updating repeated terms or correcting errors throughout a document.
    6. Beautify:
      1. Function: Formats code or text to make it more readable and properly indented.
      2. Use Case: Cleaning up messy code for better readability.
    7. Word Wrap:
      1. Function: Ensures that long lines of text automatically wrap to fit within the visible window without horizontal scrolling.
      2. Use Case: Easier reading and editing of long lines.
    8. Maximize
      1. Function: Expands the editor or window to full screen for better focus and visibility.
      2. Use Case: Working without distractions or seeing more content at once.







    • Related Articles

    • Debugging and Testing the Component Workflow

      Overview The Flow Debugger in OneEnterprise is an integral feature of Flow Designer, facilitating testing and troubleshooting of flows before deployment. This functionality allows you to execute a flow sequentially, enabling a comprehensive ...
    • Edit Automation Flow

      Overview The flow editor feature in OneEnterprise enables users to visually modify and refine automation workflows through an intuitive interface. This functionality permits direct interaction with the structure of an automation, allowing review of ...
    • Know Your Flow Editor

      Overview Flow Editor is a visual tool for creating, organizing, and controlling workflows that link various systems, applications, and data sources. It offers a drag-and-drop feature with pre-made flow units to define data movement, integration ...
    • Understand Your Flow Units

      Overview A Flow Unit is a configurable and reusable building block within the Flow Designer that represents a single action or logic step in an automation flow. Each flow unit processes input data, performs a defined operation, and produces an output ...
    • Edit Component Flow

      Overview The flow editor feature in OneEnterprise enables you to visually modify and refine component flow through an intuitive interface. This functionality permits direct interaction with the flow structure of the component. The flow editor offers ...