Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
85 views

Program To Create Sales Order Using BAPI

Bapi

Uploaded by

sohail ahmed
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views

Program To Create Sales Order Using BAPI

Bapi

Uploaded by

sohail ahmed
Copyright
© © All Rights Reserved
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