ZC201UP
ZC201UP
BEGIN OF TY_HEADER,
PLNAL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE STRING,
* VERID TYPE STRING,
PROFIDNETZ TYPE STRING,
STTAG TYPE STRING,
STATU TYPE STRING,
VERWE TYPE PLN_VERWE,
BMSCH TYPE STRING,
UMREZ TYPE STRING,
UMREN TYPE STRING,
MEINH TYPE STRING,
END OF TY_HEADER,
BEGIN OF TY_ITEM,
PLNAL TYPE STRING,
MATNR TYPE STRING,
WERKS TYPE WERKS,
OPRNO TYPE STRING,
PVZNR TYPE STRING,
PHSEQ TYPE STRING,
ARBPL TYPE STRING,
STEUS TYPE STRING,
BMSCH_IT TYPE STRING, " Data String
STKEY TYPE STRING,
LTXA1 TYPE STRING,
VGW01 TYPE STRING,
VGW02 TYPE STRING,
VGW03 TYPE STRING,
VGW04 TYPE STRING,
VGW05 TYPE STRING,
VGW06 TYPE STRING,
END OF TY_ITEM,
BEGIN OF TY_COMP,
MATNR TYPE STRING,
VERID TYPE STRING,
MATNR_COMP TYPE STRING,
VORNR_ITEM TYPE STRING,
END OF TY_COMP,
BEGIN OF ST_MSG,
MTYPE TYPE STRING,
MESSAGE TYPE STRING,
END OF ST_MSG .
**** INTERNAL TABLE AND WORK AREA DECLARATION FOR HEADER AND ITEM LEVEL DATA
DATA : T_SOURCE TYPE STANDARD TABLE OF TY_SOURCE INITIAL SIZE 0,
T_HEADER TYPE STANDARD TABLE OF TY_HEADER INITIAL SIZE 0,
T_ITEM TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 0,
T_MSGCOLL TYPE STANDARD TABLE OF BDCMSGCOLL INITIAL SIZE 0,
T_BDCDATA TYPE STANDARD TABLE OF BDCDATA INITIAL SIZE 0,
T_FCAT TYPE TABLE OF SLIS_FIELDCAT_ALV,
T_MSG_DISP TYPE STANDARD TABLE OF ST_MSG INITIAL SIZE 0,
T_ITEM_QAS TYPE STANDARD TABLE OF TY_ITEM INITIAL SIZE 0,
T_COMP TYPE STANDARD TABLE OF TY_COMP INITIAL SIZE 0,
T_COMP_QAS TYPE STANDARD TABLE OF TY_COMP INITIAL SIZE 0,
*&---------------------------------------------------------------------*
*& Selection screen Declarations
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS : P_FNAME TYPE RLGRAP-FILENAME,
P_MODE TYPE CTU_MODE DEFAULT 'A' AS LISTBOX VISIBLE LENGTH 20,
P_HEADER TYPE I DEFAULT 1.
SELECTION-SCREEN END OF BLOCK B1.
INITIALIZATION.
****Clear all work areas
CLEAR:W_SOURCE,
W_HEADER,
W_ITEM,
W_FCAT,
W_LAYOUT,
W_MSGCOLL,
W_MSG_DISP,
W_ITEM_QAS,
W_COMP_QAS,
W_COMP,
W_COM2,
W_NUM_QAS,
W_BDCDATA.
*&---------------------------------------------------------------------*
*& Form GET_FILENAME
*----------------------------------------------------------------------*
FORM GET_FILENAME CHANGING P_FNAME.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form UPLOAD_DATA
*----------------------------------------------------------------------*
FORM UPLOAD_DATA .
W_FNAME = P_FNAME.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form UPLOAD_BDC_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
FORM UPLOAD_BDC_DATA .
DATA : X TYPE I,
COUNT TYPE I,
L_PLNAL TYPE CHAR2.
DATA : W_MAPL TYPE MAPL.
BATCH_PARAMS-DEFSIZE = 'X'.
BATCH_PARAMS-DISMODE = P_MODE.
BATCH_PARAMS-UPDMODE = 'A'.
* BATCH_PARAMS-NOBINPT = ''.
* BATCH-
CLEAR W_HEADER.
LOOP AT T_HEADER INTO W_HEADER.
MOVE W_HEADER-PLNAL TO L_PLNAL.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = L_PLNAL
IMPORTING
OUTPUT = L_PLNAL.
CLEAR L_MATNR.
SELECT SINGLE * FROM MAPL INTO W_MAPL WHERE MATNR = W_HEADER-MATNR AND WERKS =
W_HEADER-WERKS AND PLNTY = '2' AND PLNAL = L_PLNAL.
IF SY-SUBRC = 0.
W_MSG_DISP-MTYPE = 'E' .
CONCATENATE 'For the Material' W_HEADER-MATNR 'the Group' W_MAPL-PLNNR
'Already created for Group counter' L_PLNAL INTO W_MSG_DISP-MESSAGE SEPARATED BY
''.
APPEND W_MSG_DISP TO T_MSG_DISP.
CLEAR W_MSG_DISP.
CONTINUE.
ENDIF.
REFRESH : T_BDCDATA.
DATA : L_SPACE TYPE STRING.
DATA : LW_MAPL TYPE MAPL.
* BREAK-POINT.
*&-------------------------------------------------------------------------------&
*&-------------------------------------------------------------------------------&
CLEAR L_PDOWN.
CLEAR : W_ITEM, W_NUM,W_PREV.
W_PREV = 1.
LOOP AT T_ITEM INTO W_ITEM WHERE PLNAL = W_HEADER-PLNAL AND MATNR = W_HEADER-
MATNR AND WERKS = W_HEADER-WERKS.
CLEAR W_NO.
W_NUM = W_NUM + 1.
IF W_NUM < 10.
MOVE '(0' TO W_NO.
ELSE.
MOVE '(' TO W_NO.
ENDIF.
CLEAR W_STR.
CONCATENATE 'PLPOD-ARBPL' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-ARBPL.
CLEAR W_STR.
CONCATENATE 'PLPOD-LTXA1' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-LTXA1.
CLEAR W_STR.
CONCATENATE 'PLPOD-BMSCH' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-BMSCH_IT.
CLEAR W_STR.
CONCATENATE 'PLPOD-STEUS' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-STEUS.
CLEAR W_STR.
CONCATENATE 'PLPOD-PHFLG' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR 'X'.
CLEAR W_STR.
CONCATENATE 'PLPOD-PVZNR' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-PVZNR.
CLEAR W_STR.
CONCATENATE 'PLPOD-PHSEQ' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-PHSEQ.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW01' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW01.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW02' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW02.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW03' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW03.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW04' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW04.
CLEAR W_STR.
CONCATENATE 'PLPOD-VGW05' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING W_STR W_ITEM-VGW05.
ENDIF.
IF W_NUM = 15.
L_PDOWN = L_PDOWN + 1.
DO L_PDOWN TIMES.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
CLEAR W_STR.
CONCATENATE 'PLPOD-BMSCH' W_NO W_NUM ')' INTO W_STR.
PERFORM BDC_FIELD USING 'BDC_CURSOR' W_STR.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=P+'.
ELSE.
PERFORM BDC_DYNPRO USING 'SAPLCPDI' '4400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR' 'PLPOD-BMSCH(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE' '=ENT1'.
ENDIF.
ENDLOOP.
REFRESH T_MSGCOLL .
CALL TRANSACTION 'C201' USING T_BDCDATA OPTIONS FROM BATCH_PARAMS
MESSAGES INTO T_MSGCOLL.
PERFORM GET_MESSAGES.
ENDLOOP.
CLEAR : W_COM.
ENDFORM.
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FCAT_LOG .
REFRESH T_FCAT .
PERFORM FIELD_FCAT_CATLOG USING : 'MTYPE' 'Message Type',
'MESSAGE' 'Description'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form DISPLAY_DATA
*----------------------------------------------------------------------*
FORM DISPLAY_DATA .
W_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
*&---------------------------------------------------------------------*
*& Form FIELD_FCAT_CATLOG
*----------------------------------------------------------------------*
FORM FIELD_FCAT_CATLOG USING P_FNAME TYPE CHAR10
P_DES TYPE CHAR30 .
W_FCAT-FIELDNAME = P_FNAME .
W_FCAT-SELTEXT_L = P_DES .
APPEND W_FCAT TO T_FCAT .
CLEAR W_FCAT .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form GET_MESSAGES
*----------------------------------------------------------------------*
FORM GET_MESSAGES .
CLEAR W_MSGCOLL.
LOOP AT T_MSGCOLL INTO W_MSGCOLL.
CLEAR G_MESG.
*--- Function module to get the message.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = W_MSGCOLL-MSGID
LANG = SY-LANGU
NO = W_MSGCOLL-MSGNR
V1 = W_MSGCOLL-MSGV1
V2 = W_MSGCOLL-MSGV2
V3 = W_MSGCOLL-MSGV3
V4 = W_MSGCOLL-MSGV4
IMPORTING
MSG = G_MESG.
IF W_MSGCOLL-MSGTYP = 'S' .
W_MSG_DISP-MTYPE = W_MSGCOLL-MSGTYP .
W_MSG_DISP-MESSAGE = G_MESG.
APPEND W_MSG_DISP TO T_MSG_DISP.
CLEAR W_MSG_DISP .
ELSEIF W_MSGCOLL-MSGTYP = 'E' .
W_MSG_DISP-MTYPE = W_MSGCOLL-MSGTYP .
W_MSG_DISP-MESSAGE = G_MESG .
ENDLOOP.
ENDFORM.