Designer services are executable UML (xUML) services. This page describes

  • how the mapping diagram definitions from the Designer are compiled to UML,
  • how they are presented in the Analyzer, and
  • where the related execution is implemented.

Refer to Browsing Through the Execution Path of a Designer Service for more information on how to find the related implementations within the trace data.

The Compiler transforms mapping diagrams into UML format. The structure of the transformed mapping diagram is similar to the structure of the execution diagram. This transformation is done in multiple steps. The steps vary depending on the type of mapping:

Simple and Complex Type Mapping

 
Ref.ActionDescription
1 mapAddress direct initialScript

Initializations

Initialize _self buffer node for non-static mappings. This is needed to make the self context available in the implementation of the execution diagram.

2
  • concatName
  • concatName
  • convertToString
  • splitStreet

Operation calls

Call all defined mapping operations one by one in an unspecific order.

3
mapAddress direct finalScript

Store data

  • Assign all literal values defined on the mapping diagram, e.g. Main Address.
  • Assign the results from the mapping operations to their output target.
  • Perform the direct mappings source → target.

Array Mapping With Condition

Ref.ActionDescription
1 mapEmployeeToAddress initialScript

Initializations

  • Initialize _self buffer node for non-static mappings. This is needed to make the self context available in the implementation of the execution diagram.
  • Get the array element that matches the provided mapping condition (stored to xuml_employeeAddress_where_1 in the example above).
2
  • concatStreetAndNumber
  • splitName

Operation calls

All defined mapping operations are called one by one in an unspecific order.

3
mapEmployeeToAddress finalScript

Store data

  • Assign all literal values defined on the mapping diagram.
  • Assign the results from the mapping operations to their output target.
  • Perform the direct mappings source → target.
  • Map the data from the conditional array element.

Array Mapping in a Loop (foreach)

 
Ref.ActionDescription
1xuml_self_orderPos_forEach_initScript

Loop initializations

  • Initialize the loop index.
  • Create a work array.

Operation calls

All defined mapping operations are called one by one in an unspecific order. This is not visible in this example because it has no operations calls outside the foreach.

2

Loop  over array elements
3
xuml_self_orderPos_forEach_getCurrentEltScript

Get next array element

4
  • mapArticleData
  • mapIndexToPosNo
  • convertStringToFloat

Operation calls for the current array element

All defined mapping operations are called one by one in an unspecific order.

5
xuml_self_orderPos_finalScriptStore data of the current array element
  • Assign all literal values defined within the foreach mapping.
  • Assign the results from the mapping operations to their output target.
  • Perform the direct mappings source → target.
  • Map the work array to the target output array.
6
xuml_self_orderPos_forEach_incrementScript

Increase array index

7
mapToErp_finalScript

Store data

  • Assign all literal values defined on the mapping diagram.
  • Assign the results from the mapping operations to their output target.
  • Perform the direct mappings source → target.
  • Map the work array to the target output array.
  • No labels