Saturday, October 10, 2015

BAPI or BDC for MIGO_GR

File format is shown below – 


Copy the data and paste it in TXT file.
Browse the TXT File
*&---------------------------------------------------------------------*
*& Report  Z_MIGO_GR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  Z_MIGO_GR.

Data: ITHEADER type STANDARD TABLE OF BAPI2017_GM_HEAD_01.
Data: WAHEADER LIKE LINE OF ITHEADER.

DATA: ITCODE TYPE TABLE OF BAPI2017_GM_CODE.
DATA: WACODE LIKE LINE OF ITCODE.

DATA: V_MATNR TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
DATA: V_MAJHR TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR.

DATA: ITITEM type TABLE OF BAPI2017_GM_ITEM_CREATE.
DATA: WAITITEM LIKE LINE OF ITITEM.

DATA: ITRETURN TYPE TABLE OF BAPIRET2.
DATA: WAITRETURN LIKE LINE OF ITRETURN.


TYPES : BEGIN OF ST,
   EBELN(10),
   EBELP(5),
   BUDAT(10),
   XBLNR(16),
   FRBNR(16),
   XABLN(10),
   MATNR(18),
   WERKS(4),
   LGORT(4),
   CHARG(10),
   BWART(3),
   MENGE(13),
END OF ST.

DATA : ITAB TYPE TABLE OF ST.
   DATA : WA TYPE ST.

DATA: W_FILENAME TYPE STRING.
  SELECTION-SCREEN SKIP 1.
  SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-500.
  PARAMETERS: P_FILENM LIKE RLGRAP-FILENAME.
  SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILENM.

  CALL FUNCTION 'WS_FILENAME_GET'
       EXPORTING
            MASK             = ',*.*,*.*.'
            MODE             = '0'
            TITLE            = 'GET FILE NAME'
       IMPORTING
            FILENAME         = P_FILENM
       EXCEPTIONS
            INV_WINSYS       = 1
            NO_BATCH         = 2
            SELECTION_CANCEL = 3
            SELECTION_ERROR  = 4
            OTHERS           = 5.

** END OF CHANGE DCS05052003

** START OF CHANGE DCS05052003
START-OF-SELECTION.
 W_FILENAME = P_FILENM.
CALL FUNCTION 'GUI_UPLOAD'
  EXPORTING
**   FILENAME                    = 'C:\BDC_XLS_ASSIGN.TXT'
   FILENAME                      = W_FILENAME
   FILETYPE                      = 'ASC'
   HAS_FIELD_SEPARATOR           = 'X'
  TABLES
    DATA_TAB                     = ITAB
 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.

loop at ITAB into WA.
  CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
      EXPORTING
        DATE_EXTERNAL                  = WA-BUDAT
*       ACCEPT_INITIAL_DATE            =
      IMPORTING
        DATE_INTERNAL                  = WA-BUDAT
*     EXCEPTIONS
*       DATE_EXTERNAL_IS_INVALID       = 1
*       OTHERS                         = 2
              .

  WAHEADER-PSTNG_DATE = WA-BUDAT.
  WAHEADER-DOC_DATE = WA-BUDAT.
  WAHEADER-REF_DOC_NO = WA-XBLNR.
  WAHEADER-BILL_OF_LADING = WA-FRBNR.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = wa-XABLN
      IMPORTING
        OUTPUT        = wa-XABLN.
  WAHEADER-GR_GI_SLIP_NO = wa-XABLN.
  append WAHEADER to ITHEADER.


  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = WA-MATNR
      IMPORTING
        OUTPUT        = WA-MATNR.
  WAITITEM-MATERIAL = WA-MATNR.

  WAITITEM-PLANT = WA-WERKS.
  WAITITEM-STGE_LOC = WA-LGORT.
  WAITITEM-BATCH = WA-CHARG.
  WAITITEM-MOVE_TYPE = WA-BWART.
  WAITITEM-ENTRY_QNT = WA-MENGE.
  WAITITEM-PO_NUMBER = WA-EBELN.
  WAITITEM-PO_ITEM = WA-EBELP.
  WAITITEM-MVT_IND = 'B'.
  append WAITITEM to ITITEM.


  CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
  EXPORTING
    GOODSMVT_HEADER               = WAHEADER
    GOODSMVT_CODE                 = '01'
*   TESTRUN                       = ' '
*   GOODSMVT_REF_EWM              =
IMPORTING
*   GOODSMVT_HEADRET              =
   MATERIALDOCUMENT              = V_MATNR
   MATDOCUMENTYEAR               = V_MAJHR
  TABLES
    GOODSMVT_ITEM                 = ITITEM
*   GOODSMVT_SERIALNUMBER         =
    RETURN                        = ITRETURN
*   GOODSMVT_SERV_PART_DATA       =
*   EXTENSIONIN                   =
          .
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
   EXPORTING
     WAIT          = 'X'
*   IMPORTING
*     RETURN        =
            .

  clear: ITHEADER, ITITEM.
  Write: v_MATNR, V_MAJHR.
  NEW-LINE.
 ENDLOOP.

No comments:

Post a Comment