Additional Blogs by Members
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

This is part 2 of my RosettaNet blog series.

Part 1 can be found here  (RNIF RosettaNet Adapter: Collected Experiences,  Traps and Hints Part 1).

 

Technical Structure of a RosettaNet message

The RosettaNet standard does not just define the structure of the BusinessContent (e.g. eInvoice) it also defines a technical framework how and in what form a message needs to be transmitted.

The actual business message is called "service content". Besides this, a complete RosettaNet message consists of a Preamble, Delivery Header and Service Header.

All 4 parts together make up the actual RosettaNet message and are grouped together in a Content-Type = multipart/related message.

This multipart message is the payload that PI will transfer by the available transport protocols HTTP and HTTPS

More information on this can be found on the [RosettaNet | http://www.rosettanet.org/Standards/RosettaNetStandards/RosettaNetImplementationFramework/tabid/478/...] Homepage.

 

This is an example of a typical message:

-


=_Part_125_1075081148.1239028714999Content-Type: multipart/related;      boundary="--=_Part_124_1250133875.1239028714990";      type="application/xml"--=_Part_124_1250133875.1239028714990Content-Type: application/xmlContent-Transfer-Encoding: binaryContent-Location: RN-PreambleContent-ID: RN-Preamble.9bbd60e022b811de81c600144fe5682c@sap.com<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Preamble SYSTEM "Preamble_MS_V02_00.dtd"><Preamble><standardName><GlobalAdministeringAuthorityCode>RosettaNet</GlobalAdministeringAuthorityCode></standardName><standardVersion><VersionIdentifier>V02.00</VersionIdentifier></standardVersion></Preamble>--=_Part_124_1250133875.1239028714990Content-Type: application/xmlContent-Transfer-Encoding: binaryContent-Location: RN-Delivery-HeaderContent-ID: RN-Delivery-Header.9bbd87f022b811de9a5b00144fe5682c@sap.com<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE DeliveryHeader SYSTEM "DeliveryHeader_MS_V02_00.dtd"><DeliveryHeader><isSecureTransportRequired>    <AffirmationIndicator>Yes</AffirmationIndicator>  </isSecureTransportRequired>  <messageDateTime>    <DateTimeStamp>20090731T050919.955Z</DateTimeStamp>  </messageDateTime>  <messageReceiverIdentification>    <PartnerIdentification>      <domain>        <FreeFormText xml:lang="EN">DUNS</FreeFormText>      </domain>      <GlobalBusinessIdentifier>314750852</GlobalBusinessIdentifier>    </PartnerIdentification>  </messageReceiverIdentification>  <messageSenderIdentification>    <PartnerIdentification>      <domain>        <FreeFormText xml:lang="EN">DUNS</FreeFormText>      </domain>      <GlobalBusinessIdentifier>968787285</GlobalBusinessIdentifier>    </PartnerIdentification>  </messageSenderIdentification>  <messageTrackingID>    <InstanceIdentifier>0afa02a3f70d00d10002k4f6</InstanceIdentifier>  </messageTrackingID></DeliveryHeader>--=_Part_124_1250133875.1239028714990Content-Type: application/xmlContent-Transfer-Encoding: binaryContent-Location: RN-Service-HeaderContent-ID: RN-Service-Header.9bbd87f122b811deac6600144fe5682c@sap.com<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ServiceHeader SYSTEM "ServiceHeader_MS_V02_00.dtd"><ServiceHeader><ProcessControl>    <ActivityControl>      <BusinessActivityIdentifier>Notify of Threshold Release Forecast</BusinessActivityIdentifier>      <MessageControl>        <fromRole>          <GlobalPartnerRoleClassificationCode>Forecast Owner</GlobalPartnerRoleClassificationCode>        </fromRole>        <fromService>          <GlobalBusinessServiceCode>Forecast Owner Service</GlobalBusinessServiceCode>        </fromService>        <Manifest>          <numberOfAttachments>            <CountableAmount>0</CountableAmount>          </numberOfAttachments>          <ServiceContentControl>            <ActionIdentity>              <GlobalBusinessActionCode>Threshold Release Forecast Notification Action</GlobalBusinessActionCode>              <standardVersion>                <VersionIdentifier>V02.01</VersionIdentifier>              </standardVersion>            </ActionIdentity>          </ServiceContentControl>        </Manifest>        <toRole>          <GlobalPartnerRoleClassificationCode>Forecast Recipient</GlobalPartnerRoleClassificationCode>        </toRole>        <toService>          <GlobalBusinessServiceCode>Forecast Recipient Service</GlobalBusinessServiceCode>        </toService>      </MessageControl>    </ActivityControl>    <GlobalUsageCode>Production</GlobalUsageCode>    <pipCode>      <GlobalProcessIndicatorCode>4A3</GlobalProcessIndicatorCode>    </pipCode>    <pipInstanceId>      <InstanceIdentifier>0afa02a3f70d00ae0002k3e2</InstanceIdentifier>    </pipInstanceId>    <pipVersion>      <VersionIdentifier>V02.01</VersionIdentifier>    </pipVersion>    <KnownInitiatingPartner>      <PartnerIdentification>        <domain>          <FreeFormText xml:lang="EN">DUNS</FreeFormText>        </domain>        <GlobalBusinessIdentifier>768787285</GlobalBusinessIdentifier>      </PartnerIdentification>    </KnownInitiatingPartner></ProcessControl></ServiceHeader>--=_Part_124_1250133875.1239028714990Content-Type: application/xmlContent-Transfer-Encoding: binaryContent-Location: RN-Service-ContentContent-ID: RN-Service-Content.9bbd87f222b811dea8a700144fe5682c@sap.com<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE Pip4A3ThresholdReleaseForecastNotification SYSTEM "4A3_MS_V02_01_ThresholdReleaseForecastNotification.dtd"><Pip4A3ThresholdReleaseForecastNotification>  <fromRole>    <PartnerRoleDescription>      <ContactInformation>        <contactName>          <FreeFormText>Mickey Mouse</FreeFormText>        </contactName>        <EmailAddress>mickey@mouse.com</EmailAddress>        <telephoneNumber>          <CommunicationsNumber>+1234567890</CommunicationsNumber>        </telephoneNumber>      </ContactInformation>      <GlobalPartnerRoleClassificationCode>Forecast Owner</GlobalPartnerRoleClassificationCode>      <PartnerDescription>        <BusinessDescription>          <GlobalBusinessIdentifier>768787345</GlobalBusinessIdentifier>          <GlobalSupplyChainCode>Electronic Components</GlobalSupplyChainCode>        </BusinessDescription>        <GlobalPartnerClassificationCode>End User</GlobalPartnerClassificationCode>      </PartnerDescription>    </PartnerRoleDescription>  </fromRole>  <GlobalDocumentFunctionCode>Request</GlobalDocumentFunctionCode>  <thisDocumentGenerationDateTime>    <DateTimeStamp>20090527T030915.142Z</DateTimeStamp>  </thisDocumentGenerationDateTime>  <thisDocumentIdentifier>    <ProprietaryDocumentIdentifier>DocID73TO20090527001</ProprietaryDocumentIdentifier>  </thisDocumentIdentifier>  <ThresholdReleaseForecast>    <forecastGenerationDateTime>      <DateTimeStamp>20090527T050100.000Z</DateTimeStamp>    </forecastGenerationDateTime>    <GlobalTransportEventCode>Ship</GlobalTransportEventCode>    <isFinalForecast>      <AffirmationIndicator>Yes</AffirmationIndicator>    </isFinalForecast>    <PartnerProductForecast>      <ForecastPartner>        <GlobalPartnerReferenceTypeCode>Sold to</GlobalPartnerReferenceTypeCode>        <PartnerDescription>          <BusinessDescription>            <GlobalBusinessIdentifier>761237285</GlobalBusinessIdentifier>            <PartnerBusinessIdentification>              <ProprietaryBusinessIdentifier>7300</ProprietaryBusinessIdentifier>              <ProprietaryDomainIdentifier>Company Code</ProprietaryDomainIdentifier>              <ProprietaryIdentifierAuthority>Corporate Purchasing</ProprietaryIdentifierAuthority>            </PartnerBusinessIdentification>          </BusinessDescription>          <GlobalPartnerClassificationCode>End User</GlobalPartnerClassificationCode>        </PartnerDescription>      </ForecastPartner>      <ForecastPartner>        <GlobalPartnerReferenceTypeCode>Supplied by</GlobalPartnerReferenceTypeCode>        <PartnerDescription>          <BusinessDescription>            <GlobalBusinessIdentifier>314123852</GlobalBusinessIdentifier>            <GlobalSupplyChainCode>Electronic Components</GlobalSupplyChainCode>            <PartnerBusinessIdentification>              <ProprietaryBusinessIdentifier>C0WC600</ProprietaryBusinessIdentifier>              <ProprietaryDomainIdentifier>Vendor Code</ProprietaryDomainIdentifier>              <ProprietaryIdentifierAuthority>Corporate Purchasing</ProprietaryIdentifierAuthority>            </PartnerBusinessIdentification>          </BusinessDescription>          <GlobalPartnerClassificationCode>Manufacturer</GlobalPartnerClassificationCode>        </PartnerDescription>    (...)    </PartnerProductForecast>  </ThresholdReleaseForecast>  <toRole>    <PartnerRoleDescription>      <GlobalPartnerRoleClassificationCode>Forecast Recipient</GlobalPartnerRoleClassificationCode>      <PartnerDescription>        <BusinessDescription>          <GlobalBusinessIdentifier>314123852</GlobalBusinessIdentifier>          <GlobalSupplyChainCode>Electronic Components</GlobalSupplyChainCode>        </BusinessDescription>        <GlobalPartnerClassificationCode>Manufacturer</GlobalPartnerClassificationCode>      </PartnerDescription>    </PartnerRoleDescription>  </toRole></Pip4A3ThresholdReleaseForecastNotification>--=_Part_124_1250133875.1239028714990--


=_Part_125_1075081148.1239028714999--

Things to remember:

    • The PI adapter will take care on Service Header, Delivery Header and Preamble and assembling this in a multipart message

    • Service Header, Delivery Header and Preamble are created based on information that you enter in the communication channel

    • When receiving RosettaNet messages, the adapter will get the sender and receiver party, interface and namespace from the service and delivery header (this is the reason why naming those objects is so important)

 

*Receiving a RosettaNet Message *

12 Comments