on 12-06-2007 1:00 PM
Hi,
I am trying to change the pricing condition value at item level while creating sales order through CRM_ORDER_MAINTAIN.
I am not able to change the condition value.
Code is below.
wa_inputfields-ref_guid = wa_orderi-guid.
wa_inputfields-ref_kind = 'B'.
wa_inputfields-objectname = 'PRIDOC'.
wa_fieldname-fieldname = 'KBETR'.
append wa_fieldname to wa_inputfields-FIELD_NAMES.
wa_fieldname-fieldname = 'KMEIN'.
append wa_fieldname to wa_inputfields-FIELD_NAMES.
wa_fieldname-fieldname = 'KPEIN'.
append wa_fieldname to wa_inputfields-FIELD_NAMES.
wa_fieldname-fieldname = 'KSCHL'.
append wa_fieldname to wa_inputfields-FIELD_NAMES.
wa_fieldname-fieldname = 'WAERS'.
append wa_fieldname to wa_inputfields-FIELD_NAMES.
INSERT wa_inputfields INTO TABLE it_inputfields.
wa_pricing_add-KSCHL = 'ZP06'.
wa_pricing_add-WAERS = 'USD'.
wa_pricing_add-KBETR = '10'.
wa_pricing_add-KPEIN = '1'.
wa_pricing_add-KMEIN = 'ST'.
INSERT wa_pricing_add INTO table it_pricing_add .
wa_pricing-REF_GUID = wa_orderi-guid.
wa_pricing-REF_KIND = 'B'.
wa_pricing-PRICING_TYPE = 'A'.
wa_pricing-COND_ADD = it_pricing_add.
wa_pricing-PRICING_PROCEDURE = 'ZVDSP'.
append wa_pricing to it_pricing.
Can you tell me how to overwrite the condition value while creating sales order using crm_order_maintain.?
Regards,
Indhra.E
Hello Indhra,
To make sure your code is correct you can do the following:
Open the sales order in CRMD_ORDER.
Activate debugging (TAC /H)
Place a breakpoint in FM CRM_ORDER_MAINTAIN
Change the pricing condition and hit ENTER
The debugger will stop at the FM, check out which fields SAP fills and do exactly the same in your code!
Don't forget to call FM CRM_ORDER_SAVE and BAPI_TRANSACTION_COMMIT after CRM_ORDER_MAINTAIN!
This should solve your problem,
Regards,
Joost
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello Indhra,
Check the CT_INPUT_FIELDS table, in the OBJECTNAME field you will find all the tables that are filled during the function call. Check those tables mentioned in the OBJECTNAME to look for any pricing related data.
When your order is in change mode and you activate debug <b>just before you make the change</b>, the CRM_ORDER_MAINTAIN FM call contains <b>data only relevant for the change you just made</b>. In other words, you need to fill exactly the same tables as CRMD_ORDER does.
E.g. You just change the pricing procedure and you see in debug that 5 tables are filled, you must do exactly the same in your code! It's quite anoying but you're using a low-level API FM that can handle ANY transaction type in CRM!
Check it, it works!!
<b>Reward points if useful!</b>
Regards,
Joost
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.