4 Creating Orchestrations with Orchestrator Studio 7.0.x.0

Important:

This chapter has been updated in support of Orchestrator Studio 7.0.x.0. The features related to this release are notated with the release number.

Orchestrator Studio 7.0.x.0 is the latest version which requires a minimum of EnterpriseOne Tools 9.2.3. If you have not installed Orchestrator Studio 7.0.x.0, see Chapter 2, "Implementing the Orchestrator Studio" in this guide.

Instructions for using prior versions of the Orchestrator Studio are in the appendices of this guide.

This chapter describes how to take your orchestration design from analysis to implementation. It contains the following topics:

4.1 Understanding the Orchestrator Studio and Orchestrations

The Orchestrator Studio is a web-based application for creating orchestrations and the components that comprise an orchestration. The JD Edwards EnterpriseOne Orchestrator processes these components when executing an orchestration instance on the AIS Server.

Use the Orchestrator Studio to create the following components:

  • Orchestrations. An orchestration is the master component that provides a unique name for an orchestration process. The orchestration is where you define the inputs for the orchestration, the expected incoming data. It also includes orchestration steps, which are invocations to the other components described in this list. When the Orchestrator invokes an orchestration, it processes the steps defined in the orchestration.

  • Service Requests. A service request contains the instructions that an orchestration uses to:

    • Perform a business transaction or query data in EnterpriseOne.

    • Send a message about a transaction to EnterpriseOne users or external users.

    • Retrieve Watchlist data from EnterpriseOne.

    • Invoke an EnterpriseOne report.

    • Transfer files between EnterpriseOne and another system.

    • Execute a custom process using custom Java or Groovy.

    • Invoke a REST service, database, a notification, or another orchestration.

    • Import data from a CSV file (Orchestrator Studio 7.0.0.0).

    At a minimum, an orchestration defined with inputs and a service request is all that is required for the Orchestrator to process an orchestration.

  • Rules. A set of conditions that the input to the orchestration is evaluated against to produce a true or false state. With rules, a false outcome or true outcome can invoke further orchestration steps. You can also nest rules, in which an outcome of one rule can invoke a different rule, to produce complex evaluations. You can also use custom Java to define rules.

  • Cross References. A set of data relationships that map third-party values to EnterpriseOne values. For example, a device's serial number can be cross-referenced to a JD Edwards EnterpriseOne Equipment Number for use in service requests.

  • White Lists. A white list contains an inclusive list of values permitted in the orchestration and terminates the orchestration process if the data is not recognized.

  • Schedules. A schedule defines how often the system executes an orchestration or notification. You can define a schedule using minutes, hours, days, or a Cron string (for example, every Tuesday at 2:00 pm). You can attach the same schedule to multiple components.

You can also create notifications in the Orchestrator Studio. A notification is a process that can run independent of an orchestration. It enables the system to notify users of business events as they happen. The notification can contain boilerplate text and a shortcut to an EnterpriseOne application and can be configured to execute a Watchlist or an orchestration. To learn how to create notifications, see the JD Edwards EnterpriseOne Tools Notifications Guide.

Figure 4-1 shows the drop-down list of the steps you can add to an orchestration. Each step in an orchestration is simply a reference to a cross reference, rule, service request, or white list component.

Figure 4-1 Orchestration Steps in the Orchestrator Studio

Description of Figure 4-1 follows
Description of ''Figure 4-1 Orchestration Steps in the Orchestrator Studio''

4.1.1 Invoking an Orchestration

When a new orchestration is saved in the Orchestrator Studio, the name of orchestration is used to define an endpoint on the AIS Server. The endpoint URL is:

http://<server>:<port>/jderest/orchestrator/<orchestrationname>

To invoke an orchestration, calling applications or devices use a post operation to this URL, where <orchestrationname> is the name of your orchestration. The post operation must include security parameters that enable access to the orchestration and any EnterpriseOne application invoked by the orchestration. See Orchestration Security Considerations for more information.

4.1.2 Reusable Orchestration Components

Orchestration components are reusable. You can include the same component, such as a service request or cross reference, in more than one orchestration. If a component is used as a step in more than one orchestration, you should evaluate how it is used in the other orchestrations before modifying it.

To determine if a component is used by other orchestrations, select the component and then click the "i" button to display a pop-up window that lists the orchestrations where the component is used.

When in doubt, use the "Save As" button to create a new component from an existing one. This enables you to give it a new name and modify it as necessary, and eliminates the risk of breaking other orchestrations where the component is used.

4.1.3 Orchestrations as User Defined Objects

All orchestration components created in the Orchestrator Studio are stored as user defined objects (UDOs) in EnterpriseOne. The Orchestrator Studio includes UDO features for creating, sharing, and modifying orchestration components as UDOs. See User Defined Object (UDO) Features in the Orchestrator Studio for a description of the UDO features.

4.2 Accessing the Orchestrator Studio

The Orchestrator Studio is a web application that runs in a web browser. Ask your system administrator for the URL to the Orchestrator Studio.

Important:

Before users can access the Orchestrator Studio, an administrator must set up security to authorize access to the Orchestrator Studio design pages and determine the actions Orchestrator Studio users can perform. See Chapter 10, "Administering the Orchestrator Studio and Orchestrations" for more information.

To access the Orchestrator Studio:

  1. In a web browser, enter the URL to the Orchestrator Studio:

    http://<adf_server>:<port>/OrchestratorStudio/faces/index.jsf

  2. On the Orchestrator Studio Sign In screen, enter your EnterpriseOne User credentials, environment, and role.

    Note:

    It is highly recommended that you enter an EnterpriseOne environment used for testing, not a production environment.
  3. Click the Login button.

In the Orchestrator Studio, click the drop-down menu in the upper-right corner to view the path to the AIS Server. The drop-down menu also provides a link to log out of the Orchestrator Studio.

4.3 Navigating the Orchestrator Studio

The orchestration component icons on the Orchestrator Studio Home page take you to the design pages for creating and modifying each orchestration component. You can click the Home icon at the top left of the Home page to display a side panel, which provides another way to access the orchestration component design pages. You can also access this side panel within the component design pages for easy navigation between the different design pages. Figure 4-2 shows the Home page with the side panel enabled.

Figure 4-2 Orchestrator Studio Home

This image is described in surrounding text.

The Tools link in the upper-right corner of the Home page provides access to the Orchestrator Studio Tools page. This page provides links to tools for testing orchestrations, importing orchestration files, creating connection soft coding records for connector service requests, creating schedules, and accessing the JD Edwards EnterpriseOne web client. For more information, see the following topics:

4.3.1 Orchestrator Studio Design Page Features

All Orchestrator Studio design pages contain the following features, which are highlighted in Figure 4-3:

  • Component list. Displays a list of existing components.

    Use the vertical divider next to the component list to adjust the size of the list. You can click the raised tab on the divider to hide or show the component list.

  • Group Filter drop-down list. Enables you to display components in the component list by UDO status: Personal, Pending Approval, Rework, Reserved, Shared, or All.

  • Search field. Search for an existing component in the list.

  • New <Component> button. Create a new component.

  • i (About). Takes you to the About page which provides the Status, Detail, Description, and Object Name of the selected component. It also shows a list of the orchestrations where the component is used.

  • Restore All or Restore <Component>. Restore the component to its original state if you made a mistake and do not want to save your changes.

  • Export File. Export the component file to your local machine, which you should use only to inspect the XML of the component. See Exporting Orchestration Components from the Orchestrator Studio in this guide for more information.

  • Close. Exit the design page.

Figure 4-3 Orchestrator Studio Design Page Features

Description of Figure 4-3 follows
Description of ''Figure 4-3 Orchestrator Studio Design Page Features''

4.3.2 User Defined Object (UDO) Features in the Orchestrator Studio

Orchestration components are saved and managed as UDOs in EnterpriseOne. The Orchestrator Studio includes UDO buttons, highlighted in Figure 4-4, that enable you to create orchestration components for your own personal use, publish or "share" orchestration components, and modify shared orchestration components created by other users.

Note:

The actions that you are allowed to perform in the Orchestrator Studio depend on the UDO security permissions granted to you by a system administrator. See Setting Up UDO Security for Orchestrator Studio Users (Release 9.2.1) in this guide for more information.

Orchestration components as UDOs enables administrators to use EnterpriseOne administration tools to manage the life cycle of orchestration components. For more information about the life cycle management of UDOs, see "UDO Life Cycle and Statuses" in the JD Edwards EnterpriseOne Tools Using and Approving User Defined Objects Guide.

Table 4-1 describes the UDO buttons in the Orchestrator Studio design pages and the life cycle status enacted by each UDO action.

Table 4-1 Description of UDO Features in Orchestrator Studio Design Pages

UDO Button Description

Save and Save As

Saves the orchestration component to a status of "Personal." Components with a status of "Personal" are components that you are developing and have not been shared for publishing to the AIS Server.

Request to Publish

Sends the orchestration component for approval for sharing. An administrator or approver must approve it in order for the UDO to be shared. The component status changes to "Pending Approval" in the component list and then changes to "Shared" once it is approved. If rejected, that status changes to "Rework." At that point, you can edit the component and then use the Request to Publish button to send it for approval again.

Reserve

Reserves a shared UDO so you can modify it. When reserved, no other users can make changes to it. The component status changes to "Reserved."

Unreserve

Cancels the reserved component, which returns the status of the component to "Shared."

Delete

Deletes a "Personal" UDO. You cannot use this button to delete a shared UDO. Shared UDOs can only be deleted by an administrator.

Notes

Available when the component is in the "Pending Approval" status, this button enables you to add an additional note to send to the approver of the UDO. The Notes button is active only if there was a note added the first time the UDO was sent for approval using the "Request to Publish" button. This feature enables you to add an addendum to the original note.


Figure 4-4 Design Page UDO Features

Description of Figure 4-4 follows
Description of ''Figure 4-4 Design Page UDO Features''

4.3.3 Working with the Graphical Representation of an Orchestration

Figure 4-5 shows an example of the initial Orchestrations page, which lists all orchestrations that you have access to and provides a graphical representation of an orchestration with all its components.

Figure 4-5 Orchestrations Page

Description of Figure 4-5 follows
Description of ''Figure 4-5 Orchestrations Page''

The graphic area includes the following features:

  • Control Panel

    The Control Panel icon in the upper-left corner of the graphic area contains directional controls to pan left, right, up, and down, as well as zoom in or zoom out. "Zoom to Fit" displays the entire graphical representation in the window. The layout buttons change the layout to vertical, horizontal, tree, radial, or circle, which helps to view more complex orchestrations that contain multiple components.

  • Informational hover help

    Hover your mouse over a component in the graphical area to view an enlarged image of the component. Hovering over the labels on the lines between a rule component and its child components magnify the "True" or "False" label. A "True" label indicates the child component will be invoked if the conditions in the rule are met. A "False" label indicates the child component will be invoked when the condition of the rule is not met.

  • Isolate and Restore buttons

    The Isolate button on the left side of a component shows only that component in the graphic area. Restore displays all orchestration components.

  • Access to the design page for editing the component

    When you click a box representing a component, the Orchestrator Studio takes you to the design page for modifying that particular component.

4.4 Creating Service Requests

This section contains the following topics:

4.4.1 Understanding Service Requests

A service request provides the instructions that enable an orchestration to carry out a particular task. You can create the following types of service requests in the Orchestrator Studio:

  • Form Request

    A form request contains the instructions for the orchestration to perform a particular business transaction in EnterpriseOne.

  • Data Request

    Use a data request in an orchestration to query and return values from an EnterpriseOne table or business view. You can also configure a data request to perform an aggregation on data to return aggregate amounts.

  • Message

    Use a message request if you want an orchestration to send a message to an external email address (requires an SMTP server) or EnterpriseOne users through the EnterpriseOne Work Center.

  • Connector

    Use a connector request to invoke an orchestration, notification, REST service or database. For a connector to an orchestration, a connector can invoke a local orchestration or an orchestration on another AIS Server, such as an AIS Server on another EnterpriseOne system in a multisite operation.

    Also, you can configure a connector to use FTP or a REST call to transfer report output or other files to an external server.

  • Custom

    Use custom Java or Groovy to execute a custom process.

  • Watchlist

    Use a Watchlist service request to use the information from Watchlists, such as critical or warning states, threshold levels, and number of records, within an orchestration.

  • Report

    Use a report request to invoke a batch version of a report in EnterpriseOne.

Before you create a service request, you must first identify the EnterpriseOne task or business process that you want the service request to perform. See Identifying the Service Request Information for the Orchestration for more information.

4.4.2 Creating a Service Request

To create a service request:

  1. On the Orchestrator Home page, click the Service Requests icon.

    The Orchestrator Studio displays the initial Service Requests page.

  2. On this page, click Create Service Request, and from the drop-down list, select the type of service request that you want to create:

    • Form Request

      Recommended:

      Instead of manually creating a form request in the Orchestrator Studio, use the JD Edwards EnterpriseOne Orchestrator Process Recorder to create it. You can access the Process Recorder in EnterpriseOne and record each step or action that you want the form request to perform, which the Process Recorder then saves as a form request. See Creating a Form Request with the JD Edwards EnterpriseOne Orchestrator Process Recorder (Release 9.2.2.4).

    • Custom

    • Data Request

    • Message

    • Connector

    • Watchlist

    • Report

    Alternatively, access the Orchestrations design page and add a Service Request step to an orchestration. At the end of the service request row, click Edit (pencil icon) and select the service request type that you want to create.

  3. On the Service Requests design page, click the Product Code drop-down list to select a product code to associate with the service request.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  4. On the Service Request Type design page, complete these fields:

    • Service Request. Enter a name for the service request. Do NOT include special characters in the name. You should include the service request type, such as "form request" or "data request," in the name to distinguish it from other service requests listed in the Service Request design page.

    • Short description field. In the space provided, enter a description with a maximum of 200 characters. This description will appear below the service request name in the component list.

  5. (Optional) Click Long Description to provide additional details about the purpose of the service request.

  6. Click Save.

    The first time a new service request is saved, it is saved as a "Personal" UDO. After configuring the service request, you can use the UDO buttons described in the User Defined Object (UDO) Features in the Orchestrator Studio section to move the service request to the appropriate status.

  7. Refer to the appropriate section for instructions on how to configure the service request type: form request, data request, message request, connector request, Watchlist request, report request, custom Java request, or custom Groovy request.

4.4.3 Configuring a Form Request in the Orchestrator Studio

A form request contains the instructions for the orchestration to perform a particular business process or transaction in EnterpriseOne.

Create the form request as described in Creating a Service Request, and then perform these tasks:

Recommended:

Instead of using the Orchestrator Studio to create a form request, use the JD Edwards EnterpriseOne Orchestrator Process Recorder. You can access the Process Recorder in EnterpriseOne and record each step or action that you want the form request to perform, which the Process Recorder then saves as a form request. See Creating a Form Request with the JD Edwards EnterpriseOne Orchestrator Process Recorder (Release 9.2.2.4).

4.4.3.1 Loading EnterpriseOne Application Form Fields and Controls

  1. In the Available Actions area, complete the following fields:

    • Application. Enter the application ID.

    • Form. Click the drop-down list to select the form.

    • Version. Enter the version ID.

      If you leave Version blank, the Orchestrator will use the default version when it executes the form request.

      Leaving the version field blank with the Application Stack option selected gives you the option to pass in the version from an orchestration input. This enables you to configure an orchestration that includes rules with conditions so that clients can call different versions dynamically.

      When you add the form request to an orchestration, click the Add Inputs to Orchestration button to add the variable representing the version to the Orchestration Inputs area. The variable is displayed with the application ID followed by _Version, for example P03013_Version.

  2. Click the Form Mode drop-down list and select the appropriate form mode: Add, Update, or Inquiry.

    At runtime, the controls that appear on an EnterpriseOne form are dependent on the form mode as specified in Form Design Aid (FDA). The form mode ensures that you can see all of the form controls in the Orchestrator Studio that are available in the form at runtime.

  3. Select the following options as appropriate:

    • Application Stack. Application stack processing enables the form request to establish a session for a specific application and maintain the session across calls. With application stack processing, the form request can invoke multiple forms in different applications to complete a business process. Without the application stack processing, each form in the form request is opened independently.

      If you use the Application Stack option, you must configure the form request with the actions to navigate between forms. Without this navigation, additional forms will not be called. There are other considerations when selecting values to return from forms in an Application Stack, as described in Configuring Form Request Actions.

    • Run Synchronously. Enabled by default, this ensures that the form request completes all actions before the Orchestrator executes the next step in the orchestration. It also ensures that the events in the EnterpriseOne application are run synchronously. This option is recommended if there are steps that follow the form request in the orchestration or if you configure the form request to return a response.

      Caution:

      If the form request involves invoking a control that launches an asynchronous report or any long running process, it is possible that the Orchestrator could time out if Run Synchronously is enabled.
    • Bypass Form Processing. This option enables the form request to ignore event rules when loading the form fields and controls in the Available Actions grid. For example, some forms have event rules to perform a find on entry or hide certain fields, which can cause the load to fail or prevent certain fields from loading in the Available Actions grid.

  4. Click the Load Form button.

    The Orchestrator Studio loads the controls and fields in the grid. The name of the form is displayed in the first row in the grid.

    If a form request needs to invoke more than one application to complete the desired task, you can load controls and fields for additional application forms as needed.

4.4.3.2 Configuring Form Request Actions

Figure 4-6 shows the Available Actions area, where you specify the EnterpriseOne fields and controls used to perform the desired business transaction in EnterpriseOne.

Figure 4-6 Available Actions Area in the Form Request Design Page

Description of Figure 4-6 follows
Description of ''Figure 4-6 Available Actions Area in the Form Request Design Page''

Use the following features to configure the actions in the form request. After configuring each action, click the Add Action button at the end of each row to add it to the Order of Execution area.

  • Description (informational only)

    This column displays the controls and fields for each form in a collapsible/expandable parent node named after the EnterpriseOne form. Child nodes categorize other items and include a Buttons and Exits node, a node for displaying the available Query by Example (QBE) fields in a grid (if applicable), and a node for displaying all available columns in a grid.

  • Mapped Value

    This is an editable column for identifying the inputs to the form request. In each field to which you want to map an orchestration input, enter a variable name. When you add this form request to an orchestration, you map the orchestration input to this variable.

    The only fields to which you can map inputs are EnterpriseOne editable fields. The variables names for the inputs in the form request should match the inputs defined in the orchestration to which you add the form request. If they do not match, you can use the "Transformations" feature to map input names after you add the form request to an orchestration. See Adding Inputs to an Orchestration and Mapping Orchestration Inputs for more information.

    Instead of a mapped value, you can enter a hard-coded value in the Default Value column or you can click the "Text substitution" check box to combine inputs into a text string.

    You can also use this field to populate multiple rows in multiple grids. See Populating Multiple Grids with Repeating Inputs (Optional) for more information.

  • Default Value

    • For an editable field to which you want to map an input, use this column to enter a hard-coded value. You can also add a hard-coded value to use if the mapped value returns a null.

    • For a check box or a radio button, you can select it to include it. If there are multiple radio buttons grouped together on a form, select only one. If you select more than one, only the last radio button in the Order of Execution list will be used.

    • For a combo box control (a list of items in a drop-down menu), the Studio displays a drop-down menu in the Default Value column in which you can select the appropriate item from the list.

  • Select All Rows (row)

    Add this action to select all rows in a grid. Use this action if the form has a button to perform an action on all selected grid grows. For example, if you want to update the PO status for all rows in a grid, add this action to the Order of Execution area and then configure the next action to update the PO status.

  • Select First Row (row) or Select Row

    Add this action if the form requires selecting the first row in a grid to perform a particular action.

    You can enter a variable in the Mapped Value column of this row, which enables you to map an orchestration input to this variable. Or you can enter a value in the Default Value column to select a specific row. To select the first row in the grid, leave these columns blank when adding this action to the Order of Execution.

  • Row Number for Update (row)

    If the task requires updating a particular row in an input capable grid, then map the appropriate input value containing the row number to the "Row Number for Update" row, or specify the row number in the Default Value column.

    Do NOT use this action if the transaction involves adding rows to a grid.

  • "Text Substitution" check box column

    Use text substitution to combine input values into a text string for an input into an EnterpriseOne field. For example, you can create a text string such as "Temp was {0} at {1}" that contains input values for temperature and time.

    Note:

    If you use text substitution for the input, the field cannot contain a mapped value. The substituted text string becomes the default value for the field when you add it to the Order of Execution list.
    1. Click the Add Text Substitution button (plus symbol) in the row that contains the field for which you want to substitute the input with text.

    2. In the Text Substitution field in the pop-up box, use a variable for the first input by entering {0} (with brackets).

    3. In the Variable field, enter the input variable name.

    4. Click the Add (plus symbol) to add the variable for the text substitution.

    5. Add the next variable, {1}, and then in the next blank row below the Variable field, enter the input variable name.

    6. Click Add to add it to the text substitution.

    7. Click OK to save the variables.

      The following image shows an example of variables added for a temperature input value and a date input value:

      Description of text_sub.png follows
      Description of the illustration ''text_sub.png''

  • ID (informational only)

    This column displays the ID of the control or field in EnterpriseOne.

  • Form Mode (informational only)

    If a form mode was selected, this column displays the form mode in the form row.

  • Return

    Select the check box in this column for fields that contain values that you want returned in the orchestration response. If you do not specify any return values, all values on the form will be returned. Return values may be used by customized third-party gateway programs or devices to perform further processing based on the values returned from EnterpriseOne applications.

    Starting with Orchestrator Studio 7.0.0.0, when you select a value to return, a "Return Form Data" action is added to the order of execution. Make sure this action follows the steps needed to populate the returned fields in the form, and make sure that it occurs before an action that clears the data or navigates from the page.

    Only one Return action is allowed per form when configuring a form request in the Orchestrator Studio. If you need to return more than one value at different times on the same form, add the same form twice to the form request, configuring the additional return value in the second form. In this scenario, it is recommended to use the Process Recorder, where you can select multiple values to return from any form in the process.

    Caution:

    If using the Application Stack option prior to EnterpriseOne Tools 9.2.3 and Orchestrator Studio 7.0.0.0:
    • Only values from the last form in the application stack are returned; return controls specified for any form except the last form are ignored.

    • If you use a form to add or update a value that upon saving exits to another form, such as a Find/Browse form, the return values will come from the last form that appears after the save. In this scenario, you need to add the last form to the application stack and select the return controls from the last form.

  • Variable Name

    Enabled when the Return check box is selected, use this field to enter a variable name for the return value. When you add the form request to an orchestration, this name appears in the orchestration inputs grid, which makes the returned value available for mapping to subsequent steps in the orchestration.

    You can also use this field to return a data set from an application grid. See Retrieving and Passing Data Sets in an Orchestration for more information.

  • Return Hidden Fields (left arrow icon in the Return column)

    Use this feature to return data from "hidden" fields or grid columns not displayed in the Available Actions area. Hidden fields are fields that appear only after performing a particular action in a form. In the EnterpriseOne web client, use the field-level help (Item Help or F1 key) to identify the control IDs for hidden fields and grid columns. The control ID is displayed in the Advanced Options section in the help pop-up window.

    To return a hidden field:

    1. In the Available Actions area, in the row of the form that contains the hidden fields, click the left arrow in the Return column.

      A dialog box appears displaying the control IDs and associated variable names of any return fields already selected in the Available Actions area.

    2. For hidden fields, enter the control ID of the hidden field in the Return Form Ids field. Optionally, you can enter a variable name to represent the return value in the associated Name field.

      For multiple controls, use a bar delimiter to separate the values in both fields, making sure the order of the values in each field match.

    3. For hidden grid columns, enter the control ID for the grid column in the Return Grid Ids field. Optionally, you can enter a variable name to represent the return value in the associated Name field.

      You must enter a variable name for the return value if you want it to appear in the orchestration inputs list in the orchestration.

      An example of the notation for multiple grid columns in a grid is: 1[32, 34, 42]

      Where 1 represents the first grid in the form (because some forms can have multiple grids), and 32, 34, 42 each represent a column in the grid.

      Use a bar delimiter to separate the variable names, making sure the order of the variable names matches the order of the grid control IDs, as shown in the following example:

      Description of return_fields.png follows
      Description of the illustration ''return_fields.png''

  • (Optional) "Options" icon (at the end of the first row in the grid)

    This option contains settings that determine how the AIS Server processes the form request. See Configuring Form Request and Data Request Processing for details.

4.4.3.3 Configuring the Order of Execution

After actions are added to the Order of Execution grid, you can reorder them using the up and down arrow buttons to the right of each row. You can also delete any actions using the Delete (X) button. Figure 4-7 shows the Order of Execution area.

You can enter or modify values in the Mapped Value and Default Value columns in the Order of Execution area.

Figure 4-7 Order of Execution in the Service Request Design Page

Description of Figure 4-7 follows
Description of ''Figure 4-7 Order of Execution in the Service Request Design Page''

4.4.3.4 Populating Multiple Grids with Repeating Inputs (Optional)

You can configure a form request to map repeating inputs into one or more grids.

In the Available Actions area, rows for editable grids include a default value of GridData in the Mapped Value column. This value can be used to associate a set of repeating inputs to the grid. If you need to populate more than one grid in an orchestration, change this value to identify each grid. And then make sure that the "name" tag that identifies the repeating inputs in the detail inputs section of the orchestration input matches this value.

4.4.4 Creating a Form Request with the JD Edwards EnterpriseOne Orchestrator Process Recorder (Release 9.2.2.4)

The JD Edwards EnterpriseOne Orchestrator Process Recorder enables you to record a series of actions in EnterpriseOne and save those actions as a new form request. This simplified method to create a form request is an alternative to manually creating a form request in the Orchestrator Studio.

After launching and starting the Process Recorder in EnterpriseOne, you access an application and perform each of the steps to complete the business process or transaction that you want the form request to perform.

The Process Recorder automatically adds inputs to the form request for each field in which you enter data during the recording. The input is the name of the field, and the data you enter becomes the default value. For example, if you click a field called Customer Number and enter 1001, the Process Recorder records an input called Customer Number with a default value of 1001. You can delete, change, or replace the value with a variable by editing the form request in Orchestrator Studio.

When finished, on the last form, you can select any of the controls or grid columns on the form that contain values that you want the form request to return. Starting with EnterpriseOne Tools 9.2.3, you can select return values from any form while recording the form request.

After you save the form request in the Process Recorder, you can open the form request in the Orchestrator Studio, modify it as necessary, and add it to an orchestration. If you have an open Orchestrator Studio session, you will have to close it and sign in again to access the newly created form request.

4.4.4.1 Rules for Creating a Form Request in the Process Recorder

When using the Process Recorder to create a form request, follow these rules:

  • Start the recording and then launch the first application from the carousel, Favorites, a link on an EnterpriseOne page, or Fast Path. Or you can open an application and then start the recording before performing the first action in a form. You cannot start recording after performing an action in an EnterpriseOne application.

  • If the process involves adding multiple records, perform only the steps to add a single record. Later, when you add the form request to an orchestration, you can use the Iterate Over feature in the Orchestrator Studio to configure the form request to add multiple records.

  • Some business processes entail using forms in more than one application. You can record this as long as you access the other forms from a Form or Row menu. However, you cannot return to the EnterpriseOne home page and launch another application. If the business process requires launching a second application from the EnterpriseOne home page, then record it as a separate form request.

  • When recording a process in the Process Recorder, each transaction is saved in EnterpriseOne just as it would be if you were not using the Process Recorder. To ensure that you do not sully production data, it is highly recommended that you use the Process Recorder in an EnterpriseOne test environment. If recording in a production environment, delete any transactions that were created while using the Process Recorder.

4.4.4.2 Prerequisites

The Process Recorder is disabled by default. To make it available in EnterpriseOne, a system administrator must enable both of the following security types:

4.4.4.3 Using the Process Recorder to Create a Form Request

  1. On the EnterpriseOne home page, click the user drop-down menu in the upper right corner and select Record a Process.

  2. In the Process Recorder pop-up box, click Start to start the recording.

  3. Access the first application from the carousel, Favorites, a link on an EnterpriseOne page, or Fast Path.

    EnterpriseOne highlights the application title bar and application tab in the carousel (if enabled) of the application that is being recorded.

  4. Perform each of the steps to complete the business process or transaction that you want the form request to perform.

    When you enter a value in a field, the Process Recorder automatically records the field name as an input and the data that you enter as a default value. Later, you can change the name of the input and delete or change the default value by editing the form request in Orchestrator Studio.

    Important:

    If you return to the EnterpriseOne home page or try launching a separate application from the Carousel while recording, the Process Recorder pauses the recording and will not record those steps. To resume the recording, click the Paused button and the Process Recorder will resume recording, returning you to the point in the process in which you initially paused the recording.
  5. (Release 9.2.3) If you want the form request to return values from the form that you are on:

    1. Click Return Values.

    2. Click the controls and columns that contain values you want returned. If you add a control or column by mistake, click it again to remove it from the list.

    3. Click Resume to continue recording the next steps in the process.

      When you access the last form in the process and want the form request to return values from all controls and columns on the last form, leave the Return Controls and Return Columns field blank.

    Note:

    If you are on EnterpriseOne Tools 9.2.2.4, you can return values only from the last form in the process.
  6. After performing the final step, click Stop.

    If you stopped the recording prematurely, click Cancel, and then continue to record the remaining actions. To discard the process and start over, click Discard.

  7. To complete the recording, enter a name, product code, and description for the form request.

  8. Click Save.

If you need to modify the form request, see Configuring a Form Request in the Orchestrator Studio. To add it to an orchestration, see Adding Steps to an Orchestration.

4.4.5 Configuring a Data Request

You can configure a data request to:

  • Query and return data from an EnterpriseOne table or business view.

  • Perform an aggregation of data from a table or business view and return aggregate amounts.

In a standard data request that returns data directly from a table or business view, you can use variables to define the return fields. In a data request that performs an aggregation, you can use variables to define the "group by" fields and the returned aggregate amounts.

When you add a data request to an orchestration, any variables used to define the returned data in the data request are automatically added to the orchestration as inputs. This enables you to map the returned data to subsequent steps in an orchestration.

Important:

Variables are only supported in the first row of a response. If a query contains multiple rows, only the values from the first row will be available as variables.

4.4.5.1 Configuring a Data Request to Return Field Data

A data request includes filtering criteria and indicates the fields that contain data that you want returned. For example, a business analyst wants to add a data request to an orchestration that returns a customer's credit limit amount. The orchestration has "Customer Number" defined as in input. To configure the data request, the business analyst:

  • Sets up filter criteria with a condition that filters on Address Number.

  • Selects the Credit Limit and Alpha Name fields for the return data.

  • Adds the data request to the orchestration, mapping the Customer Number input in the orchestration to the Address Number in the data request.

    When the data request is added to the orchestration, the Credit Limit and Alpha Name fields automatically become additional inputs to the orchestration, which the business analyst can then map to subsequent orchestration steps.

To configure a data request to return field data:

  1. Create a data request as described in Creating a Service Request.

  2. In the Available Actions area, enter the name of the table or business view in the Table/View Name field.

    If you do not know the table or business view name, but you know the application that uses the table or business view, you can use the JD Edwards EnterpriseOne Cross Reference Facility (P980011) to identify the table or business view associated with the application. From the Cross Reference form, click the Interactive Applications tab, then click Business Views Used by an Interactive Application or Tables Used by an Interactive Application. If you do not have access to the Cross Reference Facility, ask an administrator to look up this information for you.

  3. Click the Load button.

    The Orchestrator Studio loads all fields from the table or business view into the grid.

    Note:

    You can use the Data Set Variable Name field to configure the data request to return a data set. See Retrieving and Passing Data Sets in an Orchestration for more information.
  4. Define the filtering criteria for the data request:

    1. In the Fields grid on the left, click the "Filter" icon next to the field or fields that contain data that you want to filter on.

      The Orchestrator Studio displays each field in the Filter Criteria area on the right.

    2. For each field in the Conditions box, select the appropriate operand and in the adjacent field, enter a hard coded value or a variable.

      A variable appears in the field by default. If you modify the variable name, make sure the syntax includes the $ sign and brackets, for example:

      ${Address Number 1}

    3. Select the Match All or Match Any option to determine how the conditions are applied.

      You can also click the Options button, and from the Query drop-down list, select a predefined query to use for the filtering criteria. You can use a query instead of or in combination with the filtering criteria defined in a data request. The queries that you can see in this list are based on UDO security permissions.

  5. Specify the data you want returned:

    1. In the Fields grid, click the "Return" icon next to each field for which you want data returned.

      Each field appears in the "Return Fields and Variable Names" on the right.

    2. (Optional) You can use a variable for the return by entering a name for the variable in the adjacent blank field.

      Note:

      Return variables do not need the ${} notation. This notation is only necessary for input variables to distinguish between a variable and a hard coded value.

      When you add a data request to an orchestration, these variables are automatically added to the orchestration as inputs, which you can use to map return data to subsequent orchestration steps.

  6. (Optional) For the return data, determine the order by which you want the data returned:

    1. In the grid on the left, select the Order By icon next to any field that was selected for the return data.

      The Orchestrator Studio adds the field name to the Order By area on the right.

    2. In the drop-down list next to the field name, select Ascending or Descending.

  7. (Optional) Click the Options button to configure settings that control how the AIS Server processes a data request at runtime. See Configuring Form Request and Data Request Processing.

4.4.5.2 Configuring a Data Request with Data Aggregation

To configure a data request to return aggregate amounts:

  1. Create a data request as described in Creating a Service Request.

  2. In the Available Actions area, enter the name of the table or business view in the Table/View Name field.

    If you do not know the table or business view name, click the Get View From Form button and enter the application and form ID to load all fields from the primary business view associated with the form.

  3. Click the Load button.

    The Orchestrator Studio loads all fields from the table or business view into the grid.

  4. Slide the Aggregation toggle to the right.

    This enables the aggregation features in the Fields grid.

    Note:

    You can use the Data Set Variable Name field to configure the data request to return a data set. See Retrieving and Passing Data Sets in an Orchestration for more information.
  5. Click the "Filter" icon next to the fields that contain the data that you want to filter on.

    The Orchestrator Studio displays each field in the Conditions area on the right.

  6. Set up conditions for filtering data:

    1. For each field in the Conditions box, select the appropriate operand and in the adjacent field, enter a hard coded value or a variable.

      A variable appears in the field by default. You can modify the variable name, but you must use the $ sign and brackets in the syntax, for example:

      ${Address Number 1}

    2. Select the Match All or Match Any option to determine how the conditions are applied.

      You can also select the Options button, and from the Query drop-down list, select a predefined query to use for the filtering criteria. You can use a query instead of or in combination with the filtering criteria defined in a data request. The queries that you can see in this list are based on UDO security permissions.

  7. Click the "Aggregate" icon next to the fields that contain the data for the aggregation.

  8. In the pop-up window, select the type of aggregate that you want to perform.

    The aggregate options displayed depend on whether the field contains a numeric value or a string.

  9. (Optional) In the Aggregations and Variable Names section, click the Include Count check box if you want the response to include a count of the records returned. To use the returned count in a subsequent orchestration step, enter a variable name in the adjacent field.

  10. (Optional) Use the following features in the Fields grid to further define the data aggregation:

    • "Having" icon. Click this icon next to a field for which you want to provide additional filtering criteria on an aggregation.

      The Data Request design page displays the field in the Having section on the right.

      a. Click the drop-down list next to the field and select the operand.

      b. In the adjacent field, enter a hard coded value or variable.

    • "Group By" icon. Click this icon next to any field that you want the aggregate results grouped by. In the "Group By and Variable Name" section on the right, you can enter a variable name.

      Using "Group By" may result in multiple rows being returned, one for each unique combination of a group. For example, you might return total orders for an entire year for customers, and group the results by customer. In this case, the data request response will return a unique row for each customer with the customer's total orders for the year.

      Note:

      Variables are only supported in the first row of a response. If a query contains multiple rows, only the values from the first row will be available as variables.
    • "Order By" icon. For any fields used in an aggregate or "group by," click this icon to arrange return data in ascending or descending order.

  11. (Optional) Click the Options button to configure settings that control how the AIS Server processes a data request at runtime. See Configuring Form Request and Data Request Processing.

4.4.5.3 Viewing and Copying JSON Code of a Data Request

After configuring a data request, you can click the Preview button to view and copy the JSON code for a data request. Developers can use this code to develop AIS client applications that can make data request calls directly to the AIS Server rather than through an orchestration. See the JD Edwards EnterpriseOne Application Interface Services Client Java API Developer's Guide for more information.

4.4.6 Configuring a Message Request

Add a message request to an orchestration to send emails to external email systems or the EnterpriseOne Work Center email system. The following EnterpriseOne Work Center and workflow features are supported in a message request:

  • Workflow distribution lists to send messages to a predefined group of EnterpriseOne users.

  • Message templates from the data dictionary that contain boilerplate text and values related to a particular business process.

  • Shortcuts to EnterpriseOne applications.

For more information about these workflow features, see the JD Edwards EnterpriseOne Tools Workflow Tools Guide.

In a message request, you can include variables to pass data from an orchestration input into a message request. You can include variables in the recipient fields, the subject and body, a message template, and a shortcut.

To configure a message request:

  1. Create and name the message request as described in Creating a Service Request.

  2. To enter recipients (To, Cc, or Bcc), select a recipient type:

    • Select Address Book to send a message to a single EnterpriseOne user. Enter the address book number of the EnterpriseOne user.

    • Select Contact to send a message to an individual in a user's contact list. Enter the address book number of a user and then the number of the contact.

    • Select Distribution List to send a message to the members of an EnterpriseOne distribution list. Enter the address book number of the list in the Parent Address Number field and select its structure type. For more information about structure types, see "Structure Types" in the JD Edwards EnterpriseOne Tools Workflow Tools Guide.

    • Select Email to enter an email address for the recipient.

  3. In the Subject and body fields, enter text, variables, or a combination of both. To insert variables, see step 6.

  4. To include boilerplate text from a message template in the data dictionary:

    1. Expand the Data Dictionary Text section.

    2. In the Data Item field, enter the name of the message template data item and click Load.

    3. If the message template contains variables, use the grid in the right to override the variables with text substitution.

  5. To include a shortcut to an application:

    1. Expand the JD Edward EnterpriseOne Shortcut section.

    2. Complete the Application, Form, and Version fields to specify the form that you want the shortcut to launch.

    3. In the grid, you can use variables to pass in data to the application when the application is launched from the shortcut.

  6. To include variables in the recipient types, subject, body, message template text, or shortcut:

    1. Right-click in a field and click Insert Variable.

    2. In the variable that appears, rename variable as appropriate, but make sure the syntax includes the $ sign and brackets, for example:

      ${creditmanager}

      Description of message_request.png follows
      Description of the illustration ''message_request.png''

4.4.7 Configuring a Connector Service Request

This section contains the following topics:

4.4.7.1 Understanding Connector Service Requests

In the Orchestrator Studio, you can create a connector service request to enable an orchestration to:

  • Invoke another orchestration or invoke a notification either on your local system or on an AIS Server on another EnterpriseOne system in a multisite operation.

  • Invoke a REST service. Referred to as a REST connector, this enables outbound REST calls to external systems as an orchestration step. For example, an orchestration could make a REST call to a Cloud service and use the data in the response in subsequent orchestration steps.

  • Connect to a database. Referred to as a database connector, this enables orchestrations to read from and write to non-JD Edwards databases using standard SQL protocol. The database must support JDBC. A database connector enables external databases to be the source of input for orchestrations. It also allows data that is not appropriate for transaction tables to be stored for analysis, archive, or integration purposes.

  • Retrieve a file from or send a file to a known location using FTP or SFTP protocols. This is referred to as an FTP connector. Starting with Orchestrator Studio 7.x.x, you can also use an FTP connector to retrieve data from a CSV file.

  • Send a file to a known location using a REST protocol.

4.4.7.2 Before You Begin

A connector service request requires a connection soft coding record, which provides the connection that the connector uses to access resources on an external system. Ask your system administrator to create a connection. See Creating Connection Soft Coding Records for Connector Service Requests for details.

4.4.7.3 Configuring a Connector Service Request to Invoke an Orchestration or Notification

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click in the Connection field and select a connection under the Orchestrator category.

    After you select a connection, the Orchestrator Studio displays the URL to the AIS Server next to the Connection field.

  3. Click inside the Orchestration/Notification field and select an orchestration or notification from the drop-down list.

    The drop-down list displays a list of available orchestrations followed by a list of available notifications. The orchestrations and notifications are further categorized by UDO status: Personal, Pending Approval, Reserved, or Shared.

    Any inputs defined in the called orchestration or notification appear in the Orchestration Input column, with variable names automatically generated in the adjacent Input column.

  4. In the Input column, you can modify the variable names as desired or map a hard coded value by entering a value (without the ${} notation).

  5. For an orchestration connector, use the adjacent Output grid to specify values you want returned from the called orchestration. These values must be defined as outputs in the called orchestration. Optionally, enter a variable for the value to make it an orchestration input, which gives you the option to map the value to a subsequent step in an orchestration.

4.4.7.4 Configuring a REST Connector to Invoke a REST Service

Configure a REST connector to invoke a REST service. In the REST connector, you specify an HTTP method and then provide the following additional details required for the connector to complete the request:

  • The path to a particular endpoint in the REST service.

  • Parameters, if required by the endpoint.

  • Key-value pairs for the HTTP header.

In the Orchestrator Studio, you can test the connector and view the JSON response of the REST service call. You can also use Groovy scripting to refine the data in the connector output. For example, you can configure a Groovy script to refine the contents of the REST service response so that the connector output contains only the data required by the consuming device or program.

To configure a connector to invoke a REST service:

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and select a connection under the REST category.

    The Orchestrator Studio displays the URL to the REST service available through the connection.

  3. Click the HTTP Method drop-down list and select the appropriate method.

  4. Slide the Fire and Forget toggle to the right if you want the orchestration to execute without waiting for a response. If Fire and Forget is enabled, the Output section is hidden because the REST service response is not processed.

  5. Expand the Pathing section and use the Value grid to build the path to a REST service endpoint.

    Each value you enter in the Value grid is appended to the path, separated by a forward slash (/). You can use variables in the path by adding a value inside ${}. Click the Delete button at the end of a row to delete any values from the path.

    The following image shows an example of a path to an endpoint that includes variables.

    Description of pathing.png follows
    Description of the illustration ''pathing.png''

  6. If the REST service takes parameters, use the Parameters section to append parameters to the endpoint.

    Parameters are appended to the endpoint after a "?" and are separated by a "&". You can include variables by specifying a value inside ${}.

  7. In the Headers section, enter key-value pairs for the header in the Key and Value columns. You can also choose any known values from the drop-down menu in each column.

  8. In the Body section (which is not used or displayed if the HTTP method is GET or TRACE), if the HTTP method requires it, specify a payload to send to the REST service.

  9. In the Output section, use the following sections to identify the outputs:

    Note:

    The outputs are based on the JSON response of the REST service call. You can see the response after running a successful test of the REST service using the Test button.
    • Manipulate Output (advanced). Use Groovy scripting to manipulate the output of the REST call. For example, if you only need certain data in the output, you can use Groovy scripting to refine the data displayed in the output. See Groovy Template for Manipulating Output from a REST Connector Response for more information.

    • Output grid. If the value you want is nested in JSON objects, you can get to the value by separating each JSON object name by a period (.). If the value you want is in an array, you can access it by adding the proper index of the array inside [].

    The following image shows an example of outputs defined in the Output section:

    Surrounding text describes connector_output.png.
  10. To test the connector:

    1. Click the Test button.

    2. If the connector includes variables, enter values for the variables in the popup box.

      If successful, the Orchestrator Studio displays the response.

    3. Click the Show Output button displayed at the end of the response to apply the instructions defined in the Output section, including the Groovy script if specified.

      Use the results to validate the path to the output values specified in the Output section.

4.4.7.5 Configuring a REST Connector to Transfer Files to a REST Service

You can configure a REST connector to transfer files to a REST service. When added to an orchestration that includes a report service request, a REST connector can transfer the output of the report service request to an external system. Also, if an orchestration includes a custom service request that uses a Groovy script to generate and save a file to the AIS Server, you can create a REST connector to transfer the generated file to an external system.

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and select a connection under the REST category.

    The Orchestrator Studio displays the URL to the REST service available through the connection.

  3. Click the HTTP Method drop-down list and select POST.

  4. Enable the Fire and Forget toggle if you want the orchestration to execute without waiting for a response.

    If Fire and Forget is enabled, the Output section is hidden because the REST service response is not processed.

  5. In the File section of the request, enter the File Part Name, which you can find in the documentation for the REST API you are calling.

  6. Select the Report or File option to specify the type of file you are sending, and then complete the following fields accordingly:

    For Report, complete these fields:

    • Job Number. Enter ${variablename} to use a variable for the job number. When you add this connector to an orchestration, you can map the job number of a report returned from a report service request to this variable. Or instead of a variable, you can enter an actual job number.

    • Execution Server. Enter the server where the report was generated. Enter ${variablename} to use a variable for the server name. When you add this connector to an orchestration, you can map the name of this server from the report service request, which returns the name of this server. Or instead of variable, you can enter the server name.

    • File Type. Select the file type of the output.

    For File, complete these fields:

    • Source File Name. Enter the name of the file that was created in the custom Groovy service request.

    • Remove File. Enabled by default, this removes the file from the temporary directory on the AIS Server after the file is transferred.

  7. If the REST API being called requires additional information, you can use the table at the bottom of the File section to include additional details.

4.4.7.6 Configuring a Database Connector

You must have knowledge of Groovy scripting language to create a database connector in order to route data to a database. The database must support JDBC. The Connector design page provides a Groovy template that you can use as a basis for creating a Groovy script for a database connector.

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and select a connection under the Database category.

    The Orchestrator Studio displays an edit area that contains a Groovy script template. Use the Find and "Go to Line" fields and Undo and Redo buttons to work with the script.

  3. In the Input grid, enter the inputs that you want to pass to the database. You can enter hard coded values or include variable using the ${} notation, entering the variable name within the brackets.

  4. In the Output column, list the fields added to the returnMap in the Groovy script to make those outputs available to the orchestration. Optionally, enter a variable name in the Variable column if you want to make the values available for mapping to a subsequent step in an orchestration.

  5. Click Save.

4.4.7.7 Configuring a Connector to Transfer Files Using File Transfer Protocol (FTP)

You can configure a connector to transfer files using FTP or secure file transfer protocol (SFTP). With this type of connector, referred to as an FTP connector, you can:

  • Transfer the output of a report service request to an FTP server.

    The connector can transfer the output of a standard EnterpriseOne report or an embedded Oracle BI Publisher report.

  • Transfer other types of files from an FTP server to a temporary directory on the AIS Server.

    An administrator must define the temporary directory in the basic configuration settings for the AIS Server. For more information, see Set Up a Temporary Directory on the AIS Server for File Transfers.

  • Transfer files in the temporary directory on the AIS Server to an FTP server.

  • (Orchestrator Studio 7.0.0.0) Retrieve data from a CSV file. The data is imported as an array, which gives you the option to map the data in the array to a subsequent orchestration step.

Note:

You can also use a REST connector to transfer a report or file to an external location. See Configuring a REST Connector to Transfer Files to a REST Service

An FTP connector uses a secure connection created through a soft coding record to receive and send a file from an FTP server.

An FTP connector can transfer only one file at a time.

Configure an FTP Connector to Transfer the Output of a Report Service Request

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and select a connection under the FTP category.

    If there are no connections available for an FTP connector, ask your system administrator to create one. See Creating a Soft Coding Record for an FTP Server Connection (Orchestrator Studio 6.1.0).

  3. Click the Report option and complete these fields:

    • Job Number. By default, this field contains a variable. When you add this connector to an orchestration, you can map the job number of a report returned from a report service request to this variable. You can modify the variable name if desired. Or you can delete the variable (including the special characters) and replace it with an actual job number.

    • Execution Server. Enter the server where the report was generated. By default, this field contains a variable. When you add this connector to an orchestration, you can map the name of this server from the report service request, which returns the name of this server. You can modify the variable name if desired. Or you can delete the variable (including the special characters) and replace it with a server name.

    • File Type. Select the type of file that the FTP connector will transfer. The default is PDF for standard EnterpriseOne reports. If transferring an embedded BI Publisher report, then select one of the BI Publisher file types.

    • Path Extension. Enter the name of the sub-directory on the third-party FTP server where you want the report output sent. The FTP Connection already contains information for the base folder.

  4. Click Save.

Configure an FTP Connector to Transfer a File from an FTP Server to the AIS Server

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and under the FTP category, select a connection to the server from which you want to transfer a file.

    If there are no FTP connections available, ask your system administrator to create one. See Creating a Soft Coding Record for an FTP Server Connection (Orchestrator Studio 6.1.0).

  3. Select the File option.

  4. Click the Type drop-down list and select Receive.

  5. In the Source File Name field, enter the name of the file that you want to retrieve.

  6. In the Target File Name field, enter the name of the target file if you want it to be saved with a different name then the source file when saved to the temporary directory on the AIS Server.

  7. Click the Use Temporary File Location check box to save the file to the temporary directory on the AIS Server.

  8. Enable or disable the Remove File toggle. Enabled by default, this removes the file from the temporary location on the AIS Server after it is transferred.

  9. Click Save.

Configure an FTP Connector to Transfer a File from the AIS Server to an External Server

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and under the FTP category, select a connection to the server to which you want to transfer the file.

    If there are no FTP connections available, ask your system administrator to create one. See Creating a Soft Coding Record for an FTP Server Connection (Orchestrator Studio 6.1.0).

  3. Select the File option.

  4. Click the Type drop-down list and select Send.

  5. In the Source File Name field, enter the name of the file that you want to transfer.

  6. Click the Use Temporary File Location check box to save the file to the temporary directory on the AIS Server.

  7. In the Target File Name field, enter the name of the target file if you want it to be saved with a different name than the source file when saved to the AIS Server directory.

  8. Enable or disable the Remove File toggle. Enabled by default, this removes the file from the temporary location on the AIS Server after it is transferred to an external server.

  9. Click Save.

Configuring an FTP Connector to Import Data from a CSV File (Orchestrator Studio 7.0.0.0)

Use an FTP connector to retrieve data from a CSV file on an FTP server. The data is imported as an array, which gives you the option to map the data set in the array to a subsequent orchestration step. See Passing a Data Set to a Subsequent Orchestration Step for more information.

  1. Create and name the connector service request as described in Creating a Service Request.

  2. On the Connector design page, click the Connection field and under the FTP category, select a connection to the FTP server where the CSV file is located.

    If there are no FTP connections available, ask your system administrator to create one. See Creating a Soft Coding Record for an FTP Server Connection (Orchestrator Studio 6.1.0).

  3. Select the File option.

  4. Click the Type drop-down list and select Receive.

  5. Click the Import CSV as Array check box,

    The Orchestrator Studio displays additional fields to configure the importing of data from a CSV file.

  6. If the CSV file has a header row, click the CSV Has Headers check box to exclude the header row.

    This ensures that at runtime, the Orchestrator will not import the column headers as data in the array.

  7. Complete the following fields:

    • Delimiter. Enter the delimiter used in the CSV file to separate values.

    • Source File Name. Enter the name of the CSV file.

    • Path Extension. Enter the name of the sub-directory on the third-party FTP server that contains the CSV file. The FTP connection already contains information for the base folder.

    • Data Set Variable Name. Enter a name for the data set or array in which the data from the CSV file will be imported.

      Later, you can reference this data set variable name to map data in the data set to a subsequent orchestration step.

  8. Enable or disable the Remove File toggle. Enabled by default, this removes the file from the temporary location on the AIS Server after the data is imported.

  9. In the Model CSV File section, select a model CSV file to define the columns in the CSV file that you want to import.

    The CSV file should be a copy of the CSV file from which the FTP connector will import data, or you can use a different CSV file as long as it has the same column names.

    1. Click Browse to select a file and then click Ok.

      If the CSV Has Headers check box is selected, the grid displays the column names from the CSV file in Member Name and Variable Name columns. Otherwise, the grid displays column 1, column 2, and so forth.

    2. In the grid, you can change the member names or variable names, and you can use the X button at the end of the rows to remove any columns from the import.

      The variable names are used to represent the values imported into the array. If you map these values to a subsequent orchestration step, you will select these variable names for the mappings.

      Caution:

      When importing the CSV data into an array, the order of the columns, not the names of the columns, is respected. If the CSV has 10 columns and you only specify eight in this grid, the array will contain the first eight columns from the CSV. If column headers are present, the third column in the CSV file will be mapped to the third row of this table, regardless if the column and member names match.
  10. Click Save.

4.4.8 Configuring a Watchlist Service Request

Use a Watchlist service request to use the information from Watchlists, such as critical or warning states, threshold levels, and number of records, within an orchestration. For more information about the data you can retrieve from a Watchlist, see JD Edwards EnterpriseOne Applications One View Watchlists Implementation Guide.

  1. Create and name the Watchlist service request as described in Creating a Service Request.

    On the Watchlist page, the grid displays all Watchlists that you have been authorized to access through UDO security in EnterpriseOne.

    If you need a Watchlist not available in this list, ask your EnterpriseOne administrator to grant you access to the Watchlist.

  2. In the Name column in the grid, click the link to the Watchlist that you want this service request to access.

    The Watchlist displays information about the Watchlist and areas for selecting the Watchlist details you want returned. To select a different Watchlist, click Change Watchlist to return to the list of Watchlists.

  3. In the Outputs area, select the Watchlist data you want returned.

  4. In the Advanced Outputs area, select any additional details about the Watchlist that you want returned.

  5. Click the Force Watchlist To Update check box if you want the service request to refresh the Watchlist data in EnterpriseOne before returning Watchlist data. (Recommended)

4.4.9 Configuring a Report Service Request

Use a report service request to invoke a batch version of an EnterpriseOne report from an orchestration. You can configure a report service request to use the settings defined for the report in the Batch Versions program. Or you can configure it to override the processing options, data selection, and data sequencing of a report.

You can also create a report service request to invoke an embedded BI Publisher report, and configure it to use the default settings or override the settings.

A report service request can launch EnterpriseOne reports designed with report interconnects. Report interconnects are inputs added to a report at design time, which enable a report to run automatically without user interaction. Typically, report interconnects are used to launch a report from a button or exit on an EnterpriseOne form.

In the Report design page, the "Fire and Forget" option enables the report to run asynchronously. When the Orchestrator executes the orchestration, this option enables the orchestration to continue to the next action or step without waiting for the report to complete.

At runtime, when the Orchestrator processes the report service request, it respects the EnterpriseOne authorization security for the report. The user initiating the orchestration must be authorized to run the batch version of the report as defined by an administrator in the Security Workbench. If the report service request includes data selection or processing option overrides, the user initiating the orchestration must be authorized in the Security Workbench to perform these overrides as well.

To configure a report service request:

  1. Create and name the report service request as described in Creating a Service Request.

  2. In the Report field, enter the ID of the report that you want the report service request to invoke.

    The Orchestrator Studio loads all versions associated with the report in the Version drop-down list.

  3. Click the Version drop-down list and select a version of the report.

    The Orchestrator Studio loads any settings defined for the version in EnterpriseOne, including data selection, data sequencing, processing options, and output options.

  4. Enable Fire and Forget if you want the report to run asynchronously.

    If you do not enable this setting, if added to an orchestration that has steps following the report service request, the remaining steps will not execute until the report finishes.

  5. Select one of the following options to determine how to run the report:

    • Blind Execution. Select this option if you want the report service request to invoke the batch version using the settings defined in EnterpriseOne for the report version.

      You can review the settings defined for the version by expanding the Data Selection, Data Sequencing, and Processing Options sections.

    • Report Interconnects. If a report is defined with report interconnects, select this option and enter the values you want to pass into the report in the available fields. This option is disabled if no report interconnects were defined for the report.

    • Override Version. Select this option to override the settings in EnterpriseOne for the version of the report, and then perform these steps:

      1. For Data Selection and Data Sequencing, expand the sections to modify existing criteria, or click the Add button to define new criteria.

      2. Expand the Processing Options section and change the settings as desired.

  6. Click the Queue Name drop-down list and select the queue to which the reported is submitted. If you leave this field blank, when this report is invoked, the system uses the default queue defined in the Enterprise Server configuration settings.

  7. To modify the print properties defined for the report, click Output Options and complete the fields as appropriate.

    For more information about report output options, see "Report Output" in the JD Edwards EnterpriseOne Tools Report Printing Administration Technologies Guide.

  8. To enable logging for the report, click Output Options and then enable the JDE Log toggle. Enter a value from 0-6 in the Logging Level field to indicate the level of detail to be captured in the logs.

    Any value greater than 0 will force the system to write both the JDE and JDEDEBUG logs. When you select a high value to receive more technical information, you also receive all the information for the lower values. For example, when you enter a value of 3 (object level messages), you also receive information for 2 (section level messages), 1 (informative messages), and 0 (error messages).

4.4.10 Configuring Form Request and Data Request Processing

In the Orchestrator Studio, you can configure settings that control how the AIS Server processes a form request or data request in an orchestration at runtime.

For form requests, these settings are available from the Options icon at the end of the first row of each form listed in the Available Actions grid.

For data requests, these settings are available from the Options button on the Data Request design page.

The settings include:

  • Maximum Records. 0 is for All Records.

  • Query Name. From this drop-down list, you can select a predefined query to use for the filtering criteria. You can use a query instead of or in combination with the filtering criteria defined in a data request. The queries that you can see in this list are based on UDO security permissions.

  • Output Type. Select one of the following format types for the format of the JSON response. Formats include:

    • Default. The default format is Version 2 output type for version 1 orchestrations (orchestrations created prior to Orchestrator Studio 5.0.1). The default format is Grid Data output type for version 2 orchestrations (orchestrations created in Orchestrator Studio 5.0.1 and higher).

    • Grid Data. Returns grid data in simplified name-value pairs. This is the default output type for version 2 orchestrations (orchestrations created in Orchestrator Studio 5.0.1 and higher).

    • Version 2. Returns cell-specific information for each grid row as well as information about each column such as column ID, whether it is visible, editable, and so forth. This is the default output type for orchestrations created prior to Orchestrator Studio 5.0.1, which are referred to as version 1 orchestrations.

  • Stop on Warning check box (form requests only). Click this check box if you want the processing to stop if the invoked EnterpriseOne form produces a "Warning" message. Keep this check box clear if you want processing to continue after a warning message.

  • Turbo Mode (form requests only). Use this option to reduce processing time of form requests. See "Using Turbo Mode" in the JD Edwards EnterpriseOne Application Interface Services Client Java API Developer's Guide for more information.

  • Caching: Allow. Click this check box to enable caching of the service request response. If the "Enable Caching by Default" option is enabled in Server Manager, this parameter is ignored and all responses for Read operations will be cached.

  • Caching: Force Update. Click this check box to force the system to fetch the data from the database for the service request. If the "Enable Caching by Default" setting is enabled in Server Manager, then this parameter for the individual service request is ignored.

  • Caching: Time Stored - Milliseconds. Enter the amount of time in milliseconds for the service request to use the cache for the response. This setting overrides the value in the "Default Read Cache Time To Live" setting in Server Manager.

4.4.11 Configuring a Custom Service Request with Java (Advanced)

You can create a service request that uses custom Java to execute a custom process or to route data into another database. Before you can create a custom Java service request, you must create the custom Java as described in Chapter 7, "Creating Custom Java for Orchestrations".

  1. After naming the custom service request as described in Creating a Service Request, select the Java option.

  2. In the Fully Qualified Class field, enter the Java class.

    This is the custom Java class that you created for the service request.

  3. In the first grid, complete the following fields:

    • Input. Enter the name of the field in the class.

    • Input Value. Enter the input variable name. If the attribute is a boolean and you pass in "true", then you could use a default value.

    • Default Value. Enter a default, hard-coded value if there is no mapped value. You can also add a hard-coded value to use if the mapped value returns a null.

  4. (Optional) In the second grid, enter a variable name for an output if you want to use the output value in subsequent steps in the orchestration or to another orchestration.

  5. If you make a mistake, click the Restore Custom Java button to return the custom Java to its last saved state.

  6. Click the Save button.

    The Orchestrator Studio saves the custom Java request. You can then access the orchestration in the Orchestration design page and add this custom Java service request as a step in the orchestration.

4.4.12 Configuring a Custom Service Request with Groovy (Advanced)

You can create a service request that uses Groovy scripting to execute a custom process or to route data into another database. To use Groovy for a service request, the Orchestrator Studio provides an edit area that contains a sample Groovy script with instructions on how to modify the script. You can use the Find and "Go to Line" fields and Undo and Redo buttons to work with the script. Chapter 8, "Using Apache Groovy for Custom Service Requests, Rules, and Manipulating Output (Orchestrator Studio 5.1.0 and Higher)" provides information on how to work with the sample Groovy script.

To configure a customer service request with Groovy:

  1. After naming the custom service request as described in Creating a Service Request, select the Groovy option.

  2. Configure the script to perform the desired action.

  3. In the "Input" grid, enter the names of the inputs.

    The inputs will be placed in the inputMap of the "main" function and can be retrieved in the script by following the commented out example code.

  4. Click the Load Outputs button.

    This reads the script and adds any values added to the returnMap in the script to the Output grid.

  5. (Optional) In the "Output" grid, enter a variable name for an output if you want to use the output value in a subsequent orchestration step.

    When you add this service request to an orchestration, this name appears in the orchestration inputs grid, which makes the returned value available for mapping to subsequent steps in the orchestration.

    Note:

    Even if no variables are used, all defined outputs are available for mapping using the Orchestration Output feature. See Working with Orchestration Output for more information.
  6. To test the script:

    1. Enter a value in the Test Value column for one or more inputs.

    2. Click the Test button.

      Orchestrator Studio executes the script using the inputs you entered. If successful, it populates the results in the Test Output column of the Output grid.

      If you included orchAttr.writeWarn or orchAttr.writeDebug statements in the script, a Logging popup displays after execution. At runtime, log statements are included in the AIS Server log, which can be used for debugging script issues.

      The following example shows the Logging popup, which you can use to verify the values passed to the inputs:

      Description of groovy_test.png follows
      Description of the illustration ''groovy_test.png''

  7. Click the Save button.

    The Orchestrator Studio saves the custom Groovy service request. You can then access the orchestration in the Orchestration design page and add this custom Groovy service request as a step in the orchestration.

4.5 Creating Rules

This section contains the following topics:

4.5.1 Understanding Rules

A rule contains conditional logic that the Orchestrator uses to evaluate conditions, such as true or false conditions that determine how the orchestration processes the incoming data. You can define a rule with a list of conditions or you can define a more complex rule using Groovy or a custom Java class.

An orchestration rule with conditions functions similar to an EnterpriseOne query in that each rule has:

  • A "Match Any" or "Match All" setting.

  • One or more conditions defined, each being a binary operation on two values.

After creating a rule and adding it to an orchestration, you use the Action column in the Orchestration design page to determine the orchestration step that is invoked when the conditions in the rule are met. See Defining the Actions Between a Rule and Dependent Components for more information.

4.5.2 Creating a Rule

Create a rule to define conditions for an orchestration.

To create a rule:

  1. On the Orchestrator Home page, click the Rules icon. And then on the Rules design page, click the New Rule button.

    Alternatively, access the Orchestrations design page and add a Rule step to an orchestration. At the end of row with the Rule step, click Edit (pencil icon) and select Rule from the pop-up box.

  2. On the Rules design page, enter a name for the rule in the Rule field. Do NOT include special characters in the name.

  3. Click the Product Code drop-down list to select a product code to associate with the rule.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  4. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the rule name in the component list.

  5. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  6. Select the Match Value drop-down menu and select one of the following values:

    • Match All. Select this option if all conditions in the rule must be met.

    • Match Any. Select this option if any conditions in the rule can be met.

  7. In the first row in the grid, complete the following columns to add a condition:

    • Rule Type. Click the drop-down menu and select String, Numeric, or Date depending on the format of the input.

    • Value 1. Enter a variable for the input name.

    • Operator. In the drop-down menu, select from the list of operands which include: >, <, >=, <=, =, !=, startsWith, endWith, contains, between, inList.

    • Literal. Click this check box to indicate a literal value.

    • Value 2. If you selected the Literal check box, manually enter a value.

    • Literal Value Type. If you selected the Literal check box, click the drop-down menu and select the format of the literal value: string, numeric, data.

  8. Add additional conditions to the rule as needed. If you add a condition by mistake, you can delete it by clicking the Remove button at the end of the row with the condition.

  9. Click the Save button.

    The first time a new rule is saved, it is saved as a "Personal" UDO. Thereafter, you can use the UDO buttons described in the User Defined Object (UDO) Features in the Orchestrator Studio section to move the rule to the appropriate status.

    After adding a rule and a service request to an orchestration, in the Orchestration design page, you must define the action for the rule to invoke the service request. See Defining the Actions Between a Rule and Dependent Components for more information.

4.5.3 Creating a Custom Rule with Java (Advanced)

You can create complex rule using custom Java. Before you add a custom Java rule in the Orchestrator Studio, you must create a custom Java class to use for the rule as described in Chapter 7, "Creating Custom Java for Orchestrations".

To create a custom Java rule:

  1. Click the Rules icon on the Orchestrator Studio Home page, and on the Rules page, click the New Custom button.

    Alternatively, access the Orchestrations design page and add a Rule step to an orchestration. At the end of row with the Rule step, click Edit (pencil icon) and select Custom from the pop-up box.

  2. On the Rules design page, select the Java radio button.

  3. In the Rule field, enter a name for the custom rule. Do NOT include special characters in the name.

  4. Click the Product Code drop-down list to select a product code to associate with the rule.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  5. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the rule name in the component list.

  6. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  7. In the Fully Qualified Class field, enter the fully qualified path to the Java class, which includes the name of the Java class.

    This is the custom Java class that you created to use for the rule.

  8. Complete the following fields in the grid:

    • Attribute. Enter the name of the field in the class.

    • Input Value. Enter a variable for the input name. If the attribute is a boolean and you pass in "true", then you could enter a hard-coded default value.

    • Default Value. Enter a hard-coded value if there is no mapped value. You can also add a hard-coded value to use if the mapped value returns a null.

  9. If you make a mistake while configuring any of the fields, you can click the Restore Rule button which refreshes the custom Java rule to its last saved state.

  10. Click the Save button.

4.5.4 Creating a Custom Rule with Groovy (Advanced)

Use Groovy to create a custom rule when conditions in a standard rule will not suffice.

To create a custom rule with Groovy:

  1. Click the Rules icon on the Orchestrator Studio Home page, and on the Rules page, click the New Custom button.

    Alternatively, access the Orchestrations design page and add a Rule step to an orchestration. At the end of row with the Rule step, click Edit (pencil icon) and select Custom from the pop-up box.

  2. On the Rules design page, enter a name for the custom rule in the Rule field. Do NOT include special characters in the name.

  3. Click the Product Code drop-down list to select a product code to associate with the rule.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  4. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the rule name in the component list.

  5. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  6. Select the Groovy radio button.

    The Orchestrator Studio displays an edit area that contains a sample groovy script with instructions on how to work with the script. Use the Find and "Go to Line" fields and Undo and Redo buttons to help edit the script. See Chapter 8, "Using Apache Groovy for Custom Service Requests, Rules, and Manipulating Output (Orchestrator Studio 5.1.0 and Higher)" for more information about the sample Groovy script.

  7. Configure the script to perform the desired action.

  8. In the "Input" grid, enter the names of the inputs.

  9. To test the script:

    1. Enter a value in the Test Value column for one or more inputs.

    2. Click the Test button.

      If you included orchAttr.writeWarn or orchAttr.writeDebug statements in the script, a Logging popup displays after execution. At runtime, log statements are included in the AIS Server log, which can be used for debugging script issues.

      A Logging dialog box displays the test results which you can use to verify the values passed to the inputs, as shown in the following example:

      Description of groovy_rule_test.png follows
      Description of the illustration ''groovy_rule_test.png''

  10. Click the Save button.

4.6 Creating Cross References

This section contains the following topics:

4.6.1 Understanding Cross References

The Orchestrator uses a cross reference component to map incoming data (third-party data) to an EnterpriseOne value. The EnterpriseOne value identified in the cross reference is considered the output of the cross reference. The output from the cross reference becomes the data passed to another orchestration step.

For each cross reference that you create in the Orchestrator Studio, you have to create a cross reference record in P952000 in EnterpriseOne. When defining cross reference records for orchestrations in P952000, you must use the "AIS" cross reference type. For more information on how to create these cross reference records in P952000, see Chapter 5, "Setting Up Cross References and White Lists in EnterpriseOne (P952000)" in this guide.

Note:

If a cross reference lookup fails in an orchestration, the orchestration is terminated.

4.6.2 Creating a Cross Reference

You must define the orchestration inputs before you can create a cross reference. See Adding Inputs to an Orchestration for more information.

To create a cross reference:

  1. Access the Cross Reference design page:

    • On the Orchestrator Home page, click the Cross References icon. And then on the Cross References design page, click the New Cross Reference button.

      OR

    • After adding a Cross Reference step to the grid in the Orchestration design page, click the Edit button next to the step.

    The Orchestrator Studio displays the Cross Reference design page.

  2. In the Cross Reference field, enter a name for the cross reference. Do NOT include special characters in the name.

  3. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the cross reference name in the component list.

  4. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  5. In the Object Type field, enter a name for the object type.

    This is the object type used to categorize the orchestration cross references in EnterpriseOne. See "Adding Orchestration Cross References" in the JD Edwards EnterpriseOne Tools Interoperability Guide for more information.

  6. Click the Product Code drop-down list to select a product code to associate with the cross reference.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  7. Complete the Input Key and Output Key columns to map the inputs to EnterpriseOne fields:

  8. If you enter any values by mistake, you can click the X button next to the field to delete the entry.

  9. Click the Save button, which saves the white list as a "Personal" UDO.

    The first time a new cross reference is saved, it is saved as a "Personal" UDO. Thereafter, you can use the UDO buttons described in the User Defined Object (UDO) Features in the Orchestrator Studio section to move the rule to the appropriate status.

    The output values in the cross reference are now available for mapping in subsequent orchestration steps.

4.7 Creating White Lists

This section contains the following topics:

4.7.1 Understanding White Lists

A white list contains a list of IDs permitted in the Orchestrator. By adding a white list to an orchestration, only inputs with IDs listed in the white list are permitted for processing by the Orchestrator. You add a white list component as a step in the orchestration.

In addition to specifying the permitted IDs in the white list, you must also specify the white list IDs in P952000 in EnterpriseOne. This is the same application that you use to set up and store orchestration cross references. As with cross references, use the "AIS" cross reference type in P952000 for a white list. In P952000, the Third Party App ID should have a value of WHITELIST. The EnterpriseOne value is not used for white lists and will default to NA.

If a white list lookup fails in an orchestration, the orchestration is terminated.

4.7.2 Creating a White List

  1. Access the White List design page:

    • On the Orchestrator Home page, click the White Lists icon. And then on the White Lists design page, click the New White List button.

      OR

    • After adding a White List step to the grid in the Orchestration design page, click the Edit button next to the step.

    The Orchestrator Studio displays the White Lists design page.

  2. In the White Lists design page, click the New White List button.

  3. In the White List, enter a name for the white list. Do NOT include special characters in the name.

  4. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the white list name in the component list.

  5. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  6. In the Object Type field, enter a name for the object type.

    The value you enter in the Object Type field must match a cross reference object type in the EnterpriseOne Business Services Cross Reference application (P952000).

    The cross reference object type is a named group of records in P952000. For example, you may have thousands of records in P952000. You can use cross reference object types, for example "Equipment" or "Alert_Notification_Recipients" to group cross reference records into manageable categories. You define the cross reference object types as needed. See Chapter 5, "Setting Up Cross References and White Lists in EnterpriseOne (P952000)" for more information.

  7. Click the Product Code drop-down list to select a product code to associate with the white list.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  8. In the Input Key column, enter the input that you want to add as a permitted input.

  9. Click the Save button.

    The first time a new white list is saved, it is saved as a "Personal" UDO. Thereafter, you can use the UDO buttons described in the User Defined Object (UDO) Features in the Orchestrator Studio section to move the white list to the appropriate status.

4.8 Creating Orchestrations

This section contains the following topics:

4.8.1 Understanding Orchestrations

Creating an orchestration in the Orchestrator Studio involves:

  • Naming the orchestration and specifying the input format for the orchestration.

    The input format can be JDE Standard, Oracle Cloud IoT, or Generic.

  • Adding inputs to the orchestration.

    The inputs define the data passed to the orchestration from a device, third-party application, custom program, or Cloud service. For example, if designed to receive input from a sensor, the input may include an ID that identifies the sensor and other data that the orchestration will receive, such as temperature, date, or any other data you want to capture from the sensor.

  • Adding steps to the orchestration.

    Each step is a component of the orchestration: a service request, rule, cross reference, or white list. At a minimum, an orchestration requires only a service request step, which provides the actions or the instructions to perform a particular task in EnterpriseOne.

  • Configuring transformations.

    You use transformations to map orchestration inputs to inputs defined in each orchestration step, such as inputs in a rule, cross reference, white list, or service request component.

Important:

Remember that when you are ready to "request to publish" an orchestration, you need to make sure that you also request to publish all components associated with the orchestration. This enables an administrator to save all required components to the proper directory on the AIS Server for processing by the Orchestrator. If a component is missing, the orchestration process will end in error.

4.8.2 Creating an Orchestration

> Tutorial:

See the following tutorials on how to create an orchestration:

Creating and Testing an Orchestration

Creating an Orchestration with Multiple Components

To create an orchestration:

  1. On the Orchestrator Studio Home page, click the Orchestrations icon.

  2. On the Orchestrations page, click the New Orchestration button.

  3. On the Orchestration design page, enter a unique name for the orchestration in the Orchestration field. Do NOT include special characters in the name.

    All orchestrations created in Orchestrator Studio 5.0.1 or higher are saved as version 2 orchestrations. You cannot change this value in the Orchestrator Version drop-down list. If you want to update a version 1 orchestration created in a previous version of the Orchestrator Studio, see Updating Version 1 Orchestrations to Version 2 Orchestrations.

    Note:

    When you save an orchestration, the orchestration name is used to define an endpoint on the AIS Server. The endpoint URL is:

    http://<server>:<port>/jderest/orchestrator/<orchestrationname>

    To invoke this orchestration, third-party applications or devices use a post operation to this url, where <orchestrationname> is the name of the orchestration.

  4. Click the Product Code drop-down list to select a product code to associate with the orchestration.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  5. In the space provided, enter a short description with a maximum of 200 characters. This description appears below the orchestration name in the component list.

  6. Click the Edit Long Description button to provide more detail about the component.

    Use this field to describe the purpose of the orchestration and any details that differentiate the orchestration from other orchestrations that you create.

  7. Click the Input Format drop-down menu and select the appropriate format:

    • JDE Standard (default)

    • Oracle Cloud IoT

    • Generic

    See Supported Input Message Formats for more information about which input format to use.

  8. At this point, you can click Save before defining inputs or steps for the orchestration.

    The Orchestrator Studio saves the orchestration as a "Personal" UDO. Next, add inputs to the orchestration as described in Adding Inputs to an Orchestration.

You can also use the Save As button and rename an existing orchestration to create a new one.

Caution:

If you use Save As to create a copy of an orchestration, only the orchestration is copied. The Orchestrator Studio does NOT create a copy of the components that are associated with the orchestration's steps. That is, both the original orchestration and the new orchestration use the same components that comprise the orchestration. Therefore, in the new orchestration, do NOT modify the components in any way that would break other orchestrations that use the same components.

4.8.3 Adding Inputs to an Orchestration

Orchestration inputs identify the data an orchestration consumes from a calling custom program, a third-party application, an IoT device, or Cloud service. For example, you could have an orchestration consuming data from an IoT device, with a "SensorID" input to pass a sensor ID value to an orchestration and a "TemperatureReading" input to pass a temperature value to an orchestration.

For each input, you specify an input type, which can be a string, numeric, or various date formats.

In the Orchestration design page, there are three different types of inputs you can add to an orchestration:

  • Orchestration Inputs.

    You can manually enter orchestration inputs, including arrays, to identify the data an orchestration consumes from third-party applications or devices.

    After adding a component as a step in the orchestration, you can use the Add Inputs to Orchestration button at the end of the step to automatically add inputs defined in a component as inputs to the orchestration. You can remove any inputs as needed, and then map the orchestration inputs to the appropriate inputs in the orchestration steps.

  • Value from Steps.

    When you add a form request, data request, or cross reference configured to return values from EnterpriseOne, the variables defined to represent the return values appear as additional orchestration inputs. This gives you the option to map data returned from one component to a subsequent component in an orchestration.

    Also, if you add a service request step that generates output, the Orchestrator Studio automatically adds a <servicerequestname>.output as an orchestration input. This is a variable that represents the JSON output of the service request, which gives you the option to map the JSON to a subsequent orchestration step.

  • System Values.

    New orchestrations include the following default inputs: User Address Book Number, User Name, and System Date. These inputs represent the originator of the orchestration when executed at runtime. This gives you the option to map these inputs to an orchestration step.

Each component that you add to an orchestration—a service request, rule, white list, or cross reference—also includes one or more inputs. For example, inputs in a rule evaluate data received from orchestration inputs to determine the next step in an orchestration. When you assemble an orchestration, you map the orchestration inputs to the inputs defined in the components. See Mapping Orchestration Inputs.

To manually add orchestration inputs in the Orchestration Inputs grid:

  1. In the first row in the inputs area, enter the name of the input in the Input column.

  2. In the Value Type column, select the input value type. Valid values are:

    • String

    • Numeric

    • Array

    If the input is a date, you can use any of the following date formats:

    • dd/MM/yyyy

    • dd/MM/yy

    • yyyy/MM/dd

    • MM/dd/yyyy

    • MM/dd/yy

    • yy/MM/dd

    You can also use the following date formats, which create additional inputs derived from the passed value:

    • Milliseconds

    • yyyy-MM-dd'T'HH:mm:ss.SSSZ

  3. Optionally, use the Default Value column to enter a default value that you want to pass through the orchestration input.

  4. If you add an array for an input, the grid expands so you can define the inputs in the array.

    As shown in the following example, a user added an array named GridData to the highlighted row. And then entered the inputs "Update Row" and "Quantity" for the array in the subsequent rows.

    This image is described in surrounding text.
  5. Click Save to save your changes.

To generate orchestration inputs from an orchestration component:

  1. In the row with the orchestration step, click the Add Inputs to Orchestration button.

    The inputs defined in the component appear as inputs to the orchestration.

  2. Use the X button at the end of each row to remove any unnecessary inputs.

  3. Modify the Value Type and Default Value columns as needed.

  4. Click Save, and then see Mapping Orchestration Inputs to map these inputs to the appropriate component inputs.

4.8.4 Adding Steps to an Orchestration

Each component (service request, rule, cross reference, white list) that you add to an orchestration is an orchestration step. It is recommended that you create the component that you want to add to an orchestration before you add it as an orchestration step.

Figure 4-8 shows an orchestration that contains multiple rule, cross reference, and service request steps:

Figure 4-8 Steps in the AddConditionBased Alert Sample Orchestration in the Orchestrator Studio

Description of Figure 4-8 follows
Description of ''Figure 4-8 Steps in the AddConditionBased Alert Sample Orchestration in the Orchestrator Studio''

Each row in the Orchestration Steps grid represents a step in the orchestration. The grid displays the following information about each step:

Use the "Insert Step Before" and "Insert Step After" buttons to add a step before or after another step in the orchestration. For example, if you determine that you need to add a white list to an existing orchestration, you can insert the white list as an initial step before the other steps.

4.8.4.1 Adding the Initial Step to an Orchestration

  1. Click the Add Step button (+ symbol).

  2. In the "Enter Type of Step" pop-up field, select one of the following steps to add to the orchestration, and then click Ok.

    • Cross Reference

    • Rule

    • Service Request

    • White List

    The Orchestrator Studio displays the first step in the grid.

  3. Define the component for the step:

    1. To use an existing component for the new step, click the drop-down menu in the Name column and select a component.

    2. To create a new component for the step, click the Edit (pencil) icon at the end of the row to access the design page for creating the new component.

      After creating the component, when you return to the Orchestration design page, you can select the component from the drop-down list in the orchestration steps grid to add it.

    See the appropriate topics in this chapter on how to create each type of orchestration component.

  4. In the Transformations area on the right side of the page, map the orchestration inputs to inputs in the orchestration steps. See Mapping Orchestration Inputs.

4.8.4.2 Adding Additional Steps to an Orchestration

  1. Select a step in the grid, and then click either the Insert Step Before or Insert Step After button to add an additional step before or after the selected step.

  2. In the "Enter Type of Step" pop-up box, select the step that you want to add.

  3. Click the Ok button.

4.8.4.3 Removing a Step from an Orchestration

Caution:

Before you delete a step, make sure the step is not used by any other component in the orchestration.
  1. Select the step that you want to remove.

  2. Above the grid with the steps, click the Remove Step button (the X button).

If you make a mistake when updating an orchestration, click the Restore All button in the upper-right corner of the design page to restore the orchestration to its last saved version, which erases any changes made since the last save.

4.8.4.4 Defining the Actions Between a Rule and Dependent Components

The Orchestration design page contains an Action column for defining the actions between a rule step and other orchestration steps in an orchestration. After you create a rule with conditions and add it as a step to an orchestration, you need to define the action the orchestration takes if the condition in the rule is met. For example, if a rule contains a condition that when met should invoke a service request step, then in the row with the service request step, you set the Action column to True.

You can also define a False action to invoke a different orchestration step when a condition in the initial rule is NOT met. A False action can invoke a different Service Request step or another rule step that contains additional conditions for which the incoming data is evaluated against. Thus, you can design an orchestration with as many rules and service requests as your business requirements necessitate.

Figure 4-9 shows an example of an orchestration with two rule steps and two service request steps, with the following defined actions:

  • For the first service request step, the action is set to True to instruct the orchestration to invoke this service request step when the condition in the first rule step is met.

  • The action for the second (nested) rule step is set to False to instruct the orchestration to invoke this rule when the condition in the first rule is NOT met.

  • The action for the second service request step is set to True to instruct the orchestration to invoke this service request when the condition in the second rule is met.

Figure 4-9 Defining the Orchestration Actions

Description of Figure 4-9 follows
Description of ''Figure 4-9 Defining the Orchestration Actions''

To set the Action column to True or False:

  1. In the Orchestration design page, in the appropriate Rule or Service Request step row, click in the Action column.

  2. Select either True or False as appropriate.

  3. Click the Save button.

    After completing the orchestration, you can use the Orchestrator Client to test the orchestration in a test environment. You can access the Orchestrator Client from the drop-down menu in the upper-right corner of the Orchestrator Studio. See Chapter 9, "Testing Orchestrations in the EnterpriseOne Orchestrator Client" for more information.

4.8.4.5 Defining Error Handling for Orchestration Steps (Orchestrator Studio 7.0.0.0)

In the Orchestrations design page, you can set up error handling for individual orchestration steps. In the orchestration step, you can determine how the Orchestrator handles an error, whether it:

  • Continues processing the orchestration after the error occurs, effectively ignoring the error.

  • Cancels the orchestration.

  • Cancels the orchestration and invokes an alternate orchestration or notification. For example, you might call a notification to alert subscribers if an orchestration is canceled. Or you might run an orchestration to clean up work already performed by the orchestration before it was canceled.

You have the option to include additional text in the error, and you can include a variable to pass a value into the error text.

Regardless of the option you choose, the system still generates an exception when it encounters an error with an orchestration step. For more information on how to monitor exceptions, see Chapter 6, "Orchestrator Health and Exception Monitoring (Release 9.2.3)".

To define error handling for an orchestration step:

  1. At the end of the step in the grid, click the Error Handling icon.

    The Error Handling dialog box displays with the type and name of the step, as shown here:

    Surrounding text describes error_handling.png.
  2. In the User Defined Error Text field, you can enter additional details about the error to display in the exception details. You can insert variables in the error text using the ${} notation, where you enter the variable name between the brackets.

    If you configure the step to continue on error, this error text will appear in the response in a new array called "Continued on Error." If you configure the step to abort on error, this text will appear in the returned exception as userDefinedErrorText. The error text is also added to the AIS Server log.

  3. For On Error, select one of the following options:

    • Abort

    • Continue

  4. (Optional) If you choose to Abort on error, you can configure the orchestration step to invoke another orchestration or notification:

    1. Click the Orchestration/Notification drop-down list and select an orchestration or notification to invoke after an error.

    2. Map the inputs as appropriate.

    Note:

    In the exception, the response of the alternate orchestration or notification is displayed under the Exception Process Response label.

4.8.5 Mapping Orchestration Inputs

On the Orchestration design page, use the Transformations area to map orchestration inputs to inputs defined in an orchestration step, such as inputs in a rule, cross reference, white list, or service request component. The Transformations area includes an Auto Map button for automatically mapping any matching inputs in the orchestration and orchestration step.

If an orchestration and an orchestration component use different input names to identify the same data, you can use the grid in the Transformations area to map the inputs. This facilitates the reuse of components, so you can avoid having to create a new component simply to match the input names (from a third-party application or device) in a new orchestration.

To better understand how to map inputs, see the example depicted in Figure 4-10. In this example, two orchestration inputs have the same name as the inputs in the service request. These inputs were automatically mapped using the Transformations Auto Map button. The orchestration also contains a SerialNumber input to identify equipment, which is represented in EnterpriseOne as "EquipmentNumber." To map these inputs in the Transformations area, "SerialNumber" was selected in the Available Values drop-down list next to the EquipmentNumber service request input.

Figure 4-10 Transformations Example

Description of Figure 4-10 follows
Description of ''Figure 4-10 Transformations Example''

Initially, when you have a small number of orchestrations in your system, it is recommended to keep all input names consistent among the orchestration and all components (orchestration steps) used by orchestration. But as your library of orchestrations and orchestration components increases, instead of creating new components with input names that match the orchestration inputs, you can use transformations to map the orchestration inputs to an existing component.

To map inputs:

  1. In the Orchestration design page, select an orchestration step to which you want to map orchestration inputs.

  2. Click the Transformations Auto Map button to map matching inputs. The Studio automatically maps inputs with the same name; the matching orchestration inputs appear in the Available Values column next to the matching input in the "Orchestration Step Input" column.

  3. To map an orchestration input to an orchestration step input that does not have the same name:

    1. In the Transformations table, click the drop-down menu in the Orchestration Input column next to the orchestration step input.

    2. Select the orchestration input to map to the orchestration step input.

    For example, in Figure 4-10, SerialNumber is mapped to EquipmentNumber in the Service Request Input.

  4. You can map a literal value to the orchestration step input by entering a value in the Default Value column.

  5. (Orchestrator 6.1.0) If you are mapping values from an array, you can configure the orchestration to iterate over the orchestration step so the step is called once for each row in the array:

    1. After defining the array in the Orchestration Inputs section, click the Iterate Over drop-down list in the Transformations area and select the name of the array input.

    2. Make sure to map the orchestration inputs for the array to the inputs defined in the orchestration step, as shown in the following example:

      Description of iter_over_transform.png follows
      Description of the illustration ''iter_over_transform.png''

      Notice that in the Orchestration Steps grid, the name of the array was automatically inserted into the Iterate Over column in the Service Request step.

4.8.6 Retrieving and Passing Data Sets in an Orchestration

You can configure a form request or a data request to return a data set. You can also configure an orchestration to pass a data set returned from a form request or a data request to another step in the orchestration. At runtime, the orchestration executes the form request or data request once per row in the data set.

Figure 4-11 shows an example of a data request configured with a data set named "Employees" that will retrieve the address book number and tax ID of all employee records in EnterpriseOne.

Figure 4-11 Data Request Configured to Retrieve a Data Set

Description of Figure 4-11 follows
Description of ''Figure 4-11 Data Request Configured to Retrieve a Data Set''

4.8.6.1 Configuring a Data Request to Retrieve a Data Set

  1. On the Data Request page, enter a name for the data set in the Data Set Variable Name field.

  2. Define filtering criteria for the data set.

  3. In the grid, click the "Return" icon next to the fields that you want the data request to return in a data set.

  4. In the "Return Fields and Variable Names" area, enter a variable name for each return field.

    When you add this data request to an orchestration, you can use these variables to map the data in the data set to a subsequent orchestration step.

    For more information about configuring a data request, see Configuring a Data Request.

4.8.6.2 Configuring a Form Request to Retrieve a Data Set

Note:

Data sets from grids on a power form are not supported.
  1. In the form request, locate the row with the Form Name-Grid node.

  2. In the Form Name-Grid row, enter a name for the data set in the Variable Name column.

    If you configure the orchestration to pass the data in the data set to a subsequent orchestration step, you enter this variable name in the Iterate Over column of the orchestration step to which you want to pass the data.

  3. For each column that you want to include in the data set, click Return.

  4. For each column that you specified to include in the data set, enter a variable name so that the returned column can be mapped to a subsequent orchestration step.

    For more information about configuring a form request, see Configuring a Form Request in the Orchestrator Studio.

4.8.6.3 Passing a Data Set to a Subsequent Orchestration Step

You can configure an orchestration to pass each row of a data set to an orchestration step.

  1. Add the form request or data request defined with a data set to the orchestration.

  2. In the Iterate Over column of the orchestration step to which you want to pass the data set, enter the data set name defined in the form request or data request.

  3. Map the data set fields to the inputs in the orchestration step. See Mapping Orchestration Inputs.

  4. Click Save.

4.8.7 Working with Orchestration Output

Use the Orchestration Output page to view the JSON representation of orchestration output. Viewing the output enables you to validate the fields that contain the data you want returned in the orchestration output for output mapping.

Orchestration output can include values from fields and grid columns that you specify as returns when setting up a form request, data request, or cross reference in an orchestration. It can also include the response from a connector, custom service request, or the result of a rule (true or false).

On the Orchestration Output page, you can use Groovy scripting to manipulate the contents of the response to refine the orchestration output as required by the parameters in the consuming device or program.

Note:

Orchestration output is available only with version 2 orchestrations created in Orchestrator Studio 5.0.1 or higher. For orchestrations created prior to Orchestrator Studio 5.0.1, you must update them to version 2 orchestrations to view orchestration output.

To work with orchestration output:

  1. On the Orchestration design page, click the Orchestration Output button.

  2. If you want to view the JSON code of all return fields in an orchestration, click Add All.

    The grid displays all of the components or steps in the orchestration that contain return fields, as shown in the following example:

    Description of orch_out_returns.png follows
    Description of the illustration ''orch_out_returns.png''

  3. Instead of Add All, you can individually select the return fields for which you want to preview the JSON code:

    1. Click Add to view a list of all steps (orchestration components) in the orchestration that contain return fields.

      You can expand each step to see the return fields. The Output Field column displays the variable name defined for a return field.

    2. In the Select column, click the check box next to any return field that you want to add to your orchestration output, and then click OK.

      The field will be returned in JSON format, which you can also preview on the design page.

  4. To modify the return fields for which you want to see the JSON representation:

    • You can change the variable name for the return field in the Output column.

    • Click Delete (X) at the end of row to remove a return field from the JSON preview.

    • Click Add (+) to add any additional grid controls not currently selected for output.

  5. Click the Preview button.

    The following image shows an example of the JSON code for three grid return fields: 2nd Item Number, Item Description, and Order Number.

    Description of orch_out_json.png follows
    Description of the illustration ''orch_out_json.png''

  6. In the Preview area, you can click the Copy to Clipboard button so you can paste the JSON code into your program.

  7. (Advanced) In Orchestrator Studio, edit the provided Groovy script template in the Manipulate Output area to manipulate the contents of the response to refine the orchestration output.

    See Groovy Template for Manipulating Output from an Orchestration Response for more information.

  8. Click the Test button to view the output.

    The Orchestrator Studio displays a preview of the output manipulated by the Groovy script.

  9. To save the orchestration outputs, return to the Orchestration design page and click Save.

4.9 Creating Schedules for Orchestrations

This section contains the following topics:

4.9.1 Understanding Schedules

The Orchestrator Studio gives you the option to create and assign a schedule to an orchestration. A schedule determines how often the Orchestrator executes an orchestration. For example, with a schedule, you can create an orchestration that regularly checks for a Watchlist threshold, that when exceeded, sends a notification to the appropriate users.

You define a schedule using minutes, hours, days, or a Cron string. Cron is a scheduling utility using cryptic strings to define an interval. Then you associate a schedule to an orchestration to determine how often it runs. You can attach the same schedule to multiple orchestrations.

You must have been granted proper UDO security to create schedules. Schedules are managed as UDOs, which means you need the proper UDO security in order to publish and share your schedules for others to use, or use schedules that others have published.

The scheduler is a process on the Application Interface Services (AIS) server that starts, stops, and manages schedules. An administrator uses the AIS Server REST API to start, stop, and manage schedules through the scheduler.

4.9.2 Creating a Schedule

Create a schedule to define how often the Orchestrator should execute an orchestration. You can define a schedule using minutes, hours, days, or a Cron string. Cron is a time-based job scheduler that can be used to schedule jobs to run periodically at fixed times, dates, or intervals (for example, every Tuesday and Friday at 9:00 am).

To create a schedule:

  1. On the Orchestrator Studio Home page, click the Tools link in the upper-right corner.

  2. On the Tools page, click the Schedules icon.

    The Orchestrator Studio displays the Schedules design page.

  3. Click the New Schedule button.

  4. In the Schedules field, enter a name for the schedule. Do NOT include special characters in the name.

  5. Click the Product Code drop-down list to select a product code to associate with the schedule.

    This gives an administrator the option to manage UDO security for orchestration components by product code.

  6. In the space provided, enter a short description with a maximum of 200 characters. This description should clearly describe the frequency of the schedule so that it can be attached to notification as needed.

  7. Click the Edit Long Description button to add a long description to provide more detail about the purpose of the component.

  8. Do one of the following:

    • In the Schedule to Run section, select a number of minutes, hours, or days to define how often you want the schedule to run.

      If you select minutes, you cannot run more often than every five minutes.

    • In the Or Enter a Cron String section, enter a Cron string to define the schedule.

      Cron is a time-based job scheduler that can be used to schedule jobs to run periodically at fixed times, dates, or intervals. There are many third-party Cron expression generators available that can help you create a Cron string.

  9. Click the Save or Save As icon in the upper-right corner.

    The first time a new schedule is saved, it is saved as a "Personal" UDO. Thereafter, you can use the UDO buttons described in the User Defined Object (UDO) Features section to move the schedule to the appropriate status.

4.9.3 Adding a Schedule to an Orchestration

Adding a schedule to an orchestration does not invoke the orchestration as scheduled. Starting the scheduler is a separate step. After you add a schedule, ask an administrator to start and administer the schedule using REST API services.

For more information about REST API services for starting, stopping, and managing the Scheduler, see JD Edwards EnterpriseOne Tools REST API for the Application Interface Services Server.

Note:

In order to use the Scheduler with an orchestration, it must be a version 2 orchestration. If you want to update a version 1 orchestration created in a previous version of the Orchestrator Studio, see Updating Version 1 Orchestrations to Version 2 Orchestrations.

To add a schedule to an orchestration:

  1. Select the orchestration to which you want to add a schedule and open it in the Orchestration design page.

  2. On the Orchestration design page, click the Schedule drop-down list and select a schedule.

  3. Click Save to save your changes.

4.10 Updating Version 1 Orchestrations to Version 2 Orchestrations

When executed by the Orchestrator on the AIS Server, orchestrations programmatically call AIS services on the AIS Server to perform specific actions in EnterpriseOne.

Starting with EnterpriseOne Tools 9.2.1.2 is the availability of version 2 AIS services. Version 2 AIS services include all services originally available on the AIS Server (referred to as version 1 services), plus additional services that enable you to create an orchestration that includes the following types of service requests:

  • Data request

  • Message

  • Connector

All orchestrations that you create with Orchestrator Studio 5.0.1 or higher use version 2 AIS services and are referred to as version 2 orchestrations.

All orchestrations created prior to Orchestrator Studio 5.0.1 use version 1 AIS services and are referred to as version 1 orchestrations.

In Orchestrator Studio 5.0.1 or higher, you can update version 1 orchestrations. However, if you add any of the components in the preceding list that rely on version 2 AIS services, you must save the orchestration as version 2 by selecting Version 2 from the Orchestrator Version drop-down list.

Caution:

If you save a version 1 orchestration as version 2, the following parameters are used for the service request by default:

  • Output Type = grid data

  • Turbo Mode = low

This changes the format of the response, which will affect any device consuming the output returned from the orchestration.

4.11 Reloading Orchestrations and Orchestration Components

Reload Files enables you to reload orchestrations and orchestration components to the state in which they were last saved in the Orchestrator Studio. Use this feature if you do not want to save any modifications that you made.

To reload all files, click the drop-down menu in the upper-right corner of the Orchestrator Studio and then click the Reload Files link.

Each individual orchestration component panel also contains a Restore button that you can use to restore an individual component.

4.12 Supported Input Message Formats

The Orchestrator supports three input message formats for orchestrations: a standard JD Edwards EnterpriseOne format, a generic format, and Oracle Cloud IoT format. Example 4-1 and Example 4-2 show an example of the code for each format.

Example 4-1 Standard JD Edwards EnterpriseOne Input Message Format

{
     "inputs": [
         {
             "name": "equipmentNumber",
             "value": "41419"
         },
         {
             "name": "description",
             "value": "test"
         },
         {
             "name": "date",
             "value": "1427774400000"
         },
         {
             "name": "time",
             "value": "12:15:15"
         },
         {
             "name": "temperature",
             "value": "99"
         }
     ]
}

Example 4-2 Generic or Oracle Cloud IoT Input Message Format

{
      "equipmentNumber": "41419",
      "description": "test",
      "date": "1427774400000",
      "time": "12:15:15",
      "temperature": "99"
}

4.12.1 Additional Supported Input Message Formats for the Generic Input Format

Additional formats are supported when using the generic input format, as long as the orchestration input values are defined using the full path to the elements used. You may have a deeper JSON structure like this.

{
    "equipmentNumber": "41419",
    "equipementDetail": {
        "type": "thermometer",
        "readingDetail": {
            "temperature": 200,
            "units": "F"
        }
    }
}

To reference the temperature within the orchestration, you can use the full path delimited by periods, for example:

equipmentDetail.readingDetail.temperature

4.12.2 Differences Between Input Message Formats

The following list describes the differences between the input message formats:

  • The iterateOver attribute for the orchestrationStep element is supported only by the standard JD Edwards EnterpriseOne input message format.

  • When using the "detail" form action type with the standard format, it will automatically iterate over all detailInputs and repeatingInputs in order to add multiple rows to a grid. If the generic format is used, only a single grid row can be added.

As shown in Example 4-3, "detailInputs" would correspond to grid data; "repeatingInputs" would correspond to individual rows that contain "inputs" that correspond to columns.

If you have a power form with two grids, you could populate both grids using two "detailInputs" structures with different "name" values that correspond to the different grids. "repeatingInputs" would contain a list of rows and for each row you would define a list of "inputs".

You could also define a CrossReference orchestration step with iterateOver="GridData" that converts the item value into an EnterpriseOne specific item number. For example, if A123=220 and A124=230, the single orchestration step would convert both.

Example 4-3

{
    "inputs": [
        {
            "name": "BranchPlant",
            "value": "30"
        },
        {
            "name": "customer",
            "value": "4242"
        }
    ],
    "detailInputs": [
        {
            "name": "GridData",
            "repeatingInputs": [
                {
                    "inputs": [
                        {
                            "name": "item",
                            "value": "A123"
                        },
                        {
                            "name": "Quantity",
                            "value": "3"
                        }
                    ]
                },
                {
                    "inputs": [
                        {
                            "name": "item",
                            "value": "A124"
                        }
                    ]
                }
            ]
        }
    ]
}

4.13 Orchestration Security Considerations

Before the EnterpriseOne Orchestrator can process an orchestration, authentication of the JD Edwards EnterpriseOne user ID and password must take place. It is the responsibility of the originator of the service request to tell the orchestration about the user. The user's credentials must be supplied in a basic authorization header or in the JSON body of the request. The user must also have authorized access to the EnterpriseOne application in which the resulting transaction takes place. The following code is an example of credentials in the JSON body of the request:

{
                "username":"JDE",
                "password":"JDE",
                "environment":"JDV900",
                "role":"*ALL"
}

The AIS service used with orchestrations is stateless; each call passes credentials to establish a separate EnterpriseOne session. After the transaction is complete, the session closes.

In addition to passing credentials for authentication, you can employ a second level of security for the Orchestrator through whitelisting. Whitelisting enables an initial rudimentary pass/fail check of the incoming device signature against a predefined list of signatures. If a value passed to the Orchestrator is not a valid value included in the orchestration's white list, the Orchestrator rejects the input. For more information, see Creating White Lists in this guide.

4.13.1 Restricting Access to Exposed Orchestrations

If you expose orchestrations for business partners or customers to invoke, it is recommended to use an http proxy to allow access to only the endpoints required to execute the orchestration. Configure the proxy to restrict all endpoints except /orchestrator, /discover, /tokenrequest, and /tokenrequest/logout. This allows external users set up with the proper UDO security to discover and call orchestrations.

4.13.2 How to Maintain a Single Session for Multiple Calls to an Orchestration

You can maintain a single AIS Server session for multiple calls to an orchestration by first performing a token request to get a session token. Otherwise, each call to an orchestration on the AIS Server establishes a separate session, which can decrease AIS Server performance.

When performing a token request, a session is established and the AIS Server returns an AIS token in the response. The token is then used for all orchestration calls in the same session.

The amount of time the session remains open is established through the session lifetime settings in the AIS server. The third party client is responsible for ensuring a valid token is available or re-requesting a new token once a previous token has timed out. If a valid token is not available, the client will receive an error in the response stating the token is invalid.

4.14 Exporting Orchestration Components from the Orchestrator Studio

Caution:

Do not use the Export and Import tools to share orchestration component files with other users. With orchestration components stored as UDOs in EnterpriseOne, the management of orchestration components, including the sharing and modifying of shared orchestration components and promoting of orchestration components to the appropriate AIS Server directory for test or production purposes, is administered through the life cycle management tools in EnterpriseOne.

You can export any of the orchestration component types from the Orchestrator Studio to view the source XML files of the components. This is only recommended for advanced users for troubleshooting purposes or for making manual customizations. The Orchestrator Studio exports the source XML files in a zip file.

To export an orchestration component, the Orchestrator Studio gives you the option to export only the selected orchestration component or to export the orchestration and all components associated with it. For example, if an orchestration has a service request component and a rule component associated with it, if you export all components, the zip file will contain XML files for the orchestration, service request, and rule.

To export orchestration components:

  1. On a component design page, select the component to export and then click the Export File button in the upper-right corner.

    If you are exporting an orchestration, a dialog box appears in which you can click All or Orchestration Only.

  2. Follow the instructions in the browser to save the zip file to a location on your local machine.

4.15 Importing Orchestration Files in the Orchestrator Studio

Caution:

Do not use the Export and Import tools to share orchestration component files with other users. With orchestration components stored as UDOs in EnterpriseOne, the sharing and modifying of shared orchestration components, as well as the promoting of orchestration components to the appropriate AIS Server directory for test or production purposes, is administered through the life cycle management tools in EnterpriseOne.

You might need to import orchestration component XML files that were exported from the Orchestrator Studio for advanced troubleshooting or customization purposes. The Orchestrator Studio Import tool enables you to import individual orchestration XML files or a zip file containing XML files.

Caution:

You cannot import orchestration component files that were exported from the EnterpriseOne Object Management Workbench - Web application. The zip file created from an OMW - Web export stores the XML files in a structure that cannot be read by the Orchestrator Studio Import tool.

If importing a zip file that contains orchestration XML files and dependent orchestration component XML files, the zip should contain the following folders with each of the XML files stored in the appropriate folder:

Description of importzip_folders.png follows
Description of the illustration ''importzip_folders.png''

If you import an XML file that has the same name as a current orchestration component (UDO) in the Orchestrator Studio, you have the following options:

  • If the UDO is at a status of "Personal" or "Reserved," you can overwrite the UDO with the XML file.

  • If the UDO is in a "Shared" status, you cannot overwrite it. But you are given the option to import it as a new UDO with a status of "Personal."

To import files:

  1. On the Orchestrator Studio Home page, click the Tools link in the upper-right corner.

  2. On the Tools page, click the Import Files icon.

  3. On Import Files, click the Choose File button.

  4. Locate the orchestration component XML files or zip file that contains the orchestration component files that you want to import.

    After selecting the files to import, the Import tool checks the XML files that you selected against the current UDOs in the Orchestrator Studio and displays the options that are available for importing the files, as shown in the example in Figure 4-12.

    Figure 4-12 Orchestrator Studio Import Tool

    This image is described in surrounding text.
  5. Review the import option for each file to determine how to proceed with the import. The options are:

    • No update allowed at current status.

      The XML file name is the same as an existing component, which has a status of "Pending Approval," so it cannot be overwritten.

    • Select to add or else reserve record and re-import to update.

      A component with the same name exists in the Orchestrator Studio in a "Shared" status. Click the check box if you want to import the file as a new UDO. A new name will be generated for the new component upon import.

      If you want to overwrite the current component in the Orchestrator Studio, clear the check box. And then change the status of the current component to "Reserved" and reimport the XML file to overwrite the component.

    • File already exists.

      The XML file matches a component that is in a "Personal" or "Reserved" status. Click the check box to import it and overwrite the current component.

    • File is ready to submit.

      The XML file is unique and does not already exist in the Orchestrator Studio. Click the check box to import it.

  6. You can also click the Select All check box to import all XML files that are available for importing.

  7. Click the Submit button.

    The Orchestrator Studio imports the selected components into the components list on the respective design page.