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.

DataITHEADER type STANDARD TABLE OF BAPI2017_GM_HEAD_01.
DataWAHEADER LIKE LINE OF ITHEADER.

DATAITCODE TYPE TABLE OF BAPI2017_GM_CODE.
DATAWACODE LIKE LINE OF ITCODE.

DATAV_MATNR TYPE BAPI2017_GM_HEAD_RET-MAT_DOC.
DATAV_MAJHR TYPE BAPI2017_GM_HEAD_RET-DOC_YEAR.

DATAITITEM type TABLE OF BAPI2017_GM_ITEM_CREATE.
DATAWAITITEM LIKE LINE OF ITITEM.

DATAITRETURN TYPE TABLE OF BAPIRET2.
DATAWAITRETURN 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.

DATAW_FILENAME TYPE STRING.
  SELECTION-SCREEN SKIP 1.
  SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-500.
  PARAMETERSP_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        =
            .

  clearITHEADERITITEM.
  Writev_MATNRV_MAJHR.
  NEW-LINE.
 ENDLOOP.