Skip to Content
Technical Articles
Author's profile photo Filipe Migueis

Pricing Conditions on the Purchase Order sent to Ariba Network

Pricing Conditions on the Purchase Order sent to Ariba Network

 

One of the requirements that comes up from time to time while implementing Ariba Network or Commerce Automation is the inclusion of additional pricing details onto the Purchase Order.

Some customers when sending a Purchase Order to their suppliers would like to include pricing conditions related to:

  • freight / shipping cost
  • surcharges such as administrative fee or custom related fees
  • pre-negotiated discounts

 

Example from SAP:

Screenshot%201

SAP Purchase Order

 

While implementing this, following considerations needs to be done:

 

  1. The SAP PO item could have more than one type condition: Freight 1, surcharge 1, surcharge 2, etc (e.g. ZB00,RB00, etc) –>  Supported by this solution

 

  1. Purchase orders could have many items with many different conditions (freights and surcharges) by item –>  Supported by this solution

 

  1. The same type of condition could appear on the same PO item (e.g. FR00 could appear twice under the same PO item) –> Not supported by this solution
    • Customer cannot duplicate conditions in the same PO item, otherwise both values would be concatenated in the same line on XML. For example, if the same PO line has 2 conditions “Freight 1”, this information would be concatenated on the XML into the same source <Modification> element for “Freight 1”.

 

  1. The solution presented here shows the mapping of price conditions related to surcharges (see screenshot above – conditions ZB00 and FRB1, for example). In order to add type conditions of discounts (see screenshot above – condition RB00, for example) , the customer must use the PO XML segment <AdditionalDeduction> instead of <AdditionalCost> as presented in the following solution.

          Purchase%20Order%20XML

Purchase Order XML

 

 

Solution

 

Price conditions are not part of the SAP PO IDOC. The ARBCIG_ORDERS IDOC has a standard segment for conditions, the E1EDP05 (item) in which is not populate by CIG Add-on as out of the box solution. In order to have this information in E1EDP05, customer needs to customize it picking the PO condition information and adding it to this IDOC segment:

 

 

 

Next step after having values appearing in the PO IDOC is to map it in CIG mapping tool:

Assuming that:

  • PO item is represented by IDOC element E1EDP01
  • Conditions are represented by PO IDOC element E1EDP05
  • Each PO item could have 0 or 1+ conditions
  • Xml element <Modifications> refers to Allowances and surcharges
  • Xml element <Modifications> contains 1 or more element <Modification>.
  • The xml element in which matches with the IDOC element E1EDP05 is the element <Modification>.

 

The corresponding values from IDOC and cXML (Ariba Purchase Order) can be outlining in the following manner:

IDOC%20to%20cXML

IDOC to cXML

 

 

 

Going one step further, PO IDOC Element <E1EDP05> under element <E1EDP01> has to be mapped to XML <Modification> element under <Modifications> element

 

 

Step 1

Righ-click on <Modifications> and Create/Replace node à A green line on the right side of the node will appears. This step is required in order to activate the node to be displayed on the XML.

 

 

 

Step 2

Pick the fields of <E1EDP05> to be mapped to xml element <Modifcation>. For this requirement I had 4 IDOC elements to be mapped (KSCHL, KOTXT, BETRG, KOEIN) and 7 different conditions.

 

 

The element <KSCHL> shows the condition type in which will be used as value of “Add Source of condition”

 

 

a. Mapping <KSCHL> to <ModificationDetail name=”YFR0″>

 

  • For field <KSCHL>, please run steps of section a.1.

 

Section a.1  

p.s. Steps on section a.1 must be executed for all the 4 fields KSCHL, KOTXT, BETRG, KOEIN.

  • Create loop over xml element <ItemOut> to IDOC item element <E1EDP01>
    • Right-click on the target field @name > Click on xml node ItemOut

                   

 

  • Righ-click on the mapped line > Add source condition > Click on <E1EDP01>

         

         

 

           

 

  • Adding source of condition to use field (PO pricing condition type) to differentiated each IDOC pricing condition received per PO item
    • Right-click on the mapped line > Add source Condition > Click on KSCHL > type in the type condition to be used

                   

   

                   

 

 

After you finish the Steps a.1 and place the mouse over the mapped line the following information should shows up:

 

—– END of Section a.1 —–

 

 

 

b. Mapping <KOTXT> to <Description xml:lang=”en-US”> Manual Freight </Description>

 

  • Right-click on field @xml:lang > Add Constant Value > Type “en-US” and click “OK”à Blue line will appears on the right side of the field

<Description xml:lang=”en-US”> Manual Freight </Description>

 

 

  • Run steps of section a.1 for field <KOTXT>

 

 

c. Mapping <BETRG> to Money. <AdditionalCost> <Money>

 

  • Run steps of section a.1 for field <BETRG>

 

 

d. Mapping <KOEIN> to @currency

<AdditionalCost> <Money alternateCurrency=”” alternateAmount=”” currency=”USD”>

 

 

  • Run steps of section a.1 for field <KOEIN>

 

 

 

Step 3

So far, we have mapped the pricing condition to the condition type YFR0 only. In order to have different condition types mapped, the xml element <Modification> has to be duplicated until we have 7 <Modification> elements (for this case I need to map 7 different condition types).

 

  • Right-click on <Modification> node > Click on Duplicate Node à A new node <Modification #2> will be added to xml structure.

 

 

 

Step 4

Repeat the STEP 2 all over again, now considering the remaining condition types to be mapped. That is, remember to use the specific condition type to be mapped instead of the condition YFR0 shown above (<ModificationDetail name=”YFR0″>).

 

Conclusion

Ariba Network does accept pricing conditions as out of the box solution, but CIG AddOn and CIG doesn’t. So, in order to send pricing conditions to AN, customers need to customize it on their end with 2 different actions: populating the segment E1EDP05 in ARBCIG_ORDERS IDOC with the PO pricing conditions and creating a CIG mapping to map this segment to the cXML PO document which will be read by Ariba Network.

 

Assigned Tags

      16 Comments
      You must be Logged on to comment or reply to a post.
      Author's profile photo Raja Muhamad Amril bin Raja Rahaizat
      Raja Muhamad Amril bin Raja Rahaizat

      Hi Filipe,

      This is a good article as we have a customer who had requested the same thing. We had followed the exact same step given but we have an issue where the Modification node is not being displayed in the cxml. Any reason on why this happen?

      Thanks.

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      Hi Raja,

      Make sure you have executed step 1: Righ-click on <Modifications> and Create/Replace node. You must see a small green line on the right side of the node (see screenshots on step 1). This step is required in order to activate the node to be displayed on the XML.

      Thanks, Filipe!

      Author's profile photo Raja Muhamad Amril bin Raja Rahaizat
      Raja Muhamad Amril bin Raja Rahaizat

      Dear Filipe,

      Thanks for the response. Managed to get it out in cXML. Besides, will there be any steps needed if I have a multiple condition types (assuming 4 condition types) that need to be shown only if it is exists within IDOC. Means that in a PO, my IDOC may only consists of 2 out of 4 condition types that need to be displayed (depending on the condition types that had been selected by the users). I had tried but if all modifications do not meet (if all 4 condition types are not there in IDOC), no modification will be shown at all in cXML.

      Appreciate your advice.

      Thanks.

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      Hi Raja,

      If I understood correctly your scenario, this CIG mapping should work for this situation. For example,  if you have mapped 4 conditions A,B,C and D, and you have a Purchase order from SAP with item 1 with condition A and item 2 with condition  B and C, the same information would be displayed on Ariba Network.

      This IF CONDITION action is done within the "Section a.1" with the feature "Add Source Condition" when the name of the condition type is added as value. For instance, the condition type 'A' will be mapped and displayed on AN PO item as long as condition type 'A' is part of SAP PO item.

      Regards, Filipe.

      Author's profile photo Kalyan Valluri
      Kalyan Valluri

      Dear Filipe, Thank you for sharing the information for the benefit of CIG Community members. I am sure this step-by-step approach is very informative for community members.

      Appreciate your contribution.

      Regards,

      Kalyan

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      Sure Kalyan,

      Thanks for your positive comment.

      Regards, Filipe.

      Author's profile photo Siow Fong Chen
      Siow Fong Chen

      Hi Filipe, great write up! Can I find out how are these similar charges going to be included in the invoice coming back from Ariba to SAP?

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      Hi Siow,

      If you want these charges to go back to SAP within the invoice, a new CIG mapping must be created now for Invoices. Nowadays, Ariba network is able to create the segment E1EDP05 in the Invoice cXML file but tCIG doesn't convert it to the Invoice IDOC. It means that you will need to map these allowances and charges to ARBCIG_INVOIC IDOC.

      You can try to use the following Invoice elements to convert the information:

       

      <E1EDP01> <E1EDP05> <KSCHL>ZF00</KSCHL>

      /cXML/Request/InvoiceDetailRequest/InvoiceDetailOrder/InvoiceDetailItem/InvoiceItemModifications/Modification/ModificationDetail/@name

       

      <E1EDP01> <E1EDP05> <KOTXT>Freight</KOTXT>

      /cXML/Request/InvoiceDetailRequest/InvoiceDetailOrder/InvoiceDetailItem/InvoiceItemModifications/Modification/ModificationDetail/Description (xml:lang="en-US")

       

      <E1EDP01> <E1EDP05> <BETRG>0.75</BETRG>

      /cXML/Request/InvoiceDetailRequest/InvoiceDetailOrder/InvoiceDetailItem/InvoiceItemModifications/Modification/AdditionalCost/Money

       

      <E1EDP01> <E1EDP05> <KOEIN>USD</KOEIN >

      /cXML/Request/InvoiceDetailRequest/InvoiceDetailOrder/InvoiceDetailItem/InvoiceItemModifications/Modification/AdditionalCost/Money (currency="USD")

       

      Regards, Filipe

      Author's profile photo V V Padmanabham
      V V Padmanabham

      Hi Filipe,

      Thank you for such a good article!!

      I have mapped my CIG as per your guidance. We could able to map 3 pricing condition. But when we send PO from S4HANA. I am getting below error.

      "Schema Validation failed for cXML - 0000 - OrderRequest .. Suggested Action : Please check the attachment for error details . For implementation guidelines ,please refer to corresponding refer to corresponding cXML specs at CIG Portal -> Resources -> Implementation Guides . For further assistance, please contact CIG Support with Error Code : CIG-PLT-00623".

      Can you please guide why am i getting this error after mapping.

      Regards,

      Amresh

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      HI Padmanabhan,

      Are you able to send POs to CIG before the CIG mapping?

       

      I found this note that might help you:

      https://connectsupport.ariba.com/sites#item-view&/190172

       

      Regards, Filipe Migueis

       

      Author's profile photo Fatt Chai Gan
      Fatt Chai Gan

      Hi Filipe Migueis ,

      We are facing some issue when mapping for duplication mandatory node. Seem like "Modification #2" is not recognize as "Modification".

       

      Author's profile photo Filipe Migueis
      Filipe Migueis
      Blog Post Author

      Hi Fatt Chai Gan,

      The above mapping is not working for the latest versions of CIG. Today, I published a guided answer related to CIG custom mappings. A new version of the PO allowances and Charges mapping can also be found there. New mappings will be added in the future.

      CIG Mapping Tool - Custom mappings at: https://ga.support.sap.com/dtp/viewer/index.html#/tree/2873/actions/41970

      Click on "OrderRequest - Order" and "Allowances and Charges". Please give us your feedback and help us improve CIG mapping solution.

      I hope this is going to help SAP customers and partners with CIG custom mappings.

      Best regards, Filipe Migueis

      Author's profile photo Fatt Chai Gan
      Fatt Chai Gan

      Hi Filipe Migueis ,

       

      Thanks it is working now. I think it would be better to update the blog as well as the old mapping no longer working for latest CIG. Thanks.

      Author's profile photo Heinz-Georg Hepp
      Heinz-Georg Hepp

      Hello Filipe,

       

      thank you very much for the very successful and interesting documentation. I have tried to implement the mapping for a current customer.

      I have only done it once for one condition type, but when I save the mapping I get these error messages.

       

      Error Type

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/@quantity

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/ItemID

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/? Choice #1/ItemDetail/Description

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/? Choice #1/ItemDetail/UnitOfMeasure

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/? Choice #1/ItemDetail/Classification

      Mandatory child not mapped: /cXML/Request/OrderRequest/ItemOut/? Choice #1/ItemDetail/UnitPrice/Money

       

      Error%20Messages

      Error Messages

       

      Can you help to find out what the problem could be?

       

      Thanks in advance.

       

      Heinz-Georg

      Author's profile photo Thian Soon Ter
      Thian Soon Ter

      Hello Filipe,

      One quick question about this mapping:

      1. Will this extra mapping will lead the invoice in Ariba Network behaved differently?

      Example:

      PO created with a Gross Price of 2000 EUR and discount price of 100 EUR.  The PO has the net price of 1900 EUR.  When supplier submitted invoice in Ariba, invoice amount should be 1900 EUR.

       

      We did a mapping in Ariba and Invoice amount from Ariba shows 1800 EUR as final invoice amount instead of 1900 EUR.  It seems that Ariba did another round of 100 EUR net off.

      Any idea?

      Thanks.

      TS

      Author's profile photo Mathieu Chenot
      Mathieu Chenot

      Hi,

      Thanks a lot for this article.

      Do you know by any chance if there is a way to confirm those conditions in Ariba Network insead of confirming the total price ?

      Thanks

      Mathieu