Wednesday, October 15, 2014

BDC for Asset to Asset Transfer - ABUMN

Make the file in txt format having the fields that are defined in the Structure below -

REPORT ZABUMN NO STANDARD PAGE HEADING LINE-SIZE 255.

"DECLARATION TYPES
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.

TABLESRAIFP1RAIFP2ANLA.

"STRUCTURE
TYPES BEGIN OF ST,

          ANLN1(12),
          ANLN2(4),
          BLDAT(10),
          BUDAT(10),
          BZDAT(10),
          SGTXT(50),
          XBANL(1),
          XNANL(1),
          TXT50(50),
          ANLKL(8),
          "ANLN1_1 TYPE ANLA-ANLN1,
          XSUBNO(1),
          XVLABG(1),
          "TXT50_1 TYPE ANLA-TXT50,
          KOSTL(10),
          ANBTR(13),
          XAALT(1),

        END OF ST.

*INTERNAL TABLE AND WORKAREA DECLARATION*
DATA IT TYPE TABLE OF ST.
DATA WA TYPE ST.

INCLUDE BDCRECX1.

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.

** 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                     IT
 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.

PERFORM OPEN_GROUP.

LOOP AT IT INTO WA.

  PERFORM BDC_DYNPRO      USING 'SAPLAMDP' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=NEWA'.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN1'
                                WA-ANLN1.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN2'
                                WA-ANLN2.
  PERFORM BDC_FIELD       USING 'RAIFP1-BLDAT'
                                WA-BLDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BUDAT'
                                WA-BUDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BZDAT'
                                WA-BZDAT..
  PERFORM BDC_FIELD       USING 'RAIFP2-SGTXT'
                                WA-SGTXT.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RAIFP3-XNANL'.
  PERFORM BDC_FIELD       USING 'RAIFP3-XBANL'
                                WA-XBANL."''.
  PERFORM BDC_FIELD       USING 'RAIFP3-XNANL'
                                WA-XNANL."'X'.
  PERFORM BDC_DYNPRO      USING 'SAPLAMDP' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=MAST'.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN1'
                                WA-ANLN1.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN2'
                                WA-ANLN2.
  PERFORM BDC_FIELD       USING 'RAIFP1-BLDAT'
                                WA-BLDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BUDAT'
                                WA-BUDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BZDAT'
                                WA-BZDAT.   PERFORM BDC_FIELD       USING 'RAIFP2-SGTXT'
                                WA-SGTXT.
  PERFORM BDC_FIELD       USING 'RAIFP3-XNANL'
                                WA-XNANL.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RAIFP4-TXT50'.
  PERFORM BDC_FIELD       USING 'RAIFP4-TXT50'
                                WA-TXT50.
  PERFORM BDC_DYNPRO      USING 'SAPLAIST' '2110'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RAIST05-XSUBNO'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=CREA'.
  PERFORM BDC_FIELD       USING 'ANLA-ANLKL'
                                WA-ANLKL.
  PERFORM BDC_FIELD       USING 'ANLA-ANLN1'
                                WA-ANLN1.
  PERFORM BDC_FIELD       USING 'RAIST05-XSUBNO'
                                WA-XSUBNO.
  PERFORM BDC_FIELD       USING 'RAIST05-XVLABG'
                                WA-XVLABG.
  PERFORM BDC_FIELD       USING 'ANLA-TXT50'
                                WA-TXT50.
  PERFORM BDC_FIELD       USING 'ANLZ-KOSTL'
                                WA-KOSTL.
  PERFORM BDC_DYNPRO      USING 'SAPLAMDP' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=TAB03'.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RAIFP2-ANLN1'.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN1'
                                WA-ANLN1.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN2'
                                WA-ANLN2.
  PERFORM BDC_FIELD       USING 'RAIFP1-BLDAT'
                                WA-BLDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BUDAT'
                                WA-BUDAT.
  PERFORM BDC_FIELD       USING 'RAIFP1-BZDAT'
                                WA-BZDAT.
  PERFORM BDC_FIELD       USING 'RAIFP2-SGTXT'
                                WA-SGTXT.
  PERFORM BDC_FIELD       USING 'RAIFP3-XNANL'
                                WA-XNANL.
  PERFORM BDC_DYNPRO      USING 'SAPLAMDP' '0100'.
  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                '=SAVE'.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN1'
                                WA-ANLN1.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANLN2'
                                WA-ANLN2.
  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                'RAIFP2-ANBTR'.
  PERFORM BDC_FIELD       USING 'RAIFP2-ANBTR'
                                WA-ANBTR.
  PERFORM BDC_FIELD       USING 'RAIFP2-XAALT'
                                WA-XAALT.
  PERFORM BDC_TRANSACTION USING 'ABUMN'.

ENDLOOP.

PERFORM CLOSE_GROUP.