Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Creating condition record by uploading

Former Member
0 Likes
955

Hello all,

I am using FM BAPI_PRICES_CONDITIONS to create condition record.

But its creating the record even if i gave the invalid details ( like invalid material number,...).

Can you please tell me how can i handle the errors using this FM.

Thanks in advance.

regards,

Lokesh

1 REPLY 1
Read only

Former Member
0 Likes
369

hi..

This code snippet inserts a condition record for Pricing condition type Z123 with key sales order

and line number.


CONSTANTS: lc_kschl_z123 TYPE kscha VALUE 'Z123'.
DATA: lv_datum TYPE sydatum,
lv_count TYPE kopos,
lv_unit TYPE kpein,
is_bapicondct TYPE bapicondct,
is_bapicondhd TYPE bapicondhd,
is_bapicondit TYPE bapicondit,
it_bapicondct TYPE STANDARD TABLE OF bapicondct,
it_bapicondhd TYPE STANDARD TABLE OF bapicondhd,
it_bapicondit TYPE STANDARD TABLE OF bapicondit,
it_bapicondqs TYPE STANDARD TABLE OF bapicondqs,
it_bapicondvs TYPE STANDARD TABLE OF bapicondvs,
it_bapiret2 TYPE STANDARD TABLE OF bapiret2,
is_bapiret2 TYPE bapiret2,
it_bapiknumhs TYPE STANDARD TABLE OF bapiknumhs,
it_mem_initial TYPE STANDARD TABLE OF cnd_mem_initial.
lv_datum = sy-datum.
lv_count = 1.
LOOP AT gt_vbap INTO wa_vbap.
* BAPI Structure for Condition Tables
is_bapicondct-operation = '009'.
is_bapicondct-table_no = '700'.
is_bapicondct-applicatio = 'V'.
is_bapicondct-cond_usage = 'A'.
is_bapicondct-cond_type = lc_kschl_z123.
"Set the varkey from A700 table key fields
CONCATENATE wa_vbap-vbeln wa_vbap-posnr
INTO is_bapicondct-varkey.
is_bapicondct-valid_to = '12/31/2009'.
is_bapicondct-valid_from = lv_datum.
is_bapicondct-cond_no = '$000000001'.
**** BAPI Structure of KONH with English Field Names
is_bapicondhd-operation = '009'.
is_bapicondhd-cond_no = '$000000001'.
is_bapicondhd-created_by = sy-uname.
is_bapicondhd-creat_date = sy-datum.
is_bapicondhd-cond_usage = 'A'.
is_bapicondhd-table_no = '700'.
is_bapicondhd-applicatio = 'V'.
is_bapicondhd-cond_type = lc_kschl_z123.
is_bapicondhd-varkey = is_bapicondct-varkey.
is_bapicondhd-valid_to = '12/31/2009'.
is_bapicondhd-valid_from = lv_datum.
*** BAPI Structure of KONP with English Field Names
CLEAR is_bapicondit.
is_bapicondit-operation = '009'.
is_bapicondit-cond_no = '$000000001'.
is_bapicondit-cond_count = lv_count.
is_bapicondit-applicatio = 'V'.
is_bapicondit-cond_type = lc_kschl_z123.
is_bapicondit-scaletype = 'A'.
is_bapicondit-scalebasin = 'B'.
ADD 1 TO is_bapicondit-scale_qty.
is_bapicondit-calctypcon = 'B'.
lv_unit = wa_vbap-kwmeng.
is_bapicondit-cond_p_unt = lv_unit.
is_bapicondit-cond_value = wa_vbap-value.
is_bapicondit-condcurr = wa_vbap-waerk.
APPEND: is_bapicondct TO it_bapicondct,
is_bapicondhd TO it_bapicondhd,
is_bapicondit TO it_bapicondit.
ENDLOOP.
*** BAPI for pricing Condition Records
CALL FUNCTION 'BAPI_PRICES_CONDITIONS'
TABLES
ti_bapicondct = it_bapicondct
ti_bapicondhd = it_bapicondhd
ti_bapicondit = it_bapicondit
ti_bapicondqs = it_bapicondqs
ti_bapicondvs = it_bapicondvs
to_bapiret2 = it_bapiret2
to_bapiknumhs = it_bapiknumhs
to_mem_initial = it_mem_initial
EXCEPTIONS
update_error = 1
OTHERS = 2.
IF sy-subrc EQ 0.
WRITE: /1 'Return Messages for Condition create'(t03).
LOOP AT it_bapiret2 INTO is_bapiret2.
WRITE: /1 is_bapiret2-message.
ENDLOOP.
ULINE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
IMPORTING
return = is_bapiret2.
ENDIF.