Customizing transformation steps

Map Designer Express provides two ways to generate Java code:

Using the Activity Editor

Using the Activity Editor, you can specify the flow of activities for a specific transformation rule graphically, without knowing programming or Java code. For each transformation rule in Map Designer Express, you can display one activity and its subactivities. You can view the associated attribute's transformation code graphically, modify it, and have the tool generate the corresponding Java code.

You launch the Activity Editor directly from Map Designer Express (see "Starting the Activity Editor"). At startup, the Activity Editor communicates with System Manager to discover the set of activities allowed. After you have finished designing the activity for a particular transformation rule, you save the changes in the Activity Editor, and they are communicated to Map Designer Express.

This section contains the following topics on the Activity Editor:

Starting the Activity Editor

You launch the Activity Editor through the transformation rule column of the Table or Diagram tabs of Map Designer Express. There are two ways to access information in this transformation rule column:

Transformation code is generated from one of the standard transformations that Map Designer Express provides on the combo box of the transformation rule column. When you double-click the attribute's transformation rule cell or click the mapping rule icon, the type of transformation determines what Map Designer Express displays:

The Activity Editor appears with the attribute name in the title bar. You can open multiple instances of the Activity Editor at the same time.

Layout of the Activity Editor

The Activity Editor has two main views: Graphical view and Java view. Depending on the nature of the activity, at any given time, only one view is visible. Thus, if Map Designer Express invokes the Activity Editor to display a graphical activity, the Activity Editor will startup with the Graphical view. If you choose to translate this graphical activity into Java code, the Java view will display in place of the Graphical view.

Figure 44 and Figure 68 show the layout of the Graphical and Java views, respectively, of the Activity Editor.

Both views have common Window elements, as described in Table 22..

Table 22. Common Window elements

Window element Description
Title Bar
Contains the name of the application (Activity Editor), application icon, and the main activity's name.
Menu Contains the primary menus.
Toolbar Contains dockable toolbars with shortcuts to various functions and tools.
Document Display Area
Displays the representation of the activity definition. It is organized with a workbook look.
Status Bar Displays status information and some handy shortcuts.

Using the Activity Editor functionality

You can access the Activity Editor's functionality using any of the following:

Main menus and keyboard shortcuts

The Activity Editor provides the following pull-down menus:

The following sections describe the options of each of these menus and their associated keyboard shortcuts.

Functions of the File menu: The File pull-down menu of the Activity Editor provides the following options:

Functions of the Edit menu: The Edit pull-down menu of the Activity Editor provides the following options:

Functions of the View menu: The View pull-down menu of the Activity Editor provides the following options:

Functions of the Tools menu: The Tools pull-down menu of the Activity Editor provides the following option:

Functions of the Help menu: The Help pull-down menu of the Activity Editor provides the following options:

Context menu: The Context menu provides options for performing many tasks on the editing canvas. To access the Context menu, right-click the editing canvas. The Context menu provides the following options:

Toolbar elements

The toolbars provide direct access to various features and functions of the Activity Editor. The functions of the toolbar buttons are the same as their corresponding menu items.

The Activity Editor supports two toolbars:

Tip: To identify the function of each toolbar button, roll over each button with your mouse cursor.

Standard toolbar: Figure 41 shows the Standard toolbar.

Figure 41. Activity Editor Standard toolbar

Table 23 provides the function of each Standard toolbar button (left to right) and the corresponding menu command.

Table 23.

Functions of Standard toolbar buttons
Function Corresponding menu command
Save Activity
File-->Save
Print Activity
File-->Print...
Cut
Edit-->Cut
Copy
Edit-->Copy
Paste
Edit-->Paste
Delete
Edit-->Delete
Help
Help-->Help Topics

Graphics toolbar: Figure 42 shows the Graphics toolbar.


Figure 42. Activity Editor Graphics toolbar

Table 24 provides the function of each Graphics toolbar button (left to right) and the corresponding menu command.

Table 24. Functions of Graphics toolbar buttons

Function Corresponding menu command
Back
View-->Go To-->Back
Forward
View-->Go To-->Forward
Up One Level
View-->Go To-->Up One Level
Home
View-->Go To-->Home
Zoom In
View-->Zoom In
Zoom Out
View-->Zoom Out

Status bar elements: The Activity Editor also provides a Status bar, as shown in Figure 43.

Figure 43. Activity Editor Status bar

Table 25 describes the functionality of each Status bar element, left to right.

Table 25. Functions of Status bar elements

Element Function
Zoom: 100% Edit box for specifying a zooming percentage
Ready Status message
10.9 Navigation pane showing the current position of the I-bar in the Java editor
>> (Shown in Quick view mode)

<< (Shown in Design mode)

Toggle between Design mode and quick view mode

Working in Graphical view

If Map Designer Express opens the Activity Editor with an activity definition that has a graphical nature, the Activity Editor will display the activity definition in Graphical view in one of two available display modes: Design mode or Quick view mode.

Initially, when an activity definition that has a graphical nature opens, the Activity Editor displays the top-level view of the definition in a tabbed window. Inside the tab window is the editing canvas, which is also known as the activity canvas or graphical canvas.

Working with activity definitions: You define and modify activity definitions on the editing canvas using the canvas components. The following list identifies the canvas components and briefly describes how to use them to define and modify activity definitions. For detailed steps for defining and modifying activity definitions, see "Example 1 of using the Activity Editor", "Example 2 of using the Activity Editor", and "Example 3 of using the Activity Editor".

Grouping components

Once you have dragged-and-dropped components onto the canvas to define the desired activity flow, you can select and save the whole or part of this activity flow as a named group. Then later on, you can reuse this named group in another activity definition just like a regular function block. The following procedure describes the steps to take.

Before you begin: You need to enable "Show child functions in Library window" in the Preference dialog to display the added group.

Perform the following steps:

  1. Select one or more graphical components in the canvas.
  2. Right-click the canvas to open the Context menu and select Add to My Collection.
  3. In the dialog that pops up, enter a name, a description, and select an icon to represent this group.

    Result: The added group will appear in the Library window under My Collection.

Identifying supported function blocks

The supported function blocks, in the Map Designer context, are organized into the following categories:

The following tables describe the function blocks in each category, including the acceptable values for their inputs and outputs.

Note:
In IBM WebSphere Business Integration Express Plus for Item Sync, the Activity Editor is also used with Process Designer Express. For information on using the function blocks, including the collaboration function blocks, with Process Designer Express, see the Collaboration Development Guide.

Table 26.

General/APIs/Business Object Array
Name Description Inputs and outputs with acceptable values
Add Element
Adds a business object to this business object

API: BusObjArray.addElement()

Inputs:
  • business object array--BusObjArray
  • element--BusObj
Duplicate
Creates a business object array exactly like the original one.

API: BusObjArray.duplicate()

Inputs: original--BusObjArray

Outputs: duplicate--BusObjArray

Equals
Compares business object array 1's and business object array 2's values, to determine whether they are equal.

API: BusObjArray.equals()

Inputs:
  • array 1--BusObjArray
  • array 2--BusObjArray

Outputs: equal?-- boolean

Get Element At
Retrieves a single business object by specifying its position in the business object array.

API: BusObjArray.elementAt()

Inputs:
  • business object array--BusObjArray
  • index--int

Outputs: element--BusObj

Get Elements
Retrieves the contents of this business object array.

API: BusObjArray.getElements()

Inputs: business object array--BusObjArray

Outputs: element--BusObj[]

Get Last Index
Retrieves the last available index from a business object array.

API: BusObjArray.getLast Index()

Inputs: business object array--BusObjArray

Outputs: last index--int

Is Business Object Array
Tests whether value is a business object array (BusObjArray). Inputs: value--Object

Outputs: result--boolean

Max attribute value
Retrieves the maximum values for the specified attribute among all elements in this business object array.

API: BusObjArray.max()

Inputs:
  • business object array--BusObjArray
  • attribute--String

Outputs: max--String

Min attribute value
Retrieves the minimum value for the specified attribute among all elements in this business object array.

API: BusObjArray.min()

Inputs:
  • business object array--BusObjArray
  • attribute--String

Outputs: min--String

Remove All Elements
Removes all elements from the business object array.

API: BusObjArray.removeAllElements()

Inputs: business object array--BusObjArray
Remove Element
Removes a business object element from a business object array.

API: BusObjArray.removeElement()

Inputs:
  • business object array--BusObjArray
  • element--BusObj
Remove Element At
Removes an element at a particular position in this business object array.

API: BusObjArray.removeElementAt()

Inputs:
  • business object array--BusObjArray
  • index--int
Set Element At
Sets the value of a business object in the business object array.

API: BusObjArray.setElementAt()

Inputs:
  • business object array--BusObjArray
  • index--int
  • element--BusObj
Size
Gets the number of elements in this business object array.

API: BusObjArray.size()

Inputs: business object array--BusObjArray

Outputs: size--int

Sum
Adds the values of the specified attribute for all business objects in this business object array.

API: BusObjArray.sum()

Inputs:
  • business object array--BusObjArray
  • attribute--String

Outputs: sum--double

Swap
Reverses the positions of two business objects in this business object array.

API: BusObjArray.swap()

Inputs:
  • business object array--BusObjArray
  • index 1--int
  • index 2--int
To String
Retrieves the values in this business object array as a single string.

API: BusObjArray.to String()

Inputs: business object array--BusObjArray

Outputs: string--String

Table 27.

General/APIs/Business Object/Array
Name Description Inputs and outputs with acceptable values
Get BusObj At
Retrieves the element at the specified index in the business object array. Inputs:
  • array--BusObj[]
  • index--int

Outputs: business object--BusObj

New Business Object Array
Creates a new business object array. Inputs: size--int

Outputs: array--BusObj[]

Set BusObj At
Sets the element at the specified index in the business object array. Inputs:
  • array--BusObj[]
  • index--int
  • business object--BusObj
Size
Retrieves the size of the business object array Inputs: array--BusObj[]

Outputs: size--int

Table 28.

General/APIs/Business Object/Constants
Name Description Inputs and outputs with acceptable values
Verb: Create
Business object verb "Create". Outputs: Create--String
Verb: Delete
Business object verb "Delete". Outputs: Delete--String
Verb: Retrieve
Business object verb "Retrieve". Outputs: Retrieve--String
Verb: Update
Business object verb "Update". Outputs: Update--String

Table 29.

General/APIs/Business Object
Name Description Inputs and outputs with acceptable values
Copy
Copies all attribute values from the input business object.

API: BusObj.copy()

Inputs:
  • copy to--BusObj
  • copy from--BusObj
Duplicate
Creates a business object exactly like the original one.

API: BusObj.duplicate()

Inputs:original--BusObj

Outputs: duplicate--BusObj

Equal Keys
Compares business object 1's and business object 2's values, to determine whether they are equal.

API: BusObj.equalKeys()

Inputs:
  • business object 1--BusObj
  • business object 2--BusObj

Outputs: key values equal?-- boolean

Equals
Compares business object 1's and business object 2's values, including child business objects, to determine whether they are equal.

API: BusObj.equals()

Inputs:
  • business object 1--BusObj
  • business object 2--BusObj

Outputs: equal?-- boolean

Exists
Checks for the existence of a business object attribute with a specified name.

API: BusObj.exists()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: exists?-- boolean

Get Boolean
Retrieves the value of a single attribute, as a boolean, from a business object.

API: BusObj.getBoolean()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value-- boolean

Get Business Object
Retrieves the value of a single attribute, as a BusObj, from a business object.

API: BusObj.getBusObj()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--BusObj

Get Business Object Array
Retrieves the value of a single attribute, as a BusObj Array, from a business object.

API: BusObj.getBusObjArray()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--BusObjArray

Get Business Object Type
Retrieves the name of the business object definition on which this business object was based.

API: BusObj.getType()

Inputs: business object--BusObj

Outputs: type--String

Get Double
Retrieves the value of a single attribute, as a double, from a business object.

API: BusObj.getDouble()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--double

Get Float
Retrieves the value of a single attribute, as a float, from a business object.

API: BusObj.getFloat()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--float

Get Int
Retrieves the value of a single attribute, as an integer, from a business object.

API: BusObj.getInt()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--int

Get Long
Retrieves the value of a single attribute, as a long, from a business object.

API: BusObj.getLong()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--long

Get Long Text
Retrieves the value of a single attribute, as a long text, from a business object.

API: BusObj.getLongText()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--String

Get Object
Retrieves the value of a single attribute, as an object, from a business object.

API: BusObj.get()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--Object

Get String
Retrieves the value of a single attribute, as a string, from a business object.

API: BusObj.getString()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: value--String

Get Verb
Retrieves this business object's verb.

API: BusObj.getVerb()

Inputs: business object--BusObj

Outputs: verb--String

Is Blank
Finds out whether the value of an attribute is set to a zero-length string.

API: BusObj.isBlank()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: blank?--boolean

Is Business Object
Tests whether the value is a business object (BusObj). Inputs: value--Object

Outputs: result--boolean

Is Key
Finds out whether a business object's attribute is defined as a key attribute.

API: BusObj.isKey()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: key?--boolean

Is Null
Finds out whether the value of a business object's attribute is null.

API: BusObj.isNull()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: null?--boolean

Is Required
Finds out whether a business object's attribute is defined as a required attribute.

API: BusObj.isRequired()

Inputs:
  • business object--BusObj
  • attribute--String

Outputs: required?--boolean

Iterate Children
Iterates through the child business object array. Inputs:
  • business object--BusObj
  • attribute--String
  • current index--int
  • current element--BusObj
Key to String
Retrieves the values of a business object's primary key attributes as a string.

API: BusObj.keysToString()

Inputs:business object--BusObj

Outputs: key string--String

New Business Object
Creates a new business object instance (BusObj) of the specified type.

API: Collaboration.BusObj()

Inputs: type--String

Outputs: business object--BusObj

Set Content
Sets the contents of this business object to another business object. The two business objects will own the content together. Changes made to one business object will be reflected in the other business object.

API: BusObj.setContent()

Inputs:
  • business object--BusObj
  • content--BusObj
Set Default Attribute Values
Sets all attributes to their default values.

API: BusObj.setDefaultAttrValues()

Inputs:business object--BusObj
Set Keys
Sets the values of the "to" business object's key attributes to the values of the key attributes in "from" business object.

API: BusObj.setKeys()

Inputs:
  • from business object--BusObj
  • to business object--BusObj
Set Value with Create
Sets the business object's attribute to a specified value of a particular data type, creating an object for the value if one does not already exist.

API: BusObj.setWithCreate()

Inputs:
  • business object--BusObj
  • attribute--String
  • value--BusObj, BusObjArray, Object
Set Verb
Sets the verb of a business object.

API: BusObj.setVerb()

Inputs:
  • business object--BusObj
  • verb--String
Set Verb with Create
Sets the verb of a child business object, creating the child business object if one does not already exist.

API: BusObj.setVerbWithCreate()

Inputs:
  • business object--BusObj
  • attribute--String
  • verb--String
Set Value
Sets a business object's attribute to a specified value of a particular data type.

API: BusObj.set()

Inputs:
  • business object--BusObj
  • attribute--String
  • value--boolean, double, float, int, long, Object, String, BusObj
Shallow Equals
Compares business object 1 and business object 2's values, excluding child business objects, to determine whether they are equal.

API: BusObj.equalsShallow()

Inputs:
  • business object 1--BusObj
  • business object 2--BusObj

Outputs: equal?--boolean

To String
Gets the values of all attributes in a business object as string.

API: BusObj.toString()

Inputs: business object--BusObj

Outputs: string--String

Valid Data
Checks whether the specified value is a valid type for a specified attribute.

API: BusObj.validData()

Inputs:
  • business object--BusObj
  • attribute--String
  • value--Object, BusObj, BusObjArray, String, long, int, double, float, boolean

Outputs: valid?--boolean

Table 30.

General/APIs/Database Connection
Name Description Inputs and outputs with acceptable values
Begin Transaction
Begins an explicit transaction for the current connection.

API: CwDBConnection.beginTransaction()

Inputs: database connection--CwDBConnection
Commit
Commits the active transaction associated with the current connection.

API: CwDBConnection.commit()

Inputs: database connection--CwDBConnection
Execute Prepared SQL
Executes a prepared SQL Query by specifying its syntax.

API: CwDBConnection.executePreparedSQL()

Inputs:
  • database connection--CwDBConnection
  • query--String

Outputs: equal?-- boolean

Execute Prepared SQL with Parameter
Executes a prepared SQL query by specifying its syntax with the specified parameters.

API:CwDBConnection.executePreparedSQL()

Inputs:
  • database connection--CwDBConnection
  • query--String
  • parameters--java.util.Vector
Execute SQL
Executes a static SQL query by specifying its syntax.

API: CwDBConnection.executeSQL()

Inputs:
  • database connection--CwDBConnection
  • query--String
Execute SQL with Parameter
Executes a static SQL query by specifying its syntax with the specified parameters.

API: CwDBConnection.executeSQL()

Inputs:
  • database connection--CwDBConnection
  • query--String
  • parameters--java.util.Vector
Execute Stored Procedure
Executes an SQL stored procedure by specifying its name and parameter array.

API: CwDBConnection.executeStored Procedure()

Inputs:
  • database connection--CwDBConnection
  • query--String
  • parameters--java.util.Vector
Get Database Connection
Establishes a connection to a database and returns a CwDBConnection() object.

API: BaseDLM.getDBConnection() or BaseCollaboration.getDBConnection()

Inputs: connection pool name--String

Outputs: database connection--CwDBConnection

Get Database Connection with Transaction
Establishes a connection to a database and returns a CwDBConnection() object.

API: BaseDLM.getDBConnection() or BaseCollaboration.getDBConnection()

Inputs:
  • connection pool name--String
  • implicit transaction--boolean

Outputs:database connection--CwDBConnection

Get Next Row
Gets the next row from the query result.

API: CwDBConnection.nextRow()

Inputs: database connection--CwDBConnection

Outputs: row--java.util.Vector

Get Update Count
Gets the number of rows affected by the last write operation to the database.

API: CwDBConnection.getUpdateCount()

Inputs: database connection--CwDBConnection

Outputs: count--int

Has More Rows
Determines whether the query result has more rows to process.

API: CwDBConnection.hasMoreRows()

Inputs: database connection--CwDBConnection

Outputs: more rows?--boolean

In Transaction
Determines whether a transaction is in progress in the current connection.

API: CwDBConnection.inTransaction()

Inputs: database connection--CwDBConnection

Outputs: in transaction?--boolean

Is Active
Determines whether the current connection is active.

API: CwDBConnection.isActive()

Inputs: database connection--CwDBConnection

Outputs: is active?--boolean

Release
Releases use of the current connection, returning it to its connection pool.

API: CwDBConnection.release()

Inputs: database connection--CwDBConnection
Roll Back
Rolls back the active transaction associated with the current connection.

API: CwDBConnection.rollback()

Inputs: database connection--CwDBConnection

Table 31.

General/APIs/Identity Relationship
Name Description Inputs and outputs with acceptable values
Add My Children
Adds the specified child instances to a parent/child relationship for an identity relationship.

API: IdentityRelationship.addMyChildren()

Inputs:
  • map--BaseDLM
  • parentChildRelDefName--String
  • parentParticipantDefName--String
  • parentBusObj--BusObj
  • childParticipantDefName--String
  • childBusObjList--BusObj,BusObjArray
Delete All My Children
Removes all child instances from a parent/child relationship for an identity relationship belonging to the specified parent.

API: IdentityRelationship.deleteMyChildren()

Inputs:
  • map--BaseDLM
  • parentChildRelDefName--String
  • parentParticipantDefName--String
  • parentBusObj--BusObj
  • childParticipantDefName--String
Delete My Children
Removes the specified child instances from a parent/child relationship for an identity relationship belonging to the specified parent.

API: IdentityRelationship.deleteMyChildren()

Inputs:
  • map--BaseDLM
  • parentChildRelDefName--String
  • parentParticipantDefName--String
  • parentBusObj--BusObj
  • childParticipantDefName--String
  • childBusObjList--BusObj,BusObjArray
Foreign Key Cross-Reference
Performs a lookup in the relationship table in the relationship database based on the foreign key of the source business object, adding a new relationship instance in the foreign relationship table if the foreign key does not exist.

API: IdentityRelationship.foreignKeyXref()

Inputs:
  • map--BaseDLM
  • RelDefName--String
  • appParticipantDefName--String
  • genParticipantDefName--String
  • appSpecificBusObj--BusObj
  • appForeignAttr--String
  • genericBusObj--BusObj
  • genForeignAttr--String
Foreign Key Lookup
Performs a lookup in a foreign relationship table based on the foreign key of the source business object, failing to find a relationship instance if the foreign key does not exist in the foreign relationship table.

API: IdentityRelationship.foreignKeyLookup()

Inputs:
  • map--BaseDLM
  • relDefName--String
  • appParticipantDefName--String
  • appSpecificBusObj--BusObj
  • appForeignAttr--String
  • genericBusObj--BusObj
  • genForeignAttr--String
Maintain Child Verb
Sets the child business object verb based on the map execution context and the verb of the parent business object.

API: IdentityRelationship.maintainChildVerb()

Inputs:
  • map--BaseDLM
  • relDefName--String
  • appSpecificParticipantName--String
  • genericParticipantName--String
  • appSpecificObj--BusObj
  • appSpecificChildObj--String
  • genericObj--BusObj
  • genericChildObj--String
  • to_Retrieve--boolean
  • Is_Composite--boolean
Maintain Composite Relationship
Maintains a composite identity relationship from within the parent map.

API: IdentityRelationship.maintain
CompositeRelationship()

Inputs:
  • map--BaseDLM
  • relDefName--String
  • participantDefName--String
  • appSpecificBusObj--BusObj
  • genericBusObjList--BusObj, BusObjArray
Maintain Simple Identity Relationship
Maintains a simple identity relationship from within either a parent or child map.

API: IdentityRelationship.maintain
Simple Identity Relationship()

Inputs:
  • map--BaseDLM
  • relDefName--String
  • participantDefName--String
  • appSpecificBusObj--BusObj
  • genericBusObj--BusObj
Update My Children
Adds and deletes child instances in a specified parent/child relationship of an identity relationship, as necessary.

API: IdentityRelationship.updateMyChildren()

Inputs:
  • map--BaseDLM
  • parentChildRelDefName--String
  • parentParticipantDef--String
  • parentBusObj--BusObj
  • childParticipantDef--String
  • childAttrName--String
  • childIdentityRelDefName--String
  • childIdentityParticipantDefName--String

Table 32.

General/APIs/Maps/Constants
Name Description Inputs and outputs with acceptable values
Calling Context: ACCESS
_REQUEST
An access client has sent an access request from an external application to InterChange Server Express.

API: MapExeContext.ACCESS_REQUEST

Outputs: ACCESS_REQUEST--String

Calling Context: ACCESS
_RESPONSE
The source business object is sent back to the source access client in response to a subscription delivery request.

API: MapExeContext.ACCESS_RESPONSE

Outputs: ACCESS_RESPONSE--String

Calling Context: EVENT
_DELIVERY
A connector has sent an event from the application to InterChange Server Express (event-triggered flow).

API: MapExeContext.EVENT_DELIVERY

Outputs: EVENT_DELIVERY--String

Calling Context: SERVICE_CALL
_FAILURE
A collaboration's service call request has failed. As such, corrective action might need to be performed.

API: MapExeContext.SERVICE_CALL_FAILURE

Outputs: SERVICE_CALL_FAILURE
--String

Calling Context: SERVICE_CALL
_REQUEST
A collaboration is sending a business object down to the application through a service call request.

API: MapExeContext.SERVICE_CALL_REQUEST

Outputs: SERVICE_CALL_REQUEST
--String

Calling Context: SERVICE_CALL
_RESPONSE
A business object was received from the application as a result of a successful response to a collaboration service call request.

API: MapExeContext.SERVICE_CALL
_RESPONSE

Outputs: SERVICE_CALL_RESPONSE
--String

Table 33.

General/APIs/Maps/Exception
Name Description Inputs and outputs with acceptable values
Raise Map Exception
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
Raise Map Exception 1
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
  • parameter 1--String
Raise Map Exception 2
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
  • parameter 1--String
  • parameter 2--String
Raise Map Exception 3
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
  • parameter 1--String
  • parameter 2--String
  • parameter 3--String
Raise Map Exception 4
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
  • parameter 1--String
  • parameter 2--String
  • parameter 3--String
  • parameter 4--String
Raise Map Exception 5
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception type--String
  • message--String
  • parameter 1--String
  • parameter 2--String
  • parameter 3--String
  • parameter 4--String
  • parameter 5--String
Raise Map RunTimeEntity
Exception
Raises a map run-time exception.

API: raiseException()

Inputs:
  • map--BaseDLM
  • exception--RunTimeEntityException

Table 34.

General/APIs/Maps
Name Description Inputs and outputs with acceptable values
Get Adapter Name
Retrieves the adapter name associated with the current map instance.

API: MapExeContext.getConnName()

Inputs: map--BaseDLM

Outputs: adapter name--String

Get Calling Context
Retrieves the calling context associated with the current map instance.

API: MapExeContext.getInitiator()

Inputs: map--BaseDLM

Outputs: calling context--String

Get Original Request Business Object
Retrieves the original-request business object associated with the current map instance.

API: MapExeContext.getOriginalRequestBO()

Inputs: map--BaseDLM

Outputs: original business object--BusObj

Table 35.

General/APIs/Participant/Array
Name Description Inputs and outputs with acceptable values
Get Participant At
Retrieves the element at the specified index in the participant array. Inputs:
  • array--Server.RelationshipServices.Participant[]
  • index--int

Outputs: participant--Server.RelationshipServices.Participant

New Participant Array
Creates a new participant array with the specified size. Inputs: size--int

Outputs: array--Server.RelationshipServices.Participant[]

Set Participant At
Sets the element at the specified index in the participant array. Inputs:
  • array--Server.RelationshipServices.Participant[]
  • index--int
  • participant--Server.RelationshipServices.Participant
Size
Retrieves the size of the participant array. Inputs: array--Server.RelationshipServices.Participant[]

Outputs: size--int

Table 36.

General/APIs/Participant/Constants
Name Description Inputs and outputs with acceptable values
Participant:
INVALID
_INSTANCE_ID
Participant constant indicating the participant ID is invalid.

API: Participant.INVALID_INSTANCE_ID

Outputs: INVALID_INSTANCE_ID--int

Table 37.

General/APIs/Participant
Name Description Inputs and outputs with acceptable values
Get Boolean Data
Retrieves the data associated with the Participant object.

API: Participant.getBoolean()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--boolean

Get Business Object Data
Retrieves the data associated with the Participant object.

API: Participant.getBusObj()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--BusObj

Get Double Data
Retrieves the data associated with the Participant object.

API: Participant.getDouble()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--double

Get Float Data
Retrieves the data associated with the Participant object.

API: Participant.getFloat()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--float

Get Instance ID
Retrieves the relationship instance ID of the relationship in which the participant instance is participating.

API: Participant.getInstanceId()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: instance ID--int

Get Int Data
Retrieves the data associated with the Participant object.

API: Participant.getInt()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--int

Get Long Data
Retrieves the data associated with the Participant object.

API: Participant.getLong()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--long

Get Participant Name
Retrieves the participant definition name from which the participant instance is created.

API: Participant.getParticipantDefinition()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: name--String

Get Relationship Name
Retrieves the name of the relationship definition in which the participant instance is participating.

API: Participant.getRelationshipDefinition()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: name--String

Get String Data
Retrieves the data associated with the Participant object.

API: Participant.getString()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: data--String

New Participant
Creates a new participant instance with no relationship instance.

API: Participant()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj, String, long, int, double, float, boolean

Output: participant--Server.RelationshipServices.Participant

New Participant in Relationship
Creates a new participant instance for adding to an existing participant in a relationship instance.

API: RelationshipServices.Participant()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
  • partData--BusObj, String, long, int, double, float, boolean

Output: participant--Server.RelationshipServices.Participant

Set Data
Sets the data associated with the participant instance.

API: Participant.set()

Inputs:
  • participant--Server.RelationshipServices.Participant
  • partData--BusObj, String, long, int, double, float, boolean
Set Instance ID
Sets the instance ID of the relationship in which the participant instance is participating.

API: Participant.setInstanceId()

Inputs:
  • participant--Server.RelationshipServices.Participant
  • id--int
Set Participant Definition
Sets the participant definition name from which the participant instance is created.

API: Participant.setParticipantDefinition()

Inputs:
  • participant--Server.RelationshipServices.Participant
  • partDefName--String
Set Relationship Definition
Sets the relationship definition in which the participant instance is participating.

API: Participant.setRelationshipDefinition()

Inputs:
  • participant--Server.RelationshipServices.Participant
  • relDefName--String

Table 38.

General/APIs/Relationship
Name Description Inputs and outputs with acceptable values
Add Participant
Adds an existing participant object to a relationship instance.

API: Relationship.addParticipant()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: result instance ID--int

Add Participant Data
Adds a new participant to an existing relationship instance.

API: Relationship.addParticipant()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
  • partData--BusObj, String, long, int, double, float, boolean

Outputs: result instance ID--int

Add Participant Data to New Relationship
Adds a participant to a new relationship instance.

API: Relationship.addParticipant()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj, String, long, int, double, float, boolean

Outputs: result instance ID--int

Create Relationship
Creates a new relationship instance.

API: Relationship.create()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj, String, long, int, double, float, boolean

Outputs: instance ID--int

Create Relationship with Participant
Creates a new relationship instance.

API: Relationship.create()

Inputs: participant--Server.RelationshipServices.Participant

Outputs: instance ID--int

Deactivate Participant
Deactivates a participant from one or more relationship instances.

API: Relationship.deactivate Participant()

Inputs: participant--Server.RelationshipServices.Participant
Deactivate Participant By Data
Deactivates a participant from one or more relationship instances.

API: Relationship.deactivate Participant()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj, String, long, int, double, float, boolean
Deactivate Participant By Instance
Deactivates a participant from a specific relationship instance.

API: Relationship.deactivate ParticipantByInstance()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
Deactivate Participant By Instance Data
Deactivates a participant from a specific relationship instance with the data associated with the participant.

API: Relationship.deactivate ParticipantByInstance()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
  • partData--BusObj, String, long, int, double, float, boolean
Delete Participant
Removes a participant instance from one or more relationship instances.

API: Relationship.deleteParticipant()

Inputs: participant--Server.RelationshipServices.Participant
Delete Participant By Instance
Removes a participant from a specific relationship instance.

API: Relationship.deleteParticipanByInstancet()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
Delete Participant By Instance Data
Removes a participant from a specific relationship instance with the data associated with the participant.

API: Relationship.deleteParticipanByInstancet()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
  • partData--BusObj, String, long, int, double, float, boolean
Delete Participant with Data
Removes a participant instance from one or more relationship instances.

API: Relationship.deleteParticipant()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj, String, long, int, double, float, boolean
Get Next Instance ID
Returns the next available relationship instance ID for a relationship, based on the relationship definition name.

API: Relationship.getNewID()

Inputs: relDefName--String

Outputs: ID--int

Retrieve Instances
Retrieves zero or more IDs of relationship instances which contain the given participant(s).

API: Relationship.retrieveInstances()

Inputs:
  • relDefName--String
  • partDefName--String,String[]
  • partData--BusObj, String, long, int, double, float, boolean

Outputs: instance IDs--int

Retrieve Instances for Participant
Retrieves zero or more IDs of relationship instances which contain a given participant.

API: Relationship.retrieveInstances()

Inputs:
  • relDefName--String
  • partData--BusObj, String, long, int, double, float, boolean

Outputs: instance IDs--int

Retrieve Participants
Retrieves zero or more participants from a relationship instance.

API: Relationship.retrieveParticipants()

Inputs:
  • relDefName--String
  • partDefName--String, String[]
  • instanceId--int

Outputs: participant instances--Server.RelationshipServices.Participant[]

Retrieve Participants with ID
Retrieves zero or more participants from a relationship instance.

API: Relationship.retrieveParticipants()

Inputs:
  • relDefName--String
  • instanceId--int

Outputs: participant instances--Server.RelationshipServices.Participant[]

Update Participant
Updates a participant in one or more relationship instances.

API: Relationship.updateParticipant()

Inputs:
  • relDefName--String
  • partDefName--String
  • partData--BusObj
Update Participant By Instance
Updates a participant in a specific relationship instance.

API: Relationship.updateParticipantByInstance()

Inputs:
  • relDefName--String
  • partDefName--String, String[]
  • instanceId--int
Update Participant By Instance Data
Updates a participant in a specific relationship instance with the data associated with the participant.

API: Relationship.updateParticipantByInstance()

Inputs:
  • relDefName--String
  • partDefName--String
  • instanceId--int
  • partData--BusObj, String

Table 39.

General/Date
Name Description Inputs and outputs with acceptable values
Add Day
Adds additional days to the from date. Inputs:
  • from date--String
  • date format--String
  • day to add--int

Outputs: to date-- String

Add Month
Adds additional months to the from date. Inputs:
  • from date--String
  • date format--String
  • month to add--int

Outputs: to date-- String

Add Year
Adds additional years to the from date. Inputs:
  • from date--String
  • date format--String
  • year to add--int

Outputs: to date-- String

Date After
Compares two dates and determines whether Date 1 is after Date 2. Inputs:
  • Date 1--String
  • Date 1 format--String
  • Date 2--String
  • Date 2 format--String

Outputs: Is Date 1 after Date 2?-- boolean

Date Before
Compares two dates and determines whether Date 1 is before Date 2. Inputs:
  • Date 1--String
  • Date 1 format--String
  • Date 2--String
  • Date 2 format--String

Outputs: Is Date 1 before Date 2?-- boolean

Date Equals
Compares two dates and determines whether they are equal. Inputs:
  • Date 1--String
  • Date 1 format--String
  • Date 2--String
  • Date 2 format--String

Outputs: Are they equal?-- boolean

Format Change
Changes a date format. Inputs:
  • date--String
  • input format--String
  • output format--String

Outputs: formatted date--String

Get Day
Returns the numeric day of month based on date expression. Inputs:
  • Date--String
  • Format--String

Outputs: Day--int

Get Month
Returns the numeric month of year based on date expression. Inputs:
  • Date--String
  • Format--String

Outputs: Month--int

Get Year
Returns the numeric year based on date expression. Inputs:
  • Date--String
  • Format--String

Outputs: Year--int

Get Year Month Day
Given an input date, extracts the Year/Month/Day parts from the input date respectively. Inputs:
  • Date--String
  • Format--String

Outputs:

  • Year--int
  • Month--int
  • Day--int
Now
Gets today's date. Inputs: format--String

Outputs: now--String

Table 40.

General/Date/Formats
Name Description Inputs and outputs with acceptable values
yyyy-MM-dd
Date format of yyyy-MM-dd

Example: 2003-02-25

Outputs: format--String
yyyyMMdd
Date format of yyyyMMdd

Example: 20030225

Outputs: format--String
yyyyMMdd HH:mm:ss
Date format of yyyyMMdd HH:mm:ss

Example: 20030225 12:36:40

Outputs: format--String

Table 41.

General/Logging and Tracing
Name Description Inputs and outputs with acceptable values
Log error
Sends the specified error message to the ICS log file. Inputs: message--String, byte, short, int, long, float, double
Log error ID
Sends the error message associated with the specified ID to the ICS log file. Inputs: ID--String, byte, short, int, long, float, double
Log information
Sends the specified information message to the ICS log file. Inputs: message--String, byte, short, int, long, float, double
Log information ID
Sends the information message associated with the specified ID to the ICS log file. Inputs: ID--String, byte, short, int, long, float, double
Log warning
Sends the specified warning message to the ICS log file Inputs: message--String, byte, short, int, long, float, double
Log warning ID
Sends the warning message associated with the specified ID to the ICS log file. Inputs: ID--String, byte, short, int, long, float, double
Trace
Sends the specified trace message to the ICS log file. Inputs: message--String, byte, short, int, long, float, double

Table 42.

General/Logging and Tracing/Log Error
Name Description Inputs and outputs with acceptable values
Log error ID 1
Formats the error message associated with the specified ID with the parameter and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter--String, byte, short, int, long, float, double
Log error ID 2
Formats the error message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
Log error ID 3
Formats the error message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
  • parameter 3--String, byte, short, int, long, float, double

Table 43.

General/Logging and Tracing/Log Information
Name Description Inputs and outputs with acceptable values
Log information ID 1
Formats the information message associated with the specified ID with the parameter and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter--String, byte, short, int, long, float, double
Log information ID 2
Formats the information message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
Log information ID 3
Formats the information message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
  • parameter 3--String, byte, short, int, long, float, double

Table 44.

General/Logging and Tracing/Log Warning
Name Description Inputs and outputs with acceptable values
Log warning ID 1
Formats the warning message associated with the specified ID with the parameter and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter--String, byte, short, int, long, float, double
Log warning ID 2
Formats the warning message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
Log warning ID 3
Formats the warning message associated with the specified ID with the parameters and sends it to the ICS log file. Inputs:
  • ID--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
  • parameter 3--String, byte, short, int, long, float, double

Table 45.

General/Logging and Tracing/Trace
Name Description Inputs and outputs with acceptable values
Trace ID 1
Formats the trace message associated with the specified ID with the parameter and displays it if tracing is set to the specified level or a higher level. Inputs:
  • ID--String, byte, short, int, long, float, double
  • level--String, byte, short, int, long, float, double
  • parameter--String, byte, short, int, long, float, double
Trace ID 2
Formats the trace message associated with the specified ID with the parameters and displays it if tracing is set to the specified level or a higher level. Inputs:
  • ID--String, byte, short, int, long, float, double
  • level--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
Trace ID 3
Formats the trace message associated with the specified ID with the parameters and displays it if tracing is set to the specified level or a higher level. Inputs:
  • ID--String, byte, short, int, long, float, double
  • level--String, byte, short, int, long, float, double
  • parameter 1--String, byte, short, int, long, float, double
  • parameter 2--String, byte, short, int, long, float, double
  • parameter 3--String, byte, short, int, long, float, double
Trace on Level
Displays the trace message if tracing is set to the specified level or a higher level. Inputs:
  • message--String, byte, short, int, long, float, double
  • level--String, byte, short, int, long, float, double

Table 46.

General/Mapping
Name Description Inputs and outputs with acceptable values
Run Map
Executes the specified map with the current calling context. Inputs:
  • Map Name--String
  • Source Business Objects--BusObj, BusObj[]

Outputs: Map Results--BusObj, BusObj[]

Run Map with Context
Executes the specified map with the calling context specified. Inputs:
  • Map Name--String
  • Source Business Objects--BusObj, BusObj[]
  • calling context--String

Outputs: Map Results--BusObj, BusObj[]

Table 47.

General/Math
Name Description Inputs and outputs with acceptable values
Absolute value
a=abs(b)

API: Math.abs()

Inputs: b--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Ceiling
Returns the next highest integer that is greater than or equal to the specified numeric expression. Inputs: number--String, float, double

Outputs: ceiling--int

Divide
a=b/c Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Equal
Is value 1 equal to value 2? Inputs:
  • value 1--String, byte, short, int, long, float, double
  • value 2--String, byte, short, int, long, float, double

Outputs: are they equal?--boolean

Floor
Returns the next lowest integer that is greater than or equal to the specified numeric expression. Inputs: number--String, float, double

Outputs: floor--int

Greater than
Is value 1 greater than value 2? Inputs:
  • value 1--byte, short, int, long, float, double
  • value 2--byte, short, int, long, float, double

Outputs: result--boolean

Greater than or Equal
Is value 1 greater than or equal to value 2? Inputs:
  • value 1--byte, short, int, long, float, double
  • value 2--byte, short, int, long, float, double

Outputs: result--boolean

Less than
result=value 1 is less than value 2? Inputs:
  • value 1--byte, short, int, long, float, double
  • value 2--byte, short, int, long, float, double

Outputs: result--boolean

Less than or equal Is value 1 less than or equal to value 2? Inputs:
  • value 1--byte, short, int, long, float, double
  • value 2--byte, short, int, long, float, double

Outputs: result--boolean

Maximum
a=max(b, c)

API: Math.max()

Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Minimum
a=min(b, c)

API: Math.min()

Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Minus
a=b-c Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Multiply
a=b*c Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Not Equal
result=is value 1 not equal to value 2? Inputs:
  • value 1--String, byte, short, int, long, float, double
  • value 2--String, byte, short, int, long, float, double

Outputs: are they not equal?--boolean

Not a Number
Returns true if input is not a number. Inputs: input--String

Outputs: is not a number--boolean

Number to String
Converts a numeric expression to a character expression. Inputs: number--String, short, int, long, float, double

Outputs: string--String

Plus
a=b+c Inputs:
  • b--byte, short, int, long, float, double
  • c--byte, short, int, long, float, double

Outputs: a--byte, short, int, long, float, double

Round
Rounds a numeric expression down to the next lowest integer if <5; otherwise, the integer is rounded up. Inputs: number--String, float, double

Outputs: rounded number--int

String to Number
Converts a character expression to a numeric expression.

API: Math.type()

Inputs: string--String

Outputs: String, short, int, long, float, double

Table 48.

General/Properties
Name Description Inputs and outputs with acceptable values
Get Property
Retrieves the specified configuration property value. Inputs: property name--String

Outputs: property value--String

Table 49.

General/Relationship
Name Description Inputs and outputs with acceptable values
Maintain Identity Relationship
Maintains an identity relationship with the maintainSimpleIdentityRelationship() Relationship API. Inputs:
  • relationship name--String
  • participant name--String
  • Generic Business Object--String
  • Application-Specific Business Object--String
  • calling context--String
Static Lookup
Looks up a static value in the relationship. Inputs:
  • relationship name--String
  • participant name--String
  • inbound?--boolean
  • source value--String

Outputs: lookup value--String

Table 50.

General/String
Name Description Inputs and outputs with acceptable values
Append Text
Appends the "in string2" to the end of the string "in string 1." Inputs:
  • in string 1--String
  • in string 2--String

Outputs: result--String

If
Returns the first value if condition is true and the second value if condition is false. Inputs:
  • condition--boolean, Boolean
  • value 1--String
  • value 2--String

Outputs: result--String

Is Empty
Returns the second value if the first value is empty. Inputs:
  • value 1--String
  • value 2--String

Outputs: result--String

Is NULL
Returns the second value if the first value is null. Inputs:
  • value 1--String
  • value 2--String

Outputs: result--String

Left Fill
Returns a string of the specified length; fills the left with indicated value. Inputs:
  • string--String
  • fill string--String
  • length--int

Outputs: filled string--String

Left String
Returns the left portion of string for the specified number of positions. Inputs:
  • string--String
  • length--int

Outputs: left string--String

Lower Case
Changes all characters to Lower Case letters Inputs: fromString--String

Outputs: toString--String

Object To String
Gets a string representation of the object. Inputs: object--Object

Outputs: string--String

Repeat
Returns a character string that contains a specified character expression repeated a specified number of times. Inputs:
  • repeating string--String
  • repeat count--int

Outputs: result--String

Replace
Replaces part of a string with indicated value data. Inputs:
  • input--String
  • old string--String
  • new string--String

Outputs: replaced string--String

Right Fill
Returns a string of the specified length; fills the right with indicated value. Inputs:
  • string--String
  • fill string--String
  • length--int

Outputs: filled string--String

Right String
Returns the right portion of string for the specified number of positions. Inputs:
  • string--String
  • length--int

Outputs: right string--String

Substring by position
Returns a portion of the string based on start and end parameters. Inputs:
  • string--String
  • start position--int
  • end position--int

Outputs: substring--String

Substring by value
Returns a portion of the string based on start and end parameters. The substring will not include the start and end value. Inputs:
  • string--String
  • start value--int
  • end value--int

Outputs: substring--String

Text Equal
Compares the strings "inString1" and "inString2" and determine whether they are the same. Inputs:
  • inString1--String
  • inString2--String

Outputs: are they equal?--boolean

Text Equal Ignore Case
Compares the strings "inString1" and "inString2" lexicographically, ignoring case considerations. Inputs:
  • inString1--String
  • inString2--String

Outputs: are they equal?--boolean

Text Length
Finds the total number of characters in a string Inputs: str--String

Outputs: length---byte, short, int, long, float, double

Trim Left
Trims the specified number of characters from the left side of the string. Inputs:
  • input--String
  • trim length--int

Outputs: result--String

Trim Right
Trims the specified number of characters from the right side of the string. Inputs:
  • input--String
  • trim length--int

Outputs: result--String

Trim Text
Trims white spaces before and after the string Inputs: in string--String

Outputs: trimmed string--String

Upper Case
Changes all characters into Upper Case letters Inputs: fromString--String

Outputs: toString--String

Table 51.

General/Utilities
Name Description Inputs and outputs with acceptable values
Catch Error
Catches all the Exceptions thrown in the current activity and its subactivities. (Double-click the function block icon in the canvas to define the subactivity.) Inputs:
  • Error Name--String
  • Error Message--String
Catch Error Type
Catches the specified Exception type thrown in the current activity and its subactivities. (Double-click the function block icon in the canvas to define the subactivity.) Inputs:
  • error type--String
  • Error Message--String
Condition
If "Condition" is true, executes the subactivity defined in"True Action"; otherwise, executes the subactivity defined in "False Action." (Double-click the function block icon in the canvas to define the subactivity.) Inputs: Condition--boolean
Loop
Repeats the subactivity until "Condition" is false. (Double-click the function block icon in the canvas to define the subactivity.) Inputs: Condition--boolean
Move Attribute in Child
Moves the value from "from attribute" to "to attribute". Inputs:
  • source parent--BusObj
  • source child BO attribute--string
  • from attribute--String
  • destination parent--BusObj
  • destination child BO attribute--String
  • to attribute--String
Raise Error
Throws a new Java Exception with the given message. Inputs: message--String
Raise Error Type
Throws the specified Java Exception with the given message. Inputs:
  • error type--String
  • message--String

Table 52.

General/Utilities/Vector
Name Description Inputs and outputs with acceptable values
Add Element
Adds the specified element to the end of the vector, increasing its size by one. Inputs: vector--java.util.Vector

Outputs: element--Object

Get Element
Gets the element at the specified index in the Vector object. Inputs:
  • vector--java.util.Vector
  • index--int

Outputs: element--Object

Iterate Vector
Iterates through the vector object. Inputs:
  • vector--java.util.Vector
  • current index--int
  • current element--Object
New Vector
Creates a new vector object. Outputs: vector--java.util.Vector
Size
Gets the number of elements in this vector. Inputs: vector--java.util.Vector

Outputs: size--int

To Array
Gets the array representation containing all of the elements in this vector. Inputs: vector--java.util.Vector

Outputs: array--Object[]

Example 1 of using the Activity Editor

The following example illustrates the steps for using the Activity Editor to change the source attribute's value to all uppercase and assign the change to the destination attribute.

Perform the following steps:

  1. From the Diagram tab, drag the source attribute onto the destination attribute to create a Custom transformation rule. Then click the icon of the Custom transformation rule to open the Activity Editor.

    Example: Figure 47 shows the Custom transformation we are using in this example. The source attribute is ObjClarify_contact.LastName, and the destination attribute is ObjContact.LastName.

    Figure 47. Custom transformation rule

    Result: The Activity Editor opens.

    For more information on creating Custom and other transformations, see "Creating maps"..

  2. Select a category in the Library window (top left) to show the available function blocks in that category in the Content window (bottom left).

    Figure 48 shows the available functions blocks for the "String" category; the source and destination attributes in our example are displayed as icons in the graphical canvas.

    Figure 48. Function blocks in String category and icons for source and destination attributes

  3. To use any of the function blocks in the activity, drag the function block from the tree in the Library window and drop it onto the activity canvas; or alternatively, drag the icon from the Content window and drop it onto the activity canvas.

    Example: In our example, we want to change the source attribute to all uppercase letters, so we will drag-and-drop the Upper Case function block in the String category from the Content window onto the activity canvas, as shown in Figure 49..

    Figure 49. Dragging the Upper Case function block

  4. After you drop a function block on the activity canvas, you can move it around the canvas by selecting the function block icon and dragging and dropping it at the desired position. When the function block is in place, you are ready to connect the inputs and outputs of the function block to define the flow of execution.

    Example: In our example, we want to convert the attribute value of ObjClarify_Contact.LastName to all uppercase letters. We can do this by connecting the output of the icon for ObjClarify_Contact.LastName to the input of the Upper Case function block. To do this, move the mouse cursor to the output of the icon of port ObjClarify_Contact.LastName.

    Result: The shape of the icon will change to an arrow to indicate that you can initiate a link at that point, as shown in Figure 50.

    Figure 50. Cursor as arrow at output port of ObjClarify_Contact.LastName

  5. When the mouse icon is changed to an arrow, hold down the mouse button and move the mouse to the input of the Upper Case function block, and release the mouse button. A connection link will be drawn to connect the input and outputs.

    To indicate that the result of the Upper Case function block should be assigned to the destination attribute (in our example, ObjContact.LastName), repeat the same steps to drag-and-drop from the output of the Upper Case function block to the input of the ObjContact.LastName port icon. Figure 51 shows the connection links.

    Figure 51. Upper Case function block with connection links

    Result: We have defined an activity which will take the value of the source attribute, uppercase it, and set the uppercased value to the destination attribute.

  6. Save the activity by selecting To Project or To File from the File-->Save submenu or by clicking the Save Map to Project or Save Map to File button in the Standard toolbar.
  7. To see an example of the Java code that will be generated by this activity, click the Java tab.

    Result: The Java tab will be activated with the sample Java code, as shown in Figure 52.

    Figure 52. Java tab with code

Example 2 of using the Activity Editor

The following example illustrates the steps for using the Activity Editor to change the source value's date format to a different format and assign it to the destination attribute.

Perform the following steps:

  1. From the Diagram tab, drag the source attribute onto the destination attribute to create a Custom transformation rule. Then click the icon of the Custom transformation rule to open the Activity Editor.

    Example: Figure 53 shows the Custom transformation we are using in this example. The source attribute is ObjClarify_QuoteSchedule.PriceProgExpireDate, and the destination attribute is ObjARInvoice.GLPostingDate.

    Figure 53. Custom transformation rule

    Result: The Activity Editor opens.

    For more information on creating Custom and other transformations, see "Creating maps"..

  2. Select a category in the Library window (top left) to show the available function blocks in that category in the Content window (bottom left).

    Figure 54 shows the available functions blocks for the "Date" category; the source and destination attributes in our example are displayed as icons in the graphical canvas.

    Figure 54. Function blocks in Date category and icons for source and destination attributes

  3. To use any of the function blocks in the activity, drag the function block from the tree in the Library window and drop it onto the activity canvas; or alternatively, drag the icon from the Content window and drop it onto the activity canvas.

    Example: In our example, we want to change the date format of the source attribute from "yyyyMMdd" to "yyyy.MM.dd G 'at' HH:mm:ss z" and assign it to the destination attribute; so we will drag-and-drop the Format Change function block in the Date category from the Content window onto the activity canvas, as shown in Figure 55..

    Note:
    A date formatted with "yyyyMMdd" looks like this: "20030227"; a date formatted with "yyyy.MM.dd G 'at' HH:mm:ss z" looks like this "2003.02.27 AD at 00:00:00 PDT".


    Figure 55. Dragging the Date Format Change function block

  4. After you drop a function block onto the activity canvas, you can move it around the canvas by selecting the function block icon and dragging and dropping it at the desired position. When the function block is in place, you are ready to connect the inputs and outputs of the function block to define the flow of execution.

    Example: In our example, we want to change the date format of the source attribute ObjClarify_QuoteSchedule.PriceProgExpireDate. We will do this by connecting the output of the port icon for ObjClarify_QuoteSchedule.PriceProgExpireDate to the date input of the Format Change function block. To do this, move the mouse cursor to the output of the icon of port ObjClarify_QuoteSchedule.PriceProgExpireDate.

    Result: The shape of the icon will change to an arrow to indicate that you can initiate a link at that point, as shown in Figure 56..

    Figure 56. Cursor as arrow at output port of ObjClarify_QuoteSchedule.PriceProgExpireDate

  5. When the mouse icon is changed to an arrow, hold down the mouse button and move the mouse to the date input of the Format Change function block, and release the mouse button. A connection link will be drawn to connect the input and outputs.

    To indicate that the result of the Format Change function block should be assigned to the destination attribute ObjARInvoice.GLPostingDate, repeat the same steps to drag-and-drop from the output of the Format Change function block to the input of the ObjARInvoice.GLPostingDate port icon. Figure 57 shows the connection links.

    Figure 57. Date Format Change function block with connection links

    Result: Now we have instructed the Format Change function block to take the input from the attribute ObjClarify_QuoteSchedule.PriceProgExpireDate, change its date format, and assign the result to the attribute ObjARInvoice.GLPostingDate. However, we still need to let the Format Change function block know what the original date format is and what resulting format we want.

  6. Example: In our example, if the source attribute ObjClarify_QuoteSchedule.PriceProgExpireDate is in the date format of yyyMMDD (that is, 20030227), we can use the predefined Date Format function block yyyyMMdd. Drag-and-drop the yyyyMMdd function block onto the activity canvas and connect the format output of the yyyyMMdd function block to the input format of the Format Change function block.

    Result: This will specify that the input format of the date is in yyyyMMdd format, as shown in Figure 58..

    Figure 58. Input Date Format

  7. The Activity Editor provides three predefined Date formats: yyyyMMDD HH:mm:ss, yyyyMMDD, and yyyy-MM-dd. If the desired date format is not one of the three predefined formats, you can specify the date format you want by using a Constant. A Constant is a graphical component in which you enter text directly and use the text as input to function blocks or ports.

    Example: In our example, we want the Format Change function block to change the date format to yyyy.MM.dd G 'at' Hh"mm"ss z. This is not one of the predefined formats, so we will create a New Constant component in the activity canvas by dragging and dropping the New Constant icon (located under the System category) from the Content window to the activity canvas. Figure 59 shows the result of this action.

    Figure 59. New Constant icon dropped on the activity canvas

  8. To specify a constant with the value yyyy.MM.dd G 'at' Hh"mm"ss z, click the editable area of the Constant component in the activity canvas and enter the text yyyy.MM.dd G 'at' Hh"mm"ss z. By default, any Constant component will have the type String (shown in the Properties window when the Constant component is selected). However, you can change the type of the Constant by selecting the Constant and using the combo box in the Properties window. Figure 60 shows the New Constant icon with the text value entered.

    Figure 60. New Constant with text entered

  9. To continue to specify that we want the output format of the Format Change function block as yyyy.MM.dd G 'at' Hh"mm"ss z, we define a connection link between the Constant component and the output format of the Format Change function block.

    Result: We have completed the activity definition that will change the date format of the source attribute to a new date format and assign it to the destination attribute.

  10. To add a comment or description to remind us later what this activity does, we can add a Description component to the activity and enter a description.

    Tip: Use the Context menu in the graphical canvas and select Add Description, or drag the New Description icon under the System folder in the Content window and drop it onto the activity canvas. Figure 61 shows how to add the Description component using the Context menu.

    Figure 61. Adding a Description using the Context menu

    Result: The Description component will be created in the graphical canvas.

  11. Enter the description in the Description component by clicking on the editable area of the component and typing directly into the component. You can resize the Description by clicking and moving the lower right-hand corner of the Description component. Figure 62 shows adding the Description.

    Figure 62. Adding the Description

  12. Save the activity by selecting To Project or To File from the File-->Save submenu or by clicking the Save Map to Project or Save Map to File button in the Standard toolbar. Figure 63 shows saving the activity.

    Figure 63. Saving the activity

Example 3 of using the Activity Editor

The following example illustrates using the Static Lookup relationship function block in the Activity Editor.

In WebSphere InterChange Server Express, a static lookup relationship normally consists of two or more relationship tables. For example, consider a system that consists of three end-applications, as shown in Figure 64.

Figure 64. Static Lookup relationship with three end-applications

Each of these three applications has a different representation for "State" information, as shown in Table 53.

Table 53. Application-specific representation of state information


SAP application PeopleSoft application Clarify application
California CA 01 State1
Washington WA 02 State2
Hawaii HI 03 State3
Delaware DE 04 State4

When state information is sent to the WebSphere business integration system from the SAP application, SAP specified-state code is sent to ICS Express. But when ICS Express needs to pass this information to other applications, the state information has to be converted to the format that the target application understands. In order to do this, the system needs a generic representation of the "State" information. With the generic representation, the system can process business logics in a generic, unified manner; and the generic representation will be converted to the application-specific format only when needed.

Thus, in the preceding example, we would create a static lookup relationship for doing this "State" conversion, with the application-specific data as WebSphere business integration-managed participants. With this setup, a generic ID is used to represent the state information in the WebSphere business integration system. Table 54 shows this representation.

Table 54. Generic representation of state information


Generic ID SAP application PeopleSoft application Clarify application
California 1 CA 01 State1
Washington 2 WA 02 State2
Hawaii 3 HI 03 State3
Delaware 4 DE 04 State4

Application-specific data is converted to the generic ID as it enters the ICS Express system, and the generic ID is converted to application-specific data as it exits the system.This data conversion is shown in Figure 65.

Figure 65. Data conversion from application-specific to generic to application-specific

The ID conversion is usually done in maps that convert application-specific business objects to generic business objects, or vice versa. For example in the SAP-to-Generic map, we would do a static lookup for the data "CA" and convert it to the generic representation that ICS Express understands, "1". And in the Generic-to-Clarify map, we would instead do a static lookup for the generic data "1" and convert it to "State1". In either map, only one static lookup is required.

Figure 66 shows how to use the Static Lookup function block to convert the SAP-specified state data to the ICS Express generic state data for processing in ICS Express.

Figure 66. Using static lookup function block to convert SAP-specific state data to ICS Express-generic state data

Similarly, the Static Lookup function block is used to convert the ICS Express-generic state data to Clarify-specific state data in the Generic-to-Clarify map. This is shown in Figure 67.

Figure 67. Using static lookup function block to convert ICS Express-generic state data to Clarify-specific state data

Normally, in a static lookup relationship, we convert application-specific data to generic data, or generic data to application-specific data. In these scenarios, only one Static Lookup function block is used. But in the special cases where you want to directly lookup a name-value pair, then two Static Lookup function blocks are required.

For more information on defining and using static relationships, see Creating relationship definitions.

Working in Java view

If Map Designer Express opens the Activity Editor with an activity definition that contains only custom Java code, the Activity Editor displays the activity definition in Java view. Similar to Graphical view, the Activity Editor is available in Java view in two display modes: Design mode and Quick view mode.


Figure 69. Java view in Quick view mode

Tip: To change from Quick view mode to Design mode, click the >> button on the status bar. If you do not see the >> button, resize the Quick view window horizontally until the button appears.

Copyright IBM Corp. 2003