Spend Management Blogs by SAP
Stay current on SAP Ariba for direct and indirect spend, SAP Fieldglass for workforce management, and SAP Concur for travel and expense with blog posts by SAP.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member684757
Participant
10,170
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:


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 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 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.

 
16 Comments
amril
Explorer
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.
former_member684757
Participant
0 Kudos
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!
amril
Explorer
0 Kudos
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.
KalyanValluri
Product and Topic Expert
Product and Topic Expert
0 Kudos
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
former_member684757
Participant
0 Kudos
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.
former_member684757
Participant
0 Kudos
Sure Kalyan,

Thanks for your positive comment.

Regards, Filipe.
siowfong_chen
Contributor
0 Kudos
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?
former_member684757
Participant
0 Kudos
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
0 Kudos
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
former_member684757
Participant
0 Kudos

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

 

fgan
Explorer
0 Kudos

Hi fmigueis ,

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

 

former_member684757
Participant
0 Kudos

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

fgan
Explorer
0 Kudos
Hi fmigueis ,

 

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.
Heinz-Georg
Explorer
0 Kudos
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 Messages


 

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

 

Thanks in advance.

 

Heinz-Georg
TSoon
Participant
0 Kudos
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
mathieu_chenot
Explorer
0 Kudos
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