‎2013 Dec 04 12:54 AM
Hello experts,
I've trying to create Credit and Debit memo's using SD_SALESDOCUMENT_CREATE but keep getting error that ''No data for document VBRP was retrieved from table (refer to the screen shot) and orders are not created.
For reference here is my code.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
DATA: sales_doc_number type bapivbeln-vbeln,
lwa_order_header like bapisdhd1,
lit_order_item type standard table of bapisditm initial size 0,
lwa_order_item type bapisditm,
itemx like bapisditmx occurs 10 with header line,
order_schedules_in type standard table of bapischdl with header line,
lit_order_partner type standard table of bapiparnr initial size 0,
lwa_order_partner type bapiparnr,
lit_order_condition type standard table of bapicond initial size 0,
lwa_order_condition type bapicond,
lit_order_config_ref type standard table of bapicucfg initial size 0,
lwa_order_config_ref type bapicucfg,
lit_order_config_ins type standard table of bapicuins initial size 0,
lwa_order_config_ins type bapicuins,
lit_order_config_char type standard table of bapicuval initial size 0,
lwa_order_config_char type bapicuval,
li_return type standard table of bapiret2 initial size 0,
lwa_return like line of li_return,
"Fill order header data.
lwa_order_header-doc_type = 'ZCMR'."'ZSHP'.
lwa_order_header-sd_doc_cat = 'L'.
lwa_order_header-sales_org = 'PR01'.
lwa_order_header-distr_chan = '90'.
lwa_order_header-division = '90'.
lwa_order_header-req_date_h = '20060710'.
lwa_order_header-purch_date = '20061109'.
lwa_order_header-po_method = 'ZEDI'.
lwa_order_header-ord_reason = 'Z01'.
lwa_order_header-purch_no_c = 'MF#-12345'.
lwa_order_header-ship_type = 'Z1'.
lwa_order_header-refobjtype = 'VBRK'.
lwa_order_header-refobjkey = '3000073117'.
lwa_order_header-refdoctype = 'M'.
"Fill order item data.
lwa_order_item-itm_number = '000010'.
lwa_order_item-hg_lv_item = '000000'.
lwa_order_item-po_itm_no = '000010'.
lwa_order_item-material = '000000000000000200'.
lwa_order_item-plant = 'P001'.
lwa_order_item-target_qty = '1.000'.
lwa_order_item-target_qu = 'EA'.
lwa_order_item-sales_unit = 'EA'.
lwa_order_item-cust_mat35 = 'ASTEST06'.
lwa_order_item-refobjtype = 'VBRK'.
lwa_order_item-refobjkey = '3000073117'.
lwa_order_item-ref_doc_ca = 'M'.
append lwa_order_item to lit_order_item.
order_schedules_in-itm_number = '000010'.
order_schedules_in-sched_line = '0001'.
order_schedules_in-req_qty = '1.000'.
append order_schedules_in.
itemx-itm_number = '000010'.
itemx-updateflag = 'I'.
itemx-material = 'X'.
itemx-target_qty = 'X'.
itemx-hg_lv_item = 'X'.
itemx-po_itm_no = 'X'.
itemx-plant = 'X'.
itemx-target_qty = 'X'.
itemx-target_qu = 'X'.
itemx-sales_unit = 'X'.
itemx-cust_mat35 = 'X'.
itemx-refobjtype = 'X'.
itemx-refobjkey = 'X'.
itemx-ref_doc_ca = 'X'.
append itemx.
"Fill order partnre data.
lwa_order_partner-partn_role = 'AG'.
lwa_order_partner-partn_numb = '0000000651'.
lwa_order_partner-itm_number = '000000'.
append lwa_order_partner to lit_order_partner.
"Fill order condition data
"Fill order config reference data
lwa_order_config_ref-posex = '000010'.
lwa_order_config_ref-config_id = '000010'.
lwa_order_config_ref-root_id = '00000001'.
append lwa_order_config_ref to lit_order_config_ref.
"Fill order config instances data
lwa_order_config_ins-config_id = '000010'.
lwa_order_config_ins-inst_id = '00000001'.
* lwa_order_config_ins-obj_type = 'MARA'.
* lwa_order_config_ins-class_type = '300'.
* lwa_order_config_ins-obj_key = '000000000000000200'.
* lwa_order_config_ins-quantity = '1.000'.
* lwa_order_config_ins-quantity_unit = 'EA'.
append lwa_order_config_ins to lit_order_config_ins.
"Fill order config values
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_DEST_PC'.
lwa_order_config_char-value = 'L6Z1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ORIGIN_PC'.
lwa_order_config_char-value = 'M5C1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ITEM_WEIGHT'.
lwa_order_config_char-value = '30'.
append lwa_order_config_char to lit_order_config_char.
call function 'SD_SALESDOCUMENT_CREATE'
exporting
sales_header_in = lwa_order_header
status_buffer_refresh = ' '
importing
salesdocument_ex = sales_doc_number
tables
return = li_return
sales_items_in = lit_order_item
sales_items_inx = itemx
sales_partners = lit_order_partner
sales_schedules_in = order_schedules_in
* SALES_SCHEDULES_INX =
* SALES_CONDITIONS_IN =
* SALES_CONDITIONS_INX =
"SALES_CFGS_REF = lit_order_config_ref
"SALES_CFGS_INST = lit_order_config_ins
* SALES_CFGS_PART_OF =
"SALES_CFGS_VALUE = lit_order_config_char
* SALES_CFGS_BLOB =
* SALES_CFGS_VK =
* SALES_CFGS_REFINST =
* SALES_CCARD =
* SALES_TEXT =
* SALES_KEYS =
* SALES_CONTRACT_IN =
* SALES_CONTRACT_INX =
* EXTENSIONIN =
* PARTNERADDRESSES =
* SALES_SCHED_CONF_IN =
* ITEMS_EX =
* SCHEDULE_EX =
* BUSINESS_EX =
* INCOMPLETE_LOG =
* EXTENSIONEX =
* CONDITIONS_EX =
* PARTNERS_EX =
* TEXTHEADERS_EX =
* TEXTLINES_EX =
* BATCH_CHARC =
* CAMPAIGN_ASGN =
.
if sales_doc_number is not initial.
call function 'BAPI_TRANSACTION_COMMIT'.
write:/ sales_doc_number.
else.
loop at li_return into wa_return.
write:/ wa_return-message.
endloop.
endif.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Can please anybody see what mistake I'm making and help me rectify it?
Many thanks in advance.
‎2013 Dec 04 4:37 AM
‎2013 Dec 04 4:57 AM
Hi,
your error have a code ZPC, it's not a standard error message of SAP. So it must be set by an exit or a badi. Go in SE91, display the message error and use the button USE CASE to find where this message was written in ABAP code.
regards
Fred
‎2013 Dec 04 5:03 AM
‎2013 Dec 04 7:00 PM
Many thanks guys for such a valuable input. I've spend a lot of time but code get's extremely complicated so debug.
I've tried to make sure that I'm passing the input tables/structures properly and made the following modifications but have one question. What I've to pass in SD_SALESDOCUMENT_CREATE Export parameter (SALESDOCUMENT) for Credit memo? Any billing number or any other sales order?
-----------------------------------------------------------------------------------------------------------------------------------------
New code
"Fill order header data.
lwa_order_headerx-updateflag = 'I'.
lwa_order_header-doc_date = sy-datum.
lwa_order_headerx-doc_date = 'X'.
lwa_order_header-doc_type = 'ZSHP'."'ZCMR'
lwa_order_headerx-doc_type = 'X'.
"lwa_order_header-sd_doc_cat = 'L'.
lwa_order_header-sales_org = 'PR01'.
lwa_order_headerx-sales_org = 'X'.
lwa_order_header-distr_chan = '90'.
lwa_order_headerx-distr_chan = 'X'.
lwa_order_header-division = '90'.
lwa_order_headerx-division = 'X'.
lwa_order_header-req_date_h = '20131212'.
lwa_order_headerx-req_date_h = 'X'.
lwa_order_header-purch_date = sy-datum.
lwa_order_headerx-purch_date = 'X'.
lwa_order_header-po_method = 'ZEDI'.
lwa_order_headerx-po_method = 'X'.
lwa_order_header-ord_reason = 'Z01'.
lwa_order_headerx-ord_reason = 'X'.
lwa_order_header-purch_no_c = 'MF#-12345'.
lwa_order_headerx-purch_no_c = 'X'.
lwa_order_header-ship_type = 'Z1'.
lwa_order_headerx-ship_type = 'X'.
* lwa_order_header-refobjtype = 'VBRK'.
* lwa_order_header-refobjkey = '3000073117'.
* lwa_order_header-refdoctype = 'M'.
"Fill order item data.
itemx-updateflag = 'I'.
lwa_order_item-itm_number = '000010'.
itemx-itm_number = '000010'.
lwa_order_item-material = '000000000000000200'.
itemx-material = 'X'.
lwa_order_item-plant = 'P001'.
itemx-plant = 'X'.
lwa_order_item-item_categ = 'ZTAC'."'ZG2S'.
itemx-item_categ = 'X'.
lwa_order_item-target_qty = '1.000'.
itemx-target_qty = 'X'.
lwa_order_item-target_qu = 'EA'.
itemx-target_qu = 'X'.
lwa_order_item-sales_unit = 'EA'.
itemx-sales_unit = 'X'.
lwa_order_item-hg_lv_item = '000000'.
itemx-hg_lv_item = 'X'.
lwa_order_item-po_itm_no = '000010'.
itemx-po_itm_no = 'X'.
lwa_order_item-cust_mat35 = 'ASTEST06'.
itemx-cust_mat35 = 'X'.
* lwa_order_item-reason_rej = 'ASTEST06'.
* itemx-reason_rej = 'X'.
* lwa_order_item-refobjtype = 'VBRK'.
* lwa_order_item-refobjkey = '3000073117'.
* lwa_order_item-ref_doc_ca = 'M'.
append lwa_order_item to lit_order_item.
append itemx.
order_schedules_in-itm_number = '000010'.
order_schedules_inx-itm_number = 'X'.
order_schedules_in-sched_line = '0001'.
order_schedules_inx-sched_line = 'X'.
order_schedules_in-req_qty = '1.000'.
order_schedules_inx-req_qty = 'X'.
* order_schedules_in-req_date = '1.000'.
* order_schedules_inx-req_date = 'X'.
append order_schedules_in.
append order_schedules_inx.
"Fill order partnre data.
lwa_order_partner-partn_role = 'AG'.
lwa_order_partner-partn_numb = '0000000651'.
lwa_order_partner-itm_number = '000000'.
append lwa_order_partner to lit_order_partner.
"Fill order condition data
"Fill order config reference data
lwa_order_config_ref-posex = '000010'.
lwa_order_config_ref-config_id = '000010'.
lwa_order_config_ref-root_id = '00000001'.
append lwa_order_config_ref to lit_order_config_ref.
"Fill order config instances data
lwa_order_config_ins-config_id = '000010'.
lwa_order_config_ins-inst_id = '00000001'.
* lwa_order_config_ins-obj_type = 'MARA'.
* lwa_order_config_ins-class_type = '300'.
* lwa_order_config_ins-obj_key = '000000000000000200'.
* lwa_order_config_ins-quantity = '1.000'.
* lwa_order_config_ins-quantity_unit = 'EA'.
append lwa_order_config_ins to lit_order_config_ins.
"Fill order config values
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_DEST_PC'.
lwa_order_config_char-value = 'L6Z1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ORIGIN_PC'.
lwa_order_config_char-value = 'M5C1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ITEM_WEIGHT'.
lwa_order_config_char-value = '30'.
append lwa_order_config_char to lit_order_config_char.
clear l_logic_switch.
l_logic_switch-cond_handl = 'X'.
append l_logic_switch.
"Fill order header data.
lwa_order_headerx-updateflag = 'I'.
lwa_order_header-doc_date = sy-datum.
lwa_order_headerx-doc_date = 'X'.
lwa_order_header-doc_type = 'ZSHP'."'ZCMR'
lwa_order_headerx-doc_type = 'X'.
"lwa_order_header-sd_doc_cat = 'L'.
lwa_order_header-sales_org = 'PR01'.
lwa_order_headerx-sales_org = 'X'.
lwa_order_header-distr_chan = '90'.
lwa_order_headerx-distr_chan = 'X'.
lwa_order_header-division = '90'.
lwa_order_headerx-division = 'X'.
lwa_order_header-req_date_h = '20131212'.
lwa_order_headerx-req_date_h = 'X'.
lwa_order_header-purch_date = sy-datum.
lwa_order_headerx-purch_date = 'X'.
lwa_order_header-po_method = 'ZEDI'.
lwa_order_headerx-po_method = 'X'.
lwa_order_header-ord_reason = 'Z01'.
lwa_order_headerx-ord_reason = 'X'.
lwa_order_header-purch_no_c = 'MF#-12345'.
lwa_order_headerx-purch_no_c = 'X'.
lwa_order_header-ship_type = 'Z1'.
lwa_order_headerx-ship_type = 'X'.
* lwa_order_header-refobjtype = 'VBRK'.
* lwa_order_header-refobjkey = '3000073117'.
* lwa_order_header-refdoctype = 'M'.
"Fill order item data.
itemx-updateflag = 'I'.
lwa_order_item-itm_number = '000010'.
itemx-itm_number = '000010'.
lwa_order_item-material = '000000000000000200'.
itemx-material = 'X'.
lwa_order_item-plant = 'P001'.
itemx-plant = 'X'.
lwa_order_item-item_categ = 'ZTAC'."'ZG2S'.
itemx-item_categ = 'X'.
lwa_order_item-target_qty = '1.000'.
itemx-target_qty = 'X'.
lwa_order_item-target_qu = 'EA'.
itemx-target_qu = 'X'.
lwa_order_item-sales_unit = 'EA'.
itemx-sales_unit = 'X'.
lwa_order_item-hg_lv_item = '000000'.
itemx-hg_lv_item = 'X'.
lwa_order_item-po_itm_no = '000010'.
itemx-po_itm_no = 'X'.
lwa_order_item-cust_mat35 = 'ASTEST06'.
itemx-cust_mat35 = 'X'.
* lwa_order_item-reason_rej = 'ASTEST06'.
* itemx-reason_rej = 'X'.
* lwa_order_item-refobjtype = 'VBRK'.
* lwa_order_item-refobjkey = '3000073117'.
* lwa_order_item-ref_doc_ca = 'M'.
append lwa_order_item to lit_order_item.
append itemx.
order_schedules_in-itm_number = '000010'.
order_schedules_inx-itm_number = 'X'.
order_schedules_in-sched_line = '0001'.
order_schedules_inx-sched_line = 'X'.
order_schedules_in-req_qty = '1.000'.
order_schedules_inx-req_qty = 'X'.
* order_schedules_in-req_date = '1.000'.
* order_schedules_inx-req_date = 'X'.
append order_schedules_in.
append order_schedules_inx.
"Fill order partnre data.
lwa_order_partner-partn_role = 'AG'.
lwa_order_partner-partn_numb = '0000000651'.
lwa_order_partner-itm_number = '000000'.
append lwa_order_partner to lit_order_partner.
"Fill order condition data
"Fill order config reference data
lwa_order_config_ref-posex = '000010'.
lwa_order_config_ref-config_id = '000010'.
lwa_order_config_ref-root_id = '00000001'.
append lwa_order_config_ref to lit_order_config_ref.
"Fill order config instances data
lwa_order_config_ins-config_id = '000010'.
lwa_order_config_ins-inst_id = '00000001'.
* lwa_order_config_ins-obj_type = 'MARA'.
* lwa_order_config_ins-class_type = '300'.
* lwa_order_config_ins-obj_key = '000000000000000200'.
* lwa_order_config_ins-quantity = '1.000'.
* lwa_order_config_ins-quantity_unit = 'EA'.
append lwa_order_config_ins to lit_order_config_ins.
"Fill order config values
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_DEST_PC'.
lwa_order_config_char-value = 'L6Z1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ORIGIN_PC'.
lwa_order_config_char-value = 'M5C1A1'.
append lwa_order_config_char to lit_order_config_char.
lwa_order_config_char-config_id = '000010'.
lwa_order_config_char-inst_id = '00000001'.
lwa_order_config_char-charc = 'PCH_ITEM_WEIGHT'.
lwa_order_config_char-value = '30'.
append lwa_order_config_char to lit_order_config_char.
clear l_logic_switch.
l_logic_switch-cond_handl = 'X'.
append l_logic_switch.
if sales_doc_number is not initial.
call function 'BAPI_TRANSACTION_COMMIT'.
write:/ sales_doc_number.
else.
clear: wa_return.
loop at li_return into wa_return.
write:/ wa_return-message.
endloop.
endif.
-----------------------------------------------------------------------------------------------------------------------------------------
Again the issue is only when I try to create Credit or Debit Memo. Other types work fine.
Lastly how will I link my credit memo with original/reference sales order and billing doc (refer to the attached screen shot).
Because I don't think I pass billing and reference document anywhere.