webMethods.io B2B configure RNIF Trading Partner Agreement

Introduction

This article explains how trading partner agreement can be configured and used in webMethods.io B2B using the RNIF protocol

Audience

It is assumed that readers of this article know how to set up a B2B setup using RNIF protocol. In case you skipped the previous article follow the link below
webMethods.io B2B processing message using RNIF 2.0

Pre-Requisites

Set up B2B enterprise profile, partner profile, Business Document, and Processing rule for RNIF and flow service to submit B2B document.

Topics Covered

  • Introduction to TPA
  • Usecase
  • Assets development
  • End to End working flow

What is a Trading partner agreement (TPA)?

Trading Partner Agreement (TPA) definitions are a set of parameters that help you tailor how documents are exchanged between two trading partners.

Each TPA contains specific information about how documents must be exchanged between two trading partners.

  • The partner that represents the sender of the documents.
  • The partner that represents the receiver of the documents.
  • An agreement ID that identifies the type of TPA (for example, TPAs for EDI business documents use the agreement ID EDITPA).

What’s the use of TPA?

  • webMethods.ioB2B does not use TPAs when determining the processing rules to use for a document.
  • Parameters that we specify in the TPA are available for our own use. For example, we can access the TPA information from integrations called by a processing rule.
  • Accessing this information allows you to build a document exchange application that uses the TPA to tailor the exchange of documents between partners.

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 acknowledgment back to Buyer and after that response to the purchase order is sent to Buyer.
  • When the Buyer receives the response (Purchase order confirmation), an acknowledgment is sent from Buyer to Seller
  • PIP info and process info (like sender role, receiver role, etc.) are fetched using TPA define.

Requirement

This use case is similar to webMethods.io B2B processing message using RNIF 2.0. We will utilize the existing setup we did in the above-mentioned article, create TPA at both tenants and make the necessary changes in channels configuration and flow services.

Create TPA definition at Buyer side And Seller Side

  • Click on Agreements > TPA definitions > Add Definition.

  • Provide name as ‘RNIF3A4PO’.

  • Select ‘Amazon Shipping Enterprise Profile’ as Sender.

  • Select ‘DHL Partner’ as Receiver.

  • Select the appropriate RNIF document under Template Structure.

  • We can either provide TPA details (ProcessInfo, PipInfo, etc) manually or use the attached file to upload the same using the ‘Upload TPA data’ button. (File name: RNIFPO_TPA_Data.json).

  • Click on Create and change the TPA status from Proposed to Agreed.

Repeat the same steps and create TPA on the seller side as well.

Modify Amazon_To_DHL_RNIF_Outchannel at Buyer Side

  • Click on Amazon_To_DHL_RNIF_Outchannel channel and deactivate it.
  • Click on configuration and under Message enable Defer to TPA.
  • Click on Update and Activate the channel.

Modify Rcv_RNIF3A4_Response_InChannel at Buyer Side

  • Click on Rcv_RNIF3A4_Response_InChannel channel and deactivate it.
  • Click on configuration and under Message enable Defer to TPA. Also, enable Defer to TPA under PIP Information.
  • Click on Update and Activate the channel.

Modify Amazon_To_DHL__3A4_PO_RNIFIN and RNIF_3A4_ResponseChannel_out at Seller Side

Follow same steps to enable Defer to TPA in the above-mentioned channels.

Modify Submit3A4RNIF FlowService in webmethods.io Integration

Since PIP information will be fetched from TPA we don’t need to pass that information when submitting the request to B2B. To achieve the same, we would delete the mapping for the document which was used to send PIP information to B2B.

End-to-End Testing

Submit the request from the source tenant.

Monitoring in B2B

Source Tenant

RosettaNet Object:

------=_Part_9_1597229536.1668751483613
Date: Fri, 18 Nov 2022 06:04:43 +0000 (GMT)
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_8_1529683090.1668751483565";
type="application/xml"
Content-ID: <JTSBNEXQNOUGCPKQBJNY-1668751483565-PXXJFLKGSC>
Content-Description: This is the RosettaNet Business Message
------=_Part_8_1529683090.1668751483565
Date: Fri, 18 Nov 2022 06:04:43 +0000 (GMT)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Preamble
Content-ID: <PreambleHeader.0.1259514869206232.1668751483565@sag-b2b-v1012-f8cd5795c-xjmdm>
<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<!DOCTYPE Preamble SYSTEM "Preamble_MS_V02_00.dtd">
<Preamble>
<standardName>
<GlobalAdministeringAuthorityCode>RosettaNet</GlobalAdministeringAuthorityCode>
</standardName>
<standardVersion>
<VersionIdentifier>V02.00</VersionIdentifier>
</standardVersion>
</Preamble>
------=_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](mailto:DeliveryHeader.0.7868256363823055.1658905850669@sag-b2b-v1011-59bcc6c7b4-tfxvp)

Delivery Header

<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<!DOCTYPE DeliveryHeader SYSTEM "DeliveryHeader_MS_V02_00.dtd">
<DeliveryHeader>
<isSecureTransportRequired>
<AffirmationIndicator>No</AffirmationIndicator>
</isSecureTransportRequired>
<messageDateTime>
<DateTimeStamp>20221118T060443.565Z</DateTimeStamp>
</messageDateTime>
<messageReceiverIdentification>
<PartnerIdentification>
<domain>
<FreeFormText>DUNS</FreeFormText>
</domain>
<GlobalBusinessIdentifier>987659999</GlobalBusinessIdentifier>
</PartnerIdentification>
</messageReceiverIdentification>
<messageSenderIdentification>
<PartnerIdentification>
<domain>
<FreeFormText>DUNS</FreeFormText>
</domain>
<GlobalBusinessIdentifier>123451111</GlobalBusinessIdentifier>
</PartnerIdentification>
</messageSenderIdentification>
<messageTrackingID>
<InstanceIdentifier>0a18586c0000956e000000071668751483570</InstanceIdentifier>
</messageTrackingID>
</DeliveryHeader>

Service Header

------=_Part_8_1529683090.1668751483565
Date: Fri, 18 Nov 2022 06:04:43 +0000 (GMT)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Service-Header
Content-ID: <ServiceHeader.0.1259514869206232.1668751483565@sag-b2b-v1012-f8cd5795c-xjmdm>
Content-Description: RosettaNet-Service-Header

<?xml version=3D"1.0" encoding=3D"UTF-8"?>
<!DOCTYPE ServiceHeader SYSTEM "ServiceHeader_MS_V02_00.dtd">
<ServiceHeader>
<ProcessControl>
<ActivityControl>
<BusinessActivityIdentifier>Create Purchase Order</BusinessActivityIdentifi=
er>
<MessageControl>
<fromRole>
<GlobalPartnerRoleClassificationCode>Buyer</GlobalPartnerRoleClassification=
Code>
</fromRole>
<fromService>
<GlobalBusinessServiceCode>Buyer Service</GlobalBusinessServiceCode>
</fromService>
<Manifest>
<numberOfAttachments>
<CountableAmount>0</CountableAmount>
</numberOfAttachments>
<ServiceContentControl>
<ActionIdentity>
<GlobalBusinessActionCode>Purchase Order Request Action</GlobalBusinessActi=
onCode>
</ActionIdentity>
</ServiceContentControl>
</Manifest>
<toRole>
<GlobalPartnerRoleClassificationCode>Seller</GlobalPartnerRoleClassificatio=
nCode>
</toRole>
<toService>
<GlobalBusinessServiceCode>Seller Service</GlobalBusinessServiceCode>
</toService>
</MessageControl>
</ActivityControl>
<GlobalUsageCode>Production</GlobalUsageCode>
<pipCode>
<GlobalProcessIndicatorCode>3A4</GlobalProcessIndicatorCode>
</pipCode>
<pipInstanceId>
<InstanceIdentifier>0a18586c0000956e000000061668751483564</InstanceIdentifi=
er>
</pipInstanceId>
<pipVersion>
<VersionIdentifier>1.1</VersionIdentifier>
</pipVersion>
<KnownInitiatingPartner>
<PartnerIdentification>
<domain>
<FreeFormText>DUNS</FreeFormText>
</domain>
<GlobalBusinessIdentifier>123451111</GlobalBusinessIdentifier>
</PartnerIdentification>
</KnownInitiatingPartner>
</ProcessControl>
</ServiceHeader>

Service Content

------=_Part_8_1529683090.1668751483565
Date: Fri, 18 Nov 2022 06:04:43 +0000 (GMT)
Content-Type: Application/XML
Content-Transfer-Encoding: quoted-printable
Content-Location: RN-Service-Content
Content-ID: <ServiceContent.0.1259514869206232.1668751483565@sag-b2b-v1012-f8cd5795c-xjmdm>
Content-Description: RosettaNet-Service-Content

–Then actual payload is sent

Target Tenant


Note

  • Attached the flow service for the source tenant and target tenant
  • Attaching the payload
  • TPA data

Details

RNIFPO_TPA_Data.json: TPA data for both buyer and seller sides.
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)

RNIFPO_TPA_Data.json.txt (675 Bytes)
Submit3A4RNIF.zip (10.5 KB)
SendRNIF34AResponseConfirmation.zip (11.2 KB)
3A4PayloadRequestSample.xml (13.9 KB)

2 Likes