zcs01 BDC Text
zcs01 BDC Text
zcs01 BDC Text
TABLES: SSCRFIELDS.
DATA: GWA_V_TEXT(100),
GWA_V_V1 LIKE BALM-MSGV1,
GWA_V_V2 LIKE BALM-MSGV2,
GWA_V_V3 LIKE BALM-MSGV3,
GWA_V_V4 LIKE BALM-MSGV4,
GT_MAT(18) TYPE C.
INITIALIZATION.
AT SELECTION-SCREEN.
PERFORM GET_DATA_FILE.
* PERFORM VALIDATE_DATA.
************************************************************************
* S T A R T O F S E L E C T I O N
************************************************************************
START-OF-SELECTION.
PERFORM DISTRIBUTE_DATA.
************************************************************************
* E N D O F S E L E C T I O N
************************************************************************
PERFORM CALL_TRANSACTION.
PERFORM DISPLAY_ERROR.
END-OF-SELECTION.
************************************************************************
* F O R M S
************************************************************************
*&---------------------------------------------------------------------*
*& Form GET_DATA_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA_FILE .
***************
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 3
I_END_COL = 14
I_END_ROW = 99999
TABLES
INTERN = IT_EXCEL
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
AT END OF ROW.
APPEND GIT_TABLE.
* APPEND wa_file TO it_file.
CLEAR GIT_TABLE.
ENDAT .
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form VALIDATE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM VALIDATE_DATA.
REFRESH : IT_ERROR.
CLEAR : IT_ERROR.
PERFORM PLT_VAL.
PERFORM STLAN_VAL.
** PERFORM COMB_VAL. "Commented BY Akhtar 10.12.2014
PERFORM UNIT_VAL.
ENDFORM. "VALIDATE_DATA
*&---------------------------------------------------------------------*
*& Form DISTRIBUTE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISTRIBUTE_DATA .
*&---------------------------------------------------------------------*
*& Form PLT_VAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PLT_VAL .
SELECT WERKS FROM T001W INTO TABLE IT_T001W.
LOOP AT GIT_TABLE.
READ TABLE IT_T001W WITH KEY WERKS = GIT_TABLE-WERKS.
IF SY-SUBRC <> 0.
SY-MSGTY = 'E'.
CONCATENATE SY-MSGTY '. ' ' Plant: ' GIT_TABLE-WERKS ' is invalid. ' INTO
STR2.
IT_ERROR-ERROR = STR2.
APPEND IT_ERROR.
ENDIF.
ENDLOOP.
ENDFORM. " PLT_VAL
*&---------------------------------------------------------------------*
*& Form STLAN_VAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM STLAN_VAL.
SELECT STLAN FROM T416 INTO TABLE IT_T416.
LOOP AT GIT_TABLE.
READ TABLE IT_T416 WITH TABLE KEY STLAN = GIT_TABLE-STLAN .
IF SY-SUBRC <> 0.
SY-MSGTY = 'E'.
CONCATENATE SY-MSGTY '. ' 'BOM Usage...' GIT_TABLE-STLAN ' is Invalid' INTO
STR6.
IT_ERROR-ERROR = STR6.
APPEND IT_ERROR.
ENDIF.
ENDLOOP.
ENDFORM. "STLAN_VAL
*&---------------------------------------------------------------------*
*& Form unit_val
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM UNIT_VAL.
SELECT MSEHI FROM T006 INTO TABLE IT_T006.
ENDFORM. "unit_val
*&---------------------------------------------------------------------*
*& Form FILL_SUCCESS_LOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM FILL_SUCCESS_LOG .
DELETE ADJACENT DUPLICATES FROM IT_SUCCESS.
READ TABLE IT_SUCCESS.
IF SY-SUBRC = 0.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'E:/Success_Log_BOM.txt' "LOG_FL
FILETYPE = 'DAT'
TABLES
DATA_TAB = IT_SUCCESS
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
MESSAGE I207(ZPPMSG).
LEAVE PROGRAM.
ENDIF.
ENDFORM. "FILL_SUCCESS_LOG
*&---------------------------------------------------------------------*
*& Form CALL_TRANSACTION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM CALL_TRANSACTION .
SORT GIT_HEADER_DATA BY MATNR.
CLEAR: GIT_HEADER_DATA,
GIT_ITEM_DATA.
GV_REC_CNT = 01 .
* SELECT SINGLE MATNR FROM MAST INTO @DATA(LV_MAST) WHERE MATNR = @GWA_HEAD-
MATNR.
* IF SY-SUBRC EQ 4.
* MESSAGE 'Excel already Uploaded' TYPE 'E'.
* ENDIF.
PERFORM FILL_TABLECONTROL.
GWA_ITEM-POSTP = 'L'.
GV_REC_CNT = 01 .
PERFORM BDC_FIELD USING:
GV_POSNR GWA_ITEM-POSNR,
GV_IDNRK GWA_ITEM-IDNRK,
GV_MENGE GWA_ITEM-MENGE,
GV_POSTP GWA_ITEM-POSTP,
GV_MEINS GWA_ITEM-MEINS,
GV_SORTF GWA_ITEM-SORTF.
CLEAR GV_REC_CNT.
CLEAR GIT_BDCMESSAGE.
*BREAK-POINT.
LOOP AT GIT_BDCMESSAGE. "WHERE msgtyp = 'E'.
MOVE: GIT_BDCMESSAGE-MSGV1 TO GWA_V_V1,
GIT_BDCMESSAGE-MSGV2 TO GWA_V_V2,
GIT_BDCMESSAGE-MSGV3 TO GWA_V_V3,
GIT_BDCMESSAGE-MSGV4 TO GWA_V_V4.
ENDLOOP.
REFRESH E_MSG[].
READ TABLE GIT_ERROR_FILE WITH KEY MSGTY = 'S'.
IF SY-SUBRC = 0.
E_MSG-MSGV1 = 'Success Report'.
APPEND E_MSG.
CLEAR E_MSG.
APPEND E_MSG.
SORT GIT_ERROR_FILE BY MSGTY DESCENDING.
LOOP AT GIT_ERROR_FILE WHERE MSGTY = 'S'.
E_MSG-MSGV1 = GIT_ERROR_FILE-MATNR.
E_MSG-MSGV2 = GIT_ERROR_FILE-IDNRK.
E_MSG-MSGV3 = GIT_ERROR_FILE-TEXT.
APPEND E_MSG.
CLEAR E_MSG.
ENDLOOP.
ENDIF.
READ TABLE GIT_ERROR_FILE WITH KEY MSGTY = 'E'.
IF SY-SUBRC = 0.
APPEND E_MSG.
E_MSG-MSGV1 = 'Error Report'.
APPEND E_MSG.
CLEAR E_MSG.
APPEND E_MSG.
LOOP AT GIT_ERROR_FILE WHERE MSGTY = 'E'.
E_MSG-MSGV1 = GIT_ERROR_FILE-MATNR.
E_MSG-MSGV2 = GIT_ERROR_FILE-IDNRK.
E_MSG-MSGV3 = GIT_ERROR_FILE-TEXT.
APPEND E_MSG.
CLEAR E_MSG.
ENDLOOP.
ENDIF.
IF E_MSG[] IS NOT INITIAL.
CALL FUNCTION 'POPUP_WITH_TABLE'
EXPORTING
ENDPOS_COL = 132
ENDPOS_ROW = 21
STARTPOS_COL = 1
STARTPOS_ROW = 3
TITLETEXT = SY-REPID
TABLES
VALUETAB = E_MSG
EXCEPTIONS
OTHERS = 0.
ENDIF.
CLEAR GIT_BDCDATA.
GIT_BDCDATA-PROGRAM = PROGRAM.
GIT_BDCDATA-DYNPRO = SCREEN.
GIT_BDCDATA-DYNBEGIN = 'x'.
APPEND GIT_BDCDATA.
CLEAR GIT_BDCDATA.
GIT_BDCDATA-FNAM = FNAME.
GIT_BDCDATA-FVAL = FVAL.
APPEND GIT_BDCDATA.
*&---------------------------------------------------------------------*
*& Form DISPLAY_ERROR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY_ERROR .