Introduction
This article explains about processing the transaction using the RNIF protocol
Audience
It is assumed that readers of this article know how to setup B2B enterprise profile and partner on webMethods.io B2B platform.
Pre-Requisites
• Set up B2B enterprise profile, partner profile, Business Document
Note: Refer the below link to understand the basics of webMethods.io B2B
Link: webMethods.io B2B Essentials Devbytes
Topics Covered
• Introduction to RNIF 2.0
• Working with RNIF protocol
• End to End working flow
What is RNIF?
• The RosettaNet Implementation Framework (RNIF) defines implementation guidelines for creating software applications that provide for the reliable transport of partner interface processes (PIPs) in XML-format business documents between trading partners.
• Guidelines are provided for transport, routing, packaging, security, signals, and trading partner agreement
Structure of RosettaNet Message
- The preamble header, delivery header, service header, and service content are XML structures defined by RosettaNet standards.
- The preamble header identifies the message as a RosettaNet message.
- The delivery header identifies the sender and receiver partner and provides the message identifier.
- The service header identifies the process- and transaction-layer information.
- RNIF 2.0 supports attachment management by allowing attachments to be encoded as separate MIME parts in the MIME multipart/related entity.
- Attachments are optional and appear only in RosettaNet action messages.
What is PIP (Partner Interface Process)?
• The exchange of business data between trading partners is the fundamental purpose of PIPs.
• PIPs are specialized, XML-based dialogs that define the structure, sequence of steps, role (buyer and seller) activities, data elements, values, and value types for each business document message exchanged between trading partners
Types of Messages in PIP
There are two broad categories of messages involved in the exchange of PIP business documents. These are business action messages and business signal messages:
• Business actions are messages with a business-related content, such as a purchase order or request for quote. DTDs, schemas and message guidelines for their corresponding PIPs define these messages.
• Business signals are positive or negative acknowledgments sent in response to a business action. Signal messages, which are part of RNIF, are never acknowledged.
Usecase
• In our use case Buyer is “Amazon” and seller is “DHL”
• In this use case we will deal with Purchase order request (RNIF PO) and its acknowledgement and response
• In the below diagram it can be seen buyer sends the Purchase order request to Seller.
• Seller sends the acknowledgement back to buyer and post that response to purchase order is sent to buyer.
• When Buyer receives the response (Purchase order confirmation), an acknowledgment is sent from Buyer to Seller
Requirement on webMethods.io B2B
- In our use case we have 2 tenants.
- In one tenant Amazon is acting as Buyer and DHL is acting as Seller
- In another tenant its vice versa.
- In this use case we will cover both outbound and inbound transaction.
Assets developed for outbound transaction
- Create an Enterprise Profile name it as “Amazon Enterprise profile”.
Create 2 RNIF channel
Outbound channel: “Amazon_To_DHL_RNIF_Outchannel” for sending the request.
Inbound channel: “Rcv_RNIF3A4_Response_InChannel” for receiving the RNIF response and acknowledgment from the partner.
Note: We have enabled the “send receipt acknowledgment” to get the auto acknowledgement.
- Create Partner Profile name it as “ DHL Partner ”.
- Add the Identities as DUNS.
- Create 2 business document
- 3A4 Purchase Order Request
o Import the RNIF3A4PO sample xml or schema
o Add the custom attributes to document for receiver using the xpath.
o In our case xpath :
/Pip3A4PurchaseOrderRequest[0]/toRole[0]/PartnerRoleDescription[0]/PartnerDescription[0]/BusinessDescription[0]/GlobalBusinessIdentifier[0]
o Similarly repeat the steps for Sender xpath
o In our case xpath: /Pip3A4PurchaseOrderRequest[0]/fromRole[0]/PartnerRoleDescription[0]/PartnerDescription[0]/BusinessDescription[0]/GlobalBusinessIdentifier[0]
- 3A4 Purchase Order Confirmation\Response
o Import the RNIF3A4 confirmation sample xml or schema
o Repeat the above steps to set up the receiver id and Sender ID using xpath
Create Processing rule “ Amazon_To_DHL_3A4_PO_RNIFRule” with below details
Sender: Amazon Enterprise profile
Receiver: DHL partner profile
Document: RNIF3A4PO
Action: send the message to outbound preferred channel
Create FlowService in webMethods.io Integration
• To submit the outbound transaction we need to create the flowService inside webMethods.io integration.
• Create the flow service and name it as “submit3A4RNIF”.
• In this flow service we need have to set the PIP details and then submit the request to B2B using submit B2B operation.
Assets developed for inbound transaction
- Create an Enterprise Profile name it as “DHL Enterprise profile”.
- Add the Identities as DUNS.
- Create 2 RNIF channel Outbound channel : “RNIF_3A4_ResponseChannel_out” for sending the response. Inbound channel: “Amazon_To_DHL__3A4_PO_RNIFIN” for receiving the RNIF request and acknowledgment from the partner.
Note: We have enabled the “send receipt acknowledgment” to get the auto acknowledgement.
- Create Partner Profile name it as “ Amazon Partner ”.
- Add the Identities as DUNS.
- Create 2 business document
- 3A4 Purchase Order Request o Import the RNIF3A4PO sample xml or schema o Add the custom attributes to document for receiver using the xpath. o In our case xpath : /Pip3A4PurchaseOrderRequest[0]/toRole[0]/PartnerRoleDescription[0]/PartnerDescription[0]/BusinessDescription[0]/GlobalBusinessIdentifier[0]
- Similarly repeat the steps for Sender xpath o In our case xpath: /Pip3A4PurchaseOrderRequest[0]/fromRole[0]/PartnerRoleDescription[0]/PartnerDescription[0]/BusinessDescription[0]/GlobalBusinessIdentifier[0]
- 3A4 Purchase Order Confirmation\Response o Import the RNIF3A4 confirmation sample xml or schema o Repeat the above steps to set up the receiver id and Sender ID using xpath.
- Create 2 Processing rule for
- receiving the request for 3A4 PO Order
- “ AmazonPartner_To_DHL_3A4_RNIFRule” with below details
Sender: Amazon Partner profile
Receiver: DHL Enterprise profile
Document: RNIF3A4PO
Action: send the message to webMethods.io integration flow service
- Sending the response for 3A4 PO Order confirmation o Rule Name: DHL_To_Amazon_3A4_Response_Rule o Sender: DHL Enterprise profile o Receiver: Amazon Partner profile o Document: RNIF3A4PO Response o Action: send the message to preferred outbound channel
Create FlowService in webMethods.io Integration
• To submit the response 3A4 order confirmation transaction we need to create the flowService inside webMethods.io integration.
• Create the flow service and name it as “submit3A4RNIFResponseConfirmation”.
• In this flow service we need receive the request from B2B and send the confirmation response.
End to End Testing
• Submit the request from source tenant
Monitoring in B2B
Source Tenant
Generated RosettaNet Object in webMethods.io B2B:
Preamble Header
------=_Part_165_628802029.1658905850682
Date: Wed, 27 Jul 2022 07:10:50 +0000 (UTC)
MIME-Version: 1.0
Content-Type: multipart/related;
boundary=“----=_Part_164_122116326.1658905850670”;
type=“application/xml”
Content-ID:
Content-Description: This is the RosettaNet Business Message
------=_Part_164_122116326.1658905850670
Date: Wed, 27 Jul 2022 07:10:50 +0000 (UTC)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Preamble
Content-ID: PreambleHeader.0.7868256363823055.1658905850669@sag-b2b-v1011-59bcc6c7b4-tfxvp
<?xml version=3D"1.0" encoding=3D"UTF-8"?> RosettaNet V02.00 ------=_Part_164_122116326.1658905850670 Date: Wed, 27 Jul 2022 07:10:50 +0000 (UTC) Content-Type: Application/XML Content-Transfer-Encoding: quoted-printable Content-Location: RN-Delivery-Header
Content-ID: DeliveryHeader.0.7868256363823055.1658905850669@sag-b2b-v1011-59bcc6c7b4-tfxvp
Delivery Header
<?xml version=3D"1.0" encoding=3D"UTF-8"?> No 20220727T071050.669Z DUNS 987659999 DUNS 123451111 c0a8df980000e7e7000000931658905850673
Service Header
------=_Part_164_122116326.1658905850670
Date: Wed, 27 Jul 2022 07:10:50 +0000 (UTC)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Service-Header
Content-ID: ServiceHeader.0.7870943816989204.1658905850670@sag-b2b-v1011-59bcc6c7b4-tfxvp
Content-Description: RosettaNet-Service-Header
<?xml version=3D"1.0" encoding=3D"UTF-8"?> Create Purchase Order Buyer Buyer Service 0 Purchase Order Request Action Seller Seller Service Production 3A4 c0a8df980000e7e7000000921658905850669 1.1 DUNS 123451111
Service Content
------=_Part_164_122116326.1658905850670
Date: Wed, 27 Jul 2022 07:10:50 +0000 (UTC)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Service-Content
Content-ID: ServiceContent.0.7870943816989204.1658905850670@sag-b2b-v1011-59bcc6c7b4-tfxvp
Content-Description: RosettaNet-Service-Content
< actual payload
>
Target Tenant:
Note:
- Attached the flow service for source tenant and target tenant
- Attaching the payload Details: Submit3A4RNIF : flow service at source tenant. To submit the purchase order request SendRNIF3A4ResponseConfirmation : flow service at target tenant. To send the PO confirmation response 3A4PayloadRequestSample : PO Sample request submitted from source flow service (Submit3A4RNIF)
Submit3A4RNIF.zip (9.8 KB)
SendRNIF34AResponseConfirmation.zip (10.5 KB)
3A4PayloadRequestSample.xml (13.9 KB)
- To import the flow service on webeMethods.io integration, refer to webMethods.io Integration: DevOps - Stage Management section: 4.4 Import and Export Integrations (Asset level)