Hi Experts,
I am new to PI and how can i create xml shcema document?
I am attaching interface document which i need to develop the interface, Its an a inbound interface and need to send to webservices so how can i start this task
Please can any one help me on this.
1.2. Interface Specifics
Interface direction : Inbound into SAP TM – via SAP Process Orchestration
Interface type : SAP Enterprise Service
Source System : CVS
Source System Owner : DOD
Target System : SAP Transportation Management 9.1
Target System Owner : xxxxxxxx
The interface schema will be made up of two sections:
- - A Header section that will exist only once in any given xml message
- - One or more Object section(s), that will be repeated as many times as there are items being transported.
The inbound interface schema will be made up of two sections:
- - A Header section that will exist only once in any given xml message
- - One or more Object section(s), that will be repeated as many times as there are items being transported.
This document should be read in concert with the document Manifest file_DOD as it explain the customer structure of the inbound message.
1.3. Inbound Interface File Description
Map to SAP Enterprise Service field | Inbound xml label | Business Rule / Linfox interpretation | ||||||||||
<MessageHeader><CreationDateTime> | N/A | This field must be passed. This can be defaulted to the time now. The time indicated is expressed in the UTC timezone. The extended representation is as follows: CCYY-MM-DDThh:mm:ss(.sss)(Z) The extended representation uses the following literals: A separator between the date and time is mandatory. | ||||||||||
<MessageHeader><SenderBusinessSystemID> | N/A | This will identify the Linfox sending system. It will generally include a reference to the system ID as well as the SAP client that generated the message. This reference will vary depending on the system ID (development, quality assurance, pre-production or production) and the client number. This will reference the sending PO system. | ||||||||||
<TransportationRequest actionCode="01"> | N/A | This is the beginning of the transport request creation message per se. The action code “01” denotes a create message. | ||||||||||
<TransportationRequest><ContractConditionCode> | ContractConditionCode | The inbound file will have one of three values. A mapping of the inbound value will need to be made as per the table below:
| ||||||||||
<TransportationRequest><ShippingTypeCode> | Is influenced by the value of ‘ServiceLevel’ | This field will have one of two possible values, LTL or FTL. The value of this field will be dependent on another inbound field, namely ‘ServiceLevel’. The mapping rule should be: If service level is P1, P2 or P3, then <ShippingTypeCode> is = LTL If service level is FTL then <ShippingTypeCode> is = FTL | ||||||||||
<TransportationRequest><DangerousGoodsIndicator> | Is influenced by the value of “HazmatCode” and / or “UnDgCode” | This is a mandatory field and should be filled with a true or false value. The mapping rule should be that if an inbound <object><HazmatCode> and / or <object><UnDgCode> tag has a value that is different to blank, then the value “true” should be set. In all other cases it should be false.
If all object records in an inbound file are as below: <HazmatCode></ HazmatCode > <UnDgCode ></ UnDgCode > Then we should have: <DangerousGoodsIndicator>false</DangerousGoodsIndicator>
If a single object record as one or the other (<HazmatCode> or <UnDgCode >) indicated then we should have: <DangerousGoodsIndicator>true</DangerousGoodsIndicator> | ||||||||||
<TransportationRequest><DefaultCurrencyCode> | N/A | This segment should always be added and defaulted as below: <DefaultCurrencyCode>AUD</DefaultCurrencyCode> | ||||||||||
<TransportationRequest> <RequestedPickupDateTimePeriod> <StartDateTime> | DateAvailable | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestPickupState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <RequestedPickupDateTimePeriod> <EndDateTime> | DateAvailable | As Above. | ||||||||||
<TransportationRequest> <RequestedDeliveryDateTimePeriod><StartDateTime> | RequiredDeliveryDate (from header) | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestDeliverState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <RequestedDeliveryDateTimePeriod><EndDateTime> | RequiredDeliveryDate (from header) | As Above. | ||||||||||
<TransportationRequest> <OrderingParty> <InternalID> | - | This can be defaulted to the business partner number that corresponds to the customer DOD. | ||||||||||
<TransportationRequest> <AdditionalParty> <Party> <InternalID> | ManifestPickupFdc | This field can be mapped as-is. It will represent the ordering site. | ||||||||||
<TransportationRequest> <AdditionalParty> <RoleCode> | - | This can be defaulted to the value ‘ZO’ | ||||||||||
<TransportationRequest> <ShipFromLocation> <Address> <OrganisationFormattedName> | ManifestPickupName | Map as-is. | ||||||||||
<TransportationRequest> <ShipFromLocation> <Address> <PhysicalAddress> <CountryCode> | - | Can be defaulted to AU if is one of the values for ManifestPickupState is:
| ||||||||||
<TransportationRequest> <ShipFromLocation> <Address> <PhysicalAddress> <RegionCode> | ManifestPickupState | Map as-is. | ||||||||||
<TransportationRequest> <ShipFromLocation> <Address> <PhysicalAddress> <StreetPostalCode> | ManifestPickupPostcode | Map as-is. | ||||||||||
<TransportationRequest> <ShipFromLocation> <Address> <PhysicalAddress> <CityName> | ManifestPickupSuburb | Map as-is. | ||||||||||
<TransportationRequest> <ShipFromLocation><Address> <PhysicalAddress> <StreetName> | ManifestPickupAdd | Map as-is. | ||||||||||
|
|
| ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <OrganisationFormattedName> | ManifestDeliverName | Map as-is. | ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <PhysicalAddress> <CountryCode> | - | Can be defaulted to AU if is one of the values for ManifestDeliverState is:
| ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <PhysicalAddress> <RegionCode> | ManifestDeliverState | Map as-is. | ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <PhysicalAddress> <StreetPostalCode> | ManifestDeliverPostcode | Map as-is. | ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <PhysicalAddress> <CityName> | ManifestDeliverSuburb | Map as-is. | ||||||||||
<TransportationRequest> <ShipToLocation> <Address> <PhysicalAddress> <StreetName> | ManifestDeliverAdd | Map as-is. | ||||||||||
|
|
| ||||||||||
<TransportationRequest> <TransportationStage> <ID> | - | Can be defaulted to ‘10’ as there will only ever be one stage for DO orders. | ||||||||||
<TransportationRequest> <TransportationStage> <OrdinalNumberValue> | - | Can be defaulted to ‘1’. | ||||||||||
<TransportationRequest> <TransportationStage> <RequestedLoadingDateTimePeriod> <StartDateTime> | DateAvailable | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestPickupState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <TransportationStage> <RequestedLoadingDateTimePeriod> <EndDateTime> | DateAvailable | As Above. | ||||||||||
<TransportationRequest> <TransportationStage> <RequestedUnloadingDateTimePeriod> <StartDateTime> | RequiredDeliveryDate (from header) | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestPickupState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <TransportationStage> <RequestedUnloadingDateTimePeriod> <EndDateTime> | RequiredDeliveryDate (from header) | As Above. | ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <OrganisationFormattedName> | ManifestPickupName | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <PhysicalAddress> <CountryCode> | - | Can be defaulted to AU if is one of the values for ManifestPickupState is:
| ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <PhysicalAddress> <RegionCode> | ManifestPickupState | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <PhysicalAddress> <StreetPostalCode> | ManifestPickupPostcode | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <PhysicalAddress> <CityName> | ManifestPickupSuburb | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <LoadingLocation> <Address> <PhysicalAddress> <StreetName> | ManifestPickupAdd | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <OrganisationFormattedName> | ManifestDeliverName | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <PhysicalAddress> <CountryCode> | - | Can be defaulted to AU if is one of the values for ManifestDeliverState is:
| ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <PhysicalAddress> <RegionCode> | ManifestDeliverState | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <PhysicalAddress> <StreetPostalCode> | ManifestDeliverPostcode | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <PhysicalAddress> <CityName> | ManifestDeliverSuburb | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <UnloadingLocation> <Address> <PhysicalAddress> <StreetName> | ManifestDeliverAdd | Map as-is. | ||||||||||
<TransportationRequest> <TransportationStage> <ItemAssignment> <ItemID> | - | This needs to be repeated as many times as there are <object> records in inbound xml file. The item ID number can be incremented in steps of 10. I.e if the inbound file has two items, then this should map to the below in the file sent to TM: <ItemAssignment> <ItemID>10</ItemID> </ItemAssignment> <ItemAssignment> <ItemID>20</ItemID> </ItemAssignment> | ||||||||||
<TransportationRequest> <TransportationTerms> <TransportServiceLevelCode> | ServiceLevel | The inbound file value must be mapped to an allowed TM value. The mapping rule is indicated below:
| ||||||||||
<TransportationRequest> <TransportationTerms> <TransportModeCode listID="11719"> | - | Can be defaulted to ‘01’. | ||||||||||
<TransportationRequest> <BaseBusinessTransactionDocumentReference> <ID> | PrimaryRefNumber | Map as-is. | ||||||||||
<TransportationRequest> <BaseBusinessTransactionDocumentReference> <TypeCode> | - | Can be defaulted to ‘1122’ | ||||||||||
ORDER ITEMS (individually described within each <Item> tag. | ||||||||||||
<TransportationRequest> <Item> <ID> | - | The item ID’s that are used here must match those that were used in the <ItemAssignment> <ItemID> section. | ||||||||||
<TransportationRequest> <Item> <CategoryCode> | - | This can be defaulted to ‘PRD’. | ||||||||||
<TransportationRequest> <Item> <Description> | ObjectType & ProductDescription | Concatenate ‘ObjectType’ + ‘-’ & ProductDescription. I.e an example value may be. PACKAGE - WOODEN BOX | ||||||||||
<TransportationRequest> <Item> <HighValueCargoIndicator> | ManifestHsi | If ManifestHsi is equal to ‘X’, then <HighValueCargoIndicator> should be set to true, else it should be set to false. | ||||||||||
<TransportationRequest> <Item> <GrossWeightTransportationQuantity unitCode="KG"> | ProductWeight | Map as-is. | ||||||||||
<TransportationRequest> <Item> <GrossVolumeTransportationQuantity unitCode="MTQ"> | ProductVolume | Map as-is. | ||||||||||
<TransportationRequest> <Item> <PiecesTransportationQuantity unitCode="PC"> | - | This is currently being discussed with DOD, to investigate the possibility of passing actual quantities and unit of measure. Unless this rule is changed later, we will for the time being assume that the value of this field can be defaulted to ‘1’. It may also be that the unit of measure (which is highlighted in bold in the field descriptor), may also change. This will be confirmed later. Unless this rule changes later, we will assume that the unit of measure is always ‘PC’. | ||||||||||
<TransportationRequest> <Item> <LengthMeasure unitCode="MMT"> | ProductLength | Map as-is. | ||||||||||
<TransportationRequest> <Item> <WidthMeasure unitCode="MMT"> | ProductWidth | Map as-is. | ||||||||||
<TransportationRequest> <Item> <HeightMeasure unitCode="MMT"> | ProductHeight | Map as-is. | ||||||||||
<TransportationRequest> <Item> <RequestedPickupDateTimePeriod> <StartDateTime> | DateAvailable | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestPickupState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <Item> <RequestedPickupDateTimePeriod> <EndDateTime> | DateAvailable | As Above. | ||||||||||
<TransportationRequest> <Item> <RequestedDeliveryDateTimePeriod> <StartDateTime> | RequiredDeliveryDate (from header) | The information passed in the interface will be in the format ddmmyyyyhhmmss. The time expressed will be in the time zone of the field ManifestPickupState (which will be an abbreviation of an Australian State). This time needs to be converted in UTC time zone and expressed in the format CCYY-MM-DDThh:mm:ss(.sss)(Z) | ||||||||||
<TransportationRequest> <Item> <RequestedDeliveryDateTimePeriod> <StartDateTime> | RequiredDeliveryDate (from header) | As Above. | ||||||||||
<TransportationRequest> <Item> <Product> <InternalID> | ObjectId | Map as-is. | ||||||||||
<TransportationRequest> <Item> <Product> <TypeCode> | - | This can be defaulted to ‘1’. | ||||||||||
<TransportationRequest> <Item> <BaseBusinessTransactionDocumentReference> <ID> | PrimaryRefNumber | Map as-is. | ||||||||||
<TransportationRequest> <Item> <BaseBusinessTransactionDocumentReference> <TypeCode> | - | Can be defaulted to ‘1122’. | ||||||||||
<TransportationRequest> <Item> <BaseBusinessTransactionDocumentReference> <ItemID> | - | Use the same number as the Item currently described (<TransportationRequest> <Item> <ID>) | ||||||||||
<TransportationRequest> <Item> <BaseBusinessTransactionDocumentReference> <ItemTypeCode> | - | This can be defaulted to ‘001’ | ||||||||||
|
|
| ||||||||||
SPECIAL PROCESSING RULES | ||||||||||||
| ||||||||||||
UNUSED FIELDS (Fields from the inbound interface that are not input in any field in SAP TM)/ | ||||||||||||
OLD Interface xml file | NEW Interface xml file |
| ||||||||||
Movement_cost |
|
| ||||||||||
Manifest_volume_mt3 | GrossVolumeTransportationQuantity |
| ||||||||||
Manifest_kg | GrossWeightTransportationQuantity |
| ||||||||||
Manifest_pickup_code | ShipFromLocation |
| ||||||||||
Manifest_pickup_dn | ManifestPickupLoc |
| ||||||||||
Manifest_del_fdc | ManifestDeliverFdc |
| ||||||||||
No_of_objects | NumItems |
| ||||||||||
Object_Special | ObjectSpecial |
| ||||||||||
Hazmat_code | HazmatCode |
| ||||||||||
Untpt_code | UnDgCode |
|