DEV Community

Tech Community for Software AG Tech Community

Posted on • Originally published at tech.forums.softwareag.com on

webMethods.io B2B processing message using RNIF 2.0

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. image

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
image

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”.
  • Add the Identities as DUNS.
    image

  • Create 2 RNIF channel

Outbound channel: “Amazon_To_DHL_RNIF_Outchannel” for sending the request.
image

Inbound channel: “Rcv_RNIF3A4_Response_InChannel” for receiving the RNIF response and acknowledgment from the partner.
image

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. image
  • 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]
image

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
image
image

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

image

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. image
  • Create 2 RNIF channel Outbound channel : “RNIF_3A4_ResponseChannel_out” for sending the response. image Inbound channel: “Amazon_To_DHL__3A4_PO_RNIFIN” for receiving the RNIF request and acknowledgment from the partner. image

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. image
  • 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] image
  • 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. image image
  • 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
image

  • 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 image

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

image

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:

image

Note:

  1. Attached the flow service for source tenant and target tenant
  2. 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)

Read full topic

Top comments (0)