EDIINT Message Service
The following table provides an overview of the EDIINT Message service:
- System name
- None
- Graphical Process Modeler (GPM) categories
- All Services, Internet B2B > EDIINT
- Description
- Electronic Data Interchange-Internet Integration
(EDIINT) is a protocol developed by the Internet Engineering Task
Force (IETF) for securely transporting messages containing business
data over the Internet, using MIME packaging types.
There are two types of EDIINT:
- AS1, which uses SMTP, POP, and IMAP as a transport
- AS2, which uses HTTP as a transport
Within a business process in the IBM® Sterling B2B Integrator, the EDIINT Message service builds and parses EDIINT AS1 and AS2 messages, including plain text, signed, and encrypted data.
Communications services, such as the B2B SMTP Client adapter or the B2B HTTP Client adapter, then send or receive the messages within the business process.
Note: Because of our continuing efforts to improve services and adapters to align with new technology and capabilities, the B2B HTTP Client adapter has entered the retirement process in the IBM Sterling B2B Integrator and will be replaced with the HTTP Client adapter and its related services.The EDIINT Message service can also generate and process a signed or unsigned Message Disposition Notification (MDN). Signed MDNs provide non-repudiation of receipt, which occurs when the original sender of a message verifies the signed receipt coming back from the receiver.
Note: The EDIINT Message service has limitations on message size. In general, the maximum size is less than the available memory. The exception is when parsing messages that are signed after compression using file system buffering. To handle messages of unlimited size or to handle several large messages concurrently, use the EDIINT Pipeline service. - Preconfigured?
- No
- Requires third party files?
- No
- Platform availability
- All supported application platforms
- Related services
- EDIINT Acknowledge Check service
- EDIINT Pipeline service
- EDIINT MDN Building service
- Application requirements
- You must create appropriate profiles, communications adapter instances, and business processes for sending MDNs (parsing only).
- Initiates business processes?
- This service is not an adapter, but it does invoke business processes either after looking up an appropriate contract or being configured to expressly launch a specific process when contracts are not required.
- Restrictions
- This service requires that you have correctly set
up profiles for communications. It also requires that the mail and
HTTP server adapters that pass inbound messages to it are configured
to retrieve raw messages.
If you use the EDIINT Message service in a business process associated with a URL in the HTTP Server adapter, you must set the URL to use raw messages. Otherwise, the HTTP Server adapter will remove the message headers and the EDIINT Message service will not be able to process the message.
How the EDIINT Message Service Works
The EDIINT Message service parses an EDIINT message in the following sequence of events. The EDIINT Message service:
- Receives a business document.
- Looks up profiles based on the contract assigned.
- Uses the consumption profile in the contract to determine how to encapsulate the payload and what type of MDN (if any) to request.
- Outputs the message to the primary document.
The EDIINT Message service builds an EDIINT message in the following sequence of events. The EDIINT Message service:
- Receives the data payload (business document)
- Builds the business document
- Verifies any signatures
- Evaluates the message components
- Encrypts information
- Tries to look up a contract to get profile information and keys in the database so it can build the message
- Builds header information about the type of notification requested (if any)
- Determines the sender of the message
- Determines the recipient of the message
- Sends a messageNote: The constructed message is the output primary document.
- Outputs information to process data for any communications adapters that use profiles (outputs a Profile ID)
- Outputs information for the EDIINT Acknowledge Check service to process data
Implementing the EDIINT Message Service
To implement the EDIINT Message service for use in a business process, first determine whether you want to build or parse EDIINT messages (or both), and then complete the following processes, as appropriate.
Implementing the EDIINT Message Service to Build Messages
To implement the EDIINT Message service to build EDIINT messages, complete the following tasks:
- Activate your license for the EDIINT Message service. For information, see Obtaining a License File.
- Create two trading profiles. That is, one to represent
a consumption profile and one to represent a production profile:
- One trading profile should include your IDs and keys.
- The second trading profile should include the ID for the trading partner and certificates.
- Create a contract for sending EDIINT messages to
a trading partner. Assign the information for trading partner to the
consumption profile, and assign your information to the production
profile.Note: You must supply a contract ID. The production profile in the contract is used for the originator information. The identifier in the identity of the production profile is used as the value of AS2-From. The consumption profile in the contract is used for the recipient information. The identifier from the identity in the consumption profile is used as the value of AS2-To.
- Create an EDIINT Message service configuration (selecting the
Build action), and assign it the appropriate contract. Note: For every contract you create for sending EDIINT messages, you must create a configuration of the EDIINT Message service and assign the appropriate contract to it.
- Activate your license for one of the following communications
services:
- B2B SMTP Client adapter
- HTTP Client adapter
Note: AS2 business processes that used the retired B2B HTTP Client adapter (specifically the business processes used to send MDNs back to requester) have been updated to use the HTTP Client adapter. Previously the EDIINT Message Service was configured to use the HTTPAsyncSend process to send back the asynchronous MDN, but now the EDIINT Pipeline Service uses the HTTPClientSend process, which has been updated to have a default response timeout for this purpose, and which uses the HTTP Client adapters. - Create a configuration of the communications service and assign
it the appropriate contract name. Note: It is not necessary to configure the communications services for outbound transport. The EDIINT Message service communicates the information about where to send the message to the appropriate communications service by providing the appropriate transport information from the trading profile.
- Create a business process that:
- Invokes the EDIINT Message service configuration that you created to build EDIINT messages.
- Invokes the communications service you configured to send the messages.
- Uses the EDIINT Acknowledge Check service to wait for any acknowledgement.
- To indicate whether an MDN acknowledgement has been received for
an EDIINT message within a specified time period, include the EDIINT
Acknowledge Check service in your business process. Note: If you are using AS2 with synchronous MDNs, this business process must also include a step that uses a configuration of the EDIINT Message service for parsing after the send action.
Implementing the EDIINT Message Service to Parse
The following behavior is standard for message parsing with the EDIINT Message service:
- The service can check for duplicate messages based on message ID. When a duplicate message is found, the service sends back the existing MDN, if available, and does not send the data further.
- The service can either build and send an MDN or output information to process data for the MDN building service to use later. The default is to build the MDN.
- The service can either send an MDN (if it builds an MDN) or put the MDN into the current context as a document. The default is to send the MDN. There are 3 business processes that you must configure for each service instance for sending MDNs: one for asynchronous HTTP MDNs, one for synchronous HTTP MDNs, and one for SMTP MDNs (while this is not often used, it is permitted by the AS2 specification).
To implement the EDIINT Message service to parse EDIINT messages, complete the following tasks:
- Activate your license for the EDIINT Message service.
- Create business processes for sending SMTP MDNs, or synchronous or asynchronous HTTP MDNs. These simple business processes invoke configurations of the HTTP Server adapter, HTTP Client adapter, or SMTP Client adapter.
- Create a business process for parsing that invokes the EDIINT Message service configuration that you create in step 5
- Create a contract for receiving and parsing messages.
- The consumption profile represents your organization.
- The production profile represents your trading partner.
Note: Contract ID can either be looked up using AS2 identifiers in message or provided directly as a BPML parameter. Default is to look up the contract ID. This is done using AS2-To and AS2-From values to find a contract by extensions in the database. Production profile in contract ID is used as the originator information. The Consumption profile in contract ID is used as recipient information - Create a configuration of the EDIINT Message service for parsing.
- Configure the EDIINT Message service.
- Activate your license for one of the following
communications services:
- HTTP Server adapter
- Mail Server adapter
- Create a URL and set it up to retrieve raw messages.
- Assign the business process you created in step 6 to the URL. The business process invokes the EDIINT Message (Parsing) service configuration that you created in step 5
- Create configurations for the communications services you want to use. Set them up to retrieve raw messages. Add them to the business process you created in step 6.
- To determine whether an MDN acknowledgement has been received for an EDIINT message within a specified time period, include the EDIINT Acknowledge Check service in your business process.
Configuring the EDIINT Message Service
To configure the EDIINT Message service, you must specify settings for the following fields in the IBM Sterling B2B Integrator.
Field | Description |
---|---|
Name | Unique and meaningful name for the service configuration. Required. |
Description | Meaningful description for the service configuration, for reference purposes. Required. |
Select a Group | Select one of the options:
|
Action (Action) |
Valid value is Parse or Build. Required. |
Parse Parameters: | |
Don't Build MDN (DontBuildMDN) |
Whether to build an MDN. If you set this value to True, the
service outputs information that is needed by the EDIINT MDN Building
service to process data, but does not actually build the MDN. This
gives you the opportunity to change the information, if necessary,
before actually calling the EDIINT MDN Building service. Valid values
are True and False (default). Required. Note: If you
set this value to True, it will take precedence over Put MDNs In
Business Document Context. Do not set both Don't Build MDN
an Put MDNs In WFC to True.
|
Require Addresses (RequireAddresses) |
Valid value is Yes or No. Required.
|
Default Data business process (if not requiring addresses) (DefaultDataWorkflow) |
Name of a business process to run if No is selected for Require Addresses and no contract has been found for an inbound message. Required if not requiring addresses. |
SMTP MDN business process (SMTPMDNWorkflow) |
Name of the business process for sending SMTP MDNs. If you are using AS1, you must select a business process from the list. Required. |
HTTP Synchronous MDN business process (HTTPSYNCMDNWorkflow) |
Name of the business process for sending synchronous HTTP MDNs. If you are doing AS2 with synchronous MDNs, you must select a business process from the list. Required. |
HTTP Asynchronous MDN business process (HTTPASYNMDNWorkflow) |
Name of a business process for sending asynchronous HTTP MDNs. If you are using AS2 with asynchronous MDNs, you must select a business process from the list. Required. |
Put documents in business process context (PutDocsInWFC) |
Put business documents extracted from messages after parsing into the current business process context. Valid values are Y and N (default). Optional. |
Put MDNs in business process context (PutMDNsInWFC) |
Put MDNs created after parsing messages into the current business process context. Valid values are Y and N (default). Optional. |
Put MDNs in Business Process Context (PutMDNsInBusinessProcess |
Put MDNs created after parsing messages into the current business process context. Valid values are True and False. Default is False. Required. |
Use supplied contract (UseSuppliedContract) |
Use if you do not want the service to look up a contract for
parsing, but to expect one to be supplied in process data when the
service runs. Valid values are Yes and No (default). Optional. Note: If you must use duplicate contracts, you need to force
the EDIINT Message service to not look up the contract information
by choosing No for this parameter.
|
Process duplicate messages (ProcessDuplicateMessages) |
Send business data from messages with duplicate message IDs
into the IBM Sterling
B2B Integrator.
Valid values are Yes and No (default). Optional. Note: If
you select Yes, you may receive duplicate data.
|
Update expired messages (UpdateExpiredTransactions) |
Whether to update the status of EDIINT transactions that currently
have a status of Expired when an acknowledgement is received. Valid
values are Yes and No (default). Optional. Note: If
you select No, and an MDN arrives for an expired transaction, status
information is placed in the additional data field of the transaction
record.
|
Build Parameter: | |
Contract ID (b2b-contract-id) |
Identification of a contract containing information for building
messages. This field is required to build EDIINT messages. It is not available if you select Parse. |
Adding the file name to the content-disposition header by using AS2
To add a file name to the content-disposition header by using AS2, complete the following steps:
- Set up your trading partner so that the Include Filename in Message
option is set to Filename Only.
The content-disposition header is visible in the message by using the canned AS2 processes if Compress Data is set to none and the Payload Type is set to Signed Detached. Otherwise the header is not visible until after the message is decompressed.
Headers with compression using AS2SendSyncMDN
disposition-notification-to: CSTA Protocol: HTTP/1.1 Method: POST content-type: multipart/signed; micalg=SHA1; protocol="application/pkcs7-signature"; boundary="_=45320787564419684Sterling45320787564419684MOKO" date: Thu, 1 Nov 2007 01:09:28 GMT content-length: 2222 as2-version: 1.1 host: ups1app6:8850 as2-to: BSAKGIS user-agent: GIS/PsHttpClientAdapter subject: Integrator Message as2-from: CSTA URI: /b2bhttp/inbound/as2 message-id: <MOKODUBWXL19BSAK-fa7e74-115fb1cb6c4--2e94CSTA@SERVER> --_=45320787564419684Sterling45320787564419684MOKO content-type: application/pkcs7-mime; smime-type=compressed-data; name=smime.p7m
Headers without compression using AS2SendSyncMDN:
disposition-notification-to: CSTA Protocol: HTTP/1.1 Method: POST content-type: multipart/signed; micalg=SHA1; protocol="application/pkcs7-signature"; boundary="_=29384670510732647Sterling29384670510732647MOKO" date: Thu, 1 Nov 2007 01:05:56 GMT content-length: 2719 as2-version: 1.1 host: ups1app6:8850 as2-to: BSAKGIS user-agent: GIS/PsHttpClientAdapter subject: Integrator Message as2-from: CSTA URI: /b2bhttp/inbound/as2 message-id: <MOKODUBWXL19BSAK-fa7e74-115fb1cb6c4--367eCSTA@SERVER> --_=29384670510732647Sterling29384670510732647MOKO content-type: Application/EDI-X12 content-disposition: attachment; filename=pge.997.txt
- If you are creating your own AS2 process utilizing EDIINT Pipeline Build service, you must
include the following assign in the output
message.
<operation name="Messagebuild"> <participant name="EDIINTPipelineBuild"/> <output message="noopout"> <assign to="." from="*"></assign> <assign to="UseSuppliedContract">true</assign> <assign to="b2b-contract-id">1c1076ba:115d751223e:-649e</assign> <assign to="Action">build</assign> <assign to="EDIINTIncludeFileName">true</assign> </output> <input message="noopin"> <assign to="." from="*"></assign> </input> </operation>
Adding the file name in the Subject field of an AS2 message
By default the Subject is set to Integrator Message.
If you want to include the file name, you must first ensure that the AS2 Trading partner profile parameter Include File Name In Message is set to File Name Only. Then modify the AS2SendASyncMDN or AS2SendSyncMDN according to the profile that is set to use Asynchronous or Synchronous MDNs.
On the EDIINTPipelineBuild step of the BP, add the following lines:
<assign to="Message-Subject" from="FileName/text()"></assign>
If you have to pull the name from a different node in Process Data you must use that node name instead of FileName.
<operation name="Messagebuild">
<participant name="EDIINTPipelineBuild"/>
<output message="noopout">
<assign to="." from="*"></assign>
<!--We need to assign a contract id we looked up-->
<!--<assign to="b2b-contract-id" from="ContractLookup/OutboundContract/OUT_CONTRACT_ID/text()"></assign>-->
<assign to="Action">build</assign>
<assign to="EDIINTIncludeFileName"from="KeepFileNameParm/text()"></assign>
<assign to="Message-Subject" from="FileName/text()"></assign>
</output>
<input message="noopin">
<assign to="." from="*"></assign>
</input>
</operation>
Save the BP and select the BP as the default.
The result is as follows:
AS2-To: CompanyAxxx
AS2-From: CompanyB
Date: Tue, 11 Sep 2012 10:08:07 GMT
Subject: 522Dump.txt
Message-ID:
<MOKOsi761-12027037-13976e70cef-SI52test2-node1CompanyB@SI52test2> AS2-Version: 1.2
EDIINT-Features: AS2-Reliability
Disposition-Notification-To: CompanyB
Receipt-Delivery-Option: http://xxxxxx/as2
content-type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Changing the subject field on an AS2 message header
By default, the subject for any outbound AS2 message header is set to Integrator Message. To change the subject, modify the sending BP to assign the "message-subject" on the output side of the EDIINT Build process.
The following code is an example:
<operation name="Messagebuild">
<participant name="EDIINTBuild"/>
<output message="noopout">
<assign to="." from="*"></assign>
<assign to="Action">build</assign>
<assign to="EDIINTIncludeFileName" from="KeepFileNameParm/text()"></assign>
<assign to="Message-Subject">New Subject</assign>
</output>
<input message="noopin">
<assign to="." from="*"></assign>
</input>
</operation>