0% found this document useful (0 votes)
105 views5 pages

Abap Questions

This document contains code for two SAP functions: 1. z_sd_vbfa_select - This function selects invoice and status information from a document flow based on an input document number. 2. zbapi_salesorder - This function creates a sales order in SAP using BAPI calls. It inputs customer, material, and other data and returns the generated sales document number.

Uploaded by

shekhar suman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
105 views5 pages

Abap Questions

This document contains code for two SAP functions: 1. z_sd_vbfa_select - This function selects invoice and status information from a document flow based on an input document number. 2. zbapi_salesorder - This function creates a sales order in SAP using BAPI calls. It inputs customer, material, and other data and returns the generated sales document number.

Uploaded by

shekhar suman
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 5

Z_SD_VBFA_SELECT

FUNCTION z_sd_vbfa_select.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(I_VBELV) LIKE VBUK-VBELN
*" EXPORTING
*" VALUE(INVOICE) LIKE VBRK-VBELN
*" VALUE(INV_STATUS) LIKE VBRK-FKSTO
*" VALUE(STATUS) TYPE CHAR20
*" TABLES
*" FVBFA STRUCTURE VBFA OPTIONAL
*"----------------------------------------------------------------------
* relevance check will be done in a requirement in this report it is temporar
y
DATA: lt_vbfa TYPE TABLE OF vbfa,
ls_vbfa TYPE vbfa,
lv_vbelv TYPE vbeln,
wa_vbrk TYPE vbrk.

lv_vbelv = i_vbelv.
* Read document flow
CALL FUNCTION 'SD_VBFA_SELECT'
EXPORTING
i_vbelv = lv_vbelv
TABLES
fvbfa = lt_vbfa[].

DELETE lt_vbfa WHERE vbtyp_n NE 'M'.

READ TABLE lt_vbfa[] INTO ls_vbfa WITH KEY vbtyp_n = 'M'.


IF sy-subrc = 0.
SELECT SINGLE * FROM vbrk INTO wa_vbrk WHERE vbeln = ls_vbfa-vbeln.
invoice = wa_vbrk-vbeln.
inv_status = wa_vbrk-fksto.
IF inv_status IS NOT INITIAL.
status = 'Cancelled'.
ELSE.
status = 'Not cancelled'.
ENDIF.
ELSE.
RETURN.
ENDIF.

ENDFUNCTION.
2. ZBAPI_SALESORDER
FUNCTION zbapi_salesorder.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(KUNNR) TYPE KUNNR
*" VALUE(MATNR) TYPE MATNR
*" EXPORTING
*" VALUE(V_VBELN) TYPE VBELN
*" TABLES
*" IT_RETURN STRUCTURE BAPIRET2 OPTIONAL
*"----------------------------------------------------------------------
DATA : wa_order_header_in TYPE bapisdhd1,
wa_order_header_inx TYPE bapisdhd1x,
it_order_items_in TYPE STANDARD TABLE OF bapisditm,
it_order_items_inx TYPE STANDARD TABLE OF bapisditmx,
it_order_partners TYPE STANDARD TABLE OF bapiparnr,

wa_order_items_in TYPE bapisditm,


wa_order_items_inx TYPE bapisditmx,
wa_order_partners TYPE bapiparnr,
wa_return TYPE bapiret2.

* v_vbeln = '1000000000'.
wa_order_header_in-doc_type = 'ZDS'.
wa_order_header_in-sales_org = '2000'.
wa_order_header_in-distr_chan = 'DS'.
wa_order_header_in-division = 'D1'.
wa_order_header_in-doc_date = sy-datum.

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-doc_date = 'X'.

wa_order_items_in-itm_number = '000010'.
wa_order_items_in-material = matnr.
wa_order_items_in-target_qty = '100'.
wa_order_items_in-plant = 'MFG1'.
APPEND wa_order_items_in TO it_order_items_in.
CLEAR wa_order_items_in.

wa_order_items_inx-itm_number = '000001'.
wa_order_items_inx-material = 'X'.
wa_order_items_inx-target_qty = 'X'.
wa_order_items_inx-plant = 'X'.
APPEND wa_order_items_inx TO it_order_items_inx.
CLEAR wa_order_items_inx.

wa_order_partners-partn_role = 'AG'.
wa_order_partners-partn_numb = kunnr.
wa_order_partners-name = 'Lanco Inductries Ltd'.
wa_order_partners-street = '113 Udyog Vihar Phase II'.
wa_order_partners-postl_code = '321234'.
wa_order_partners-country = 'IN'.
APPEND wa_order_partners TO it_order_partners.
CLEAR wa_order_partners.

wa_order_partners-partn_role = 'RE'.
wa_order_partners-partn_numb = kunnr.
wa_order_partners-name = 'Lanco Inductries Ltd'.
wa_order_partners-street = '113 Udyog Vihar Phase II'.
wa_order_partners-postl_code = '321234'.
wa_order_partners-country = 'IN'.
APPEND wa_order_partners TO it_order_partners.
CLEAR wa_order_partners.

CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'


EXPORTING
order_header_in = wa_order_header_in
order_header_inx = wa_order_header_inx
IMPORTING
salesdocument = v_vbeln
TABLES
return = it_return
order_items_in = it_order_items_in
order_items_inx = it_order_items_inx
order_partners = it_order_partners.

IF NOT it_return IS INITIAL.


READ TABLE it_return TRANSPORTING NO FIELDS WITH KEY type = 'E'.
IF NOT sy-subrc IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'
* IMPORTING
* RETURN = RETURN
.
* MESSAGE :'Sales Order' TYPE 'I'.
* WRITE : v_vbeln.
* MESSAGE: 'has been successfully changed.' TYPE 'I'.
ELSE.
* WRITE: 'Not Succeed'.
ENDIF.

ENDIF.
ENDFUNCTION.

You might also like