0% found this document useful (0 votes)
26 views32 pages

CXML To OAG Mappings

Uploaded by

vky01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views32 pages

CXML To OAG Mappings

Uploaded by

vky01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

cXML to OAG Acknowledge PO Mapping

cXML Tags OAG Tags Comments


ACKNOWLEDGE_PO_008.CNTROLAREA

CNTROLAREA.DATETIME
TIMESTAMP parameter passed from Hub server
cXML/Request/ConfirmationRequest/OrderRefer CNTROLAREA.SENDER.REFERENCEID
ence/DocumentReference/@payloadID
ACKNOWLEDGE_PO_008.DATAAREA.ACKNOWLEDGE_PO.
POORDERHDR
/cXML/Request/ConfirmationRequest
ConfirmationRequest/<ConfirmationHeader POORDERHDR.DATETIME
noticeDate=>
ConfirmationRequest/ConfirmationHeader/Total/ POORDERHDR.OPERAMT(EXTENDED).VALUE
Money
ConfirmationRequest/ConfirmationHeader/Total/ POORDERHDR.OPERAMT(EXTENDED).CURRENCY
<Money currency=>
ConfirmationRequest/<OrderReference POORDERHDR.POID
orderID=>
POORDERHDR.POTYPE="RELEASE" If the Extrinsic tag with
attribute name value to
"RELEASE" is present in
ConfirmationHeader tag, then
ConfirmationRequest/ConfirmationHeader/Extrin POORDERHDR.POTYPE="STANDARD" POTYPE="RELEASE"
sic[name='RELEASE' or NONE]
ConfirmationRequest/ConfirmationHeader/Extrin POORDERHDR.PORELEASE
sic[name='RELEASE' ]
ConfirmationRequest/OrderReference/<Docume POORDERHDR.ACKHEADER.SENDER.REFERENCEID
ntReference payloadID =>
ConfirmationRequest/<ConfirmationHeader type POORDERHDR.ACKHEADER.ACKCODE="0" If ConfirmationHeader type
='accept'>
='accept' then ACKCODE is 0

If ConfirmationHeader type
='detail' or 'allDetail' or 'except'
ConfirmationRequest/<ConfirmationHeader type POORDERHDR.ACKHEADER.ACKCODE="1" then ACKCODE is 1
='detail' or 'allDetail' or 'except'>
If ConfirmationHeader type
ConfirmationRequest/<ConfirmationHeader type POORDERHDR.ACKHEADER.ACKCODE="2" ='reject' then ACKCODE is 2
='reject'>
ConfirmationRequest/ConfirmationHeader/Com POORDERHDR.ACKHEADER.NOTES
ments
ACKNOWLEDGE_PO_008.DATAAREA.ACKNOWLEDGE_PO.
/cXML/Request/ConfirmationRequest/Confirmati POORDERLIN
onItem
POORDERLIN.QUANTITY(ORDERED).VALUE If quantity is X.Y type, XY goes
<ConfirmationItem quantity=> under VALUE tag and number
of decimal digits goes under
POORDERLIN.QUANTITY(ORDERED).NUMOFDEC NUMOFDEC tag
<ConfirmationItem quantity=>
SIGN is "-" if quantity is
POORDERLIN.QUANTITY(ORDERED).SIGN="+" or "-" negative. Else its "+".
<ConfirmationItem quantity=>
POORDERLIN.QUANTITY(ORDERED).UOM
ConfirmationItem/UnitOfMeasure
POORDERLIN.OPERAMT(UNIT).VALUE OPERAMT OAG tag gets
populated from
ConfirmationStatus/UnitPrice if
it exists. Else, it gets populated
ConfirmationItem/ConfirmationStatus/UnitPrice/ from
Money OR
ItemIn/ItemDetail/UnitPrice. If
ConfirmationItem/ConfirmationStatus/ItemIn/Ite
mDetail/UnitPrice/Money POORDERLIN.OPERAMT(UNIT)..NUMOFDEC Money is X.Y type, XY goes
under VALUE tag and number
of decimal digits goes under
NUMOFDEC part

If ConfirmationStatus/UnitPrice
exists, then
OPERAMT.CURRENCY comes
from UnitPrice/Money
attribute 'currency'. Else, it
comes from the same attribute
ConfirmationItem/ConfirmationStatus/UnitPrice/ in tag
<Money currency=> OR ItemIn/ItemDetail/UnitPrice/M
ConfirmationItem/ConfirmationStatus/ItemIn/Ite POORDERLIN.OPERAMT(UNIT).CURRENCY oney
mDetail/UnitPrice/< Money currency =>
If ConfirmationStatus/UnitPrice
exists, then OPERAMT.UOM
comes from
ConfirmationStatus/UnitOfMea
ConfirmationItem/ConfirmationStatus/UnitOfMe sure. Else, it comes from
asure OR ItemIn/ItemDetail/UnitOfMeas
ConfirmationStatus/ItemIn/ItemDetail/UnitOfMe POORDERLIN.OPERAMT(UNIT).UOM ure
asure
ConfirmationItem/ConfirmationStatus/Extrinsic[ POORDERLIN.POLINENUM
@name='LINENUM']
ConfirmationItem/ConfirmationStatus/ItemIn/Ite POORDERLIN.ITEMX
mID/SupplierPartID
If type = 'accept' then
ACKCODE is 0, if type = 'detail'
or 'allDetail' or except' then
ACKCODE is 1, if type is 'reject'
POORDERLIN.ACKLINE.ACKCODE="0" or "1" or "2" then ACKCODE is 2
ConfirmationItem/<ConfirmationStatus type =>
POORDERLIN.ACKLINE.NOTES
ConfirmationItem/ConfirmationStatus/Comments
ConfirmationItem/ConfirmationStatus/Extrinsic[ POORDERLIN.POLINESCHD.PSCLINENUM
@name='SHIPMENTNUM']
If type = 'accept' then
ACKCODE is 0, if type = 'detail'
or 'allDetail' or except' then
POORDERLIN.POLINESCHD.USERAREA.ACKCODE="0' or ACKCODE is 1, if type is 'reject'
"1" or "2" then ACKCODE is 2
ConfirmationItem/<ConfirmationStatus type =>
ConfirmationItem/<ConfirmationStatus POORDERLIN.POLINESCHD.USERAREA.DATETIME
deliveryDate =>
POORDERLIN.POLINESCHD.USERAREA.QUANTITY(ORDERE If quantity is X.Y type, XY goes
ConfirmationItem/<ConfirmationStatus D).VALUE under VALUE tag and number
quantity=> of decimal digits goes under
POORDERLIN.POLINESCHD.USERAREA.QUANTITY(ORDERE NUMOFDEC tag
ConfirmationItem/<ConfirmationStatus D).NUMOFDEC
quantity=>
POORDERLIN.POLINESCHD.USERAREA.QUANTITY(ORDERE SIGN is "-" if quantity is
ConfirmationItem/<ConfirmationStatus D).SIGN="+" or "-" negative. Else its "+".
quantity=>
cXML/Request/ConfirmationRequest/<Confirmati POORDERLIN.POLINESCHD.USERAREA.SALESORDID
onHeader invoiceID =>

cXML to OAG Process Invoice Mapping

cXML Invoice Detail Field OAG XML Field Comments


PROCESS_INVOICE_002.CNTROLAREA
<cXML>
OAG format followed to display
CNTROLAREA.DATETIME(CREATION)
<cXML timestamp => the time stamp.
CNTROLAREA.SENDER.REFERENCEID
<cXML payloadID =>
CNTROLAREA.BSR.VERB value=> Hardcoded value to "PROCESS"
<cXML verb =>
CNTROLAREA.BSR.NOUN value=> Hardcoded value to "INVOICE"
<cXML noun =>
CNTROLAREA.BSR.REVISION value=> Hardcoded value to "002"
<cXML revision =>
CNTROLAREA.SENDER.TASK Hardcoded value to "INV"
<cXML task =>
PROCESS_INVOICE_002.DATAAREA.PROCESS_INVOICE
<cXML>/<Request>/<InvoiceDetailRequest>
InvoiceDetailRequest/InvoiceDetailSummary/Subt No OAG Field
otalAmount
InvoiceDetailRequest/InvoiceDetailSummary/Subt No OAG Field
otalAmount/<Money currency=>
PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT).
VALUE If X.Y is the value of Money,
then VALUE tag will have
PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT).
InvoiceDetailRequest/InvoiceDetailSummary/Due XY.Number of decimal digits.As
Amount/<Money> NUMOFDEC
per the value of Money tag the
PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT). SIGN tag is populated
SIGN = "+" or "-"

PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT).
InvoiceDetailRequest/InvoiceDetailSummary/Due
Amount/<Money currency= > CURRENCY

PROCESS_INVOICE.INVHEADER.AMOUNT(DOCUMENT). Comes only when DueAmount


VALUE is not populated.OAG
InvoiceDetailRequest/InvoiceDetailSummary/Net
Amount/<Money> PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT). CURRENCY maps from the
NUMOFDEC currency attribute value.
PROCESS_INVOICE.INVHEADER. AMOUNT(DOCUMENT).
SIGN = "+" or "-"

PROCESS_INVOICE.INVHEADER.AMOUNT(DOCUMENT).
InvoiceDetailRequest/InvoiceDetailSummary/Net
Amount/<Money currency= > CURRENCY

InvoiceDetailRequest/<InvoiceDetailRequestHead PROCESS_INVOICE.INVHEADER.DATETIME
er invoiceDate =>
InvoiceDetailRequest/<InvoiceDetailRequestHead PROCESS_INVOICE.INVHEADER.DOCUMENTID
er invoiceID =>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER.DESCRIPTN
r/Comments
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER.PARTNER
r/InvoicePartner
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER. NAME
r/InvoicePartner/<Contact where PARTNRTYPE = “Supplier”
role="remitTo">/<Name>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER.CONTACT. This is for PARTNRTYPE
r/InvoicePartner/<Contact NAME where PARTNRTYPE = “Supplier” Supplier
role="remitTo">/<PostalAddress>/<DeliverTo>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER.PARTNRID
r/InvoicePartner/<Contact role="remitTo" where PARTNRTYPE = “Supplier”
addressID=>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER. NAME
r/InvoicePartner/<Contact where PARTNRTYPE = “Shipto”
role="ShipTo">/<Name>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER.PARTNRID
r/InvoicePartner/<Contact role="ShipTo" where PARTNRTYPE = “ShipTo”
This is for PARTNRTYPE ShipTo
addressID=>
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER.PARTNER.PARTNRIDX
r/<Extrinsic name="SHIPTOPARTNRIDX">
InvoiceDetailRequest/InvoiceDetailRequestHeade PROCESS_INVOICE.INVHEADER. PARTNER.CONTACT.
r/InvoicePartner/<Contact NAME where PARTNRTYPE = “ShipTo"
role="ShipTo">/<PostalAddress>/<DeliverTo>
PROCESS_INVOICE.INVCHARGE where CHARGETYPE =
InvoiceDetailRequest/InvoiceDetailSummary/Ship
pingAmount “FREIGHT”

PROCESS_INVOICE.INVCHARGE. AMOUNT The cXML tag ShippingAmount


(EXTENDED).VALUE goes into INVCHARGE of
CHARGETYPE "FREIGHT".
PROCESS_INVOICE.INVCHARGE. AMOUNT NUMOFDEC is the number of
InvoiceDetailRequest/InvoiceDetailSummary/Ship
pingAmount/<Money> (EXTENDED).NUMOFDEC decimals in Money tag. VALUE
is the value of Money without
PROCESS_INVOICE.INVCHARGE. AMOUNT decimal. SIGN is + or - based on
(EXTENDED).SIGN="+" or "-" the Money
PROCESS_INVOICE.INVCHARGE. AMOUNT
InvoiceDetailRequest/InvoiceDetailSummary/Ship
pingAmount/<Money currency => (EXTENDED).CURRENCY

PROCESS_INVOICE.INVCHARGE where CHARGETYPE =


InvoiceDetailRequest/InvoiceDetailSummary/Spe
cialHandlingAmount "MISCELLANEOUS" The cXML tag
PROCESS_INVOICE.INVCHARGE. SpecialHandlingAmount goes
AMOUNT(EXTENDED).VALUE into INVCHARGE of
CHARGETYPE
PROCESS_INVOICE.INVCHARGE.AMOUNT(EXTENDED).NU "MISCELLANEOUS".
InvoiceDetailRequest/InvoiceDetailSummary/Spe
cialHandlingAmount/<Money> MOFDEC NUMOFDEC is the number of
decimals in Money tag. VALUE
PROCESS_INVOICE.INVCHARGE. is the value of Money without
AMOUNT(EXTENDED).SIGN decimal. SIGN is + or - based on
PROCESS_INVOICE.INVCHARGE.AMOUNT(EXTENDED).CU the Money
InvoiceDetailRequest/InvoiceDetailSummary/Spe
cialHandlingAmount/<Money currency= > RRENCY
If this
/cXML/Request/InvoiceDetailR
equest/InvoiceDetailOrder/Inv
PROCESS_INVOICE.INVTAX oiceDetailItem/Tax tag is not
InvoiceDetailRequest/InvoiceDetailSummary/Tax
present, the current Tax tag is
used to fill the OAG value else
it is ignored.

PROCESS_INVOICE.INVTAX.AMOUNT(TAX).VALUE

PROCESS_INVOICE.INVTAX.AMOUNT(TAX).NUMOFDEC If there are no Tax/TaxDetail,


InvoiceDetailRequest/InvoiceDetailSummary/Tax/ INVTAX comes only once with
<Money> PROCESS_INVOICE.INVTAX.AMOUNT(TAX).SIGN = "+" or these mappings.VALUE is value
"-" of Money tag without decimal.
NUMOFDEC is the number of
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.AMOUNT(TAX).CURRENCY
decimal digits.
<Money currency =>
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.DESCRIPTN
Description
PROCESS_INVOICE.INVTAX.AMOUNT(TAX).VALUE

PROCESS_INVOICE.INVTAX.AMOUNT(TAX).NUMOFDEC
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ If there is Tax/TaxDetail, for
<Money> PROCESS_INVOICE.INVTAX.AMOUNT(TAX).SIGN = "+" or every TaxDetail, these set of
"-" tags repeat.
AMOUNT(TAXBASE) would
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.AMOUNT(TAX).CURRENCY come only if there is
<Money currency => TaxableAmount under
PROCESS_INVOICE.INVTAX.AMOUNT(TAXBASE).VALUE
TaxDetail tag.
InvoiceDetailRequest/InvoiceDetailSummary/Tax/
PROCESS_INVOICE.INVTAX.AMOUNT(TAXBASE).NUMOFD
TaxDetail/TaxableAmount/<Money>
EC
PROCESS_INVOICE.INVTAX.AMOUNT(TAXBASE).SIGN="+"
or "-"

PROCESS_INVOICE.INVTAX.AMOUNT(TAXBASE).CURRENC
InvoiceDetailRequest/InvoiceDetailSummary/Tax/
TaxDetail/TaxableAmount/<Money currency => Y

InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.QUANTITY(PERCENT)
TaxDetail/<TaxDetail percentageRate =>
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.DESCRIPTN
Description
InvoiceDetailRequest/InvoiceDetailSummary/Tax/ PROCESS_INVOICE.INVTAX.TAXCODE
<TaxDetail category=>
No OAG Field
<InvoiceDetailHeaderIndicator>
<InvoiceDetailLineIndicator isTaxInLine= No OAG Field
isShippingInLine= isAccountingInLine= >
/cXML/Request/InvoiceDetailRequest/InvoiceDe PROCESS_INVOICE.INVLINE
tailHeaderOrder
INVLINE. AMOUNT(EXTENDED). VALUE VALUE has value of Money tag
without decimal. NUMOFDEC
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE. AMOUNT(EXTENDED). NUMOFDEC has the total number of
mmary/NetAmount/<Money> decimal digits. SIGN is + or - as
INVLINE. AMOUNT(EXTENDED). SIGN = "+" or "-" per the value.

InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE. AMOUNT(EXTENDED). CURRENCY


mmary/NetAmount/<Money currency =>
INVLINE. AMOUNT(EXTENDED). VALUE
These tags come only if
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE. AMOUNT(EXTENDED). NUMOFDEC
NetAmount doesn’t exist in the
mmary/SubtotalAmount/<Money>
INVLINE. AMOUNT(EXTENDED). SIGN = "+" or "-" cXML file. In which case,
SubtotalAmount is used.
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE. AMOUNT(EXTENDED). CURRENCY
mmary/SubtotalAmount/<Money currency =>
InvoiceDetailHeaderOrder/<InvoiceDetailOrderSu INVLINE. LINENUM
mmary invoiceLineNumber =>
If
InvoiceDetailOrderHeader/Invo
iceDetailOrderInfo[OrderIDInfo
] exists then this value is taken
else
InvoiceDetailOrderHeader/Invo
iceDetailOrderInfo/OrderRefer
ence[@orderID] value is taken.
In other words: The buyer’s
InvoiceDetailHeaderOrder/InvoiceDetailOrderInfo INVLINE.DOCUMENTREF.DOCUMENTID purchase order number is
/OrderReference[@orderID] checked first from the
occurrence of
OrderIDInfo, if this is not part
of a sequence then it must be
obtained from
<OrderReference orderID=
>.The OrderReference or
OrderIDInfo must be present
for processing.

InvoiceDetailHeaderOrder/InvoiceDetailOrderInfo
[OrderIDInfo]
If Tax tag exists under
InvoiceDetailOrderSummary
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX
mmary[Tax] tag then there will be INVTAX
under INVLINE.

INVLINE.INVTAX.AMOUNT(TAX).VALUE If TaxDetail doesn’t exist under


InvoiceDetailHeaderOrder/InvoiceDetailOrderSu
mmary/Tax/<Money> INVLINE.INVTAX.AMOUNT(TAX).NUMOFDEC Tax tag, INVTAX occurs only
once. VALUE is value of Money
INVLINE.INVTAX.AMOUNT(TAX).SIGN = "+" or "-" tag without decimal.
NUMOFDEC is the number of
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX.AMOUNT(TAX).CURRENCY decimal digits.
mmary/Tax/<Money currency=>
INVLINE.INVTAX.AMOUNT(TAX).VALUE

InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX.AMOUNT(TAX).NUMOFDEC
mmary/Tax/<Money>
INVLINE.INVTAX.AMOUNT(TAX).SIGN = "+" or "-"

InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX.AMOUNT(TAX).CURRENCY
mmary/Tax/<Money currency =>
INVLINE.INVTAX.AMOUNT(TAXBASE).VALUE
If TaxDetail exists, then these
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu set of tags repeat for every
INVLINE.INVTAX.AMOUNT(TAXBASE).NUMOFDEC
mmary/Tax/<TaxDetail>/<TaxableAmount>/<Mo TaxDetail tag.
ney>
INVLINE.INVTAX.AMOUNT(TAXBASE).SIGN= "+" or "-"

InvoiceDetailHeaderOrder/InvoiceDetailOrderSu
INVLINE.INVTAX.AMOUNT(TAXBASE).CURRENCY
mmary/Tax/<TaxDetail>/<TaxableAmount>/<Mo
ney currency =>
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX.QUANTITY(PERCENT)
mmary/Tax/<TaxDetail percentageRate =>
InvoiceDetailHeaderOrder/InvoiceDetailOrderSu INVLINE.INVTAX.TAXCODE
mmary/Tax/TaxDetail category=>
/cXML/Request/InvoiceDetailRequest/InvoiceDe PROCESS_INVOICE.INVLINE
tailOrder/InvoiceDetailItem
INVLINE.AMOUNT(EXTENDED).VALUE
InvoiceDetailItem/NetAmount/<Money>
INVLINE.AMOUNT(EXTENDED).NUMOFDEC
INVLINE.AMOUNT(EXTENDED).SIGN="+" or "-"

InvoiceDetailItem/NetAmount/<Money INVLINE.AMOUNT(EXTENDED).CURRENCY
currency=>
INVLINE.AMOUNT(EXTENDED).VALUE
If NetAmount is not present,
INVLINE.AMOUNT(EXTENDED).NUMOFDEC
InvoiceDetailItem/SubtotalAmount/<Money> then AMOUNT(EXTENDED) is
INVLINE.AMOUNT(EXTENDED).SIGN="+" or "-" populated from
SubtotalAmount
InvoiceDetailItem/SubtotalAmount/<Money INVLINE.AMOUNT(EXTENDED).CURRENCY
currency=>
OPERAMT qualifier="UNIT"
INVLINE.OPERAMT(UNIT).VALUE
InvoiceDetailItem/UnitPrice/<Money currency => type="T"

If the corresponding cXML tag


INVLINE.OPERAMT(UNIT).UOMVALUE = "1" exists, this value is hardcoded
InvoiceDetailItem/UnitPrice/Money
to 1

If the corresponding cXML tag


INVLINE.OPERAMT(UNIT).UOMNUMDEC = "0" exists, this value is hardcoded
InvoiceDetailItem/UnitPrice/Money
to 0

quantity attribute value of


INVLINE.QUANTITY(ITEM).VALUE InvoiceDetailItem tag is passed
<InvoiceDetailItem quantity =>
to QUANTITY.VALUE

invoiceLineNumber attribute
INVLINE.LINENUM value of InvoiceDetailItem tag
<InvoiceDetailItem invoiceLineNumber =>
is passed to INVLINE.LINENUM

InvoiceDetailItem/InvoiceDetailItemReference/De INVLINE.DESCRIPTN
scription
InvoiceDetailItem/InvoiceDetailItemReference/Ite INVLINE.ITEMX
mID/SupplierPartID
INVLINE.UNIT
InvoiceDetailItem/UnitOfMeasure
INVLINE.USERAREA
InvoiceDetailItem/Extrinsic
For every
Extrinsic('PRINVNUM') there
will be one
InvoiceDetailItem/<Extrinsic INVLINE.USERAREA.<ORACLE.PRINVNUM> <ORACLE.PRINVNUM> tag in
name="PRINVNUM"> OAG. All ORACLE.PRINVNUM
will be under a single
USERAREA.

For every Extrinsic('PRIFLAG')


there will be one
INVLINE.USERAREA.<ORACLE.PRIFLAG> <ORACLE.PRIFLAG> tag in OAG.
InvoiceDetailItem/<Extrinsic name="PRIFLAG">
All ORACLE.PRIFLAG will be
under a single USERAREA.

InvoiceDetailOrder/InvoiceDetailOrderInfo/OrderI All these tags are filled only if


DInfo/@orderID INVLINE.DOCUMENTREF.DOCUMENTID InvoiceDetailOrder/InvoiceDeta
InvoiceDetailOrder/InvoiceDetailOrderInfo/Order ilOrderInfo[OrderIDInfo] or
Reference[@orderID]
InvoiceDetailOrder/InvoiceDeta
ilOrderInfo/OrderReference[@
InvoiceDetailOrder/InvoiceDetailItem/<InvoiceDe INVLINE.DOCUMENTREF.LINENUM orderID] exists. DOCUMENTID
tailItemReference lineNumber => gets its value from
InvoiceDetailOrderInfo/OrderID
Info/@orderID if it exists else
InvoiceDetailOrder/InvoiceDetailItem/InvoiceDet
INVLINE.DOCUMENTREF.SCHLINENUM from
ailItemReference/Extrinsic[@name='SCHLINENU
M'] InvoiceDetailOrderInfo/OrderR
eference/@orderID

INVLINE.INVTAX.AMOUNT(TAX).VALUE

INVLINE.INVTAX.AMOUNT(TAX).NUMOFDEC If there is no Tax/TaxDetail,


InvoiceDetailItem/Tax/<Money>
INVTAX comes only once with
INVLINE.INVTAX.AMOUNT(TAX).SIGN="+" or "-" AMOUNT(TAX)

INVLINE.INVTAX.AMOUNT(TAX).CURRENCY
InvoiceDetailItem/Tax/<Money currency=>
INVLINE.INVTAX.AMOUNT(TAX).VALUE

INVLINE.INVTAX.AMOUNT(TAX).NUMOFDEC
InvoiceDetailItem/Tax/<Money>
INVLINE.INVTAX.AMOUNT(TAX).SIGN="+" or "-"
If there is Tax/TaxDetail, for
INVLINE.INVTAX.AMOUNT(TAX).CURRENCY
Invoice/DetailItem/Tax/<Money currency => every TaxDetail tag, INVTAX is
Invoice/DetailItem/Tax/TaxableAmount/<Money INVLINE.INVTAX.AMOUNT(TAXBASE).VALUE repeated with these set of OAG
currency => tags
Invoice/DetailItem/Tax/<TaxDetail INVLINE.INVTAX.QUANTITY(PERCENT)
percentageRate =>
INVLINE.INVTAX.DESCRIPTN
InvoiceDetailItem/Tax/<TaxDetail purpose =>
INVLINE.INVTAX.TAXCODE
InvoiceDetailItem/Tax/<TaxDetail category =>

OAG to cXML PO Mapping

cXML Tag Comments


OAG Tag
cXML
PROCESS_PO_007
<cXML version ='1.2.007'> Our current version.

Comes from CONTROL_NUMBER variable


<cXML payloadID=>
passsed by Hub server.

Comes from TIMESTAMP variable passed by Hub


<cXML timestamp=>
server.

Comes from SENDER_ID_TYPE variable passed


cXML/Header/From/<Credential domain=>
by Hub server.

Comes from SENDER_ID variable passed by Hub


cXML/Header/From/Credential/Identity
server.

Comes from RECEIVER_ID_TYPE variable passed


cXML/Header/To/<Credential domain=>
by Hub server.

Comes from RECEIVER_ID variable passed by


cXML/Header/To/Credential/Identity
Hubserver

cXML/Header/Sender/<Credential Comes from RECEIVER_USERNAME variable


domain="OracleSN">/Identity passed by Hubserver

cXML/Header/Sender/<Credential Comes from RECEIVER_PASSWORD variable


domain="OracleSN">/SharedSecret passed by Hubserver

cXML/Header/Sender/UserAgent = 'Oracle
Supplier Network'

<cXML>/<Request>/<OrderRequest>/<OrderRe
DATAAREA/PROCESS_PO/POORDERHDR/ questHeader>

<OrderRequestHeader orderID=>
POORDERHDR/POID
<OrderRequestHeader orderDate=>
POORDERHDR/DATETIME
If POTYPE is 'RELEASE' then orderType is set to
'release'. If POTYPE is 'STANDARD' then
<OrderRequestHeader orderType=> orderType is set to 'regular'. In all other cases
POORDERHDR/POTYPE the value of orderType is set to same value as
POTYPE

These two values are filled for


<OrderRequestHeader type='new'>
POTYPE='RELEASE' only.

DATAAREA/PROCESS_PO/POORDERLIN/USERAR <OrderRequestHeader agreementID=>


EA/CONTRACTPONUM
OrderRequestHeader/Total/<Money currency=>
POORDERHDR/OPERAMT/CURRENCY
OrderRequestHeader/Total/Money
POORDERHDR/OPERAMT/VALUE

POORDERHDR/OPERAMT/NUMOFDEC
Generate the ShipTo segment from the first
DATAAREA/PROCESS_PO/POORDERLIN[1]/POLI OrderRequestHeader/ShipTo
NESCHD[1] schedule line in the first order line

POLINESCHD/USERAREA/PARTNER/ADDRESS/CO ShipTo/<Address isoCountryCode=>


UNTRY
ShipTo/<Address addressID=>
POLINESCHD/USERAREA/PARTNER/PARTNRIDX
ShipTo/Address/<Name xml:lang="en">
POLINESCHD/USERAREA/PARTNER/NAME
If
POLINESCHD/USERAREA/DISTPROJECT/REQUEST ShipTo/Address/PostalAddress/DeliverTo POLINESCHD/USERAREA/DISTPROJECT/REQUEST
OR OR is null then the value of DeliverTo gets
populated from
POORDERLIN/USERAREA/REQUESTOR

POORDERLIN/USERAREA/REQUESTOR

POLINESCHD/USERAREA/PARTNER/ADDRESS/AD ShipTo/Address/PostalAddress/Street For each ADDRLINE, <Street> tag gets repeated.


DRLINE
POLINESCHD/USERAREA/PARTNER/ADDRESS/CIT ShipTo/Address/PostalAddress/City
Y
POLINESCHD/USERAREA/PARTNER/ADDRESS/ST ShipTo/Address/PostalAddress/State
ATEPROVN
POLINESCHD/USERAREA/PARTNER/ADDRESS/PO ShipTo/Address/PostalAddress/PostalCode
STALCODE
ShipTo/Address/PostalAddress/<Country
POLINESCHD/USERAREA/PARTNER/ADDRESS/CO isoCountryCode =>
UNTRY
ShipTo/Address/PostalAddress/Country

ShipTo/Address/PostalAddress/Email
POLINESCHD/USERAREA/DISTPROJECT/EMAIL
ShipTo/Address/PostalAddress/Phone/Telephon
POLINESCHD/USERAREA/PARTNER/ADDRESS/CO Value is converted into a country code.
UNTRY eNumber/<CountryCode isoCountryCode =>

ShipTo/Address/PostalAddress/Phone/Telephon
POLINESCHD/USERAREA/DISTPROJECT/TELEPHO
NE eNumber/Number

DATAAREA/PROCESS_PO/POORDERHDR/PART OrderRequestHeader/BillTo
NER[PARTNRTYPE = 'BillTo']/
PARTNER[PARTNRTYPE = BillTo/<Address isoCountryCode =>
'BillTo']/ADDRESS/COUNTRY
BillTo/<Address addressID =>
PARTNER[PARTNRTYPE = 'BillTo']/PARTNRIDX
PARTNER[PARTNRTYPE = BillTo/Address/Name
'BillTo']/ADDRESS/DESCRIPTN
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/Street For each ADDRLINE, the <Street> tag will repeat.
'BillTo']/ADDRESS/ADDRLINE
BillTo/Address/PostalAddress/City
PARTNER[PARTNRTYPE = 'BillTo']/ADDRESS/CITY
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/State
'BillTo']/ADDRESS/STATEPROVN
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/PostalCode
'BillTo']/ADDRESS/POSTALCODE
BillTo/Address/PostalAddress/<Country
PARTNER[PARTNRTYPE = isoCountryCode =>
'BillTo']/ADDRESS/COUNTRY
BillTo/Address/PostalAddress/Country

PARTNER[PARTNRTYPE = BillTo/Address/Email
'BillTo']/CONTACT/EMAIL
BillTo/Address/Phone/TelephoneNumber/<Coun
PARTNER[PARTNRTYPE =
'BillTo']/ADDRESS/COUNTRY tryCode isoCountryCode=>

BillTo/Address/Phone/TelephoneNumber/Numb
PARTNER[PARTNRTYPE =
'BillTo']/ADDRESS/TELEPHONE er

BillTo/Address/Fax/TelephoneNumber/<Country
PARTNER[PARTNRTYPE = Code isoCountryCode=>
'BillTo']/ADDRESS/COUNTRY
BillTo/Address/Fax/TelephoneNumber/<Number
Hardcoded value
='FAX'>

Getting the PARTNER node where the type is


DATAAREA/PROCESS_PO/POORDERHDR/PART OrderRequestHeader/Shipping
NER[PARTNRTYPE = 'Carrier'] 'Carrier'

POORDERHDR/PARTNER[PARTNRTYPE = <Shipping trackingDomain=>


'Carrier']/NAME
Shipping/<Money currency =>
POORDERHDR/OPERAMT/CURRENCY
POORDERHDR/PARTNER[PARTNRTYPE = Shipping/<Description xml:lang='en'>
'Carrier']/NAME
For each PCARDHDR, PCard in cXML gets
DATAAREA/PROCESS_PO/POORDERHDR/USER OrderRequestHeader/Payment/<PCard>
AREA/PCARDHDR repeated

<PCard number=>
PCARDHDR/PCARDNUM
<PCard expiration=> Date is printed in standard cXML format
PCARDHDR/DATETIME
<PCard name=>
PCARDHDR/PCARDBRAND
DATAAREA/PROCESS_PO/POORDERHDR/PART OrderRequestHeader/<Contact role='buyer'>
NER[PARTNRTYPE = 'SoldTo']/CONTACT
PARTNER[PARTNRTYPE = Contact/Name
'SoldTo']/CONTACT/NAME
PARTNER[PARTNRTYPE = Contact/PostalAddress/Street For each ADDRLINE, Street tag gets repeated.
'SoldTo']/ADDRESS/ADDRLINE
PARTNER[PARTNRTYPE = Contact/PostalAddress/City
'SoldTo']/ADDRESS/CITY
PARTNER[PARTNRTYPE = Contact/PostalAddress/State
'SoldTo']/ADDRESS/STATEPROVN
PARTNER[PARTNRTYPE = Contact/PostalAddress/PostalCode
'SoldTo']/ADDRESS/POSTALCODE
Contact/PostalAddress/<Country
PARTNER[PARTNRTYPE = isoCountryCode =>
'SoldTo']/ADDRESS/COUNTRY
Contact/PostalAddress/Country

PARTNER[PARTNRTYPE = Contact/Email
'SoldTo']/CONTACT/EMAIL
Contact/Phone/TelephoneNumber/<CountryCod
PARTNER[PARTNRTYPE =
'SoldTo']/ADDRESS/COUNTRY e isoCountryCode =>
PARTNER[PARTNRTYPE = Contact/Phone/TelephoneNumber/Number
'SoldTo']/CONTACT/TELEPHONE
DATAAREA/PROCESS_PO/POORDERHDR/DESC OrderRequestHeader/Comments
RIPTN
DATAAREA/PROCESS_PO/POORDERHDR/ATTCH Comments/Attachment For each ATTCHREF, Attachment repeats
REF
For each URI under ATTCHREF, cXML tag URL
Comments/Attachment/URL
POORDERHDR/ATTCHREF/URI repeats under Attachment tag

For each FILENAME tag under ATTCHREF, cXML


Comments/Attachment/URL tag URL repeats with "CID:" concatenated to the
POORDERHDR/ATTCHREF/FILENAME
filename.

OrderRequestHeader/<Extrinsic
DATAAREA/PROCESS_PO/POORDERHDR/ACKRE
QUEST name="ACKREQD">

OrderRequestHeader/<Extrinsic This Extrinsic cXML tag appears only if the


DATAAREA/PROCESS_PO/POORDERHDR/USERA
REA/DATETIME[@qualifier='APPREQ'] name="ACKBYDATE"> DATETIME[@qualifier='APPREQ'] exisits

OrderRequestHeader/<Extrinsic
DATAAREA/PROCESS_PO/POORDERHDR/USERA
REA/TANDC name="TANDC">

OrderRequestHeader/<Extrinsic
DATAAREA/PROCESS_PO/POORDERHDR/PORELE
ASE name="RELEASENUM">

OrderRequestHeader/<Extrinsic
DATAAREA/PROCESS_PO/POORDERHDR/USERA In ATTRIBUTEx, x varies from 1 to 16
REA/DFFPOHEADER/ATTRIBUTEx name="ATTRIBUTEx">

The attribute index of OAG tag NOTES gets


OrderRequestHeader/<Extrinsic
DATAAREA/PROCESS_PO/POORDERHDR/<NOTE concatenated to "NOTES_". Also, Extrinsic tag
S index='X'> name="NOTES_X">
repeats for every OAG NOTES tag.
DATAAREA/PROCESS_PO/POORDERLIN/POLINE cXML/Request/OrderRequest/ItemOut For each POLINESCHD, ItemOut tag repeats.
SCHD
The OAG tag values of POLINENUM and
<ItemOut lineNumber=> PSCLINENUM are concatenated together by
POORDERLIN/POLINESCHD/PSCLINENUM
separating string as '0'.

POORDERLIN/POLINENUM
<ItemOut quantity=>
POLINESCHD/QUANTITY/VALUE

POLINESCHD/QUANTITY/NUMOFDEC
This attribute appears only if
DATAAREA/PROCESS_PO/POORDERHDR/POORD <ItemOut agreementItemNumber=>
ERLIN/ITEMX POORDERHDR/POTYPE='RELEASE'

<ItemOut requestedDeliveryDate=> Timestamp is printed in the cXML format.


POLINESCHD/DATETIME

ItemOut/ItemID/SupplierPartID
POORDERLIN/ITEMX
ItemOut/ItemID/SupplierPartAuxiliaryID
POORDERLIN/USERAREA/CONFIGID
ItemOut/ItemDetail/UnitPrice/<Money currency
POLINESCHD/USERAREA/OPERAMT/CURRENCY =>

POLINESCHD/USERAREA/OPERAMT[@qualifier=' ItemOut/ItemDetail/UnitPrice/Money
UNIT' and @type='T']/VALUE
POLINESCHD/USERAREA/OPERAMT[@qualifier='
UNIT' and @type='T']/NUMOFDEC
ItemOut/ItemDetail/Description
POORDERLIN/DESCRIPTN
ItemOut/ItemDetail/UnitOfMeasure
POORDERLIN/QUANTITY/UOM

POORDERLIN/POLINENUM ItemOut/ItemDetail/<Extrinsic
name="LINENUM">

ItemOut/ItemDetail/<Extrinsic
POLINESCHD/PSCLINENUM name="SHIPMENTNUM">

ItemOut/ItemDetail/<Extrinsic
POORDERLIN/ITEM name="BUYERPARTNUM">

ItemOut/ItemDetail/<Extrinsic LINEATTRIBUTE1 to LINEATTRIBUTE16 are


POORDERLIN/USERAREA/DFFLINE/ATTRIBUTEx name="LINEATTRIBUTEx"> mapped to corresponding Extrinsic cXML tags.

ItemOut/ItemDetail/<Extrinsic ATTRIBUTE1 to ATTRIBUTE16 are mapped to


POLINESCHD/USERAREA/DISTPROJECT/DFFDISTR
IBUTN/ATTRIBUTEx name="ATTRIBUTEx"> corresponding Extrinsic cXML tags.

ItemOut/ItemDetail/<Extrinsic
POORDERLIN/POLINESCHD/USERAREA/DROPSHI
PDETAILS/DROPSHIPCUSTNAME name="DROPSHIP_CUSTOMERNAME">

The attribute index of OAG tag NOTES gets


ItemOut/ItemDetail/<Extrinsic
concatenated to "NOTES_". Also, Extrinsic tag
POORDERLIN/<NOTES index='X'> name="NOTES_X">
repeats for every OAG NOTES tag.

ItemOut/SupplierList/Supplier/<Name
DATAAREA/PROCESS_PO/POORDERHDR/PARTN
ER[PARTNRTYPE = 'Supplier']/NAME xml:lang='en'>

ItemOut/SupplierList/Supplier/Comments
POLINESCHD/USERAREA/NOTES
ItemOut/SupplierList/Supplier/<SupplierID
DATAAREA/PROCESS_PO/POORDERHDR/PARTN Hardcoded to DUMMY
ER[PARTNRTYPE = 'Supplier']/PARTNRID domain =>

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/PROCESS_PO/POORDERHDR/PARTN
ER[PARTNRTYPE = 'Supplier']/CONTACT/NAME OrderMethods/Contact/Name
ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/PROCESS_PO/POORDERHDR/PARTN
ER[PARTNRTYPE = 'Supplier']/CONTACT/EMAIL OrderMethods/Contact/Email

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/PROCESS_PO/POORDERHDR/PARTN
OrderMethods/Contact/Phone/TelephoneNumb
ER[PARTNRTYPE =
'Supplier']/ADDRESS/COUNTRY er/<CountryCode isoCountryCode =>

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/PROCESS_PO/POORDERHDR/PARTN
OrderMethods/Contact/Phone/TelephoneNumb
ER[PARTNRTYPE =
'Supplier']/CONTACT/TELEPHONE er/Number

ItemOut/Tax/<Money currency=>
POORDERLIN/OPERAMT/CURRENCY

If TAXABLE tag value is N, then category value is


ItemOut/Tax/<TaxDetail category =>
POORDERLIN/POLINESCHD/USERAREA/TAXABLE 'Non-Taxable'. Else category takes 'Taxable'.

ItemOut/Tax/<TaxDetail purpose =>


POORDERLIN/POLINESCHD/USERAREA/TAXCODE
ItemOut/Tax/TaxDetail/TaxAmount/<Money
POORDERLIN/OPERAMT/CURRENCY currency =>

For each URI under ATTCHREF, cXML tag URL


ItemOut/Comments/Attachment/URL
POORDERLIN/ATTCHREF/URI repeats under Attachment tag

For each FILENAME tag under ATTCHREF, cXML


ItemOut/Comments/Attachment/URL tag URL repeats with "CID:" concatenated to the
POORDERLIN/ATTCHREF/FILENAME
filename.

OAG to cXML Change PO Mapping


cXML Tag Comments
OAG Tag
cXML

<cXML version ='1.1.010'> Our current version.

Comes from CONTROL_NUMBER variable


<cXML payloadID=>
passsed by Hub server.

Comes from TIMESTAMP variable passed by


<cXML timestamp=>
Hub server.

Comes from SENDER_ID_TYPE variable passed


cXML/Header/From/<Credential domain=>
by Hub server.

Comes from SENDER_ID variable passed by Hub


cXML/Header/From/Credential/Identity
server.
CHANGE_PO_006
Comes from RECEIVER_ID_TYPE variable passed
cXML/Header/To/<Credential domain=>
by Hub server.

Comes from RECEIVER_ID variable passed by


cXML/Header/To/Credential/Identity
Hubserver

cXML/Header/Sender/<Credential Comes from RECEIVER_USERNAME variable


domain="OracleSN">/Identity passed by Hubserver

cXML/Header/Sender/<Credential Comes from RECEIVER_PASSWORD variable


domain="OracleSN">/SharedSecret passed by Hubserver

cXML/Header/Sender/UserAgent = 'Oracle
Supplier Network'
<cXML>/<Request>/<OrderRequest>/<OrderReq
DATAAREA/CHANGE_PO/POHEADER/ uestHeader>

type is 'update' for all values of POSTATUS


<OrderRequestHeader type=> except for CANCELLED. For CANCELLED, type is
POHEADER/POSTATUS
'delete'

<OrderRequestHeader orderID=>
POHEADER/POID
<OrderRequestHeader orderDate=>
POHEADER/DATETIME
If POTYPE is 'RELEASE' then orderType is set to
'release'. If POTYPE is 'STANDARD' then
<OrderRequestHeader orderType=> orderType is set to 'regular'. In all other cases
POHEADER/POTYPE
the value of orderType is set to same value as
POTYPE

DATAAREA/CHANGE_PO/POLINE/USERAREA/CO <OrderRequestHeader agreementID=>


NTRACTPONUM
DATAAREA/CHANGE_PO/POHEADER/USERAREA <OrderRequestHeader orderVersion=>
/REVISIONNUM + 1
OrderRequestHeader/Total/<Money currency=>
POHEADER/OPERAMT/CURRENCY
OrderRequestHeader/Total/Money
POHEADER/OPERAMT/VALUE

POHEADER/OPERAMT/NUMOFDEC
Generate the ShipTo segment from the first
DATAAREA/CHANGE_PO/POLINE[1]/SCHEDULE[ OrderRequestHeader/ShipTo
1] schedule line in the first order line

SCHEDULE/USERAREA/PARTNER/ADDRESS/COU ShipTo/<Address isoCountryCode=>


NTRY
ShipTo/<Address addressID=>
SCHEDULE/USERAREA/PARTNER/PARTNRIDX
SCHEDULE/USERAREA/PARTNER/ADDRESS/DESC ShipTo/Address/<Name xml:lang="en">
RIPTN
ShipTo/Address/PostalAddress/DeliverTo
POLINE/USERAREA/REQUESTOR
SCHEDULE/USERAREA/PARTNER/ADDRESS/ADD ShipTo/Address/PostalAddress/Street For each ADDRLINE, <Street> tag gets repeated.
RLINE
ShipTo/Address/PostalAddress/City
SCHEDULE/USERAREA/PARTNER/ADDRESS/CITY
SCHEDULE/USERAREA/PARTNER/ADDRESS/STAT ShipTo/Address/PostalAddress/State
EPROVN
SCHEDULE/USERAREA/PARTNER/ADDRESS/POST ShipTo/Address/PostalAddress/PostalCode
ALCODE
ShipTo/Address/PostalAddress/<Country
SCHEDULE/USERAREA/PARTNER/ADDRESS/COU isoCountryCode =>
NTRY
ShipTo/Address/PostalAddress/Country

ShipTo/Address/PostalAddress/Phone/Telephone
SCHEDULE/USERAREA/PARTNER/ADDRESS/COU Value is converted into a country code.
NTRY Number/<CountryCode isoCountryCode =>

ShipTo/Address/PostalAddress/Phone/Telephone
SCHEDULE/USERAREA/PARTNER/ADDRESS/TELE
PHONE Number/Number

DATAAREA/CHANGE_PO/POHEADER/PARTNER OrderRequestHeader/BillTo
[PARTNRTYPE = 'BillTo']/
PARTNER[PARTNRTYPE = BillTo/<Address isoCountryCode =>
'BillTo']/ADDRESS/COUNTRY
BillTo/<Address addressID =>
PARTNER[PARTNRTYPE = 'BillTo']/PARTNRIDX
PARTNER[PARTNRTYPE = BillTo/Address/Name
'BillTo']/ADDRESS/DESCRIPTN
For each ADDRLINE, the <Street> tag will
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/Street
'BillTo']/ADDRESS/ADDRLINE repeat.
BillTo/Address/PostalAddress/City
PARTNER[PARTNRTYPE = 'BillTo']/ADDRESS/CITY
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/State
'BillTo']/ADDRESS/STATEPROVN
PARTNER[PARTNRTYPE = BillTo/Address/PostalAddress/PostalCode
'BillTo']/ADDRESS/POSTALCODE
BillTo/Address/PostalAddress/<Country
PARTNER[PARTNRTYPE = isoCountryCode =>
'BillTo']/ADDRESS/COUNTRY
BillTo/Address/PostalAddress/Country

PARTNER[PARTNRTYPE = BillTo/Address/Email
'BillTo']/CONTACT/EMAIL
BillTo/Address/Phone/TelephoneNumber/<Count
PARTNER[PARTNRTYPE =
'BillTo']/ADDRESS/COUNTRY ryCode isoCountryCode=>

BillTo/Address/Phone/TelephoneNumber/Numbe
PARTNER[PARTNRTYPE =
'BillTo']/ADDRESS/TELEPHONE r

BillTo/Address/Fax/TelephoneNumber/<Country
PARTNER[PARTNRTYPE = Code isoCountryCode=>
'BillTo']/ADDRESS/COUNTRY
BillTo/Address/Fax/TelephoneNumber/<Number
Hardcoded value
='FAX'>

Getting the PARTNER node where the type is


DATAAREA/CHANGE_PO/POHEADER/PARTNER OrderRequestHeader/Shipping
[PARTNRTYPE = 'Carrier'] 'Carrier'

POORDERHDR/PARTNER[PARTNRTYPE = <Shipping trackingDomain=>


'Carrier']/NAME
Shipping/<Money currency =>
POHEADER/OPERAMT/CURRENCY
POORDERHDR/PARTNER[PARTNRTYPE = Shipping/<Description xml:lang='en'>
'Carrier']/NAME
For each PCARDHDR, PCard in cXML gets
DATAAREA/CHANGE_PO/POHEADER/USERARE OrderRequestHeader/Payment/<PCard>
A/PCARDHDR repeated

<PCard number=>
PCARDHDR/PCARDNUM
<PCard expiration=> Date is printed in standard cXML format
PCARDHDR/DATETIME
<PCard name=>
PCARDHDR/PCARDBRAND
DATAAREA/CHANGE_PO/POHEADER/PARTNER OrderRequestHeader/<Contact role='buyer'>
[PARTNRTYPE = 'SoldTo']/CONTACT
PARTNER[PARTNRTYPE = Contact/Name
'SoldTo']/CONTACT/NAME
PARTNER[PARTNRTYPE = Contact/PostalAddress/Street For each ADDRLINE, Street tag gets repeated.
'SoldTo']/ADDRESS/ADDRLINE
PARTNER[PARTNRTYPE = Contact/PostalAddress/City
'SoldTo']/ADDRESS/CITY
PARTNER[PARTNRTYPE = Contact/PostalAddress/State
'SoldTo']/ADDRESS/STATEPROVN
PARTNER[PARTNRTYPE = Contact/PostalAddress/PostalCode
'SoldTo']/ADDRESS/POSTALCODE
Contact/PostalAddress/<Country isoCountryCode
PARTNER[PARTNRTYPE = =>
'SoldTo']/ADDRESS/COUNTRY
Contact/PostalAddress/Country

PARTNER[PARTNRTYPE = Contact/Email
'SoldTo']/CONTACT/EMAIL
Contact/Phone/TelephoneNumber/<CountryCod
PARTNER[PARTNRTYPE =
'SoldTo']/ADDRESS/COUNTRY e isoCountryCode =>

PARTNER[PARTNRTYPE = Contact/Phone/TelephoneNumber/Number
'SoldTo']/CONTACT/TELEPHONE
OrderRequestHeader/Comments
DATAAREA/CHANGE_PO/POHEADER/DESCRIPTN
OrderRequestHeader/Comments/Attachment For each ATTCHREF, Attachment repeats
DATAAREA/CHANGE_PO/POHEADER/ATTCHREF
OrderRequestHeader/Comments/Attachment/UR For each URI under ATTCHREF, cXML tag URL
POHEADER/ATTCHREF/URI L repeats under Attachment tag

For each FILENAME tag under ATTCHREF, cXML


OrderRequestHeader/Comments/Attachment/UR
tag URL repeats with "CID:" concatenated to the
POHEADER/ATTCHREF/FILENAME L
filename.

OrderRequestHeader/<Extrinsic
DATAAREA/CHANGE_PO/POHEADER/ACKREQUE
ST name="ACKREQD">
This Extrinsic cXML tag appears only if the
OrderRequestHeader/<Extrinsic DATETIME[@qualifier='APPREQ'] exisits
DATAAREA/CHANGE_PO/POHEADER/USERAREA
/DATETIME[@qualifier='APPREQ'] name="ACKBYDATE">

DATAAREA/CHANGE_PO/POHEADER/USERAREA OrderRequestHeader/<Extrinsic name="TANDC">


/TANDC
OrderRequestHeader/<Extrinsic
In ATTRIBUTEx, x varies from 1 to 16
DATAAREA/CHANGE_PO/POHEADER/PORELEASE name="RELEASENUM">

The attribute index of OAG tag NOTES gets


OrderRequestHeader/<Extrinsic
DATAAREA/CHANGE_PO/POHEADER/USERAREA concatenated to "NOTES_". Also, Extrinsic tag
/DFFPOHEADER/ATTRIBUTEx name="ATTRIBUTEx">
repeats for every OAG NOTES tag.

OrderRequestHeader/<Extrinsic
DATAAREA/CHANGE_PO/POHEADER/<NOTES For each POLINESCHD, ItemOut tag repeats.
index='X'> name="NOTES_X">

cXML/Request/OrderRequest/ItemOut The OAG tag values of POLINENUM and


DATAAREA/CHANGE_PO/POLINE/SCHEDULE
PSCLINENUM are concatenated together by
separating string as '0'.

<ItemOut lineNumber=>
POLINE/SCHEDULE/PSCLINENUM

POLINE/POLINENUM
<ItemOut quantity=>
SCHEDULE/QUANTITY/VALUE
This attribute appears only if
SCHEDULE/QUANTITY/NUMOFDEC POORDERHDR/POTYPE='RELEASE'

<ItemOut agreementItemNumber=> Timestamp is printed in the cXML format.


POLINE/ITEMX

<ItemOut requestedDeliveryDate=>
SCHEDULE/DATETIME

ItemOut/ItemID/SupplierPartID
POLINE/ITEMX
ItemOut/ItemID/SupplierPartAuxiliaryID
POLINE/USERAREA/CONFIGID
ItemOut/ItemDetail/UnitPrice/<Money currency
POLINE/OPERAMT/CURRENCY =>

POLINE/OPERAMT[@qualifier='UNIT' and ItemOut/ItemDetail/UnitPrice/Money


@type='T']/VALUE
POLINE/OPERAMT[@qualifier='UNIT' and
@type='T']/NUMOFDEC
ItemOut/ItemDetail/Description
POLINE/DESCRIPTN
ItemOut/ItemDetail/UnitOfMeasure
POLINE/QUANTITY/UOM
ItemOut/ItemDetail/<Extrinsic
POLINE/POLINENUM name="LINENUM">
ItemOut/ItemDetail/<Extrinsic
SCHEDULE/PSCLINENUM name="SHIPMENTNUM">

ItemOut/ItemDetail/<Extrinsic LINEATTRIBUTE1 to LINEATTRIBUTE16 are


POLINE/ITEM name="BUYERPARTNUM"> mapped to corresponding Extrinsic cXML tags.

ItemOut/ItemDetail/<Extrinsic ATTRIBUTE1 to ATTRIBUTE16 are mapped to


POLINE/USERAREA/DFFLINE/ATTRIBUTEx name="LINEATTRIBUTEx"> corresponding Extrinsic cXML tags.

The attribute index of OAG tag NOTES gets


ItemOut/ItemDetail/<Extrinsic
POLINE/SCHEDULE/USERAREA/DISTPROJECT/DF concatenated to "NOTES_". Also, Extrinsic tag
FDISTRIBUTN/ATTRIBUTEx name="ATTRIBUTEx">
repeats for every OAG NOTES tag.

ItemOut/ItemDetail/<Extrinsic
POLINE/<NOTES index='X'> name="NOTES_X">

ItemOut/SupplierList/Supplier/<Name
DATAAREA/CHANGE_PO/POHEADER/PARTNER[P Attribute domain is hardcoded to DUMMY
ARTNRTYPE = 'Supplier']/NAME xml:lang='en'>

ItemOut/SupplierList/Supplier/<SupplierID
DATAAREA/CHANGE_PO/POORDERHDR/PARTNE
R[PARTNRTYPE = 'Supplier']/PARTNRID domain =>

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/CHANGE_PO/POORDERHDR/PARTNE
R[PARTNRTYPE = 'Supplier']/CONTACT/NAME OrderMethods/Contact/Name

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/CHANGE_PO/POORDERHDR/PARTNE
R[PARTNRTYPE = 'Supplier']/CONTACT/EMAIL OrderMethods/Contact/Email

DATAAREA/CHANGE_PO/POORDERHDR/PARTNE ItemOut/SupplierList/Supplier/SupplierLocation/
R[PARTNRTYPE = 'Supplier']/ADDRESS/COUNTRY OrderMethods/Contact/Phone/TelephoneNumbe
r/<CountryCode isoCountryCode =>

ItemOut/SupplierList/Supplier/SupplierLocation/
DATAAREA/CHANGE_PO/POORDERHDR/PARTNE
OrderMethods/Contact/Phone/TelephoneNumbe
R[PARTNRTYPE =
'Supplier']/CONTACT/TELEPHONE r/Number

If TAXABLE tag value is N, then category value is


ItemOut/Tax/<Money currency=>
POLINE/OPERAMT/CURRENCY 'Non-Taxable'. Else category takes 'Taxable'.

ItemOut/Tax/<TaxDetail category =>


POLINE/SCHEDULE/USERAREA/TAXABLE

ItemOut/Tax/<TaxDetail purpose =>


POLINE/SCHEDULE/USERAREA/TAXCODE
ItemOut/Tax/TaxDetail/TaxAmount/<Money For each URI under ATTCHREF, cXML tag URL
POLINE/OPERAMT/CURRENCY currency => repeats under Attachment tag

For each FILENAME tag under ATTCHREF, cXML


ItemOut/Comments/Attachment/URL tag URL repeats with "CID:" concatenated to the
POLINE/ATTCHREF/URI
filename.

ItemOut/Comments/Attachment/URL
POLINE/ATTCHREF/FILENAME

You might also like