23 Ocak 2012 Pazartesi

0000,0001 INFOTYPE BILGILERININ TRANSFERI ÇALISMASI - Örnek ABAP Uygulaması 3

REPORT HRPROG1.

TABLES : PA0000,
         PA0001,
         PA0002,
         Q0002 ,
         RP50G.

INFOTYPES : 0000,
            0001,
            0002.

DATA:BEGIN OF BDC_TAB OCCURS 5.
        INCLUDE STRUCTURE BDCDATA.
DATA: END OF BDC_TAB.

PARAMETER MAPNAME DEFAULT SY-UNAME LIKE RPTAXXXX-MAP_NAME.

DATA: FNAME(128), FTYPE(3), FSIZE TYPE I.

DATA:BEGIN OF REC OCCURS 100 ,
     PERNR(8),
     BEGDA(10),
*    endda(10),
     MASSN(2),
*    massg(2),
     PLANS(8),
     WERKS(4),
     PERSG(1),
     PERSK(2),
*----------------------
     BTRTL(4),
     ANSVH(2),
END OF REC.


START-OF-SELECTION.

  CALL FUNCTION 'UPLOAD'
       EXPORTING
            FILENAME    =
              'H:\PHASE2\HRM\TRANSFER\DOWNLOAD\YENIIS\coklu\copy1.TXT'
*                 'H:\PHASE2\HRM\TRANSFER\DOWNLOAD\YENIIS\copy1.TXT'
            FILETYPE    = 'dat'
       IMPORTING
            FILESIZE            = FSIZE
            ACT_FILENAME        = FNAME
            ACT_FILETYPE        = FTYPE
       TABLES
            DATA_TAB            = REC
       EXCEPTIONS
            CONVERSION_ERROR    = 1
            INVALID_TABLE_WIDTH = 2
            INVALID_TYPE        = 3.
  WRITE: / 'upload tamam'.
  IF SY-SUBRC NE 0.  EXIT.  ENDIF.

  CALL FUNCTION 'BDC_OPEN_GROUP'
       EXPORTING
            CLIENT = SY-MANDT
            GROUP  = MAPNAME
            USER   = SY-UNAME.

  LOOP AT REC .
    PERFORM BASLA.
  ENDLOOP .


  CALL FUNCTION 'BDC_CLOSE_GROUP'.


**********               FORM BASLA             *************

FORM BASLA.

**********  PA30 GIRIS EKRANI BILGILERI ************

  PERFORM DEG USING 'SAPMP50A' '1000'.
  PERFORM YAZ USING 'RP50G-PERNR' REC-PERNR .
  PERFORM YAZ USING 'RP50G-CHOIC' '0000'.
* perform yaz using 'RP50G-SELEC(4)' 'X'.
* perform yaz using 'BDC_OKCODE' '/2'.
  PERFORM YAZ USING 'BDC_OKCODE' '/6'.

****** INFOTYPE 0000 EKRAN BILGILERI

  PERFORM DEG USING 'MP000000' '2000'.
  PERFORM YAZ USING 'P0000-BEGDA' REC-BEGDA.
  PERFORM YAZ USING 'P0000-MASSN' REC-MASSN.
  PERFORM YAZ USING 'P0000-MASSG' '  '.
  PERFORM YAZ USING 'PSPAR-PLANS' REC-PLANS.
  PERFORM YAZ USING 'PSPAR-WERKS' REC-WERKS.
  PERFORM YAZ USING 'PSPAR-PERSG' REC-PERSG.
  PERFORM YAZ USING 'PSPAR-PERSK' REC-PERSK.
  PERFORM YAZ USING 'BDC_OKCODE' '/11'.


****** INFOTYPE 0001 EKRAN BILGILERI

  PERFORM DEG USING 'MP000100' '2000'.
  PERFORM YAZ USING 'P0001-BTRTL' REC-BTRTL.
  PERFORM YAZ USING 'P0001-ABKRS' 'DE'.
  PERFORM YAZ USING 'P0001-ANSVH' REC-ANSVH.
  PERFORM YAZ USING 'BDC_OKCODE' '/11'.


  CALL FUNCTION 'BDC_INSERT'
       EXPORTING
            TCODE     = 'PA30'
       TABLES
            DYNPROTAB = BDC_TAB.
  REFRESH BDC_TAB.

ENDFORM.


****** YENI EKRANA BASLAMA

FORM DEG USING PROGRAM DYNPRO.
  CLEAR BDC_TAB.
  BDC_TAB-PROGRAM = PROGRAM.
  BDC_TAB-DYNPRO = DYNPRO.
  BDC_TAB-DYNBEGIN = 'X'.
  APPEND BDC_TAB.
ENDFORM.

******   BILGI ISLEME

FORM YAZ USING FNAM FVAL.
  CLEAR BDC_TAB.
  BDC_TAB-FNAM = FNAM.
  BDC_TAB-FVAL = FVAL.
  APPEND BDC_TAB.
ENDFORM.

Hiç yorum yok:

Yorum Gönder