Working with activity definitions

Activity Editor is used to define and modify activity definitions for transformation rules. This is done on the editing canvas using the canvas components: function blocks, connection links, tags, and New Constant icon.

Using function blocks

An activity definition is built with function blocks, which represent discrete parts of the activity definition, such as a constant, a variable or a programming method. Many of the function blocks in Activity Editor correspond to individual methods in the Mapping API.

You place function blocks on the editing canvas by dragging and dropping them from either the Library or Content window. Once you drop a function block on the editing canvas, you can move it around, by clicking it to select it and dragging it to the desired location.

Function blocks can have inputs, outputs, or both. The inputs and outputs for each function block are predefined and accept only the specified value type. When you drop the function block on the editing canvas, its input and output ports are represented by arrows. These ports serve as connecting points for linking between the function block and other components. By default, the name of each input and output is displayed next to its connection port (you can use the View > Preferences option to hide the names).

For a description of supported function blocks in the Map Designer Express and Relationship Designer Express contexts, seeIdentifying supported function blocks.

Note:
In addition to the standard function blocks that Activity Editor provides, you can export Web services from System Manager into Activity Editor. The export process converts each method in the Web service to a function block, which you can then use in activity definitions the same way as other function blocks. For more information, see Exporting Web services into Activity Editor .

You can also import your own Java library for use as function blocks in Activity Editor. Importing custom Jar libraries into activity settings will enable any public methods in the Jar library to be used as function blocks in Activity Editor. For more information, see Importing Java packages and other custom code .

Tip: Using function blocks directly in Map Designer Express

If you only want to use one standard function block in a custom transformation, you can configure the function block in the Preferences dialog for direct use in Map Designer Express. Then after selecting the source and destination attributes for the Custom transformation, you can select the configured function block in the transformation rule combo box under Custom in Map Designer Express.

Steps for using function blocks directly in Map Designer Express

Perform the following steps to set up direct use of function blocks in Map Designer Express:

  1. Start Map Designer Express. For information on starting Map Designer Express, see Starting Map Designer Express
  2. From the View menu, select Preferences, or use the keyboard shortcut of Ctrl+U.

    Result: The Preferences dialog opens.

  3. In the Preferences dialog, select the Custom Mapping tab.
  4. From the list of standard function blocks, select the function blocks to be used directly in Map Designer Express.

    Figure 55 shows the Custom Mapping tab with the selected function blocks.

    Figure 55. Preferences screen with Custom Mapping tab showing
  5. Click OK.

Result: The configured function blocks will be available for direct use in the transformation rule combo box under Custom in Map Designer Express.

Using connection links

Function blocks are connected by connection links. The connection links define the flow of activity between the various components in the activity definition. They connect the output port of one function block to the input port of another function block.

Note:
Outgoing ports can connect to multiple connection links, but incoming ports can only connect to one connection link.

Tip: When you drag-and-drop to connect function blocks together, Activity Editor uses the option set in the Validation tab of the Preferences dialog to determine if it needs to validate and check whether the "from" parameter type is the same as the "to" parameter type.

Example: To specify that the output of function block A should go to the input of function block B, perform the following steps:

  1. Click and hold down the left mouse button on the outgoing port of function block A.
  2. While continuing to hold down the left mouse button, move the cursor onto the incoming port of function block B.
  3. Release the left mouse button.

Result: The connection link is placed between function block A's out-port and function block B's in-port. Graphically, the connection link will appear as a right-angled line between components. If function block B's in-port is already connected with another connection link, the newer connection link will replace the existing connection link.

Using label, description, comment, and to-do tags

The System folder (located in the Library and Content windows) contains function blocks for adding label, description, comment, and to-do tags to the activity definitions. These tags help identify each activity or subactivity, or serve as a reminder of something that needs to be done. You drag and drop these function blocks onto the editing canvas as you would any other function block. However, there are no input and output ports.

To edit a new tag, single click in the center of the tag. The cursor changes to an I-beam, and you can enter your text. The tags automatically wrap lines of text that are too long. If you want to start a new line, press enter.

To resize a tag, left-click the lower right-hand corner of the tag and hold down the left mouse button while dragging the tag to the desired size.

Figure 56 shows resizing a label tag and entering multiple lines of text.

Figure 56. Resizing a label and entering multiple lines of text

Restriction: Each of these editing components has a minimize size, so the components cannot be resized to be smaller than a certain size.

To move the tag around the canvas, click the edge of the component and drag-and-drop it.

Using the New Constant function block

Activity Editor has a New Constant function block that you can drag and drop onto the editing canvas to define a constant value that you set and use as input to other function blocks. The New Constant function block is located in the System folder in the Library window and Content window. Activity Editor displays a text edit box on top of the function block icon for you to enter the value of the Constant. To revise this value, double-click the Constant icon and enter the new value. Constants contain one outgoing port.

Note:
The Constant is the only activity definition component that accepts only a single line for the value. This is because the constant is translated to a Java code String, and the system cannot translate a multi-line constant value. If multi-line input is required, use the "\n" value to separate between lines in the Constant.

Example: The value "line1\nline2" will tell the system to output the text in two lines.

Steps for defining activity group blocks

Once you have defined an activity flow with a set of function blocks on the editing canvas, you can select and save it as a named activity group for later reuse in another activity definition. The saved activity group is represented by an icon. 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 the activity components you want to group together on the editing canvas. To select multiple components, hold down the Ctrl key and click each component.
  2. Right-click the editing canvas to open the Context menu. Then select Add to My Collection. Alternatively, right-click the component and select Add to My Collection.

    Result: The Add to My Collection dialog box is displayed.

  3. In the Add to My Collection dialog, type a name and a description for the activity group block; and select an icon to represent this group. Then click OK.

    Result: The activity group block is added to the My Collection folder in the Library and Content windows. You can drag and drop the icon onto the editing canvas for any activity definition.

    Note:
    Any input or output parameters that are not connected when the user group is saved will appear as the input/output of this activity group.

Example: Figure 57 shows an activity in which the graphical components enclosed in the box are saved as an activity group.

This figure shows three graphical components that are saved as one activity.

Figure 57. Graphical components that are saved as a single activity

When this activity group is reused, it has an icon representation, as shown in Figure 58.

Figure 58. Reused activity group represented as an icon

Tip: Double-clicking on this group icon will show the group definition in detail.

Identifying supported function blocks

The supported function blocks, in the Map Designer Express context, are organized into the categories shown in the following table. These categories correspond to folders in the Library window and the Content window.

Table 31. Organization of function blocks
Function block folder Description For more information
General/APIs/Business Object Function blocks for working with business objects. Table 32
General/APIs/Business Object/Array Function blocks for working with Java arrays in the BusObj class. Table 33
General/APIs/Business Object/Constants Function blocks for working with Java constants in the BusObj class. Table 34
General/APIs/Business Object Array Function blocks for working with business object arrays. Table 35
General/APIs/Database Connection Function blocks for creating and maintaining a database connection. Table 36
General/APIs/Identity Relationship Function blocks for working with identity relationships. Table 37
General/APIs/Maps Function blocks for querying and setting run-time values needed for map execution. Table 38
General/APIs\Maps/
Constants
Function block constants. Table 39
General/APIs/Maps/
Exception
Function blocks for creating new exception objects in a map. Table 40
General/APIs/Participant Function blocks for setting and retrieving values for participants in identity relationships. Table 41
General/APIs/Participant/
Array
Function blocks for creating and working with participant arrays. Table 42
General/APIs/Participant/ Constants Function block constants for use with participants. Table 43
General/APIs/Relationship Function blocks for manipulating run-time instances of relationships. Table 44
General/Date Function blocks for working with dates. Table 45
General/Date/Formats Function blocks for specifying different date formats. Table 46
General/Logging and Tracing Function blocks for handling log and trace messages. Table 47
General/Logging and Tracing/Log Error Function blocks for formatting error messages. Table 48
General/Logging and Tracing/Log Information Function blocks for formatting informational messages. Table 49
General/Logging and Tracing/Log Warning Function blocks for formatting warning messages. Table 50
General/Logging and Tracing/Trace Function blocks for formatting trace messages. Table 51
General/Mapping Function blocks for executing maps within a specified context. Table 52
General/Math Function blocks for basic mathematical tasks. Table 53
General/Properties Function blocks for retrieving configuration property values. Table 54
General/Relationship Function blocks for maintaining and querying identity relationships. Table 55
General/String Function blocks for manipulating String objects. Table 56
General/Utilities Function blocks for throwing and catching exceptions, as well as looping, moving attributes, and setting conditions. Table 57
General\Utilities/Vector Function blocks for working with Vector objects. Table 58

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

Table 32. 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.The attribute can be specified as either the attribute name or the attribute position.

API: BusObj.get()

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

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 33. 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 34. 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 35. 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 36. 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 37. 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 38. 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 39. 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 40. 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 41. 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 42. 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 43. 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 44. 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

Table 45. 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 46. 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 47. General/Logging and Tracing
Name Description Inputs and outputs with acceptable values
Log error Sends the specified error message to the InterChange Server Express 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 InterChange Server Express log file. Inputs: ID--String, byte, short, int, long, float, double
Log information Sends the specified information message to the InterChange Server Express 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 InterChange Server Express log file. Inputs: ID--String, byte, short, int, long, float, double
Log warning Sends the specified warning message to the InterChange Server Express 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 InterChange Server Express log file. Inputs: ID--String, byte, short, int, long, float, double
Trace Sends the specified trace message to the InterChange Server Express log file. Inputs: message--String, byte, short, int, long, float, double

Table 48. 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 InterChange Server Express 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 InterChange Server Express 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 InterChange Server Express 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 49. 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 InterChange Server Express 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 InterChange Server Express 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 InterChange Server Express 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 50. 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 InterChange Server Express 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 InterChange Server Express 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 InterChange Server Express 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 51. 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 52. 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 53. 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 54. 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 55. 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 56. 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 57. 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 58. 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: Steps for changing a value to uppercase

The following example illustrates the steps for using 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 Activity Editor.

    Result: Activity Editor opens.

    Example: Figure 59 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 59. Custom transformation rule

    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 function blocks available in that category, as icons, in the Content window (bottom left).

    Figure 60 shows the available function blocks for the "String" category; the source and destination attributes in this example are displayed as icons in the editing canvas.

    Figure 60. 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 editing canvas; or alternatively, drag the icon from the Content window and drop it onto the editing 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 editing canvas. This action is shown in Figure 61.

    Figure 61. Dragging the Upper Case function block
  4. After you drop a function block on the editing 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 62.

    Figure 62. 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 63 shows the connection links.

    Figure 63. 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 64.

    Figure 64. Java tab with code

Example 2: Steps for changing a date format

The following example illustrates the steps for using 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 Activity Editor.

    Result: Activity Editor opens.

    Example: Figure 65 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 65. Custom transformation rule

    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 available in that category, as icons, in the Content window (bottom left).

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

    Figure 66. 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 editing canvas; or alternatively, drag the icon from the Content window and drop it onto the activity canvas.

    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 editing canvas, as shown in Figure 67.

    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".

    This figure shows the FormatChange function block highlighted in the bottom left section.

    Figure 67. 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: 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 68.

    Figure 68. 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 69 shows the connection links.

    This figure shows the editing canvas with connection links between the  source attribute, Format Change function block and destination attribute.

    Figure 69. 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. 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 70.

    Figure 70. Input Date Format
  7. 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.

    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 editing canvas. Figure 71 shows the result of this action.

    Figure 71. 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 72 shows the New Constant icon with the text value entered.
    Figure 72. 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 editing canvas and select Add Description, or drag the New Description icon under the System folder in the Content window and drop it onto the editing canvas.

    Figure 73 shows how to add the Description component using the Context menu.
    Figure 73. Adding a Description using the Context menu

    Result: The Description component will be created in the editing 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 74 shows adding the Description.
    Figure 74. 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 75 shows saving the activity.
    Figure 75. Saving the activity

Example 3: Using Static Lookup for conversion

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

In 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 76.

This figure shows this relationship with a SAP Application on the left side, InterChange Server in the middle connected to a PeopleSoft and Clarify Applications.

Figure 76. Static Lookup relationship with three end-applications

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

Table 59. 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 Server Express system from the SAP application, SAP specified-state code is sent to InterChange Server Express. But when InterChange Server 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 Server Express-managed participants. With this setup, a generic ID is used to represent the state information in the WebSphere Business Integration Server Express system. Table 60 shows this representation.

Table 60. 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 InterChange Server Express system, and the generic ID is converted to application-specific data as it exits the system.This data conversion is shown in Figure 77.

This figure shows the process of SAP-specific state format to a generic InterChange Sever data format to PeopleSoft and Clarify specific state format.

Figure 77. 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 InterChange Server 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 78 shows how to use the Static Lookup function block to convert the SAP-specified state data to the InterChange Server Express generic state data for processing in InterChange Server Express.

Figure 78. Using static lookup function block to convert SAP-specific state data to InterChange Server Express-generic state data

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

This figure shows the flow of InterChange Server-generic state data to Clarify-specific state data.

Figure 79. Using static lookup function block to convert InterChange Server 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.

Copyright IBM Corp. 2004, 2005