Skip to main content
Previous sectionNext section

Creating Data Transformations

This chapter describes generally how to create and edit data transformations. It contains the following sections:

Later chapters describe the syntax to use in data transformations, details for assign actions, and details for other kinds of actions.

Creating a Transformation

To create a transformation:

  1. Click New.

    If you are currently viewing a transformation and you have made changes but have not yet saved them, Ensemble prompts you to confirm that you want to proceed (which will discard those changes).

    Ensemble then displays a dialog box where you can specify the basic information for the transformation.

  2. Specify some or all of the following information:

    • Package (required) — Enter a package name or click the arrow to select a package in the current namespace.

      Do not use a reserved package name; see “Reserved Package Names” in Developing Ensemble Productions.

    • Name (required) — Enter a name for your data transformation class.

    • Description — Enter an description for the data transformation; this becomes the class description.

    • Source Type and Source Class — Specifies the type of messages that this transformation will receive as input.

      Choose one of the following:

      Or click the search icon for Source Class and then select the class.

    • Source Document Type (applicable only if the messages are virtual documents) — Enter or choose the document type of the source messages. You can choose any type defined in the applicable schemas loaded into this namespace.

    • Target Type and Target Class — Specifies the type of messages that this transformation will generate as output. See the choices for Source Type and Source Class.

    • Target Document Type (applicable only if the messages are virtual documents) — Enter or choose the document type of the target messages. You can choose any type defined in the applicable schemas loaded into this namespace.

    Apart from Package and Name, you can edit all these details later.

  3. Specify details on the Transform tab. See “Specifying Transformation Details.”

Opening an Existing Transformation

To open a transformation:

  1. Click Open.

    If you are currently viewing a transformation and you have made changes but have not yet saved them, Ensemble prompts you to confirm that you want to proceed (which will discard those changes).

  2. Click the package that contains the transformation.

    Then click the subpackage as needed.

  3. Click the transformation class.

  4. Click OK.

Specifying Transformation Details

For a transformation, the Transform tab displays details that apply to the transformation as a whole. You may or may not have already specified some of these details. Other details can be edited only here. These details are as follows:

  • Name (read-only) — Complete package and class name of the data transformation class.

  • Create — Specifies how the transformation should create the target message. Choose one of the following:

    • new — Create a new object of the target class (and type, if applicable), before executing the elements within the data transformation. This is the default.

    • copy — Create a copy of the source object to use as the target object, before executing the elements within the transform.

    • existing — Use an existing object, provided by the caller of the data transformation, as the target object. See the following subsection.

  • Source Class — Specifies the type of messages that this transformation will receive as input. For details, see “Creating a Transformation,” earlier in this chapter.

  • Source Document Type (applicable only if the messages are virtual documents) — Specifies the document type of the source messages.

  • Target Class — Specifies the type of messages that this transformation will generate as output. For details, see “Creating a Transformation,” earlier in this chapter.

  • Target Document Type (applicable only if the messages are virtual documents) — Specifies the document type of the target messages.

  • Language — Specifies the language you will use in any expressions in this DTL. Select either objectscript (ObjectScript) or basic (Caché Basic). The default is objectscript.

    MVBasic is not supported.

  • Report Errors — Specifies whether Ensemble should log any errors that it encounters when executing this transform. If you select this option, Ensemble logs the errors as Warnings in the Event Log. Ensemble also returns a composite status code containing all errors as its return value. This option is selected by default.

  • Ignore missing source segments — Specifies whether to ignore errors caused by attempts to get field values out of absent source segments. If you select this option, Ensemble suppresses these errors and does not call subtransforms where the named source segment is absent. This option is selected by default.

    You can precisely control the behavior by including tests and conditional logic branches as wanted.

  • Description — Description of the data transformation.

Using the Create existing Option

For Create, the existing option enables you to specify the target as an existing object, which results in a performance improvement. This option applies when you invoke a series of transformations programmatically (or perform other sequential processing). You would use this option in cases like the following scenario:

  • You have three transformations that you want to perform in sequence:

    1. MyApp.ADTTransform — Uses the new option for Create.

    2. MyApp.MRNTransform — Uses the existing option for Create.

    3. MyApp.LabXTransform — Uses the existing option for Create.

  • You invoke the transforms as follows:

    do MyApp.ADTTransform.Transform(message,.target)
    do MyApp.MRNTransform(target,.newtarget)
    do MyApp.LabXTransform(newtarget,.outmessage)
    Copy code to clipboard

Editing Transformation Actions

This section describes generally how to add and edit the actions in a transformation. It includes the following subsections:

Later chapters describe the syntax to use in data transformations, details for assign actions, and details for other kinds of actions.

Adding an Action

To add an action, you can always do the following:

  1. Optionally click a source or target property, depending on the kind of action you want to add.

  2. Select an action from the Add Action drop-down list.

  3. Edit the details for this action on the Action tab.

    If applicable, the property that you selected is shown in the Property field, for use as a starting point. Optionally, you can disable the action with the Disabled checkbox. If you disable a foreach or if action, all actions within the block are also disabled.

Other techniques are possible for assign actions, as discussed in later in this book.

Editing an Action

To edit an action, first select it. To do so:

  • Click the corresponding row in the table below the diagram.

  • (If the action is displayed in the diagram) Click the symbol that Ensemble displays on the corresponding connector line, in the center divider.

    When you click this item, it changes color, the connector line turns bold, and the source and target property are highlighted in color. This means the connector is selected, as shown in the following figure.

    generated description: editor select assign

Now edit the values on the Action tab. Optionally, you can disable the action with the Disabled checkbox. If you disable a foreach or if action, all actions within the block are also disabled.

Tip:

If you double-click a property in the diagram, Ensemble updates the currently selected action, if applicable. \If you double-click a field in the source, then the editor interprets it as your wanting to set the value for the selected action. Similarly, if you double-click a target field, the editor interprets it as your wanting to set the target for the selected action.

Rearranging Actions

Ensemble executes the actions in the order they are listed in the table below the diagram.

To rearrange actions, you must use the table below the DTL diagram, as follows:

  1. Click the row corresponding to that action.

  2. Click one of the following icons in that row, as needed:

    Tool Description
    generated description: icon up
    Move the selected action up one position. If the action is the first action in a for each or if block, then this moves the action up and out of the block.
    generated description: icon down
    Move the selected action down one position. If the action is the last action in a for each or else block, then this moves the action just after the block. If the action is the last action in an if block just before the else, then this moves the action into the first position in the else block.
    generated description: icon out
    Move the selected action out of the current for each or if block. This moves the action out of the current block to the position immediately before the block.
    generated description: icon in
    Move the selected action into the next for each or if block.
    generated description: icon removeall
    Remove all the actions of the data transformation.
    generated description: icon remove
    Remove the action in this row.

Undoing a Change

To undo the previous change, click the Undo button generated description: icon undo.

Saving a Transformation

To save a transformation, do one of the following:

  • Click Save.

  • Click Save As. Then specify a new package, class name, and description and click OK.

  • Click Compile. This option saves the transformation and then compiles it.

Compiling a Transformation

To compile a transformation, click Compile. This option saves the transformation and then compiles it.

Deleting a Transformation

To delete a transformation, you must use a different page, the Data Transformation List page.

To access this page, click Ensemble > List > Data Transformations.

To delete a transformation:

  1. Click the row that displays its name.

  2. Click the Delete button.

  3. Click OK to confirm this action.