0% found this document useful (0 votes)
115 views

Program To Create Sales Order Using BAPI

Bapi

Uploaded by

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

Program To Create Sales Order Using BAPI

Bapi

Uploaded by

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

*&---------------------------------------------------------------------*

*& Report ZSDC_SALESORDER_BAPI


*&---------------------------------------------------------------------*
*&Program : ZSDC_SALESORDER_BAPI
*&Created on:27.08.2019.
*&Breif : Sales Order Creation using Bapi
*&---------------------------------------------------------------------*
REPORT zsdc_salesorder_bapi.

CONSTANTS : c_x TYPE c VALUE 'X',


gc_e TYPE c VALUE 'E'.

TYPES : BEGIN OF ty_final,


* ind(01), "Indicator
ind TYPE char2, "Indicator
auart(04), "Sales Document Type
vkorg(04), "Sales Organization
vtweg(02), "Distribution Channel
spart(02), "Division
so_kunnr(10), "Sold to party
sh_kunnr(10), "Ship to party
bstnk(20), "Customer Reference
bstdk TYPE bstdk, "Customer Reference Date
werks(04), "Plant
vstel(04), "Shipping Point/Receiving Point
lgort(04), "Storage location
posnr(06), "Sales Document Item
matnr(40), "Material Number
kwmeng(18), "Order Quantity
vrkme(03), "Sales Unit
* prsdt TYPE prsdt, "Date for pricing and exchange rate
errtxt TYPE text255,
END OF ty_final.

TYPES: BEGIN OF ty_messages,


mtype TYPE bapi_mtype,
id TYPE symsgid,
number TYPE symsgno,
message TYPE bapi_msg,
message_v1 TYPE symsgv,
message_v2 TYPE symsgv,
message_v3 TYPE symsgv,
message_v4 TYPE symsgv,
fldname TYPE fnam_____4,
color_line TYPE slis_fieldname,
END OF ty_messages.

DATA : gt_final TYPE TABLE OF ty_final,


gs_final TYPE ty_final,
gt_message TYPE TABLE OF ty_messages,
gs_message TYPE ty_messages.

DATA : gt_raw TYPE truxs_t_text_data.

DATA : p_file1(128) TYPE c,


gv_text(220) TYPE c,
gv_flag TYPE c.

DATA : gv_auart(04), "Sales Document Type


gv_vkorg(04), "Sales Organization
gv_vtweg(02), "Distribution Channel
gv_spart(02), "Division
gv_bstnk(20), "Customer Reference
gv_bstdk TYPE bstdk, "Customer Reference Date
gv_so_kunnr(10),
gv_sh_kunnr(10).
DATA : gs_ord_head TYPE bapisdhd1, "Order Header.
gs_ord_headx TYPE bapisdhd1x, "Order Header.
gt_return TYPE TABLE OF bapiret2, "Return Messages
gs_return TYPE bapiret2, "Return Messages
gt_item_in TYPE TABLE OF bapisditm, "Item Data
gs_item_in TYPE bapisditm, "Item Data
gt_item_inx TYPE TABLE OF bapisditmx, "Item Data Checkbox
gs_item_inx TYPE bapisditmx, "Item Data Checkbox
gt_ord_part TYPE TABLE OF bapiparnr, "Document Partner
gs_ord_part TYPE bapiparnr, "Document Partner
gt_sched_in TYPE TABLE OF bapischdl, "Schedule Line Data
gs_sched_in TYPE bapischdl, "Schedule Line Data
gt_sched_inx TYPE TABLE OF bapischdlx, "Checkbox Schedule Line Data
gs_sched_inx TYPE bapischdlx, "Checkbox Schedule Line Data
gv_vbeln TYPE bapivbeln-vbeln,
gs_testrun TYPE bapiflag.

DATA : gt_tvak TYPE TABLE OF tvak, "Sales Document Type


gs_tvak TYPE tvak,
gt_tvko TYPE TABLE OF tvko, "Sales Organisation
gs_tvko TYPE tvko,
gt_tvkov TYPE TABLE OF tvkov, "Distibution Channel
gs_tvkov TYPE tvkov,
gt_tvta TYPE TABLE OF tvta, "Sales unit
gs_tvta TYPE tvta,
gt_t001w TYPE TABLE OF t001w, "Plant
gs_t001w TYPE t001w,
gt_t001l TYPE TABLE OF t001l, "Storage Location
gs_t001l TYPE t001l,
gt_tvst TYPE TABLE OF tvst, "Shipping Points
gs_tvst TYPE tvst,
gt_kna1 TYPE TABLE OF kna1, "Sold to Party
gs_kna1 TYPE kna1,
gt_kna TYPE TABLE OF kna1, "Ship to Party
gs_kna TYPE kna1.
*&---------------------------------------------------------------------*
*&Selection Screen
*&---------------------------------------------------------------------*

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.


PARAMETERS : p_file TYPE ibipparms-path,
p_chk AS CHECKBOX.
SELECTION-SCREEN : END OF BLOCK b1.

*At selection screen value request

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.

CALL FUNCTION 'F4_FILENAME'


EXPORTING
program_name = sy-repid
IMPORTING
file_name = p_file.

*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*

START-OF-SELECTION.

*Uploading Excel File


PERFORM upload_file.
* BREAK savic_abap.
IF p_chk = 'X'.
CLEAR gv_flag.
gv_flag = 'X'.
*Perform fetching data
PERFORM validations.
*validate data
PERFORM validate_data.
*Error msgs display
PERFORM error_display USING gt_final .
*Processing data
PERFORM process_data.
*Error msgs display
PERFORM error_display USING gt_message.
ELSE.
*Processing data
PERFORM process_data.
*Error msgs display
PERFORM error_display USING gt_message.
ENDIF.
*&---------------------------------------------------------------------*
*& Form UPLOAD_FILE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM upload_file .

p_file1 = p_file.
CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'
EXPORTING
* i_field_seperator =
i_line_header = 'X'
i_tab_raw_data = gt_raw
i_filename = p_file1
TABLES
i_tab_converted_data = gt_final
EXCEPTIONS
conversion_failed = 1
OTHERS = 2.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form PROCESS_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM process_data .
* SORT gt_final ASCENDING BY ind.
CHECK gt_final IS NOT INITIAL.

LOOP AT gt_final INTO gs_final.

CLEAR : gv_auart,gv_vkorg,gv_vtweg,gv_spart,
gv_bstnk,gv_bstdk,gv_so_kunnr,gv_sh_kunnr.
REFRESH : gt_return.

gv_auart = gs_final-auart.
gv_vkorg = gs_final-vkorg.
gv_vtweg = gs_final-vtweg.
gv_spart = gs_final-spart.
gv_bstnk = gs_final-bstnk.
gv_bstdk = gs_final-bstdk.
gv_so_kunnr = gs_final-so_kunnr.
gv_sh_kunnr = gs_final-sh_kunnr.
*Header data
AT NEW ind.
PERFORM header_data.

*Sold to party
PERFORM sold_party.

*Ship to party
PERFORM ship_party.
ENDAT.
*Item data
PERFORM item_data.

*Order Quantity
PERFORM order_quantity.

*Call Sales order Bapi


AT END OF ind.
PERFORM call_bapi.
ENDAT.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CALL_BAPI
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM call_bapi .
* BREAK-POINT.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
* SALESDOCUMENTIN =
order_header_in = gs_ord_head
order_header_inx = gs_ord_headx
* SENDER =
* BINARY_RELATIONSHIPTYPE =
* INT_NUMBER_ASSIGNMENT =
* BEHAVE_WHEN_ERROR =
* LOGIC_SWITCH =
testrun = gv_flag
* CONVERT = ' '
IMPORTING
salesdocument = gv_vbeln
TABLES
return = gt_return
order_items_in = gt_item_in
order_items_inx = gt_item_inx
order_partners = gt_ord_part
order_schedules_in = gt_sched_in
order_schedules_inx = gt_sched_inx
* ORDER_CONDITIONS_IN =
* ORDER_CONDITIONS_INX =
* ORDER_CFGS_REF =
* ORDER_CFGS_INST =
* ORDER_CFGS_PART_OF =
* ORDER_CFGS_VALUE =
* ORDER_CFGS_BLOB =
* ORDER_CFGS_VK =
* ORDER_CFGS_REFINST =
* ORDER_CCARD =
* ORDER_TEXT =
* ORDER_KEYS =
* EXTENSIONIN =
* PARTNERADDRESSES =
* EXTENSIONEX =
* NFMETALLITMS =
.
READ TABLE gt_return INTO gs_return WITH KEY type = gc_e.
IF sy-subrc = 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.

ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = c_x.
* IMPORTING
* RETURN =
.
ENDIF.
CLEAR : gs_ord_head,gs_ord_headx.
REFRESH : gt_item_in,gt_item_inx,gt_sched_in,gt_sched_inx,gt_ord_part.
*Perform reading for Error msgs reading
PERFORM error_msg.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form VALIDATIONS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM validations .

CHECK gt_final IS NOT INITIAL.

LOOP AT gt_final ASSIGNING FIELD-SYMBOL(<f1>).


*Conversion exist for Cutomer Number
PERFORM conversion CHANGING <f1>.
ENDLOOP.

*Sales Document Type


SELECT * FROM tvak INTO TABLE gt_tvak
FOR ALL ENTRIES IN gt_final
WHERE auart = gt_final-auart.
SORT gt_tvak BY auart.
*Sales Organisation
SELECT * FROM tvko INTO TABLE gt_tvko
FOR ALL ENTRIES IN gt_final
WHERE vkorg = gt_final-vkorg.
SORT gt_tvko BY vkorg.
*Distibution Channel
SELECT * FROM tvkov INTO TABLE gt_tvkov
FOR ALL ENTRIES IN gt_final
WHERE vtweg = gt_final-vtweg.

SORT gt_tvkov BY vtweg.


*Division
SELECT * FROM tvta INTO TABLE gt_tvta
FOR ALL ENTRIES IN gt_final
WHERE spart = gt_final-spart.
SORT gt_tvta BY spart.
*Plant
SELECT * FROM t001w INTO TABLE gt_t001w
FOR ALL ENTRIES IN gt_final
WHERE werks = gt_final-werks.
SORT gt_t001w BY werks.
*Storage Location
SELECT * FROM t001l INTO TABLE gt_t001l
FOR ALL ENTRIES IN gt_final
WHERE werks = gt_final-werks
AND lgort = gt_final-lgort.
SORT gt_t001l BY lgort.
*Shipping Points
SELECT * FROM tvst INTO TABLE gt_tvst
FOR ALL ENTRIES IN gt_final
WHERE vstel = gt_final-vstel.
SORT gt_tvst BY vstel.
*Sold to party
SELECT * FROM kna1 INTO TABLE gt_kna1
FOR ALL ENTRIES IN gt_final
WHERE kunnr = gt_final-so_kunnr.
SORT gt_kna1 BY kunnr.
*Ship to party
SELECT * FROM kna1 INTO TABLE gt_kna
FOR ALL ENTRIES IN gt_final
WHERE kunnr = gt_final-sh_kunnr.
SORT gt_kna BY kunnr.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form CONVERSION
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& <-- <F1>
*&---------------------------------------------------------------------*
FORM conversion CHANGING cs_final TYPE ty_final.

*Sold to party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = cs_final-so_kunnr
IMPORTING
output = cs_final-so_kunnr.
*Ship to party
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = cs_final-sh_kunnr
IMPORTING
output = cs_final-sh_kunnr.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form VALIDATE_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM validate_data .

DATA : lv_erflg TYPE c,


lv_name TYPE char30,
lv_msg TYPE text255.

LOOP AT gt_final ASSIGNING FIELD-SYMBOL(<f1>).

CLEAR: lv_msg.

*Sales Document type


READ TABLE gt_tvak INTO gs_tvak WITH KEY auart = <f1>-auart BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-003 . "'Sales Document type' .
CONCATENATE lv_name <f1>-auart '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Sales Organisation
READ TABLE gt_tvko INTO gs_tvko WITH KEY vkorg = <f1>-vkorg BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-004. "'Sales Organisation'.
CONCATENATE lv_msg lv_name <f1>-vkorg '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Distibution Channel
READ TABLE gt_tvkov INTO gs_tvkov WITH KEY vtweg = <f1>-vtweg BINARY SEARCH.

IF sy-subrc NE 0.
lv_name = TEXT-005. "'Distribution Channel'.
CONCATENATE lv_msg lv_name <f1>-vtweg '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Division
READ TABLE gt_tvta INTO gs_tvta WITH KEY spart = <f1>-spart BINARY SEARCH.

IF sy-subrc NE 0.
lv_name = TEXT-006. "'Divison'.
CONCATENATE lv_msg lv_name <f1>-spart '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Plant
READ TABLE gt_t001w INTO gs_t001w WITH KEY werks = <f1>-werks BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-007. "'Plant'.
CONCATENATE lv_msg lv_name <f1>-werks '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Storage Location
READ TABLE gt_t001l INTO gs_t001l WITH KEY lgort = <f1>-lgort BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-008. "'Storage Location'.
CONCATENATE lv_msg lv_name <f1>-lgort '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

**Shipping Points
READ TABLE gt_tvst INTO gs_tvst WITH KEY vstel = <f1>-vstel BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-009. "'Shipping Points'.
CONCATENATE lv_msg lv_name <f1>-vstel '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Sold to party
READ TABLE gt_kna1 INTO gs_kna1 WITH KEY kunnr = <f1>-so_kunnr BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-010. "'Sold to Party'.
CONCATENATE lv_msg lv_name <f1>-so_kunnr '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

*Ship to party
READ TABLE gt_kna INTO gs_kna WITH KEY kunnr = <f1>-sh_kunnr BINARY SEARCH.
IF sy-subrc NE 0.
lv_name = TEXT-011. "'Ship to party'.
CONCATENATE lv_msg lv_name <f1>-sh_kunnr '/' INTO lv_msg SEPARATED BY space.
lv_erflg = c_x.
ENDIF.

IF lv_msg IS NOT INITIAL.


CONCATENATE lv_msg TEXT-002 INTO lv_msg SEPARATED BY space.
<f1>-errtxt = lv_msg.
ENDIF.
ENDLOOP.

ENDFORM.
*&---------------------------------------------------------------------*
*& Form ERROR_DISPLAY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM error_display USING cs_final.
DATA: lr_output TYPE REF TO cl_salv_table,
lr_functions TYPE REF TO cl_salv_functions_list,
lr_columns TYPE REF TO cl_salv_columns_table,
lr_column TYPE REF TO cl_salv_column.

TRY.
CALL METHOD cl_salv_table=>factory
* EXPORTING
* LIST_DISPLAY = IF_SALV_C_BOOL_SAP=>FALSE
* R_CONTAINER =
* CONTAINER_NAME =
IMPORTING
r_salv_table = lr_output
CHANGING
t_table = cs_final.
CATCH cx_salv_msg .
ENDTRY.

lr_functions = lr_output->get_functions( ).
lr_functions->set_default( abap_true ).
lr_functions->set_export_localfile( abap_true ).
* Get Columns
lr_columns = lr_output->get_columns( ).
lr_columns->set_optimize( 'X' ).

* lr_column = lr_columns->get_column( 'SYSTEM' ).


* lr_column->set_visible( '' ).

lr_output->display( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ERROR_MSG
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM error_msg .
DATA : gv_number TYPE msgnr.

CHECK gt_return IS NOT INITIAL.

LOOP AT gt_return INTO gs_return.

gv_number = gs_return-number.
CALL FUNCTION 'MASS_MESSAGE_GET'
EXPORTING
arbgb = gs_return-id
msgnr = gv_number
msgv1 = gs_return-message_v1
msgv2 = gs_return-message_v2
msgv3 = gs_return-message_v3
msgv4 = gs_return-message_v4
IMPORTING
msgtext = gv_text
EXCEPTIONS
message_not_found = 1
OTHERS = 2.

IF sy-subrc = 0. " internal structure


gs_message-mtype = gs_return-type.
gs_message-id = gs_return-id.
gs_message-number = gs_return-number.
gs_message-message = gv_text.
gs_message-message_v1 = gs_return-message_v1.
gs_message-message_v2 = gs_return-message_v2.
gs_message-message_v3 = gs_return-message_v3.
gs_message-message_v4 = gs_return-message_v4.
APPEND gs_message TO gt_message.
ENDIF.
ENDLOOP.
CLEAR gs_final.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form HEADER_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM header_data .

gs_ord_head-doc_type = gv_auart.
gs_ord_head-sales_org = gv_vkorg.
gs_ord_head-distr_chan = gv_vtweg.
gs_ord_head-division = gv_spart.
gs_ord_head-purch_date = gv_bstdk.
gs_ord_head-purch_no_c = gv_bstnk.

*Header Data check list


gs_ord_headx-updateflag = 'I'.
gs_ord_headx-doc_type = c_x.
gs_ord_headx-sales_org = c_x.
gs_ord_headx-distr_chan = c_x.
gs_ord_headx-division = c_x.
gs_ord_headx-purch_date = c_x.
gs_ord_headx-purch_no_c = c_x.

IF p_chk = 'X'.
gs_testrun-bapiflag = 'X'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ITEM_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM item_data .
gs_item_in-itm_number = gs_final-posnr.
gs_item_in-material = gs_final-matnr.
gs_item_in-plant = gs_final-werks.
gs_item_in-store_loc = gs_final-lgort.
* gs_item_in-price_date = gs_final-prsdt.
gs_item_in-sales_unit = gs_final-vrkme.
gs_item_in-ship_point = gs_final-vstel.
gs_item_in-material_long = gs_final-matnr.
APPEND gs_item_in TO gt_item_in.
CLEAR gs_item_in.

gs_item_inx-itm_number = gs_final-posnr.
gs_item_inx-updateflag = 'I'.
gs_item_inx-itm_number = c_x.
gs_item_inx-material = c_x.
gs_item_inx-plant = c_x.
gs_item_inx-store_loc = c_x.
* gs_item_inx-price_date = c_x.
gs_item_inx-sales_unit = c_x.
gs_item_inx-ship_point = c_x.
gs_item_inx-material_long = c_x.
APPEND gs_item_inx TO gt_item_inx.
CLEAR gs_item_inx.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SOLD_PARTY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM sold_party .

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'


EXPORTING
input = gv_so_kunnr
IMPORTING
output = gv_so_kunnr.

gs_ord_part-partn_role = 'AG'.
gs_ord_part-partn_numb = gv_so_kunnr.
APPEND gs_ord_part TO gt_ord_part.
CLEAR gs_ord_part.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SHIP_PARTY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM ship_party .

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'


EXPORTING
input = gv_sh_kunnr
IMPORTING
output = gv_sh_kunnr.

gs_ord_part-partn_role = 'WE'.
gs_ord_part-partn_numb = gv_sh_kunnr.
APPEND gs_ord_part TO gt_ord_part.
CLEAR gs_ord_part.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ORDER_QUANTITY
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM order_quantity .
gs_sched_in-itm_number = gs_final-posnr.
gs_sched_in-req_qty = gs_final-kwmeng.
APPEND gs_sched_in TO gt_sched_in.
CLEAR gs_sched_in.

gs_sched_inx-itm_number = gs_final-posnr.
gs_sched_inx-updateflag = 'I'.
gs_sched_inx-itm_number = c_x.
gs_sched_inx-req_qty = c_x.
APPEND gs_sched_inx TO gt_sched_inx.
CLEAR gs_sched_inx.

ENDFORM.

You might also like