The Production Instruction Meta Object framework provides an abstract mechanism for performing certain kinds of object manipulation inside the connector. In the adapter for TCP/IP, this mechanism is used to provide pre- and post-processing of message data. The mechanism itself is discussed in more detail in Appendix C, Adapter Processing, but the main meta objects used by the framework are presented here for completeness.
Processing in the PIMO is based on a series of transformations ordered by a set of mapping meta objects. At the top of the map hierarchy is the BIA_MO_Tcpip_MapSubscriptions object.
Figure 10. BIA_MO_Tcpip_MapSubscriptions in the Business Object Designer
The pertinent attributes of the object are as follows:
MO Level Attributes | Description |
---|---|
Inbound | Indicates the set of maps used by PIMO in event mode processing. In the example, two maps will be used. |
+BIA_InputMessage_CheckComplete | Child attribute. Contains a mapping meta object (BIA_Map_InputMessage_to_InputMessage) used to separate multiple objects. Assumes that the SupportMultipleMessages value in the BIA_MO_DataHandlerService object is set to true. |
+BIA_InputMessage | Child attribute. Contains a mapping meta object
(BIA_Map_InputMessage
_to_LLPMessageList) used to remove LLP headers and tailers from the main HL7 data. See below for further details. |
Outbound | Indicates the set of maps used by PIMO in service call request mode processing. In the example, one map will be used. |
+BIA_ApplicationMessage | Child attribute. Contains a mapping meta object
(BIA_Map_ApplicationMessage
_to_InputMessage) |
The BIA_Map_InputMessage_to_LLPMessageList map object contains the instructions PIMO needs to carry out the second stage of the inbound mapping process indicated in the example map subscription meta object above.
Figure 11. BIA_Map_InputMessage_to_LLPMessageList in the Business Object Designer
The pertinent attributes of the object are as follows:
Map BO Level Attributes | Description |
---|---|
Port | Each PIMO map object has two ports: the IPort and the OPort,
defined in the example by the BIA_InputMessage_to
_LLPMessageList_Port. These indicate the expected type of the source object (in the example, a BIA_InputMessage) and the destination object (in the example, a BIA_LLPMessageList). |
Declaration | A PIMO map object may include declaration objects containing names for
temporary variables to be used during processing. In the example the
declaration object (a BIA_Map_InputMessage_to
_LLPMessageList_Declaration) contains one such name, "contentText" |
Action | Each PIMO map object has at least one action object (here a
BIA_Map_InputMessage_to
_LLPMessageList) that stores information pointing to the actual class and method that does the processing |
The ASI values for each action defined by action objects
contained by PIMO map objects are as follows:
Application Specific Information for each Defined Action | Description |
---|---|
type ="nativeStatic" | Indicates a static method of a Java class that is being invoked.
At present PIMO supports only static methods.
|
class = | The fully qualified name of the Java class. In the case of the example, the class is the LLPMessagingProtocolHandler class in the com.ibm.adapters.tcpip.messagehandlers package. |
method = | The method being called. In the example the method is parseInputMessageToLLPMessages method. |
target = | Where returned data should be stored. In the example, the data is to be stored in the variable contentText created in the declaration attribute. |
var1, var2 ... varx | An open list of parameters to be passed into the method. The order and number of variables on this list must exactly match the order and number of parameters that the method expects. In the example, var1 is the IPort and var2 is the OPort from the Port attribute |