Designing a BMC Helix Innovation Studio process to retrieve data from external systems


Design a BMC Helix Innovation Studio process to retrieve data from external systems. This process can retrieve data from any external system, provided that you have integrated BMC Helix Digital Workplace Catalog with this system through service connectors. After that, you can use this external data in service questionnaires to create selection menus for responses to single-select and multi-select dropdown questions. For more information about the end-to-end process of utilizing external data retrieved through the BMC Helix Innovation Studio process, see Leveraging-external-data-in-questionnaires-by-using-a-BMC-Helix-Innovation-Studio-process.

Scenario

Employees at Apex Global frequently require IT equipment like laptops, monitors, and printers for their workstations. To streamline this process, the IT department integrates an external system that contains a comprehensive list of IT equipment with BMC Helix Digital Workplace Catalog through a REST connector. Hannah, the Catalog admin, creates an BMC Helix Innovation Studio process to retrieve the IT equipment list from this external system. Then, while creating a questionnaire, she builds selection menus that use the list of IT equipment retrieved by this process. 

Before you begin

To design a process to retrieve data from external systems

The following procedure explains how to create a sample process for retrieving data from external systems. You can use this example to develop your own process, which may vary based on your specific requirements.

  1. Log in to the Catalog console and add a new workflow.
    new_process.png
  2. On the Process Properties pane, add the following process variables required for the workflow:

    Variable type

    Variable

    Description

    Input

    Object input

    Specify this variable as an Object data type variable. From the Document Definition list, select the document definition that you created earlier. You can provide any suitable name for this variable; for example, computer Device

    Text input

    Specify this variable as a Text data type. During the workflow execution time, this variable filters out data from the external system based on the user's specific query.

    You refer to this variable while building selection lists for question responses by mapping to the process at Step 12. You can provide any suitable name for this variable, such as URI. Also, if you would like to filter data by multiple inputs from the end user, you can create multiple Text input variables. 

    Output

    Output

    Specify this variable as an Object data type variable. From the Document Definition list, select the document definition that you created earlier. This variable captures the data retrieved from the external system in JSON format as specified in the document definition. You can provide any suitable name for this variable. For example: output_var

    Important: The designed process must have at least one output variable of the Object type. If it doesn't, the Catalog administrator won't be able to select this process while mapping question values to a process. 

  3. On the Process Properties pane, set the Permissions to Public
  4. In the Workflow designer, drag and drop the Send Http Request element on to the canvas.
    This element creates an API to query the external system for data. 
  5. In the Input Map section of the Element Properties pane, fill in the following process input parameters for the Send Http Request element: 

    Input map parameter

    Field value example

    Description

    Connection ID

    connection_ID.png

    Select the service connector that establishes the connection from BMC Helix Digital Workplace Catalog to the external system.

    To locate the variable for the service connector, select Connection and the required connector, as represented by the name of the connector.

    select_connector.png 

    Method

    "GET"

    Enter the method name to query data in the external system. 

    URI

    URI.png


    Define the URI to identify the resource for data retrieval and the user's input used to specify the data to be retrieved. For example, enter the URL of the third-party application in the quotation marks, then add the plus (+) symbol and insert the Text input process variable that you created at Step 2. In this example, it is the URI variable. Enclose the entire expression in parentheses.

    If necessary, you can build expressions of various complexity that include multiple Text input process variables.

    Click to view an example

    complex example.png

    To locate the required Text input process variable, select Process variables, and then locate the variable by its name.

    Body Parser (required)

    "JSON"

    Enter "JSON". 

  6. Connect a sequence flow from Start to Send Http Request.
  7. In the Workflow designer, drag and drop the Add Array Element to Document element on to the canvas.
    This element adds information from the external system to the document definition that you created earlier. 
  8. Connect a sequence flow from Send Http Request to Add Array Element to Document.
  9. In the Input Map section of the Element Properties pane, fill in the following process input parameters for the Add Array Element to Document element: 

    Input map parameter

    Description

    Document Definition Name

    Select the document definition that you created earlier. Fields in this document definition will be available for selection as the Stored and Display values when you design the questionnaire.

    Document Instance (required)

    Select the Object input variable you created earlier. To locate the Object input variable, select Process variables > Object input.

    Node name (required)

    Select data. It is an array node where data from the external system will be stored.

    Value (required)

    Select the Body variable. To locate the Body variable, select Activities > Send Http Request > Response > Body.

    This variable captures the response body from the external system as an input for further processing of the data.

    input_map_device.png

  10. In the Output Map section of the Element Properties pane, fill in the following process input parameters for the Add Array Element to Document element: 

    Output map parameter

    Description

    Name (required)

    Select the Output variable of the Object data type that you created earlier at Step 2. 

    Source (required)

    Select Output. To locate the Output variable, select Activities > Add Array Element to Document > Output.

    output_map.png

  11. Connect a sequence flow from Add Array Element to Document to End.
    process_devices_lookup.png
  1. Save the process.

Best practice
We recommend avoiding the use of Receive Task or similar elements because they might lead to execution delays.

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*