Saturday, February 21, 2015

MRP Stock Requirement Report

REPORT zpp_stk_rqmt_report.
INCLUDE zpp_stk_rqmt_dat.
INCLUDE zpp_stk_rqmt_sub.

*&---------------------------------------------------------------------*
*& Include ZPP_STK_RQMT_DAT
*&---------------------------------------------------------------------*
TABLES: afko,
afpo,
plaf,
mara,
makt,
marc.
TYPES:BEGIN OF ty_mara,
matnr TYPE matnr, " Material Number
bismt TYPE bismt, " Old Material Code
END OF ty_mara.
TYPES:BEGIN OF ty_marc,
matnr TYPE matnr, " Material Number
werks TYPE werks, " Plant
plifz TYPE plifz, " Lead Time
END OF ty_marc.
TYPES:BEGIN OF ty_makt,
matnr TYPE matnr, " Material Number
maktx TYPE maktx, " Material Desc
END OF ty_makt.
TYPES:BEGIN OF ty_afko,
aufnr TYPE aufnr, " Order Number
plnbez TYPE matnr, " Material Number
* plwrk TYPE plwrk, " Planning Plant
END OF ty_afko.
TYPES:BEGIN OF ty_afpo,
aufnr TYPE aufnr, " Order Number
plnum TYPE plnum, " Planned order number
matnr TYPE co_matnr, " Material Number for Order
meins TYPE meins, " Base Unit of Measure
pgmng TYPE gsmng, " Total planned order quantity
ltrmp TYPE co_ltrmp, " Delivery date from planned order
dnrel TYPE co_dnrel, " Indicator: Order item not relevant for MRP
END OF ty_afpo.
TYPES: BEGIN OF ty_plaf,
plnum TYPE plnum, " Planned order number
matnr TYPE plmat, " Planning material
plwrk TYPE plwrk, " Planning Plant
meins TYPE meins, " Base Unit of Measure
gsmng TYPE gsmng, " Total planned order quantity
pedtr TYPE pedtr, " Order finish date in the planned order
END OF ty_plaf.
TYPES: BEGIN OF ty_final1, " For Material Plan Order
matnr TYPE matnr, " Material Number
bismt TYPE bismt, " Old Material Code
maktx TYPE maktx, " Material Desc
meins TYPE meins, " Base Unit of Measure
plifz TYPE plifz, " Lead Time
pgmng TYPE gsmng, " Order Qty
ltrmp TYPE co_ltrmp, " Original Date
aufnr TYPE aufnr, " Order Number
END OF ty_final1.
TYPES: BEGIN OF ty_final2, " For Stock Plan Order
matnr TYPE matnr, " Material Number
bismt TYPE bismt, " Old Material Code
maktx TYPE maktx, " Material Desc
meins TYPE meins, " Base Unit of Measure
plifz TYPE plifz, " Lead Time
gsmng TYPE gsmng, " Order Qty
pedtr TYPE pedtr, " Original Date
plnum TYPE plnum, " Order Number
END OF ty_final2.
DATA: it_mara TYPE TABLE OF ty_mara, " MARA
wa_mara TYPE ty_mara.
DATA: it_marc TYPE TABLE OF ty_marc, " MARC
wa_marc TYPE ty_marc.
DATA: it_makt TYPE TABLE OF ty_makt, " MAKT
wa_makt TYPE ty_makt.
DATA: it_afko TYPE TABLE OF ty_afko, " AFKO
wa_afko TYPE ty_afko.
DATA: it_afpo TYPE TABLE OF ty_afpo, " AFPO
wa_afpo TYPE ty_afpo.
DATA: it_plaf TYPE TABLE OF ty_plaf, " PLAF
wa_plaf TYPE ty_plaf.
DATA: it_final1 TYPE TABLE OF ty_final1, " ALV_1
wa_final1 TYPE ty_final1.
DATA: it_final2 TYPE TABLE OF ty_final2, " ALV_2
wa_final2 TYPE ty_final2.
* Material Plan Order ALV
DATA: ok_code TYPE sy-ucomm. " OK_CODE
DATA : v_pos TYPE i . " Column Increase
DATA : alv_cont1 TYPE REF TO cl_gui_custom_container. " Call Screen 100 (ALV_CONT1)
DATA : alv_grid TYPE REF TO cl_gui_alv_grid. " ALV Grid For Screen 100.
DATA : c_logo TYPE REF TO cl_gui_custom_container. " Logo
DATA : dd TYPE REF TO cl_dd_document.
DATA : i_fcat TYPE lvc_t_fcat. " Fieldcatalog 1
DATA : wa_fcat LIKE LINE OF i_fcat.
CONSTANTS: lc_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA : it_top TYPE slis_t_listheader,
wa_top TYPE slis_listheader.
* Stock Order Plan ALV
DATA : alv_cont2 TYPE REF TO cl_gui_custom_container. " Call Screen 100 (ALV_CONT2)
DATA : alv_grid2 TYPE REF TO cl_gui_alv_grid. " ALV Grid For Screen 100.
DATA : it_fcat2 TYPE lvc_t_fcat . " Fieldcatalog 2
DATA : wa_fcat2 LIKE LINE OF it_fcat2.
SELECTION-SCREEN: BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_matnr FOR marc-matnr NO-EXTENSION NO INTERVALS OBLIGATORY DEFAULT '1010020001' s_werks FOR marc-werks NO-EXTENSION NO INTERVALS OBLIGATORY DEFAULT '2100'.
SELECTION-SCREEN: END OF BLOCK a1.
**&---------------------------------------------------------------------*
**& START-OF-SELECTION SCREEN EVENT DECLARATION
**&---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM data_check.
IF it_afko[] IS INITIAL.
MESSAGE text-003 TYPE 'I'.
ELSE.
CALL SCREEN 0100.
ENDIF.

*&---------------------------------------------------------------------*
*& Include ZPP_STK_RQMT_SUB
*&---------------------------------------------------------------------*
INITIALIZATION.
*clearing workareas
CLEAR: wa_final1,
wa_final2,
wa_makt,
wa_mara,
wa_marc,
wa_afko,
wa_afpo,
wa_plaf.
*refreshing internal table
REFRESH: it_final1,
it_final2,
it_makt,
it_mara,
it_marc,
it_afko,
it_afpo,
it_plaf.
*&---------------------------------------------------------------------*
*& AT SELECTION SCREEN EVENT DECLARATION
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
*&---------------------------------------------------------------------*
* validating Material No and Plant
*&---------------------------------------------------------------------*
SELECT matnr " Material number
werks " Plant
INTO CORRESPONDING FIELDS OF TABLE it_marc
FROM marc
WHERE matnr IN s_matnr
AND werks IN s_werks.
IF sy-subrc NE 0 .
MESSAGE: text-002 TYPE 'E'.
ENDIF.
**&---------------------------------------------------------------------*
***********************************************************************************************************
"Create screen 100.
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'ZPP_STK_RQMT'. "
SET TITLEBAR 'ZPP_STK_RQMT'.
PERFORM create_objects_1.
PERFORM get_data_1. " Material Plan Order
PERFORM get_data_2. " Stock Plan Order
PERFORM create_fcat_1 .
PERFORM create_fcat_2 .
PERFORM display_alv.
* CREATE OBJECT obj. "create object for local class
* SET HANDLER obj->handle_double_click FOR alv_grid . "use set handler
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
CASE ok_code .
WHEN 'BACK'.
SET SCREEN 0.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Form CREATE_OBJECTS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_objects_1 .
CREATE OBJECT alv_cont1
EXPORTING
container_name = 'ALV_CONT1'.
CREATE OBJECT alv_grid
EXPORTING
i_parent = alv_cont1.
**************************************************************************
CREATE OBJECT alv_cont2
EXPORTING
container_name = 'ALV_CONT2'.
CREATE OBJECT alv_grid2
EXPORTING
i_parent = alv_cont2.
ENDFORM. " CREATE_OBJECTS
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data_1 .
SELECT aufnr " Order Number
plnbez " Material Number
FROM afko
INTO CORRESPONDING FIELDS OF TABLE it_afko
WHERE plnbez IN s_matnr.
DELETE ADJACENT DUPLICATES FROM it_afko COMPARING plnbez.
IF sy-subrc NE 0.
MESSAGE text-003 TYPE 'I'.
LEAVE LIST-PROCESSING.
ENDIF.
IF it_afko IS NOT INITIAL.
IF s_matnr IS INITIAL.
SELECT aufnr " Order Number
plnum " Planned order number
matnr " Material Number for Order
meins " Base Unit of Measure
pgmng " Total planned order quantity
ltrmp " Delivery date from planned order
dnrel " Indicator: Order item not relevant for MRP
FROM afpo
INTO CORRESPONDING FIELDS OF TABLE it_afpo
FOR ALL ENTRIES IN it_afko
WHERE matnr = it_afko-plnbez
AND dnrel NE 'X'.
ELSE.
SELECT aufnr " Order Number
plnum " Planned order number
matnr " Material Number for Order
meins " Base Unit of Measure
pgmng " Total planned order quantity
ltrmp " Delivery date from planned order
dnrel " Indicator: Order item not relevant for MRP
FROM afpo
INTO CORRESPONDING FIELDS OF TABLE it_afpo
WHERE matnr IN s_matnr
AND dnrel NE 'X'.
ENDIF.
ENDIF.
IF it_afpo IS NOT INITIAL.
IF s_matnr AND s_werks IS INITIAL .
SELECT plnum " Planned order number
matnr " Planning material
plwrk " Planning Plant
gsmng " Total planned order quantity
pedtr " Order finish date in the planned order
FROM plaf
INTO CORRESPONDING FIELDS OF TABLE it_plaf
FOR ALL ENTRIES IN it_afpo
WHERE matnr = it_afpo-matnr
AND plwrk IN s_werks.
ELSE.
SELECT plnum " Planned order number
matnr " Planning material
plwrk " Planning Plant
meins " Base Unit of Measure
gsmng " Total planned order quantity
pedtr " Order finish date in the planned order
FROM plaf
INTO CORRESPONDING FIELDS OF TABLE it_plaf
WHERE matnr IN s_matnr
AND plwrk IN s_werks.
ENDIF.
SELECT matnr " Material Number
bismt " Old Material Code
FROM mara
INTO CORRESPONDING FIELDS OF TABLE it_mara
FOR ALL ENTRIES IN it_afpo
WHERE matnr = it_afpo-matnr.
SELECT matnr " Material Number
maktx " Material Desc
FROM makt
INTO CORRESPONDING FIELDS OF TABLE it_makt
FOR ALL ENTRIES IN it_afpo
WHERE matnr = it_afpo-matnr
AND spras = 'E'.
ENDIF.
CHECK it_plaf IS NOT INITIAL.
SELECT matnr " Material Number
werks " Plant
plifz " Lead Time
FROM marc
INTO CORRESPONDING FIELDS OF TABLE it_marc
FOR ALL ENTRIES IN it_plaf
WHERE matnr = it_plaf-matnr
AND werks = it_plaf-plwrk.
LOOP AT it_afpo INTO wa_afpo.
wa_final1-aufnr = wa_afpo-aufnr. " Order Number
wa_final1-matnr = wa_afpo-matnr. " Material Number for Order
wa_final1-meins = wa_afpo-meins. " Base Unit of Measure
wa_final1-pgmng = wa_afpo-pgmng. " Total planned order quantity
wa_final1-ltrmp = wa_afpo-ltrmp. " Delivery date from planned order
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_afpo-matnr.
wa_final1-bismt = wa_mara-bismt.
READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_afpo-matnr.
wa_final1-plifz = wa_marc-plifz.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_afpo-matnr.
wa_final1-maktx = wa_makt-maktx.
APPEND wa_final1 TO it_final1.
CLEAR: wa_final1.
ENDLOOP.
ENDFORM. " GET_DATA
***********************************************************************************************************
*&---------------------------------------------------------------------*
*& Form GET_DATA_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data_2 .
LOOP AT it_plaf INTO wa_plaf.
*
wa_final2-plnum = wa_plaf-plnum. " Order Number
wa_final2-matnr = wa_plaf-matnr. " Material Number for Order
wa_final2-gsmng = wa_plaf-gsmng. " Total planned order quantity
wa_final2-meins = wa_plaf-meins. " Base Unit of Measure
wa_final2-pedtr = wa_plaf-pedtr. " Delivery date from planned order
READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_afpo-matnr.
wa_final2-bismt = wa_mara-bismt.
READ TABLE it_marc INTO wa_marc WITH KEY matnr = wa_afpo-matnr.
wa_final2-plifz = wa_marc-plifz.
READ TABLE it_makt INTO wa_makt WITH KEY matnr = wa_afpo-matnr.
wa_final2-maktx = wa_makt-maktx.
APPEND wa_final2 TO it_final2.
CLEAR: wa_final2.
ENDLOOP.
ENDFORM. " GET_DATA_2
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display_alv .
CALL METHOD alv_grid->set_table_for_first_display
CHANGING
it_outtab = it_final1
it_fieldcatalog = i_fcat.
CALL METHOD alv_grid2->set_table_for_first_display
CHANGING
it_outtab = it_final2
it_fieldcatalog = it_fcat2.
ENDFORM. " DISPLAY_ALV
*&---------------------------------------------------------------------*
*& Form CREATE_FCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_fcat_1 .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'MATNR' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Material No'.
wa_fcat-outputlen = '18'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'BISMT' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Old Mat No'.
wa_fcat-outputlen = '15'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'MAKTX' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Mat Desc'.
wa_fcat-outputlen = '18'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'MEINS' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'UOM'.
wa_fcat-outputlen = '4'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'PLIFZ' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Lead Time'.
wa_fcat-outputlen = '6'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'PGMNG' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Qty'.
wa_fcat-outputlen = '6'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'LTRMP' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Original Date'.
wa_fcat-outputlen = '10'.
APPEND wa_fcat TO i_fcat .
CLEAR wa_fcat.
v_pos = v_pos + 1.
wa_fcat-col_pos = v_pos .
wa_fcat-fieldname = 'AUFNR' .
wa_fcat-tabname = 'IT_FINAL1' .
wa_fcat-scrtext_m = 'Order NO'.
wa_fcat-outputlen = '13'.
APPEND wa_fcat TO i_fcat .
*************************************************************
ENDFORM. " CREATE_FCAT
*&---------------------------------------------------------------------*
*& Form CREATE_FCAT_2
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_fcat_2 .
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'MATNR' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Material No'.
wa_fcat2-outputlen = '18'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'BISMT' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Old Mat No'.
wa_fcat2-outputlen = '15'.
APPEND wa_fcat2 TO it_fcat2 .
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'MAKTX' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Mat Desc'.
wa_fcat2-outputlen = '18'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'MEINS' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'UOM'.
wa_fcat2-outputlen = '4'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'PLIFZ' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Lead Time'.
wa_fcat2-outputlen = '6'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'GSMNG' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Qty'.
wa_fcat2-outputlen = '6'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'PEDTR' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Original Date'.
wa_fcat2-outputlen = '10'.
APPEND wa_fcat2 TO it_fcat2.
CLEAR wa_fcat2.
v_pos = v_pos + 1.
wa_fcat2-col_pos = v_pos .
wa_fcat2-fieldname = 'PLNUM' .
wa_fcat2-tabname = 'IT_FINAL2' .
wa_fcat2-scrtext_m = 'Order NO'.
wa_fcat2-outputlen = '13'.
APPEND wa_fcat2 TO it_fcat2.
ENDFORM. " CREATE_FCAT_2
*&---------------------------------------------------------------------*
*& Form DATA_CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_check .
SELECT aufnr " Order Number
plnbez " Material Number
FROM afko
INTO CORRESPONDING FIELDS OF TABLE it_afko
WHERE plnbez IN s_matnr.
ENDFORM. " DATA_CHECK

Sales Order Creation BDC for VA01

REPORT zsd_va01_bdc NO STANDARD PAGE HEADING LINE-SIZE 255.
**NO STANDARD PAGE HEADING LINE-SIZE 255.
**************************Internal Table*****************************
DATA: BEGIN OF it_final OCCURS 0,
auart(4) TYPE c, " Sales document type
vkorg(4) TYPE c, " Sales Organization
vtweg(2) TYPE c, " Distribution Channel
spart(2) TYPE c, " Division
kunnr(10) TYPE c, " Customer
bstkd(35) TYPE c, " PO number
bstdk(10) TYPE c, " PO Date
matnr(18) TYPE c, " Material
kwmeng(18) TYPE c, " Order quantity
text(100) TYPE c, " LONG TEXT
END OF it_final.
DATA: BEGIN OF it_item OCCURS 0,
bstkd(35) TYPE c, " PO number
auart(4) TYPE c, " Sales document type
matnr(18) TYPE c, " Material
kwmeng(18) TYPE c, " Order quantity
END OF it_item.
DATA: BEGIN OF it_head OCCURS 0,
bstkd(35) TYPE c, " PO number
auart(4) TYPE c, " Sales document type
bstdk(10) TYPE c, " PO Date
vkorg(4) TYPE c, " Sales Organization
vtweg(2) TYPE c, " Distribution Channel
spart(2) TYPE c, " Division
kunnr(10) TYPE c, " Customer
matnr(18) TYPE c, " Material
kwmeng(18) TYPE c, " Order quantity
text(100) TYPE c, " LONG TEXT
END OF it_head.
DATA: BEGIN OF i_lines OCCURS 0.
INCLUDE STRUCTURE tline.
DATA: END OF i_lines.
* Batchinputdata of single transaction
DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
* messages of call transaction
DATA: messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA: it_bdcdata TYPE TABLE OF bdcdata,
wa_bdcdata TYPE bdcdata,
it_msg TYPE TABLE OF bdcmsgcoll,
it_msg1 TYPE TABLE OF bdcmsgcoll,
wa_msg TYPE bdcmsgcoll,
wa_msg1 TYPE bdcmsgcoll.
DATA: BEGIN OF i_messages OCCURS 0,
bstkd LIKE vbkd-bstkd,
auart LIKE vbak-auart,
* MATNR LIKE VBAP-MATNR,
longtext(225).
INCLUDE STRUCTURE bdcmsgcoll.
DATA: END OF i_messages.
"nodata**************************Session
DATA: nodata(1) VALUE '/' .
*Creation***************************
*INCLUDE bdcrecx1.
*************************Selection Screen****************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
PARAMETERS p_mode LIKE ctu_params-dismode DEFAULT 'N'. " Display Mode
*A: show all dynpros
*E: show dynpro on error only
*N: do not display dynpro
PARAMETERS: pfile LIKE rlgrap-filename OBLIGATORY. " File Path
SELECTION-SCREEN END OF BLOCK b1.
**********************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pfile.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_filename = space
def_path = pfile
mask = ',*.*,*.*.'
mode = 'E'
title = 'Choose File Name'
IMPORTING
filename = pfile
EXCEPTIONS
inv_winsys = 04
no_batch = 08
selection_cancel = 12
selection_error = 16.
IF sy-subrc EQ '04'.
MESSAGE text-001 TYPE 'E'.
ENDIF.
**************************Main Logic*******************************
START-OF-SELECTION.
PERFORM f_upload_file.
PERFORM f_delete_blank.
PERFORM f_create_header.
PERFORM f_create_detail.
PERFORM f_create_output_heading.
PERFORM f_call_va01.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR wa_bdcdata.
wa_bdcdata-program = program.
wa_bdcdata-dynpro = dynpro.
wa_bdcdata-dynbegin = 'X'.
APPEND wa_bdcdata TO it_bdcdata.
ENDFORM. "BDC_DYNPRO
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
IF fval <> nodata.
CLEAR wa_bdcdata.
wa_bdcdata-fnam = fnam.
wa_bdcdata-fval = fval.
APPEND wa_bdcdata TO it_bdcdata.
ENDIF.
ENDFORM. "BDC_FIELD
*&---------------------------------------------------------------------*
*& Form f_upload_file
*&---------------------------------------------------------------------*
* Upload File
*----------------------------------------------------------------------*
FORM f_upload_file .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = pfile
filetype = 'DAT'
TABLES
data_tab = it_final.
ENDFORM. " f_upload_file
*&---------------------------------------------------------------------*
*& Form f_call_va01
*&---------------------------------------------------------------------*
* Call VA01
*----------------------------------------------------------------------*
FORM f_call_va01 .
DATA: v_bdcfd1(100), " KWMENG
v_bdcfd2(100). " MABNR
DATA: v_count(2) TYPE n.
REFRESH it_bdcdata[].
CLEAR wa_bdcdata.
LOOP AT it_head.
REFRESH it_bdcdata[].
PERFORM header.
v_count = 1.
LOOP AT it_item WHERE bstkd = it_head-bstkd
AND auart = it_head-auart.
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=POAN'.
CONCATENATE 'RV45A-KWMENG(' v_count ')' INTO v_bdcfd1.
PERFORM bdc_field USING 'BDC_CURSOR'
v_bdcfd1. " KWMENG
CONCATENATE 'RV45A-MABNR(' v_count ')' INTO v_bdcfd2.
PERFORM bdc_field USING v_bdcfd2
it_item-matnr. " Material Number
PERFORM bdc_field USING v_bdcfd1
it_item-kwmeng. " Order Quantity
v_count = 2.
ENDLOOP.
*-----------------------------------------------------------------------------------------
* SAVE CODE
*-----------------------------------------------------------------------------------------
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=SICH'.
*-----------------------------------------------------------------------------------------
CALL TRANSACTION 'VA01' USING it_bdcdata
MODE p_mode
MESSAGES INTO it_msg.
IF NOT it_msg IS INITIAL.
LOOP AT it_msg INTO wa_msg.
wa_msg1 = wa_msg.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = wa_msg-msgid
msgnr = wa_msg-msgnr
msgv1 = wa_msg-msgv1
msgv2 = wa_msg-msgv2
msgv3 = wa_msg-msgv3
msgv4 = wa_msg-msgv4
IMPORTING
message_text_output = wa_msg1-msgv1.
APPEND wa_msg1 TO it_msg1.
CLEAR wa_msg1.
ENDLOOP.
ENDIF.
ENDLOOP.
IF NOT it_msg1 IS INITIAL.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'BDCMSGCOLL'
TABLES
t_outtab = it_msg1
EXCEPTIONS
program_error = 1
OTHERS = 2.
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.
ENDFORM. "f_call_va01
*&---------------------------------------------------------------------*
*& Form f_create_detail
*&---------------------------------------------------------------------*
* Store Detail Prgs.
*----------------------------------------------------------------------*
FORM f_create_detail .
LOOP AT it_final.
TRANSLATE: it_final-auart TO UPPER CASE,
it_final-bstkd TO UPPER CASE.
it_item-bstkd = it_final-bstkd.
it_item-auart = it_final-auart.
it_item-matnr = it_final-matnr.
it_item-kwmeng = it_final-kwmeng.
APPEND it_item.
CLEAR it_item.
ENDLOOP.
ENDFORM. " f_create_detail
*&---------------------------------------------------------------------*
*& Form F_CREATE_HEADER
*&---------------------------------------------------------------------*
* Create Header
*----------------------------------------------------------------------*
FORM f_create_header .
DATA: v_po LIKE vbkd-bstkd,
v_so LIKE vbak-auart.
SORT it_final BY bstkd auart.
LOOP AT it_final.
TRANSLATE: it_final-auart TO UPPER CASE,
it_final-bstkd TO UPPER CASE,
it_final-vkorg TO UPPER CASE,
it_final-vtweg TO UPPER CASE,
it_final-spart TO UPPER CASE,
it_final-kunnr TO UPPER CASE.
IF v_po NE it_final-bstkd OR
v_so NE it_final-auart.
it_head-bstkd = it_final-bstkd.
it_head-bstdk = it_final-bstdk.
it_head-auart = it_final-auart.
it_head-vkorg = it_final-vkorg.
it_head-vtweg = it_final-vtweg.
it_head-spart = it_final-spart.
it_head-kunnr = it_final-kunnr.
it_head-text = it_final-text.
APPEND it_head.
CLEAR it_head.
v_po = it_final-bstkd.
v_so = it_final-auart.
ENDIF.
ENDLOOP.
ENDFORM. " F_CREATE_HEADER
*&---------------------------------------------------------------------*
*& Form header
*&---------------------------------------------------------------------*
* Populate Header fields in sales order
*----------------------------------------------------------------------*
FORM header .
PERFORM bdc_dynpro USING 'SAPMV45A' '0101'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBAK-SPART'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'VBAK-AUART'
it_head-auart. " Sales document type
PERFORM bdc_field USING 'VBAK-VKORG'
it_head-vkorg. " Sales Organization
PERFORM bdc_field USING 'VBAK-VTWEG'
it_head-vtweg. " Distribution Channel
PERFORM bdc_field USING 'VBAK-SPART'
it_head-spart. " Division
PERFORM bdc_dynpro USING 'SAPMV45A' '4001'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_CURSOR'
'VBKD-BSTDK'.
PERFORM bdc_field USING 'VBKD-BSTKD'
it_head-bstkd. " PO Number
PERFORM bdc_field USING 'VBKD-BSTDK'
it_head-bstdk. " PO Date
PERFORM bdc_field USING 'KUAGV-KUNNR'
it_head-kunnr. " Customer Code
PERFORM bdc_field USING 'KUWEV-KUNNR'
it_head-kunnr. " Customer Code
ENDFORM. " header
*&---------------------------------------------------------------------*
*& Form f_create_output_heading
*&---------------------------------------------------------------------*
FORM f_create_output_heading .
* WRITE: /2 'PO No.' COLOR 1,
* 14 'SO Type' COLOR 1,
* 24 'Msg. Type' COLOR 1,
* 36 'Message' COLOR 1.
* ULINE.
ENDFORM. " f_create_output_heading
*&---------------------------------------------------------------------*
*& Form f_delete_blank
*&---------------------------------------------------------------------*
* Delete blank lines
*----------------------------------------------------------------------*
FORM f_delete_blank .
DELETE it_final WHERE bstkd = space AND auart = space.
ENDFORM. " f_delete_blank

Monday, February 16, 2015

Material Master Bapi

*&---------------------------------------------------------------------*
*& Report ZMM01_BAPI
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Report ZTEST1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMM01_BAPI.
TYPES: BEGIN OF ty_text,
text(250),
END OF ty_text.
DATA:it_text TYPE TABLE OF ty_text WITH HEADER LINE.
* M ROH E testing 3100000roh KGS Z017 123456 1000 111 0000 PD 031 EX 2000 F 45 3 000 1000 * M HALB E testing 3100000halb KGS Z017 123456 1000 111 0000 PD 031 EX 2000 F 45 3 000 1000 * M IBAU E testing 3100000IBAU KGS Z017 123456 1000 111 0000 PD 031 EX 2000 F 45 3 000 1000 * Tables Used
*---------------------------------------------------------------------------------------------------
TABLES:
bapimathead,
bapi_makt, " Material Description
bapi_mara, " Client Data
bapi_marax, " CheckBox
bapi_marc, " Plant View
bapi_marcx, " CheckBox
bapi_mbew, " Accounting View
bapi_mbewx, " CheckBox
bapi_mard, " Storage View
bapi_mardx. " CheckBox
*---------------------------------------------------------------------------------------------------
* Declaration for Internal Table
*---------------------------------------------------------------------------------------------------
DATA:BEGIN OF itab OCCURS 0,
* Header
material TYPE bapimathead-material, " Material Number
ind_sector(20), " Industry Sector
matl_type TYPE bapimathead-matl_type, " Material Type
* Basic View
langu TYPE bapi_makt-langu, " Language Code
matl_desc TYPE bapi_makt-matl_desc, " Material Description
base_uom TYPE bapi_mara-base_uom, " Base Unit of Measure
matl_group TYPE bapi_mara-matl_group, " Material Group
old_mat_no TYPE bapi_mara-old_mat_no, " Old Material Number
* Plant - Purchase - MRP View
plant TYPE bapi_marc-plant, " Plant
pur_group TYPE bapi_marc-pur_group, " Purchasing Group (Buyer)
mrp_group TYPE bapi_marc-mrp_group, " MRP group
mrp_type TYPE bapi_marc-mrp_type, " MRP type
mrp_ctrler TYPE bapi_marc-mrp_ctrler, " MRP controller
lotsizekey TYPE bapi_marc-lotsizekey, " Lot size
minlotsize TYPE bapi_marc-minlotsize, " Minimum Lot-size
proc_type TYPE bapi_marc-proc_type, " Procurement type
plnd_delry TYPE bapi_marc-plnd_delry, " Planned Delivery Time
gr_pr_time TYPE bapi_marc-gr_pr_time, " GR Processing Time
sm_key TYPE bapi_marc-sm_key, " Scheduling Margin Key
safety_stk TYPE bapi_marc-safety_stk, " Safety Stock
plan_strgp TYPE bapi_marc-plan_strgp, " Strategy Group
consummode TYPE bapi_marc-consummode, " Cosumption Mode
bwd_cons TYPE bapi_marc-bwd_cons, " Backward Consumption Period
fwd_cons TYPE bapi_marc-fwd_cons, " Forward Consumption Period
availcheck TYPE bapi_marc-availcheck, " Availability check
batch_mgmt TYPE bapi_marc-batch_mgmt, " Batch management requirement indicator
* profit_ctr TYPE bapi_marc-profit_ctr,
* no_costing TYPE bapi_marc-no_costing,
* Storage
stge_loc TYPE bapi_mard-stge_loc, " Storage Location
** Accounting and Costing
* val_cat TYPE bapi_mbew-val_cat,
* val_class TYPE bapi_mbew-val_class,
* price_ctrl TYPE bapi_mbew-price_ctrl,
* moving_pr TYPE bapi_mbew-moving_pr,
* price_unit TYPE bapi_mbew-price_unit,
* orig_mat TYPE bapi_mbew-orig_mat,
END OF itab,
it_return LIKE bapiret2 OCCURS 0 WITH HEADER LINE,
it_bapi LIKE bapi_makt OCCURS 0 WITH HEADER LINE,
it_mara LIKE bapi_mara OCCURS 0 WITH HEADER LINE,
it_marc LIKE bapi_marc OCCURS 0 WITH HEADER LINE,
it_mard LIKE bapi_mard OCCURS 0 WITH HEADER LINE,
it_mbew LIKE bapi_mbew OCCURS 0 WITH HEADER LINE.
*---------------------------------------------------------------------------------------------------
* Selection Screen
*---------------------------------------------------------------------------------------------------
PARAMETERS:p_file TYPE ibipparms-path OBLIGATORY DEFAULT 'C:UsersSAPDesktopZmm01_bapi without acc n *---------------------------------------------------------------------------------------------------
* F4 hHelp For the File From PC
*---------------------------------------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM get_f4help.
*---------------------------------------------------------------------------------------------------
* START-OF-SELECTION .
*---------------------------------------------------------------------------------------------------
START-OF-SELECTION.
PERFORM upload_file_itab.
PERFORM call_bapi.
*&---------------------------------------------------------------------*
*& Form get_f4help
*&---------------------------------------------------------------------*
FORM get_f4help .
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
ENDFORM. " get_f4help
*&---------------------------------------------------------------------*
*& Form upload_file_itab
*&---------------------------------------------------------------------*
FORM upload_file_itab .
DATA:v_file TYPE string.
MOVE p_file TO v_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = v_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = itab.
ENDFORM. " upload_file_itab
*&---------------------------------------------------------------------*
*& Form call_bapi
*&---------------------------------------------------------------------*
FORM call_bapi .
*&---------------------------------------------------------------------*
*& Create MATNR
*&---------------------------------------------------------------------*
DATA: ibapimatinr LIKE STANDARD TABLE OF bapimatinr WITH HEADER LINE,
it_return1 LIKE STANDARD TABLE OF bapireturn1 WITH HEADER LINE.
DATA:p_matype LIKE bapimatdoa-matl_type,
p_indsr LIKE bapimatdoa-ind_sector.
LOOP AT itab.
p_matype = itab-matl_type.
p_indsr = itab-ind_sector.
REFRESH: ibapimatinr.
CALL FUNCTION 'BAPI_MATERIAL_GETINTNUMBER'
EXPORTING
material_type = p_matype "'ROH'
industry_sector = p_indsr "'M'
required_numbers = 1
IMPORTING
return = it_return1
TABLES
material_number = ibapimatinr.
READ TABLE ibapimatinr INDEX 1.
*&---------------------------------------------------------------------*
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
* EXPORTING
* input = itab-material
* IMPORTING
* output = itab-material.
* Header
bapimathead-material = ibapimatinr-material.
bapimathead-ind_sector = p_indsr.
bapimathead-matl_type = p_matype.
** bapimathead-material = itab-material.
** bapimathead-ind_sector = itab-ind_sector.
** bapimathead-matl_type = itab-matl_type.
*
bapimathead-basic_view = 'X'.
bapimathead-purchase_view = 'X'.
bapimathead-mrp_view = 'X'.
bapimathead-storage_view = 'X'.
** bapimathead-quality_view = 'X'.
** bapimathead-account_view = 'X'.
** bapimathead-cost_view = 'X'.
*
* Basic View
it_bapi-langu = itab-langu.
it_bapi-langu_iso = 'EN'.
it_bapi-matl_desc = itab-matl_desc.
bapi_mara-base_uom = itab-base_uom.
bapi_mara-matl_group = itab-matl_group.
bapi_mara-old_mat_no = itab-old_mat_no.
bapi_marax-matl_group = 'X'.
bapi_marax-base_uom = 'X'.
bapi_marax-old_mat_no = 'X'.
*
* Plant - Purchase - Storage View
bapi_marc-plant = itab-plant.
bapi_marc-pur_group = itab-pur_group.
bapi_marc-mrp_group = itab-mrp_group.
bapi_marc-mrp_type = itab-mrp_type.
bapi_marc-mrp_ctrler = itab-mrp_ctrler.
bapi_marc-lotsizekey = itab-lotsizekey.
bapi_marc-minlotsize = itab-minlotsize.
bapi_marc-proc_type = itab-proc_type.
bapi_marc-plnd_delry = itab-plnd_delry.
bapi_marc-gr_pr_time = itab-gr_pr_time.
bapi_marc-sm_key = itab-sm_key.
bapi_marc-safety_stk = itab-safety_stk.
bapi_marc-plan_strgp = itab-plan_strgp.
bapi_marc-consummode = itab-consummode.
bapi_marc-bwd_cons = itab-bwd_cons.
bapi_marc-fwd_cons = itab-fwd_cons.
bapi_marc-availcheck = itab-availcheck.
bapi_marc-batch_mgmt = itab-batch_mgmt.
** bapi_marc-profit_ctr = itab-profit_ctr.
** bapi_marc-no_costing = itab-no_costing.
*
bapi_marcx-plant = itab-plant.
bapi_marcx-pur_group = 'X'.
bapi_marcx-mrp_group = 'X'.
bapi_marcx-mrp_type = 'X'.
bapi_marcx-mrp_ctrler = 'X'.
bapi_marcx-lotsizekey = 'X'.
bapi_marcx-minlotsize = 'X'.
bapi_marcx-proc_type = 'X'.
bapi_marcx-plnd_delry = 'X'.
bapi_marcx-gr_pr_time = 'X'.
bapi_marcx-sm_key = 'X'.
bapi_marcx-safety_stk = 'X'.
bapi_marcx-plan_strgp = 'X'.
bapi_marcx-consummode = 'X'.
bapi_marcx-bwd_cons = 'X'.
bapi_marcx-fwd_cons = 'X'.
bapi_marcx-availcheck = 'X'.
bapi_marcx-batch_mgmt = 'X'.
** bapi_marcx-profit_ctr = 'X'.
** bapi_marcx-no_costing = 'X' .
*
* Storage Location
bapi_mard-plant = itab-plant.
bapi_mard-stge_loc = itab-stge_loc.
bapi_mardx-plant = itab-plant.
bapi_mardx-stge_loc = itab-stge_loc.
* Accounting and Costing
* bapi_mbew-val_cat = itab-val_cat.
* bapi_mbew-val_class = itab-val_class.
* bapi_mbew-price_ctrl = itab-price_ctrl.
* bapi_mbew-moving_pr = itab-moving_pr.
* bapi_mbew-price_unit = itab-price_unit.
* bapi_mbew-orig_mat = itab-orig_mat.
*
*
* bapi_mbewx-val_cat = 'X'.
* bapi_mbewx-val_class = 'X'.
* bapi_mbewx-price_ctrl = 'X'.
* bapi_mbewx-moving_pr = 'X'.
* bapi_mbewx-price_unit = 'X' .
* bapi_mbewx-orig_mat = 'X'.
APPEND it_bapi.
* APPEND it_mara.
* APPEND it_marc.
* APPEND it_mard.
* APPEND it_mbew.
CLEAR it_bapi.
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
EXPORTING
headdata = bapimathead
clientdata = bapi_mara
clientdatax = bapi_marax
plantdata = bapi_marc
plantdatax = bapi_marcx
storagelocationdata = bapi_mard
storagelocationdatax = bapi_mardx
* valuationdata = bapi_mbew
* valuationdatax = bapi_mbewx
IMPORTING
return = it_return
TABLES
materialdescription = it_bapi.
IF it_return-type = 'E' OR it_return-type = 'A' .
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
WRITE:/ ibapimatinr-material, p_matype, p_indsr , itab-matl_desc , 'is not created' COLOR 6.
* INCLUDE zmm_mm01_ftp_sel.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
IF sy-subrc EQ 0.
WRITE:/ ibapimatinr-material , p_matype , p_indsr , itab-matl_desc , 'is created' COLOR 5.
* WRITE:/ itab-material, 'is created' COLOR 5.
ENDIF.
ENDIF.
CLEAR: ibapimatinr,
p_indsr,
p_matype.
ENDLOOP.
* CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' .
**---this is the message type which indicates whether it is failed or succeded
* IF it_return-type = 'E'.
* WRITE:/ 'Error:' ,it_return-message ,'for material:' ,itab-material.
* ELSEIF it_return-type = 'S'.
* WRITE: 'Successfully created material' ,itab-material.
* ENDIF.
ENDFORM. " call_bapi

RG1 Balance Update Opening/Closing balance table for RG1

REPORT zr_rg1_j_2irg1bal_update.
TABLES : j_2irg1bal.
TYPES : BEGIN OF ty_jbal.
INCLUDE STRUCTURE j_2irg1bal.
TYPES : END OF ty_jbal.
DATA : it_jbal TYPE TABLE OF ty_jbal.
DATA : wa_jbal LIKE LINE OF it_jbal.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: pr_file LIKE rlgrap-filename OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_file.
* Getting the file name for uploading the legacy data.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = pr_file.
START-OF-SELECTION.
PERFORM f001_file_upload.
PERFORM process_data.
*&---------------------------------------------------------------------*
*& Form f001_file_upload
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f001_file_upload .
DATA: i_file TYPE string.
i_file = pr_file.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = i_file
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = it_jbal
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f001_file_upload
*&---------------------------------------------------------------------*
*& Form process_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM process_data .
DATA: v_year TYPE char4,
v_month TYPE char2,
v_day TYPE char2,
v_date TYPE char8.
LOOP AT it_jbal INTO wa_jbal.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = wa_jbal-matnr
IMPORTING
output = wa_jbal-matnr.
v_day = wa_jbal-datum(2).
v_month = wa_jbal-datum+2(2).
v_year = wa_jbal-datum+4(4).
CONCATENATE v_year v_month v_day INTO v_date.
wa_jbal-datum = v_date.
CLEAR v_date.
v_day = wa_jbal-cpudt(2).
v_month = wa_jbal-cpudt+2(2).
v_year = wa_jbal-cpudt+4(4).
CONCATENATE v_year v_month v_day INTO v_date.
* wa_jbal-usnam = sy-uname.
wa_jbal-cpudt = v_date.
* wa_jbal-cputm = sy-uzeit.
* insert j_2irg1bal from wa_jbal.
* modify j_2irg1bal from wa_jbal.
MODIFY it_jbal FROM wa_jbal TRANSPORTING matnr datum cpudt.
IF sy-subrc EQ 0.
ENDIF.
ENDLOOP.
IF it_jbal IS NOT INITIAL.
MODIFY j_2irg1bal FROM TABLE it_jbal.
IF sy-subrc = 0.
MESSAGE 'Records Updated' TYPE 'S'.
ENDIF.
ENDIF.
ENDFORM. " process_data