Você está na página 1de 12

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

*& Include
ZWS_FURNITURE_STO_CREATE_SUB
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&
Form REFRESH
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM refresh .
REFRESH : it_final,
it_zws_furniture,
it_final_temp,
it_mara,
it_marc,
it_poheader,
it_poheaderx,
it_poitem,
it_poitemx,
it_poschedule,
it_poschedulex,
it_return,
git_fieldcat,
lt_exclude.
CLEAR : wa_final,
wa_zws_furniture,
wa_mara,
wa_marc,
wa_poheader,
wa_poheaderx,
wa_poitem,
wa_poitemx,
wa_poschedule,
wa_poschedulex,
wa_return,
gwa_fieldcat,
gs_layo,
ls_exclude,
stonum,
lv_ebelp.
ENDFORM.
" REFRESH
*&---------------------------------------------------------------------*
*&
Module STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE status_9001 OUTPUT.
SET PF-STATUS 'STO'.
SET TITLEBAR 'STO'.
ENDMODULE.
" STATUS_9001 OUTPUT
*&---------------------------------------------------------------------*
*&
Module DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE display_data OUTPUT.

PERFORM exclude_tools.
IF sy-ucomm = 'SAVE'.
REFRESH : git_fieldcat.
PERFORM set_field_catlaog1.
CALL METHOD gt_grid->set_frontend_fieldcatalog
EXPORTING
it_fieldcatalog = git_fieldcat.
CLEAR gs_layo.
gs_layo-no_toolbar = 'X'.
CALL METHOD gt_grid->set_frontend_layout
EXPORTING
is_layout = gs_layo.
ELSE.
PERFORM set_field_catlaog.
ENDIF.
IF gt_custom IS INITIAL.
CREATE OBJECT gt_custom
EXPORTING
container_name
= 'CUSTOM'
EXCEPTIONS
cntl_error
= 1
cntl_system_error
= 2
create_error
= 3
lifetime_error
= 4
lifetime_dynpro_dynpro_link = 5
OTHERS
= 6.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CREATE OBJECT gt_grid
EXPORTING
i_parent
= gt_custom
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
OTHERS
= 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
CALL METHOD gt_grid->set_table_for_first_display(
EXPORTING
is_layout
= gs_layo
it_toolbar_excluding
= lt_exclude
CHANGING
it_outtab
= it_final[]
it_fieldcatalog
= git_fieldcat
EXCEPTIONS
invalid_parameter_combination = 1
program_error
= 2
too_many_lines
= 3
OTHERS
= 4
).
PERFORM default_values.
IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno


WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDIF.
ENDIF.
ELSE.
CALL METHOD gt_grid->refresh_table_display.
ENDIF.
ENDMODULE.
" DISPLAY_DATA OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
MODULE user_command_9001 INPUT.
DATA : ok_code TYPE sy-ucomm.
CASE ok_code.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'BACK'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'CANC'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'SAVE'.
CALL METHOD gt_grid->check_changed_data.
PERFORM validate_data.
PERFORM save_data.
PERFORM create_sto.
WHEN OTHERS.
ENDCASE.
ENDMODULE.
" USER_COMMAND_9001 INPUT
*&---------------------------------------------------------------------*
*&
Form SET_FIELD_CATLAOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM set_field_catlaog .
CHECK git_fieldcat IS INITIAL.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'STORE'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 10.
gwa_fieldcat-scrtext_m = 'Store'.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'CRE_DATE'.
= 'IT_FINAL'.
= 10.
= 'Date'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'ADV_INV_NO'.

gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'IT_FINAL'.
= 22.
= 'Advance Invoice Number'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'ARTICLE_CODE'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 20.
gwa_fieldcat-edit = 'X'.
gwa_fieldcat-no_zero = 'X'.
gwa_fieldcat-scrtext_l = 'Furniture Article code '.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'REQ_QUANTITY'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 15.
gwa_fieldcat-edit = 'X'.
gwa_fieldcat-scrtext_m = 'Required Quantity'.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'ADVANCE_AMOUNT'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 15.
gwa_fieldcat-edit = 'X'.
gwa_fieldcat-scrtext_m = 'Advance Amount'.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'FINAL_AMOUNT'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 15.
gwa_fieldcat-edit = 'X'.
gwa_fieldcat-scrtext_m = 'Final Amount'.
APPEND gwa_fieldcat TO git_fieldcat.
ENDFORM.
" SET_FIELD_CATLAOG
*&---------------------------------------------------------------------*
*&
Form EXCLUDE_TOOLS
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM exclude_tools .
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO lt_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
APPEND ls_exclude TO lt_exclude.
ENDFORM.
" EXCLUDE_TOOLS
*----------------------------------------------------------------------*
*
CLASS lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver DEFINITION.

PUBLIC SECTION.
METHODS: handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS.
"lcl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
CLASS lcl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_receiver IMPLEMENTATION.
METHOD handle_data_changed.
DATA: dl_ins_row TYPE lvc_s_modi,
lv_tabix TYPE sy-tabix.
*event is triggered when data is changed in the output
CLEAR dl_ins_row.
LOOP AT er_data_changed->mt_mod_cells INTO dl_ins_row.
CLEAR lv_tabix.
lv_tabix = dl_ins_row-row_id.
IF dl_ins_row-fieldname = 'STORE'.
dl_ins_row-value = p_werks.
ELSEIF dl_ins_row-fieldname = 'CRE_DATE'.
dl_ins_row-value = p_date.
ELSEIF dl_ins_row-fieldname = 'ADV_INV_NO'.
dl_ins_row-value = p_invnum.
ENDIF.
er_data_changed->modify_cell(
i_row_id
= lv_tabix
i_fieldname = dl_ins_row-fieldname
i_value
= dl_ins_row-value ).
CLEAR dl_ins_row.
ENDLOOP.
ENDMETHOD.
"handle_data_changed
ENDCLASS.
"lcl_event_receiver IMPLEMENTATION
DATA lcl_event_receiver TYPE REF TO lcl_event_receiver.
*&---------------------------------------------------------------------*
*&
Form DEFAULT_VALUES
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM default_values .
CREATE OBJECT lcl_event_receiver.
* For populating values in ALV after 'ENTER' event (Default values)
CALL METHOD gt_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter "trigger event after ENTER is p
ressed
EXCEPTIONS
error
= 1
OTHERS
= 2.
CALL METHOD gt_grid->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
SET HANDLER lcl_event_receiver->handle_data_changed FOR gt_grid.

ENDFORM.
" DEFAULT_VALUES
*&---------------------------------------------------------------------*
*&
Form SAVE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM save_data .
IF it_final[] IS NOT INITIAL.
CLEAR : wa_final,
wa_zws_furniture.
LOOP AT it_final INTO wa_final.
MOVE-CORRESPONDING wa_final TO wa_zws_furniture.
APPEND wa_zws_furniture TO it_zws_furniture.
CLEAR wa_zws_furniture.
CLEAR wa_final.
ENDLOOP.
IF it_zws_furniture[] IS NOT INITIAL.
MODIFY zws_furniture FROM TABLE it_zws_furniture.
COMMIT WORK AND WAIT.
ENDIF.
ENDIF.
ENDFORM.
" SAVE_DATA
*&---------------------------------------------------------------------*
*&
Form CREATE_STO
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM create_sto .
DATA : lv_msg TYPE char200.
CLEAR wa_final.
LOOP AT it_final INTO wa_final.
IF lv_ebelp IS INITIAL.
lv_ebelp = 10.
ENDIF.
*Fill header data for PO
wa_poheader-doc_type
wa_poheader-comp_code
wa_poheader-purch_org
wa_poheader-pur_group
wa_poheader-vendor
wa_poheaderx-doc_type
wa_poheaderx-purch_org
wa_poheaderx-pur_group
wa_poheaderx-comp_code
wa_poheaderx-vendor

=
=
=
=
=

*fill item data for po


wa_poitem-po_item
wa_poitem-material
wa_poitem-quantity
wa_poitem-plant

'ZWEC'.
'WS01'.
'WS01'.
'W01'.
'WD01'.
=
=
=
=
=

'X'.
'X'.
'X'.
'X'.
'X'.
=
=
=
=

lv_ebelp.
wa_final-article_code.
wa_final-req_quantity.
wa_final-store.

wa_poitem-net_price
= wa_final-final_amount.
wa_poitem-stge_loc
= 'R001'.
APPEND wa_poitem TO it_poitem .
wa_poitemx-po_item
= lv_ebelp.
wa_poitemx-material
= 'X'.
wa_poitemx-quantity
= 'X'.
wa_poitemx-plant
= 'X'.
wa_poitemx-net_price
= 'X'.
wa_poitemx-stge_loc
= 'X'.
APPEND wa_poitemx TO it_poitemx .
*Fill schedule data for PO
wa_poschedule-po_item
= lv_ebelp.
wa_poschedule-sched_line
= '0010'.
wa_poschedule-quantity
= wa_final-req_quantity.
APPEND wa_poschedule TO it_poschedule.
wa_poschedulex-po_itemx
=
'X'.
wa_poschedulex-sched_line
=
'0010'.
wa_poschedulex-sched_linex =
'X'.
wa_poschedulex-quantity
=
lv_ebelp.
wa_poschedulex-po_item
=
wa_poitem-po_item.
APPEND wa_poschedulex TO it_poschedulex.
lv_ebelp = lv_ebelp + 10 .
CLEAR wa_final.
ENDLOOP.
CALL FUNCTION 'BAPI_PO_CREATE1'
EXPORTING
poheader
= wa_poheader
poheaderx
= wa_poheaderx
IMPORTING
exppurchaseorder = stonum
TABLES
return
= it_return[]
poitem
= it_poitem[]
poitemx
= it_poitemx[]
poschedule
= it_poschedule[]
poschedulex
= it_poschedulex[].
CLEAR lv_ebelp.
READ TABLE it_return INTO wa_return WITH KEY type = 'S' id = '06' number = '
017' .
IF sy-subrc = 0 AND stonum IS NOT INITIAL .
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
WAIT UP TO 2 SECONDS.
CLEAR wa_final.
LOOP AT it_final INTO wa_final.
CONCATENATE 'STO :' stonum 'Created successfully' INTO lv_msg SEPARATED BY
space.
wa_final-log = lv_msg.
wa_final-sto = stonum.
MODIFY it_final FROM wa_final TRANSPORTING sto log.
CLEAR wa_final.
ENDLOOP.
*Error messages from BAPI will be passed to error log
ELSE.
CLEAR wa_return.

READ TABLE it_return INTO wa_return WITH KEY type = 'E'.


IF sy-subrc EQ 0.
CLEAR wa_final.
LOOP AT it_final INTO wa_final.
wa_final-log = wa_return-message.
MODIFY it_final FROM wa_final TRANSPORTING log.
CLEAR wa_final.
ENDLOOP.
ENDIF.
ENDIF .
REFRESH : it_poitem ,
it_poitemx ,
it_poschedule,
it_poschedulex ,
it_poheader ,
it_poheaderx ,
it_return.
CLEAR : wa_poitem ,
wa_poitemx ,
wa_poschedule,
wa_poschedulex ,
wa_poheader ,
wa_poheaderx ,
stonum.
PERFORM save_data.
ENDFORM.
" CREATE_STO
*&---------------------------------------------------------------------*
*&
Form SET_FIELD_CATLAOG1
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM set_field_catlaog1 .
CHECK git_fieldcat IS INITIAL.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'STORE'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 10.
gwa_fieldcat-scrtext_m = 'Store'.
APPEND gwa_fieldcat TO git_fieldcat.
CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'CRE_DATE'.
= 'IT_FINAL'.
= 10.
= 'Date'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'ADV_INV_NO'.
= 'IT_FINAL'.
= 10.
= 'Advance Invoice Number'.
git_fieldcat.

CLEAR gwa_fieldcat.

gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-no_zero =
gwa_fieldcat-scrtext_l
APPEND gwa_fieldcat TO

= 'ARTICLE_CODE'.
= 'IT_FINAL'.
= 18.
'X'.
= 'Furniture Article code '.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'REQ_QUANTITY'.
= 'IT_FINAL'.
= 8.
= 'Required Quantity'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'ADVANCE_AMOUNT'.
= 'IT_FINAL'.
= 8.
= 'Advance Amount'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'FINAL_AMOUNT'.
= 'IT_FINAL'.
= 8.
= 'Final Amount'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname
gwa_fieldcat-tabname
gwa_fieldcat-outputlen
gwa_fieldcat-scrtext_m
APPEND gwa_fieldcat TO

= 'STO'.
= 'IT_FINAL'.
= 10.
= 'STO'.
git_fieldcat.

CLEAR gwa_fieldcat.
gwa_fieldcat-fieldname = 'LOG'.
gwa_fieldcat-tabname = 'IT_FINAL'.
gwa_fieldcat-outputlen = 60.
gwa_fieldcat-scrtext_m = 'Log'.
APPEND gwa_fieldcat TO git_fieldcat.
ENDFORM.
" SET_FIELD_CATLAOG1
*&---------------------------------------------------------------------*
*&
Form FETCH_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM fetch_data .
SELECT * FROM zws_furniture
INTO CORRESPONDING FIELDS OF TABLE it_final
WHERE store = p_werks
AND cre_date = p_date
AND adv_inv_no = p_invnum.
IF it_final[] IS NOT INITIAL.
CLEAR wa_final.

LOOP AT it_final INTO wa_final.


IF wa_final-sto IS NOT INITIAL.
MESSAGE text-002 TYPE 'S' DISPLAY LIKE 'E'."STO is already created for t
his input.
LEAVE LIST-PROCESSING.
ELSE.
CONTINUE.
ENDIF.
CLEAR wa_final.
ENDLOOP.
ENDIF.
ENDFORM.
" FETCH_DATA
*&---------------------------------------------------------------------*
*&
Form VALIDATE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM validate_data .
DATA : lv_matnr(500) TYPE c,
lv_matnr1(500) TYPE c,
lv_matnr2(500) TYPE c,
lv_len(10) TYPE c,
lv_msg1 TYPE char200,
lv_material TYPE matnr,
lv_tabix TYPE char10.
CLEAR : lv_matnr,
lv_matnr1,
lv_matnr2,
lv_len,
lv_msg1,
lv_material.
* Validate articles
IF it_final[] IS NOT INITIAL.
LOOP AT it_final ASSIGNING <fs_final>.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = <fs_final>-article_code
IMPORTING
output = <fs_final>-article_code.
ENDLOOP.
SELECT matnr FROM mara
INTO TABLE it_mara
FOR ALL ENTRIES IN it_final
WHERE matnr = it_final-article_code.
SELECT matnr
werks FROM marc
INTO TABLE it_marc
FOR ALL ENTRIES IN it_final
WHERE matnr = it_final-article_code
AND werks = it_final-store.
it_final_temp[] = it_final[].
SORT it_final_temp BY article_code.
CLEAR wa_final.

LOOP AT it_final_temp INTO wa_final.


CLEAR lv_tabix.
lv_tabix = sy-tabix.
CONDENSE lv_tabix.
* Validation for required quantity
IF wa_final-req_quantity IS INITIAL.
CLEAR lv_msg1.
CONCATENATE 'Line' lv_tabix text-006 INTO lv_msg1 SEPARATED BY space."Pl
ease enter required quantity.
MESSAGE lv_msg1 TYPE 'E' .
ENDIF.
* Validation for duplicate articles
IF lv_material = wa_final-article_code.
SHIFT wa_final-article_code LEFT DELETING LEADING '0'.
CONCATENATE lv_matnr2 wa_final-article_code ',' INTO lv_matnr2.
ENDIF.
* Validation for articles
CLEAR wa_mara.
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_final-article_code.
IF sy-subrc NE 0.
SHIFT wa_final-article_code LEFT DELETING LEADING '0'.
CONCATENATE lv_matnr wa_final-article_code ',' INTO lv_matnr.
ENDIF.
* Validation for articles which are maintaied in plants
CLEAR wa_marc.
READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_final-article_code
werks = wa_final-store.
IF sy-subrc NE 0.
SHIFT wa_final-article_code LEFT DELETING LEADING '0'.
CONCATENATE lv_matnr1 wa_final-article_code ',' INTO lv_matnr1.
ENDIF.
lv_material = wa_final-article_code.
CLEAR wa_final.
ENDLOOP.
CLEAR lv_material.
IF lv_matnr2 IS NOT INITIAL.
CLEAR lv_len.
lv_len = STRLEN( lv_matnr2 ).
lv_len = lv_len - 1.
lv_matnr2 = lv_matnr2+0(lv_len).
CLEAR lv_msg1.
CONCATENATE text-005 lv_matnr2 INTO lv_msg1 SEPARATED BY space."File exist
s duplicate articles :
MESSAGE lv_msg1 TYPE 'E' .
ENDIF.
IF lv_matnr IS NOT INITIAL.
CLEAR lv_len.
lv_len = STRLEN( lv_matnr ).
lv_len = lv_len - 1.
lv_matnr = lv_matnr+0(lv_len).
CLEAR lv_msg1.
CONCATENATE text-003 lv_matnr INTO lv_msg1 SEPARATED BY space."Articles ar
e not valid :
MESSAGE lv_msg1 TYPE 'E' .
ENDIF.
IF lv_matnr1 IS NOT INITIAL.

CLEAR lv_len.
lv_len = STRLEN( lv_matnr1 ).
lv_len = lv_len - 1.
lv_matnr1 = lv_matnr1+0(lv_len).
CLEAR lv_msg1.
CONCATENATE text-004 p_werks ':' lv_matnr1 INTO lv_msg1 SEPARATED BY space
."Articles are not maintained in
MESSAGE lv_msg1 TYPE 'E' .
ENDIF.
ENDIF.
ENDFORM.
" VALIDATE_DATA

Você também pode gostar