Body
The body of an IFX XML document provides the content of the information request or response. The body serves as an aggregate containing services and messages. Services and messages, in turn, are aggregates that contain smaller elements.
Service.A service identifies the kind of service being requested or delivered, identifying the business function that will be affected. For example, <PaySvcRq> is a request for a payment service, and <BankSvcRq> is a request for a bank service.
Message. A message identifies the business object affected by the message and the operation that is to be performed on the data. For example, <PmtAddRq> is a request to add a payment.
Data Element. A data element identifies the business component or fields affected by an operation defined in the message. For example, <FirstName> is a data element that contains information about a person’s first name.
Services
The basic body element is a service, for example <PaySvcRq>, <BaseSvcRq>, or <BankSvcRq>. <BaseSvcRq> is a request for the base service, which all service providers can provide.
An IFX body can include multiple services. A body almost always contains at least one service. A body with no service would provide only authentication.
The same service may be included in a body more than once, but each service must be for a different service provider.
Following is an example of a message with a single payment service request.
<PaySvcRq>
<SPName>Partner IFX Middleware</SPName>
<RqUID>50DBF4F7-7888-480b-927E-333652FEBF87</RqUID>
<PmtAddRq>
<RqUID>BD620AC4-53E7-4UIL-588C-YOR8D6224FE9</RqUID>
<PmtInfo>
<RemitInfo>
<CustPayeeId>0VF-VEBQ</CustPayeeId>
<CurAmt>
<Amt>2500</Amt>
<CurCode>USD</CurCode>
</CurAmt>
</RemitInfo>
<CardAcctIdFrom>
<AcctId>2574-86392</AcctId>
<AcctType>Savings/MMA</AcctType>
</CardAcctIdFrom>
<DueDt>2001-11-13</DueDt>
</PmtInfo>
<DupChkOverride>1</DupChkOverride>
</PmtAddRq>
</PaySvcRq>
The service aggregate includes a universally unique identifier (UUID) to match responses to requests. The UUID is generated using an algorithm that makes it unique. It appears in the <RqUID> element. It is generated by the client (which sends out the request). It is stored at the client site, which then matches it to the UUID in the response message. The UUID generator can be a Siebel business service or an extension provided by a third party. In any case, the UUID generator is identified by a parameter to the IFX Converter.
Messages
Messages (sometimes called business messages) are contained in Service aggregates. Each service can contain one or more business messages. Each service can contain any number of messages.
The message tag identifies the business object that is affected by the message and a command operator. A business object can be a payment or a cash drawer—anything on which an operation can be performed.
A message uses one of the following operations:
Add
Delete
Cancel
Inquiry
Modify
Audit
Synchronize
The business message name tag contains the object and the operation. For example, a business message called <PmtAddRq> identifies “payment" as the business object, and “add" as the operation. The details of the added payment are provided within the message.
A complete list of business messages for IFX XML is provided in the IFX XML implementation specification.
Data Elements
Within the business message are additional elements that identify the record that will be affected by the request or response and provide any other specifications, such as <CustName>, <PostAddr>, <FirstName>, and <LastName>.
The additional elements include field labels, field information, and tags that provide program access to the data.
Following is an example of data elements for the add payment request.
<PmtAddRq>
<RqUID>BD620AC4-53E7-4UIL-588C-YOR8D6224FE9</RqUID>
<PmtInfo>
<RemitInfo>
<CustPayeeId>0VF-VEBQ</CustPayeeId>
<CurAmt>
<Amt>2500</Amt>
<CurCode>USD</CurCode>
</CurAmt>
</RemitInfo>
<CardAcctIdFrom>
<AcctId>2574-86392</AcctId>
<AcctType>Savings/MMA</AcctType>
</CardAcctIdFrom>
<DueDt>2001-11-13</DueDt>
</PmtInfo>
<DupChkOverride>1</DupChkOverride>
</PmtAddRq>
The information in this request is sent to the external application, which performs the request and returns a response.