Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

CIF issue - Product Price not updated from Purchase Info Record

Hi Friends,

I like to discuss 2 points.

1) If Info Record is not changed the Product Price is not getting updated in SCM box.

2) After updating Info Record if we do Bulk CIF from ECC to SCM only few Product Price is updated .

we did Enhancement through BADI /SAPAPO/CIF_TPSRC_IN  for updating Product Price while CIF info record using BAPI BAPI_PRDSRVAPS_SAVEMULTI2.


I found the RFC Function module /SAPAPO/CIF_TPSRC_INBOUND is not always triggered and get skipped for some reason.

The Procurement Relation ship is created but the Enhancement is not properly fired to update Product Price.

Kindly let us know do we follow the correct way?

Please give your valuable Suugestion to update the Product Price.


Former Member
Former Member replied

Finally we found the Problem.

we used BADI   /SAPAPO/CIF_TPSRC_IN   for updating Product Price.

BAPI_PRDSRVAPS_GETLIST2 this BAPI is used to get the Product details but this BAPI has a Restriction and we can pass maximum 100 records at a time.

now rewrite the logic and pass 100 Records per call in internal table  product_selection.


       lv_index1 = lv_index2.

       lv_index2 = lv_index1 + lc_99.

       APPEND LINES OF lt_prod_get FROM lv_index1 TO lv_index2 TO lt_prod_get_tmp.

       lv_index2 = lv_index2 + 1.

       IF lt_prod_get_tmp[] IS INITIAL.



       CLEAR : lv_num_prd_get.

       " bapi to get material location detail



           logical_system             = lv_log_sys


           number_of_products         = lv_num_prd_get


           product_selection          = lt_prod_get_tmp

           planning_version_selection = lt_version_get

           product_location_version   = lt_loc_ver_get_tmp

           return                     = lt_bapi_ret_get.

       IF lt_bapi_ret_get[] IS NOT INITIAL.

         ct_return[] = lt_bapi_ret_get[].



       APPEND LINES OF lt_loc_ver_get_tmp TO lt_loc_ver_get.

       REFRESH :lt_prod_get_tmp,lt_loc_ver_get_tmp,lt_bapi_ret_get.


change method in this BADI has CT_RETURN we have to use for capturing any error during BAPI call.

Additionally we used BAPI_PRDSRVAPS_SAVEMULTI2 to update Procurement_cost and this BAPI has no restrictions.

Triggering of RFC /SAPAPO/CIF_TPSRC_INBOUND is based on Active APO Application or Purchase Info Record Creation/Change status and functional team can help on this.

0 View this answer in context

Helpful Answer

Not what you were looking for? View more on this topic or Ask a question