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:
- Start Map Designer Express. For information
on starting Map Designer Express, see Starting Map Designer Express
- From the View menu, select Preferences, or use the keyboard
shortcut of Ctrl+U.
Result: The Preferences dialog opens.
- In the Preferences dialog, select the Custom Mapping tab.
- 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
- 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.
- By default, this preference is set to "Warning," meaning that
when you create a link between two parameters that are of different
types, Activity Editor will show a message warning you that this
may lead to a compile error.
- Setting the option to "Ignore" tells Activity Editor not to
do any validation.
- Setting the option to "Error" tells Activity Editor not to allow
you to create links between different types.
Example: To specify that the output of
function block A should go to the input of function block B, perform
the following steps:
- Click and hold down the left mouse button on the outgoing port
of function block A.
- While continuing to hold down the left mouse button, move the
cursor onto the incoming port of function block B.
- 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:
- 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.
- 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.
- 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.
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:
- 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.
- 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
- 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
- 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
- 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.
- 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.
- 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:
- 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.
- 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
- 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".
Figure 67. Dragging the Date Format Change function block
- 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
- 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.
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.
- 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
- 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
- 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
- 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.
- 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.
- 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
- 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.
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.
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.
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.
