Quantcast
Channel: SCN : Popular Discussions - Custom Code Management
Viewing all articles
Browse latest Browse all 731

Error coming " A BS 001 No status object is available for SDI 0 "

$
0
0

Hi Experts,

 

I am facing a issue.. I am creation a sales order using BAPI " BAPI_SALESORDER_CREATEFROMDAT2 "  

 

In one scenario,  I am able to create Sales Order with Status Profile..

But For second scenario, its giving error like  "A   BS   001  No status object is available for SDI 0" .

 

Between both scenario, only difference is Distribution channel and Condition record.

 

DATA : wa_order_header_in TYPE bapisdhd1,
gt_order_partners
TYPE STANDARD TABLE OF bapiparnr,
gs_order_partners
TYPE bapiparnr,
gs_order_partners1
TYPE bapiparnr,
gt_order_items_in
TYPE STANDARD TABLE OF bapisditm,
gs_order_items_in
TYPE bapisditm,
gt_order_conditions_in
TYPE STANDARD TABLE OF bapicond,
gs_order_conditions_in
TYPE bapicond,
gt_order_schedules_in
TYPE STANDARD TABLE OF bapischdl,
gs_order_schedules_in
TYPE bapischdl,
*         gt_return TYPE STANDARD TABLE OF bapiret2,
*         gs_return TYPE bapiret2,
gt_error
TYPE STANDARD TABLE OF bapiret2,
gs_error
TYPE bapiret2,
gt_log
TYPE TABLE OF zsd_ecomerr,
gs_log
TYPE zsd_ecomerr,
it_item_temp
TYPE TABLE OF zst_sfdc_so_items_dom WITH HEADER LINE,
lt_return
TYPE STANDARD TABLE OF bapiret2,
ls_return
TYPE bapiret2,
lt_order_conditions_in
TYPE STANDARD TABLE OF bapicond,
ls_order_conditions_in
TYPE bapicond,
ls_sfdc
TYPE zsd_sfdc_order .

DATAwa_order_header_inx TYPE bapisdhd1x,
gt_order_items_inx
TYPE STANDARD TABLE OF bapisditmx,
lt_order_items_inx
TYPE STANDARD TABLE OF bapisditmx,
gs_order_items_inx
TYPE bapisditmx,
gt_order_schedules_inx
TYPE STANDARD TABLE OF bapischdlx,
gs_order_schedules_inx
TYPE bapischdlx,
gt_order_conditions_inx
TYPE STANDARD TABLE OF bapicondx,
gs_order_conditions_inx
TYPE bapicondx,
lt_order_conditions_inx
TYPE STANDARD TABLE OF bapicondx,
ls_order_conditions_inx
TYPE bapicondx,
ls_order_items_inx
TYPE bapisditmx,
lv_kbetr
TYPE kbetr VALUE '10',
lv_curr 
TYPE waers ,
lv_ihrez 
TYPE ihrez ,
lv_knumh 
TYPE a005-knumh.

DATA:isrno LIKE vbap-posnr.
DATA: x_orderitemx LIKE bapisdh1x.

TYPES: BEGIN OF ty_vbap,
vbeln
TYPE vbap-vbeln,
posnr
TYPE vbap-posnr,
mwsbp 
TYPE vbap-mwsbp,
END OF ty_vbap.

DATA: lv_lfstk TYPE vbuk-lfstk,
lv_cmgst
TYPE vbuk-cmgst,
lt_vbap
TYPE TABLE OF ty_vbap,
ls_vbap
TYPE ty_vbap,
lv_bstnk
TYPE vbak-bstnk.


****// Checking PO Type. This is mandatory from SFDC
IF sfdc-potype <> '' .
****// Checking here, Whether SFDC Order ID already exist or not. ***//
SELECT SINGLE * FROM zsd_sfdc_order WHERE sfdcorder = sfdc-sfdcorder AND land1 = 'IN'.

IF sy-subrc <> 0.
****// SO creation Process
wa_order_header_in
-doc_type    = 'ZHOT'.
wa_order_header_in
-sales_org   = '2700'.

IF sfdc-potype = 'SFSD'.                        " S & D
wa_order_header_in
-distr_chan  = '30'.
wa_order_header_in
-division    = '00'.
ELSEIF sfdc-potype = 'SFHO'.                    " Hospitality
wa_order_header_in
-distr_chan  = '33'.
wa_order_header_in
-division    = '00'.
ENDIF.

wa_order_header_in
-purch_date  = sfdc-purch_date.
wa_order_header_in
-purch_no_c  = sfdc-sfdcorder"SFDC Order ID
wa_order_header_in
-doc_date    = sy-datum.
wa_order_header_in
-currency    = 'INR'.
wa_order_header_in
-ref_1       = sfdc-purch_no. "sfdc-sfdcorder.


wa_order_header_in
-po_method = sfdc-potype.

wa_order_header_inx
-updateflag  'I'.
wa_order_header_inx
-doc_type    'X'.
wa_order_header_inx
-sales_org   'X'.
wa_order_header_inx
-distr_chan  'X'.
wa_order_header_inx
-division    'X'.
wa_order_header_inx
-purch_no_c  'X'.
wa_order_header_inx
-purch_date  'X'.
wa_order_header_inx
-doc_date    'X'.
wa_order_header_inx
-currency    'X'.
wa_order_header_inx
-ref_1       'X'.



***// Ship to party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input  = sfdc-kunag
IMPORTING
output = sfdc-kunag.

gs_order_partners
-partn_numb = sfdc-kunag.
gs_order_partners
-partn_role = 'WE'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input  = gs_order_partners-partn_numb
IMPORTING
output = gs_order_partners-partn_numb.

APPEND gs_order_partners TO gt_order_partners.
CLEAR: gs_order_partners.

***// Sold to Party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input  = sfdc-kunnr
IMPORTING
output = sfdc-kunnr.

gs_order_partners
-partn_numb = sfdc-kunnr.
gs_order_partners
-partn_role = 'AG'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input  = gs_order_partners-partn_numb
IMPORTING
output = gs_order_partners-partn_numb.

APPEND gs_order_partners TO gt_order_partners.
CLEAR: gs_order_partners.

***// Clubed all materials
LOOP AT it_items.
it_item_temp
-matnr     = it_items-matnr.
it_item_temp
-kwmeng    = it_items-kwmeng.
it_item_temp
-kwert     = it_items-kwert.
it_item_temp
-reg_dis   = it_items-reg_dis.
it_item_temp
-add_dis   = it_items-add_dis.
it_item_temp
-tann   = it_items-tann.
COLLECT it_item_temp.
ENDLOOP.

***// Saving Line Item data

LOOP AT it_item_temp.
isrno
= isrno + 10.

gs_order_items_in
-itm_number = isrno.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input  = it_item_temp-matnr
IMPORTING
output = it_item_temp-matnr.

gs_order_items_in
-material = it_item_temp-matnr.
gs_order_items_in
-plant        sfdc-werks.
gs_order_items_in
-currency     'INR'.
IF it_item_temp-tann = 'X'.
gs_order_items_in
-item_categ   'TANN'.
ENDIF.
APPEND gs_order_items_in TO gt_order_items_in.
CLEAR gs_order_items_in.


SELECT SINGLE knumh
INTO lv_knumh
FROM a005
WHERE kappl = 'V'
AND   kschl IN ('ZR04', 'ZR00')
AND   vkorg = '2700'
AND   kunnr = sfdc-kunnr
AND   matnr = it_item_temp-matnr.
IF sy-subrc = 0.
SELECT SINGLE kbetr
INTO it_item_temp-kwert
FROM konp
WHERE knumh = lv_knumh.

ELSE.

***//

gs_order_conditions_in
-itm_number  = isrno.
IF sfdc-potype = 'SFSD' .                              " Sales and Distribution
gs_order_conditions_in
-cond_type  = 'ZR04'.
ELSEIF sfdc-potype = 'SFHO'.                           " Hospitality
gs_order_conditions_in
-cond_type  = 'ZR00'.
ENDIF.
it_item_temp
-kwert = it_item_temp-kwert .
gs_order_conditions_in
-cond_value = it_item_temp-kwert .
gs_order_conditions_in
-currency   = 'INR'.
APPEND gs_order_conditions_in TO gt_order_conditions_in.
CLEAR gs_order_conditions_in.

gs_order_conditions_inx
-itm_number   isrno.
gs_order_conditions_inx
-cond_type    = 'X'.
gs_order_conditions_inx
-cond_value   = 'X'.
gs_order_conditions_inx
-currency     = 'X'.
gs_order_conditions_inx
-updateflag   = 'X'.
APPEND gs_order_conditions_inx TO gt_order_conditions_inx.
CLEAR gs_order_conditions_inx.

IF sfdc-potype = 'SFSD'.
***// Regular Discount to Customer
IF it_item_temp-reg_dis <> '0.00'.
gs_order_conditions_in
-itm_number  = isrno.
gs_order_conditions_in
-cond_type  = 'ZDID'.
gs_order_conditions_in
-cond_value = it_item_temp-reg_dis * lv_kbetr. " 10 .
gs_order_conditions_in
-currency   = 'INR'.
APPEND gs_order_conditions_in TO gt_order_conditions_in.
CLEAR gs_order_conditions_in.

gs_order_conditions_inx
-itm_number  = isrno.
gs_order_conditions_inx
-cond_type    = 'X'.
gs_order_conditions_inx
-cond_value   = 'X'.
gs_order_conditions_inx
-currency     = 'X'.
gs_order_conditions_inx
-updateflag   = 'X'.
APPEND gs_order_conditions_inx TO gt_order_conditions_inx.
CLEAR gs_order_conditions_inx.
ENDIF.

***// Additional Discount to Customer
IF it_item_temp-add_dis <> '0.00'.
gs_order_conditions_in
-itm_number  = isrno.
gs_order_conditions_in
-cond_type  = 'ZINM'.
gs_order_conditions_in
-cond_value = it_item_temp-add_dis * lv_kbetr.
gs_order_conditions_in
-currency   = 'INR'.
APPEND gs_order_conditions_in TO gt_order_conditions_in.
CLEAR gs_order_conditions_in.

gs_order_conditions_inx
-itm_number  = isrno.
gs_order_conditions_inx
-cond_type    = 'X'.
gs_order_conditions_inx
-cond_value   = 'X'.
gs_order_conditions_inx
-currency     = 'X'.
gs_order_conditions_inx
-updateflag   = 'X'.
APPEND gs_order_conditions_inx TO gt_order_conditions_inx.
CLEAR gs_order_conditions_inx.
ENDIF.
ENDIF.

ENDIF.
ENDLOOP.

******** End Discount ********


LOOP AT gt_order_items_in INTO gs_order_items_in.
READ TABLE it_item_temp WITH KEY matnr = gs_order_items_in-material.
IF sy-subrc = 0.
gs_order_schedules_in
-itm_number = gs_order_items_in-itm_number.
gs_order_schedules_in
-req_qty    = it_item_temp-kwmeng.
APPEND gs_order_schedules_in TO gt_order_schedules_in.
CLEAR gs_order_schedules_in.

gs_order_schedules_inx
-itm_number gs_order_items_in-itm_number.
gs_order_schedules_inx
-req_qty  = 'X'.
gs_order_schedules_inx
-dlv_date = 'X'.
APPEND gs_order_schedules_inx TO gt_order_schedules_inx.
CLEAR gs_order_schedules_inx.
ENDIF.
ENDLOOP.

sfdcorder
= sfdc-sfdcorder.
kunnr    
= sfdc-kunnr.
kunag    
= sfdc-kunag.


CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
*   SALESDOCUMENTIN               =
order_header_in              
= wa_order_header_in
order_header_inx             
= wa_order_header_inx
IMPORTING
salesdocument                
= vbeln
TABLES
return                        = gt_return
order_items_in               
= gt_order_items_in
order_items_inx              
= gt_order_items_inx
order_partners               
= gt_order_partners
order_schedules_in           
= gt_order_schedules_in
order_schedules_inx          
= gt_order_schedules_inx
order_conditions_in          
= gt_order_conditions_in
order_conditions_inx         
= gt_order_conditions_inx.


CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.


Viewing all articles
Browse latest Browse all 731

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>