23 Ocak 2012 Pazartesi

SAP HR ABAP GİRİŞ

Selam Sevgili  SAP HR’cılar ve Abapçılar,

ABAP nedir diye size uzun uzadıya anlatmama gerek yok siz zaten neyin ne olduğunu bilecek durumdasınız ama bildiğim bir şey varkı o da örnek kodlara ve sektör ihtiyaçlarının ne olduğunu ile duyduğunuz bilgi açlığı olsa gerek.HR ABAP da diğer modüllerin abap’ından bazı farklılıkları vardır.Bu biraz da HR modülünün kendisine has yapısından kaynaklanır.

İşte size bu blogda danışmanlık yaptığım günlerden kalma işinize yarayabileceğini düşündüğüm güzel abap örnek kodlarını fırsat buldukça yayımlamayı amaçlıyorum.
Umut ediyorumki bu ve bunun gibi siteler sektörde orijinal,denenmiş başarıya ulaşmış kodlarını ihtiyaç sahibi abap yazılım uzmanların kullanabileceği diğer sitelere de örnek olur.Güzel bir fikir paylaşımı içinde en az sorunla şirketlerimizin problemlerini çözmeye devam ederiz.

HR ABAP örneklerinden başka Türkçe kaynak konusunda gördüğüm eksiğe bir nebze olsa çözüm bulabilmek için size bir takım ekran görüntülü süreç yönetimi örneklerini paylaşacağım.Buna ilk örnek ise:


Bilgi Tipi Nedir?
SAP-HR çalışan ile ilgili her türlü yönetim kaydını bilgi tiplerinde saklar.
4 haneli ve bilgi tipinin amacına uygun isimlendirilir.
It stores similar data into one screen.
Aşağıdaki ekran görüntüsünde olduğu gibi çalılşanın kişisel bilgilleri(ad,soyad,doğum günü ve medeni durum v.s.) ni görebilirsiniz.



Her SAP bilgi tipinde verinin girilmes gereken kutucuklar vardır.
Zorunllu alanlar kutucuk içindeki tik işareti ile belirlenir.
Opsionel alanlar ise boş kutucukludur.

Bilgi tiplerinin numaraları SAP deki standr bir şablan numaralam yapısıyla düzenlenir. :
  • HR/Bordo Verisi = 0000 den 0999
  • Ornganizasyonel Veri = 1000 den 1999
  • Zaman Verisi  = 2000 den 2999

SAP HR Ana verilerine erişim bilgi tipi bazından yetkilendirmesi ile sağlanır.Bundan dolayı
Çalışankarın ilgili pozisyonları ile alakajı bilgilerini erişim yetkilendirmesi yapar.
Bu şekilde pozisyon yeterliliği olmayan kullanıcılar kendilerine izin verilmeyen kişilerin bilgilerini göremez.

Bilgi Alt Tipleri
Bazoı Bilgi Tipleri farklı gruptdan alt tiplere bölümlendirilebilir.Örnek olarak “Kalıcı ev adresi” ve “Acil durumda yararlanılacak adres” şeklinde 0006 kodlu Adresler bilgi tipinin alt tipleri örnek verilebilir.





Bilgi Tipleri Alt Periyodları
Bilgi Tipleri başlangıç ve bitiş şeklide spesisifik iki tarif arasında çalışanın tarihçeli kaydını tutma imkanına sahiptir.Çalışanın ilgili verisinin güncellenmesi gerektiğinde önceki veri otomatik olarak zamansal biçimde sınırlanır.Sonuç olarak çalışlan bir bilgi tipinde farklı periyodlarda birden çok kayda sahip olabilir.

İşçi Vizite Kağıdı - Örnek ABAP Uygulaması 6

REPORT ZPRSVK03 LINE-SIZE 80
                LINE-COUNT 65                            "53   53(8)
                NO STANDARD PAGE HEADING
                MESSAGE-ID ZY.
*----tables
TABLES: PERNR,
        PCL1,
        PCL2,
        T550A,
        T510P,
        PA0000,
        PA0001,
        HRP1000,
*        pa0003,
        PA0021,
        T9Y01,
        T9YSS,
        T591S,
        S001,
        T247,
        T577,
        SPELL,
        PC205,
        T9YD1.
*---infotypes
INFOTYPES:   0000,
             0001,
             0002,
             0003,
             0021,
             0076,
             2010,
             9004.
*----includes
INCLUDE RPC2CD00.
INCLUDE RPC2RXX0.                      "Cluster RX data definition
INCLUDE RPC2RX00.    "Cluster RX data definition internat. part
INCLUDE RPPPXD00.                      "Data definition buffer PCL1/PCL2
INCLUDE RPPPXD10.                      "Common part buffer PCL1/PCL2
INCLUDE RPPPXM00.                      "Buffer handling routine
*----data definitions
DATA : BEGIN OF FPPER OCCURS 0,
         FPPER    LIKE S001-SPMON,
         WORD(84),
         BETRGM(9) TYPE P DECIMALS 2,     "Matrah
         BETRGP(9) TYPE P DECIMALS 2,     "Prim
         BETRGC(9) TYPE P DECIMALS 2,     "Ceza
         STXT(13),
         SSKDY(2)  TYPE I,   " like pc207-anzhl,
       END OF FPPER.
DATA: SSKNO LIKE T9YD1-SSKNO,          "Personel sskno
         EMKDA    LIKE P0001-BEGDA,
         SSKIS    LIKE T9YD1-SSKNO,    "Is yeri sskno
         STRET    LIKE T9YD1-STRET,    "cadde ve konut numarasi
         CTEXT    LIKE T9Y01-CTEXT,    "Sehir
         PFACH(7),                     "t9yd1-pfach postakutusu
         NAME1    LIKE T9YD1-NAME1,    "Sirket adi
         GBDAT LIKE PA0002-GBDAT,      "Dogum tarihi
         BEGDA LIKE PA0000-BEGDA,      "ise giris tarihi
         PRSAY TYPE I,                 "personel alanindaki isçi sayisi
         SOBEG LIKE T550A-SOBEG,       "Kaza günü mesai baslangici
         MINBTR LIKE FPPER-BETRGM,
         CITY(2),
         YIL(4),
         AY(2),
         CURSORFIELD(20),
         TFANAM LIKE PA0021-FANAM,
         TFAVOR LIKE PA0021-FAVOR,
         TFAMSA LIKE PA0021-FAVOR,
         SSKDY(3) TYPE I,
         MONEND LIKE SY-DATUM,
         LOOPT TYPE I.
DATA: BEGIN OF IFANAM OCCURS 0,
         SIGN VALUE 'I',
         OPTION(2) VALUE 'CP',
         LOW LIKE PA0021-FANAM,
         HIGH LIKE PA0021-FANAM VALUE SPACE,
     END OF IFANAM.
DATA: BEGIN OF IFAVOR OCCURS 0,
         SIGN VALUE  'I',
         OPTION(2) VALUE  'CP',
         LOW LIKE PA0021-FAVOR,
         HIGH LIKE PA0021-FAVOR VALUE SPACE,
     END OF IFAVOR.
DATA: BEGIN OF IFAMSA OCCURS 0,
         SIGN VALUE  'I',
         OPTION(2) VALUE  'CP',
         LOW LIKE PA0021-FAMSA,
         HIGH LIKE PA0021-FAMSA VALUE SPACE,
     END OF IFAMSA.
*-- RP_HIRE+FIRE                                     "TL 23.02.2000
DATA : HIREDATE LIKE P0000-BEGDA,
       FIREDATE LIKE P0000-ENDDA.
DATA : BEGIN OF PHIFI OCCURS 5.
        INCLUDE STRUCTURE PHIFI.
DATA : END OF PHIFI.

*---selection screen
SELECTION-SCREEN BEGIN OF BLOCK SECIM WITH FRAME TITLE TEXT-005.
  PARAMETERS: E1  RADIOBUTTON GROUP GR1,
              E2  RADIOBUTTON GROUP GR1.
SELECTION-SCREEN END OF BLOCK SECIM.
SELECTION-SCREEN BEGIN OF BLOCK VIZITE WITH FRAME TITLE TEXT-000.
* parameters: mahis(4) default '5435'.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN COMMENT 1(30) TEXT-001.
 SELECTION-SCREEN POSITION POS_LOW.
  PARAMETERS: IS(20),
              MAHIS(30).
 SELECTION-SCREEN END OF LINE.
 SELECTION-SCREEN BEGIN OF LINE.
 SELECTION-SCREEN COMMENT 1(30) TEXT-002.
 SELECTION-SCREEN POSITION POS_LOW.
  PARAMETERS: KAZSK(13),
              KAZYR(13),
              SDATE LIKE SY-DATUM DEFAULT SY-DATUM,
              STIME LIKE SY-UZEIT DEFAULT SY-UZEIT.
 SELECTION-SCREEN END OF LINE.
  PARAMETERS: ISBAS LIKE SY-UZEIT DEFAULT '080000'.
SELECTION-SCREEN BEGIN OF BLOCK TANIK WITH FRAME TITLE TEXT-003.
  PARAMETERS: TANIK1(15).
  PARAMETERS: TANIK2(15).
SELECTION-SCREEN END OF BLOCK TANIK.
  PARAMETERS: ISVEKAD(15),
              TARIH LIKE SY-DATUM DEFAULT SY-DATUM,
              SAAT  LIKE SY-UZEIT DEFAULT SY-UZEIT.
SELECTION-SCREEN END OF BLOCK VIZITE.
SELECTION-SCREEN BEGIN OF BLOCK VIZITE_YAKIN WITH FRAME TITLE TEXT-004.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) TEXT-006.
  PARAMETERS: FAVOR LIKE P0021-FAVOR.
  PARAMETERS: FANAM LIKE P0021-FANAM.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(30) TEXT-007.
  PARAMETERS: FAMSA LIKE P0021-FAMSA.
  PARAMETERS: INTKY(30).
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK VIZITE_YAKIN.
*---Parameters.
*---initialization.
INITIALIZATION.
*---at selection-screen.
AT SELECTION-SCREEN.
  CLEAR : TFAMSA, TFANAM, TFAVOR, IFANAM, IFAVOR, IFAMSA.
  REFRESH : IFANAM, IFAVOR, IFAMSA.
  GET CURSOR FIELD CURSORFIELD.
  MOVE :  'I' TO IFANAM-SIGN,
          'CP' TO IFANAM-OPTION,
          'I' TO IFAVOR-SIGN,
          'CP' TO IFAVOR-OPTION,
          'I' TO IFAMSA-SIGN,
          'CP' TO IFAMSA-OPTION.
  CONCATENATE FANAM '*' INTO IFANAM-LOW.
  CONCATENATE FAVOR '*' INTO IFAVOR-LOW.
  CONCATENATE FAMSA '*' INTO IFAMSA-LOW.
  APPEND IFANAM.
  APPEND IFAVOR.
  APPEND IFAMSA.
  IF CURSORFIELD = 'FAVOR'.
    SELECT SINGLE FAMSA FANAM FAVOR INTO (TFAMSA, TFANAM, TFAVOR)
                                   FROM PA0021
                                   WHERE PERNR EQ PNPPERNR-LOW
                                   AND FAVOR IN IFAVOR
                                   AND FANAM IN IFANAM.
  ELSEIF CURSORFIELD = 'FAMSA'.
    SELECT SINGLE FAMSA FANAM FAVOR INTO (TFAMSA, TFANAM, TFAVOR)
                                   FROM PA0021
                                   WHERE PERNR EQ PNPPERNR-LOW
                                   AND FAMSA IN IFAMSA.
  ENDIF.
  MOVE: TFANAM TO FANAM,
        TFAVOR TO FAVOR,
        TFAMSA TO FAMSA.
  SELECT SINGLE STEXT INTO INTKY FROM T591S WHERE INFTY EQ '0021'
                                      AND SUBTY EQ FAMSA
                                      AND SPRSL EQ SY-LANGU.
*---Yapilan is ve mahiyeti
  CLEAR: IS, MAHIS.
  SELECT SINGLE * FROM PA0001 WHERE PERNR IN PNPPERNR
                              AND   BEGDA LE SDATE
                              AND   ENDDA GE SDATE.
  SELECT SINGLE STEXT INTO IS FROM HRP1000 WHERE PLVAR EQ '01'
                              AND   OTYPE EQ 'C '
                              AND   OBJID EQ PA0001-STELL
                              AND   LANGU EQ SY-LANGU.
  SELECT SINGLE STEXT INTO MAHIS FROM HRP1000 WHERE PLVAR EQ '01'
                                 AND   OTYPE EQ 'O '
                                 AND   OBJID EQ PA0001-ORGEH
                                 AND   LANGU EQ SY-LANGU.

*---top-of-page.
TOP-OF-PAGE.
IF SY-UCOMM NE 'SVK1'.
  IF E2 = 'X'.
    PERFORM TOP_OF_PAGE_WRITE_SURFACE_02.
  ELSEIF E1 = 'X'.
    PERFORM TOP_OF_PAGE_WRITE_SURFACE_01.
  ENDIF.
ENDIF.
*---end-of-page.
END-OF-PAGE.
  NEW-PAGE.
*---start-of-selection.
START-OF-SELECTION.
  PERFORM SET_INITIAL_CONDITIONS.

GET PERNR.
*--
  CALL FUNCTION 'RP_HIRE+FIRE'
    EXPORTING
        BEG = PN/BEGDA
        END = PN/ENDDA
    IMPORTING
        HIRE_DATE = SDATE
        FIRE_DATE = SDATE
    TABLES
        PP0000 = P0000
        PP0001 = P0001
        PPHIFI = PHIFI .

  RP-PROVIDE-FROM-LAST P0001 SPACE SDATE SDATE.
* check:  p0001-plans ne '99999999' ,           "TL 23.02.2000
  CHECK: P0001-PERSG IN PNPPERSG.
  RP-PROVIDE-FROM-LAST P9004 SPACE SDATE SDATE.
  CHECK SY-SUBRC EQ 0.
  IF P0001-PERSG = 2. EMKDA = P0001-BEGDA. ENDIF. "retire ?
  SELECT SINGLE * FROM T9YD1 WHERE WERKS EQ P0001-WERKS AND
                                   BTRTL EQ P0001-BTRTL.
  SELECT SINGLE * FROM T9Y01 WHERE CITY = T9YD1-CITY.
  CD-KEY-PERNR = PERNR-PERNR.
  RP-IMP-C2-CD.
  PERFORM FILL_TAB_RGDIR.
  SELECT SINGLE SSKNO NAME1  STRET PFACH CITY
         INTO (SSKIS, NAME1, STRET, PFACH, CITY)
          FROM T9YD1
          WHERE WERKS EQ P0001-WERKS
          AND  BTRTL EQ P0001-BTRTL
          AND  BEGDA LE TARIH
          AND  ENDDA GE TARIH.
*---end-of-selection.
END-OF-SELECTION.
  SET PF-STATUS 'SVK1'.
  IF E1 = 'X'.
    PERFORM WRITE_SURFACE_TO_SCREEN_01.
    PERFORM WRITE_LIST_TO_SCREEN_01.
    PERFORM END_OF_PAGE_WRITE_SURFACE_01.
  ELSE.
    PERFORM WRITE_LIST_TO_SCREEN_02.
    PERFORM END_OF_PAGE_WRITE_SURFACE_02.
    PERFORM END_OF_PAGE_WRITE_SURFACE_01.
  ENDIF.
*----at user-command.
AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN 'LEAV'.
      SET SCREEN 0.
      LEAVE SCREEN.
    WHEN 'CANC'.
      LEAVE SCREEN.
    WHEN 'PRNT'.
      PERFORM PRINT_TO_PAGE.
  ENDCASE.
*&---------------------------------------------------------------------*
*&      Form  WRITE_SURFACE_TO_SCREEN_01
*&---------------------------------------------------------------------*
FORM WRITE_SURFACE_TO_SCREEN_01.
  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
  WRITE:
   /01 SY-VLINE,
    02 'SIGORTALININ',
    80 SY-VLINE.
  ULINE (80).
  WRITE:
   /01 SY-VLINE,
    02 '1)Sicil No:',
    47 SY-VLINE,
    48 P9004-SSKNO,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '2)Adi ve Soyadi:',
    47 SY-VLINE,
    48 P0001-ENAME,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '3)Dogum Tarihi:',
    47 SY-VLINE,
    48 P0002-GBDAT,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '4)Ise Giris Tarihi:',
    47 SY-VLINE,
    48 P0000-BEGDA,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '5)Vztye çikmak için isyer.ayrildg.trh ve saat',
    47 SY-VLINE,
*   48 tarih,                                      "TL 23.02.2000
*   60 saat,                                       "TL 23.02.2000
    80 SY-VLINE.
  ULINE (80).
 WRITE:
  / SY-VLINE,
    02 'IS KAZASI HALINDE',
    80 SY-VLINE.
  ULINE (80).
  WRITE:
   /01 SY-VLINE,
    02 '6)Olay Tarihindeki Isçi Sayisi:',
    47 SY-VLINE, PRSAY,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '7)Sigort. Yaptigi Is ve Bu Is. Mahiyeti:',
    47 SY-VLINE,
    48 IS+(15),MAHIS+(15),
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '8)Is Kzs.ols sekli,vuku buldg.yer,trh ve saat',
    47 SY-VLINE,
    48 KAZSK,
    55 ',',
    56 KAZYR,
    63 ',',
*    64 sdate,                             "TL 23.02.2000
    74 ',',
*    75 stime+(2),                         "TL 23.02.2000
    77 ':',
*    78 stime+2(2),                        "TL 23.02.2000
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '9)Olay günündeki is basi saati:',
    47 SY-VLINE,
*    48 t550a-sobeg,
    48 ISBAS,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '10)Taniklarin ad ve soyadlari:',
    47 SY-VLINE,
    48 TANIK1,
    63 ',',
    64 TANIK2,
    80 SY-VLINE.
  WRITE AT /1(80) SY-ULINE.
  WRITE:
   /01 SY-VLINE,
    02 '11)Sigortalinin prim halinin sona erip ermedigi ermisse',
       'tarihi(A)',
    67 SY-VLINE,
* if emkda ne 0. write 68 emkda. endif.          "TL 23.02.2000
    68 SDATE,                                    "TL 23.02.2000
    80 SY-VLINE.
  WRITE AT /1(80) SY-ULINE.
  WRITE:
   /01 SY-VLINE,
       '12)',
    14 SY-VLINE,
    15 'Pr',
    17 SY-VLINE,
    27 'Hakettigi Ücretler(C)',
    56 SY-VLINE,
    68 SY-VLINE,
    69 'Isyer. veya',
    80 SY-VLINE,
   /01 SY-VLINE,
    07 'Aylar',
    14 SY-VLINE,
    15 'im',
    17 SY-VLINE.
  WRITE AT 18(38) SY-ULINE.
  WRITE:
    56 SY-VLINE,
    57 'Prim veya',
    68 SY-VLINE,
    69 'mahkemece',
    80 SY-VLINE,
   /01 SY-VLINE,
    08 '(B)',
    14 SY-VLINE,
    15 'Ö',
    17 SY-VLINE,
    29 SY-VLINE,
    56 SY-VLINE,
    57 'Ikramiye',
    68 SY-VLINE,
    69 'öden. karar',
    80 SY-VLINE,
   /01 SY-VLINE,
    14 SY-VLINE,
    15 'de',
    17 SY-VLINE,
    20 'Rakamla',
    29 SY-VLINE,
    38 'Yaziyla',
    56 SY-VLINE,
    68 SY-VLINE,
    69 'verilen',
    80 SY-VLINE,
   /01 SY-VLINE,
    14 SY-VLINE,
    15 'me',
    17 SY-VLINE,
    29 SY-VLINE,
    56 SY-VLINE,
    68 SY-VLINE,
    69 'ücret',
    80 SY-VLINE.
  WRITE AT /1(80) SY-ULINE.
ENDFORM.                               " WRITE
*&---------------------------------------------------------------------*
*&      Form  SET_INITIAL_CONDITIONS
*&---------------------------------------------------------------------*
FORM SET_INITIAL_CONDITIONS.
  MONEND = TARIH.
  MONEND+6(2) = '01'.
  CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
       EXPORTING
            DAY_IN            = MONEND
       IMPORTING
            LAST_DAY_OF_MONTH = MONEND.
  MOVE 12 TO LOOPT.
  IF E1  NE SPACE . MOVE 6 TO LOOPT. ENDIF.
  FPPER-FPPER = TARIH+(6).
  DO LOOPT  TIMES.
    IF TARIH EQ MONEND.
      SELECT SINGLE LTX FROM T247 INTO FPPER-STXT
                WHERE SPRAS EQ SY-LANGU AND
                      MNR   EQ FPPER+4(2).
      APPEND FPPER.
    IF FPPER-FPPER+4(2) = 1.
       FPPER-FPPER+0(4) = FPPER-FPPER+0(4) - 1.
       FPPER-FPPER+4(2) = 13.
    ENDIF.
      FPPER-FPPER+4(2) = FPPER-FPPER+4(2) - 1.
    ELSE.
      IF FPPER-FPPER+4(2) = 1.
        FPPER-FPPER+0(4) = FPPER-FPPER+0(4) - 1.
        FPPER-FPPER+4(2) = 13.
      ENDIF.
      FPPER-FPPER+4(2) = FPPER-FPPER+4(2) - 1.
      SELECT SINGLE LTX FROM T247 INTO FPPER-STXT
                WHERE SPRAS EQ SY-LANGU AND
                      MNR   EQ FPPER+4(2).
      APPEND FPPER.
    ENDIF.
  ENDDO.
  CLEAR PRSAY.
  SELECT * FROM PA0000 WHERE MASSN NE '10'
                       AND   BEGDA LE SDATE
                       AND   ENDDA GE SDATE.
    SELECT SINGLE * FROM PA0001 WHERE  PERNR EQ PA0000-PERNR
                                AND    BEGDA LE SDATE
                                AND    ENDDA GE SDATE.
     CHECK PA0001-PLANS NE '99999999'.
     PRSAY = PRSAY + 1.
  ENDSELECT.
ENDFORM.                               " SET_INITIAL_CONDITIONS
*&---------------------------------------------------------------------*
*&      Form  PRINT_TO_PAGE
*&---------------------------------------------------------------------*
FORM PRINT_TO_PAGE.
*if e1 = 'X'.
  PERFORM TOP_OF_PAGE_PRINT_SURFACE_01.
  PERFORM PRINT_SURFACE_TO_SCREEN_01.
  PERFORM PRINT_LIST_TO_SCREEN_01.
  PERFORM END_OF_PAGE_PRINT_SURFACE_01.
*elseif e2 = 'X'.
*  perform top_of_page_print_surface_02.
*  perform print_list_to_screen_02.
*  perform end_of_page_print_surface_01.
*endif.
ENDFORM.                               " PRINT_TO_PAGE
*&---------------------------------------------------------------------*
*&      Form  WRITE_LIST_TO_SCREEN_01
*&---------------------------------------------------------------------*
FORM WRITE_LIST_TO_SCREEN_01.
  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
  CLEAR SSKDY.
  LOOP AT FPPER.
    SSKDY = SSKDY + FPPER-SSKDY.
    IF SSKDY GT 120. DELETE FPPER.  ENDIF.
  ENDLOOP.
  SORT FPPER BY FPPER ASCENDING.
  LOOP AT FPPER.
    CHECK FPPER-SSKDY NE 0.
    WRITE:
     /01 SY-VLINE,
      14 SY-VLINE,
      17 SY-VLINE,
      29 SY-VLINE,
      30 FPPER-WORD+(26),
      56 SY-VLINE,
      68 SY-VLINE,
      80 SY-VLINE,
     /01 SY-VLINE,
      02 FPPER-FPPER+0(4),
      06 '/',
      07 FPPER-SSKDY,
      17 SY-VLINE,
      07 FPPER-STXT+0(7),
      14 SY-VLINE,
      18(11) FPPER-BETRGM CURRENCY 'TRL',
      29 SY-VLINE,
      30 FPPER-WORD+26(26),
      56 SY-VLINE,
      57(11) FPPER-BETRGP CURRENCY 'TRL',
      68 SY-VLINE,
      69(11) FPPER-BETRGC CURRENCY 'TRL',
      80 SY-VLINE,
     /01 SY-VLINE,
      14 SY-VLINE,
      17 SY-VLINE,
      29 SY-VLINE,
      30 FPPER-WORD+52(26),
      56 SY-VLINE,
      68 SY-VLINE,
      80 SY-VLINE.
    WRITE AT /1(80) SY-ULINE.
  ENDLOOP.
ENDFORM.                               " WRITE_LIST_TO_SCREEN
*&---------------------------------------------------------------------*
*&      Form  FILL_TAB_RGDIR
*&---------------------------------------------------------------------*
FORM FILL_TAB_RGDIR.
  RX-KEY-PERNR = PERNR-PERNR.
  LOOP AT FPPER.
    LOOP AT RGDIR WHERE FPPER = FPPER-FPPER.
      UNPACK RGDIR-SEQNR TO RX-KEY-SEQNO.
      RP-IMP-C2-RX.
      CHECK RP-IMP-RX-SUBRC EQ 0.
      SELECT SINGLE * FROM T9YSS WHERE BEGDA LE RGDIR-FPBEG
                                   AND ENDDA GE RGDIR-FPEND.
      LOOP AT RT  .
        CASE RT-LGART.
          WHEN '/104'.
            MINBTR = T9YSS-ASSTB / 30 * RT-ANZHL.
            FPPER-SSKDY = RT-ANZHL.
            FPPER-BETRGM = RT-BETRG.
            PERFORM SPELL_AMOUNT.
            IF MINBTR > RT-BETRG. FPPER-BETRGM = MINBTR. ENDIF.
          WHEN 'Y550'. FPPER-BETRGP = RT-BETRG.
          WHEN '/111'. FPPER-BETRGC = RT-BETRG.
        ENDCASE.
      ENDLOOP.
    ENDLOOP.
    MODIFY FPPER.
  ENDLOOP.
ENDFORM.                               " FILL_TAB_RGDIR
*&---------------------------------------------------------------------*
*&      Form  SPELL_AMOUNT
*&---------------------------------------------------------------------*
FORM SPELL_AMOUNT.
  CLEAR SPELL.
  CALL FUNCTION 'SPELL_AMOUNT'
       EXPORTING
            LANGUAGE  = SY-LANGU
            CURRENCY  = SY-WAERS
            AMOUNT    = RT-BETRG
            FILLER    = ''
       IMPORTING
            IN_WORDS  = SPELL
       EXCEPTIONS
            NOT_FOUND = 1
            TOO_LARGE = 2.
  MOVE SPELL-WORD TO FPPER-WORD.
  MODIFY FPPER.
ENDFORM.                               " SPELL_AMOUNT
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE_WRITE_SURFACE_02
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE_WRITE_SURFACE_02.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.
  WRITE AT /1(80) SY-ULINE.
  WRITE:
   /01 SY-VLINE,
    35 'VIZITE KAGIDI',
    80 SY-VLINE,
   /01 SY-VLINE,
    20 'SIGORTALIININ ESLERI VE GEÇINDIRMEKLE YÜKÜMLÜ',
    80 SY-VLINE,
   /01 SY-VLINE,
    30 'OLDUKLARI ÇOCUKLARINA AIT',
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Isyerinin Ünvani:',
    20 NAME1,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Adres           :',
    20 STRET,
       'P.K.:',
       PFACH,
       CTEXT,
    80 SY-VLINE,
   /01 SY-VLINE,
    80 SY-VLINE,
   /01 SY-VLINE,
    68 TARIH,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Sigortali Tedavinin yapilabilmesi için sicil kartini göstermek',
       'zorundasin',
    80 SY-VLINE.
  ULINE (80).
  WRITE: /01 SY-VLINE,
          02 'SIGORTALININ',
          80 SY-VLINE.
  ULINE (80).
  WRITE:
   /01 SY-VLINE,
    02 '1)Sicil No:',
    60 SY-VLINE,
    61 P9004-SSKNO,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '2)Adi ve Soyadi:',
    60 SY-VLINE,
    61 P0001-ENAME,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '3)Ise Giris Tarihi:',
    60 SY-VLINE,
    61 P0000-BEGDA,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 '4)Sigrtali prim halinin sona erip ermedigi ermisse tarihi',
    60 SY-VLINE.
    IF EMKDA NE 0. WRITE 61 EMKDA. ENDIF.
  WRITE 80 SY-VLINE.
  WRITE: AT /1(80) SY-ULINE,
   /01 SY-VLINE,
    02 '5)Hastanin Adi Soyadi           :',
    60 SY-VLINE,
    61 FAVOR,
    70 FANAM,
    80 SY-VLINE,
   /01 SY-VLINE,
    04 'Sigortaliya karabet derecesi  :',
    60 SY-VLINE,
    61 INTKY,
    80 SY-VLINE.
  WRITE: AT /1(80) SY-ULINE,
   /01 SY-VLINE,
    02 '6)Aylar           (B)',
    40 SY-VLINE,
    45 'Prim ödeme Gün Sayisi' ,
    80 SY-VLINE,
   /01 SY-VLINE,
    40 SY-VLINE,
    80 SY-VLINE.
  WRITE: AT /1(80) SY-ULINE.
ENDFORM.                               " TOP_OF_PAGE_WRITE_SURFACE_02
*&---------------------------------------------------------------------*
*&      Form  END_OF_PAGE_WRITE_SURFACE_02
*&---------------------------------------------------------------------*
FORM END_OF_PAGE_WRITE_SURFACE_02.
  FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
  WRITE:
   / SY-VLINE, 3 'NOT: Bu belge ile ver. bilgi. yanlis olmasi',
     'sebep. esi ve geçin. yük. oldugu', 80 SY-VLINE,
   / SY-VLINE, 3 'çocuk. için kurumca yersiz olarak yap. her türlü',
    'masraflar isverenden alinir.' , 80 SY-VLINE.
  WRITE AT /1(80) SY-ULINE.
ENDFORM.                               " END_OF_PAGE_WRITE_SURFACE_02
*&---------------------------------------------------------------------*
*&      Form  WRITE_LIST_TO_SCREEN_02
*&---------------------------------------------------------------------*
FORM WRITE_LIST_TO_SCREEN_02.
  FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
  SORT FPPER BY FPPER ASCENDING.
  LOOP AT FPPER.
    WRITE:
    / SY-VLINE, FPPER-FPPER+0(4), 7 '/', 8 FPPER-STXT,
      40 SY-VLINE,50 FPPER-SSKDY, 80 SY-VLINE.
    WRITE AT /1(80) SY-ULINE.
  ENDLOOP.
ENDFORM.                               " WRITE_LIST_TO_SCREEN_02
*&---------------------------------------------------------------------*
*&      Form  END_OF_PAGE_WRITE_SURFACE_01
*&---------------------------------------------------------------------*
FORM END_OF_PAGE_WRITE_SURFACE_01.
  FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
  WRITE:
  / SY-VLINE, 2 'Sosyal Sigortalar', 19 SY-VLINE, 20 'M', 21 SY-VLINE,
    'Is Kodu', 29 SY-VLINE, 'Sube K.', 35 SY-VLINE, 36 'Sira No',
    47 SY-VLINE, 48 'Is',51 SY-VLINE,52 'IçK',
    55 SY-VLINE,56 'Isveren veya Vekilinin', 80 SY-VLINE,
  / SY-VLINE,
    AT 19(37) SY-ULINE,
    60 'Adi, Soyadi,',
    80 SY-VLINE,
  / SY-VLINE, 'Isyeri Sicil No', 19 SY-VLINE,20 SSKIS+0(1),
    21 SY-VLINE, 22 SSKIS+1(1), 23 SY-VLINE, 24 SSKIS+2(1),
    25 SY-VLINE, 26 SSKIS+3(1), 27 SY-VLINE, 28 SSKIS+4(1),
    29 SY-VLINE, 30 SSKIS+5(1), 31 SY-VLINE, 32 SSKIS+6(1),
    33 SY-VLINE, 34 SSKIS+7(1), 35 SY-VLINE, 36 SSKIS+8(1),
    37 SY-VLINE, 38 SSKIS+9(1), 39 SY-VLINE, 40 SSKIS+10(1),
    41 SY-VLINE, 42 SSKIS+11(1), 43 SY-VLINE, 44 SSKIS+13(1),
    45 SY-VLINE, 46 SSKIS+13(1), 47 SY-VLINE, 48 SSKIS+14(1),
    49 SY-VLINE, 50 SSKIS+15(1), 51 SY-VLINE, 52 SSKIS+16(1),
    53 SY-VLINE, 54 SSKIS+17(1), 55 SY-VLINE,
    58 'Imzasi ve Kasesi', 80 SY-VLINE,
  / SY-VLINE,
    AT 19(37) SY-ULINE,
    60 ISVEKAD,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE,
  / SY-VLINE,
    80 SY-VLINE.
  ULINE (80).
ENDFORM.                               " END_OF_PAGE_WRITE_SURFACE_01
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE_WRITE_SURFACE_01
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE_WRITE_SURFACE_01.
  FORMAT COLOR COL_NEGATIVE INTENSIFIED OFF.
  WRITE AT /1(80) SY-ULINE.
  WRITE:
   /01 SY-VLINE,
    30 'ISÇI VIZITE KAGIDI',
    80 SY-VLINE,
   /01 SY-VLINE,
    32 'SIGORTALIYA AIT',
    80 SY-VLINE,
   /01 SY-VLINE,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Isyerinin Ünvani:',
    20 NAME1,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Adres           :',
    20 STRET,'P.K.',
       PFACH,
       CTEXT,
    80 SY-VLINE,
   /01 SY-VLINE,
    80 SY-VLINE,
   /01 SY-VLINE,
    68 TARIH,
    80 SY-VLINE,
   /01 SY-VLINE,
    80 SY-VLINE,
   /01 SY-VLINE,
    02 'Sigortali Tedavinin yapilabilmesi için sicil kartini göstermek',
       'zorundasin',
    80 SY-VLINE.
  ULINE (80).
ENDFORM.                    " TOP_OF_PAGE_WRITE_SURFACE_01
*&---------------------------------------------------------------------*
*&      Form  PRINT_SURFACE_TO_SCREEN_01
*&---------------------------------------------------------------------*
FORM PRINT_SURFACE_TO_SCREEN_01.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SKIP TO LINE 12.
  WRITE: 42 P9004-SSKNO.
  SKIP TO LINE 14.
  WRITE: 42 P0001-ENAME.
  SKIP TO LINE 16.
  WRITE: 42 P0002-GBDAT.
  SKIP TO LINE 18.
  WRITE: 42 P0000-BEGDA.
  SKIP TO LINE 21.
  WRITE: 42 TARIH, 56 SAAT.
IF E2 NE SPACE.
  SKIP TO LINE 24.
  WRITE: 42(19) FAVOR,61(19) FANAM.
ENDIF.
  SKIP TO LINE 26.
  WRITE: 42 PRSAY.
  SKIP TO LINE 28.
  WRITE: 42 IS+(19), MAHIS+(19).
  SKIP TO LINE 31.
  WRITE: 42 KAZSK,
         52 ',',
         53 KAZYR,
         63 ',',
         64 SDATE,
         74 ',',
         75 STIME+(2),
         77 ':',
         78 STIME+2(2).
  SKIP TO LINE 33.
*  write: 42 t550a-sobeg.
  WRITE: 42 ISBAS.
  SKIP TO LINE 35.
  WRITE: 42 TANIK1,
         63 ',',
         64 TANIK2.
  SKIP TO LINE 38.
  IF EMKDA NE 0.
    WRITE: 42 'SONA ERDI',
           55 EMKDA.
  ELSE.
    WRITE 42 'DEVAM EDIYOR'.
  ENDIF.
ENDFORM.                    " PRINT_SURFACE_TO_SCREEN_01
*&---------------------------------------------------------------------*
*&      Form  PRINT_LIST_TO_SCREEN_01
*&---------------------------------------------------------------------*
FORM PRINT_LIST_TO_SCREEN_01.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SORT FPPER BY FPPER ASCENDING.
    SKIP TO LINE 46.
  LOOP AT FPPER.
*    linno = fpper+4(2) + 45.
    WRITE:
*           /30 fpper-word+(26),
           /07 FPPER-FPPER+0(4),
            11 '/',
            12(7) FPPER-STXT,
            26(2) FPPER-SSKDY,
            36(12) FPPER-BETRGM CURRENCY 'TRL'.
*            30 fpper-word+26(26),
*            57(12) fpper-betrgp currency 'TRL',
*            69(12) fpper-betrgc currency 'TRL'.
*           /30 fpper-word+52(26).
*  skip 1.
  ENDLOOP.
ENDFORM.                    " PRINT_LIST_TO_SCREEN_01
*&---------------------------------------------------------------------*
*&      Form  END_OF_PAGE_PRINT_SURFACE_01
*&---------------------------------------------------------------------*
FORM END_OF_PAGE_PRINT_SURFACE_01.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SKIP TO LINE 55.
*  write: 20 sskis+0(1),
*         22 sskis+1(1),
*         24 sskis+2(1),
*         26 sskis+3(1),
*         28 sskis+4(1),
*         30 sskis+5(1),
*         32 sskis+6(1),
*         34 sskis+7(1),
*         36 sskis+8(1),
*         38 sskis+9(1),
*         40 sskis+10(1),
*         42 sskis+11(1),
*         44 sskis+13(1),
*         46 sskis+13(1),
*         48 sskis+14(1),
*         50 sskis+15(1),
*         52 sskis+16(1),
*         54 sskis+17(1).
  SKIP TO LINE 61.
  WRITE:  65 ISVEKAD.
ENDFORM.                    " END_OF_PAGE_PRINT_SURFACE_01
*&---------------------------------------------------------------------*
*&      Form  PRINT_LIST_TO_SCREEN_02
*&---------------------------------------------------------------------*
FORM PRINT_LIST_TO_SCREEN_02.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SORT FPPER BY FPPER ASCENDING.
  SKIP TO LINE 20.
  LOOP AT FPPER.
    WRITE:
    /01 FPPER-FPPER+0(4),
     07 '/', 8 FPPER-STXT,
     50 FPPER-SSKDY.
    SKIP 1.
  ENDLOOP.
ENDFORM.                    " PRINT_LIST_TO_SCREEN_02
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE_PRINT_SURFACE_02
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE_PRINT_SURFACE_02.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SKIP TO LINE 3.
  WRITE: 20 NAME1.
  SKIP TO LINE 4.
  WRITE: 20 STRET,
            'P.K.:',
            PFACH,
            CTEXT.
  SKIP TO LINE 6.
  WRITE: 68 TARIH.
  SKIP TO LINE 8.
  WRITE: 61 P9004-SSKNO.
  SKIP TO LINE 9.
  WRITE: 61 P0001-ENAME.
  SKIP TO LINE 10.
  WRITE: 61 P0000-BEGDA.
  SKIP TO LINE 11.
    IF EMKDA NE 0. WRITE 61 EMKDA. ENDIF.
  SKIP TO LINE 13.
  WRITE: 61 FAVOR,
         70 FANAM.
  SKIP TO LINE 14.
  WRITE: 61 INTKY.
ENDFORM.                    " TOP_OF_PAGE_PRINT_SURFACE_02
*&---------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE_PRINT_SURFACE_01
*&---------------------------------------------------------------------*
FORM TOP_OF_PAGE_PRINT_SURFACE_01.
  FORMAT COLOR COL_KEY INTENSIFIED ON.
  SKIP TO LINE 1.
*  write: 25 name1.
  SKIP TO LINE 3.
*  write: 25 pfach,
*            ctext.
  SKIP TO LINE 5.
  WRITE: 70 TARIH.
ENDFORM.                    " TOP_OF_PAGE_PRINT_SURFACE_01

İhbar Gününün Bulunması - Örnek ABAP Uygulaması 10

REPORT ZHRRIG09 LINE-SIZE 250 NO STANDARD PAGE HEADING.

TABLES : PERNR,
         HRP1000,
         T503T,
         T528T.

INFOTYPES: 0000,
           0001,
           0002,
           0032,
           9001,
           9004.

DATA: X      LIKE HRP1000-MC_SHORT,
      Y      LIKE HRP1000-MC_SHORT,
      MYTOPLAM(4) TYPE N,
      BEGDA_DT LIKE P0000-BEGDA,
      ENDDA_DT LIKE P0000-ENDDA,
      COUNT1 TYPE N,
      COUNT2 TYPE N,
      IHBAR(5) TYPE N.
DATA:BEGIN OF INTTAB OCCURS 100,
      PERNR    LIKE PERNR-PERNR,
      ENAME    LIKE PERNR-ENAME,
      BEGDA    LIKE P0000-BEGDA,
      ANSVH    LIKE P0001-ANSVH,
      PERSK    LIKE P0001-PERSK,
      MC_SHORT LIKE HRP1000-MC_SHORT,
      MC_STEXT LIKE HRP1000-MC_STEXT,
      PLANS    LIKE P0001-PLANS,
      PLSTX    LIKE HRP1000-STEXT,
      PTEXT    LIKE T503T-PTEXT,
      SSKNO    LIKE P9004-SSKNO,
      FATER    LIKE P9001-FATER,
      GBORT    LIKE P0002-GBORT,
      GBDAT    LIKE P0002-GBDAT,
*      ihbar    like p2010-anzhl,
      TEL01    LIKE P0032-TEL01.
DATA: END OF INTTAB.
DATA: XT528T  LIKE T528T OCCURS 0 WITH HEADER LINE,
      XT503T  LIKE T503T OCCURS 0 WITH HEADER LINE.

*---departman listesi
DATA :  BEGIN OF DEP OCCURS 0,
          OBJID LIKE HRP1000-OBJID,
          SHORT LIKE HRP1000-MC_SHORT,
          STEXT LIKE HRP1000-MC_STEXT,
        END OF DEP.

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

PARAMETER MAPNAME DEFAULT SY-UNAME LIKE RPTAXXXX-MAP_NAME.  "IS

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


DATA:BEGIN OF REC OCCURS 10 ,                               "IS
     PERNR(8),
*     begda(8),
*     anzhl(5),
     IHBAR(5),
END OF REC.

*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECT-OPTIONS: SHORT  FOR HRP1000-MC_SHORT.
PARAMETERS : BEGDA LIKE SY-DATUM,
             ENDDA LIKE SY-DATUM,
             IHBTRH LIKE SY-DATUM.
SELECTION-SCREEN END OF BLOCK BLOCK1.

*-------     PROGRAM BASLIYOR

START-OF-SELECTION.
  PERFORM SET_INITIAL_VALUES.

GET PERNR.
  COUNT1 = 0.
  COUNT2 = 0.
*-- Ise giris tarihi
  LOOP AT P0000 WHERE BEGDA BETWEEN PNPBEGDA AND PNPENDDA
                 AND MASSN IN PNPMASSN.
    COUNT2 = COUNT2 + 1.
  ENDLOOP.
  CHECK SY-SUBRC EQ 0.
  MOVE P0000-BEGDA TO INTTAB-BEGDA.
  RP-PROVIDE-FROM-LAST P0001 SPACE P0000-BEGDA P0000-ENDDA.
  IF SY-SUBRC EQ 0.
    READ TABLE XT503T WITH KEY PERSK = P0001-PERSK.
  ENDIF.
*-- Isten çikmismi ?
  LOOP AT P0000  WHERE BEGDA BETWEEN PNPBEGDA AND PNPENDDA AND
                       MASSN EQ '10'.
    COUNT1 = COUNT1 + 1.
  ENDLOOP.
  CHECK COUNT1 NE COUNT2.
*-- Pozisyon degistirmis ?
  LOOP AT P0000 WHERE BEGDA BETWEEN PNPBEGDA AND PNPENDDA
                      AND MASSN EQ '02'.
  ENDLOOP.
  IF SY-SUBRC EQ 0.
    RP-PROVIDE-FROM-LAST P0001 SPACE P0000-BEGDA P0000-ENDDA.
    READ TABLE XT503T WITH KEY PERSK = P0001-PERSK.
  ENDIF.

*--- istenen departmanmi ?
  READ TABLE DEP WITH KEY P0001-ORGEH.
  CHECK SY-SUBRC EQ 0.

  PERFORM RE528.

END-OF-SELECTION.
*--  GUI Status Bilgisi
  SET PF-STATUS 'LIST'.
  PERFORM BODY.
  PERFORM BATCH_INPUT.
  PERFORM TOTAL.

TOP-OF-PAGE.
  PERFORM FORMAT.                      "Baslik Bilgisi

AT USER-COMMAND.
  CASE SY-UCOMM.
    WHEN 'P000'.
      SCROLL LIST RIGHT BY 22 PLACES.
    WHEN 'P001'.
      SCROLL LIST LEFT  BY 22 PLACES.
    WHEN 'P002'.
      SCROLL LIST RIGHT BY 150 PLACES.
    WHEN 'P003'.
      SCROLL LIST LEFT  BY 150 PLACES.

    WHEN 'S000'.
      PERFORM BODY.
      PERFORM TOTAL.
    WHEN 'S001'.
      PERFORM NAME.
      PERFORM TOTAL.
  ENDCASE.

TOP-OF-PAGE DURING LINE-SELECTION.
  PERFORM FORMAT.


*---------------------------------------------------------------------*
*       FORM RE528                                                    *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM RE528.
*-- Clear Islemleri
*  clear: xt503t, xt528t,
  CLEAR: P0002, P0032, P9004, P9001.
*-- Loop Islemleri
  LOOP AT P0002 WHERE BEGDA LE P0000-ENDDA AND
                      ENDDA GE P0000-BEGDA.
  ENDLOOP.
* loop at p0032 where begda le p0000-endda and
*                     endda ge p0000-begda.
  LOOP AT P0032 .
* write :/1 begda,' ',p0000-endda.
  ENDLOOP.

  LOOP AT P9001 WHERE BEGDA LE P0000-ENDDA AND
                      ENDDA GE P0000-BEGDA.
  ENDLOOP.
  LOOP AT P9004 WHERE BEGDA LE P0000-ENDDA AND
                      ENDDA GE P0000-BEGDA.
  ENDLOOP.

*  read table xt503t with key persk = p0001-persk.
  READ TABLE XT528T WITH KEY PLANS = P0001-PLANS.

*-- Internal Table Atama Islemleri
  MOVE PERNR-PERNR      TO INTTAB-PERNR.
  MOVE PERNR-ENAME      TO INTTAB-ENAME.
  MOVE P0001-PLANS      TO INTTAB-PLANS.
  MOVE XT528T-PLSTX     TO INTTAB-PLSTX.
  MOVE P0001-ANSVH      TO INTTAB-ANSVH.
  MOVE XT503T-PTEXT     TO INTTAB-PTEXT.
  MOVE P9004-SSKNO      TO INTTAB-SSKNO.
  MOVE P0001-PERSK      TO INTTAB-PERSK.
  MOVE P0032-TEL01      TO INTTAB-TEL01.
  MOVE DEP-SHORT        TO INTTAB-MC_SHORT.
  MOVE DEP-STEXT        TO INTTAB-MC_STEXT.
  MOVE P9001-FATER      TO INTTAB-FATER.
  MOVE P0002-GBORT      TO INTTAB-GBORT.
  MOVE P0002-GBDAT      TO INTTAB-GBDAT.
  APPEND INTTAB.

ENDFORM.

*&---------------------------------------------------------------------*
*&      Form  FORMAT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
FORM FORMAT.
  WRITE : /100 TEXT-013 COLOR COL_BACKGROUND INVERSE.
  SKIP.
  ULINE (228).
  FORMAT   INTENSIFIED OFF COLOR 6.
  WRITE : /1 '|' NO-GAP, (9)TEXT-001 NO-GAP,    "pers.no.
         '|' NO-GAP,(26)TEXT-002 NO-GAP.   "Name and Surname

  SET LEFT SCROLL-BOUNDARY.

  WRITE:  '|' NO-GAP,(11)TEXT-003 NO-GAP,   "Entry Date
          '|' NO-GAP,(11)'Ihbar günü' NO-GAP,   "Entry Date
*         '|' no-gap,(16)text-014 no-gap,   "Father Name
*         '|' no-gap,(16)text-015 no-gap,   "Birthplace
*         '|' no-gap,(11)text-016 no-gap,   "Birthdate
*         '|' no-gap,(9)text-004 no-gap,    "Dep.Code
*         '|' no-gap,(41)text-005 no-gap,   "Dept Name
*         '|' no-gap,(26)text-006 no-gap,   "Position
*         '|' no-gap,(3)text-007 no-gap,                    "SG
*         '|' no-gap,(21)text-008 no-gap,   "Sub. Group Text
*         '|' no-gap,(13)text-009 no-gap,   "SSK No
*         '|' no-gap,(5)text-010 no-gap,    "Cont.
*         '|' no-gap,(6)text-011 no-gap,    "Ext.
          '|'.
  ULINE (30).

ENDFORM.                               " FORMAT
*&---------------------------------------------------------------------*
*&      Form  BODY
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
FORM BODY.
  SORT INTTAB BY PERNR.
  FORMAT  INTENSIFIED OFF COLOR 3.
  CLEAR MYTOPLAM.
  LOOP AT INTTAB.

    CHECK INTTAB-MC_SHORT IN SHORT.
    IF BEGDA NE '18000101'.  "Begda degiskenin bos geçilmesi kontrolü
      CHECK INTTAB-BEGDA    GE BEGDA_DT AND INTTAB-BEGDA LE ENDDA_DT.
*     write :/1 begda,' ',endda,' ',inttab-begda.
    ENDIF.

    WRITE: / '|' NO-GAP,(8)INTTAB-PERNR NO-ZERO UNDER TEXT-001,
                                       "pers.no.
             '|' NO-GAP, (25)INTTAB-ENAME UNDER TEXT-002,
                 SY-VLINE NO-GAP.      " Name and Surname

    SET LEFT SCROLL-BOUNDARY.
*reak-point.
    IF IHBTRH = 0 .                    " bossa
      IHBTRH = '19990101'.
    ENDIF.
    IHBAR = IHBTRH - INTTAB-BEGDA.
    MOVE INTTAB-PERNR TO REC-PERNR.
    MOVE IHBAR TO REC-IHBAR.
    APPEND REC.

    WRITE:     SY-VLINE NO-GAP, (10)INTTAB-BEGDA UNDER TEXT-003,
                                       "Entry Date
               SY-VLINE NO-GAP, (10)REC-IHBAR UNDER 'Ihbar günü',
*              sy-vline no-gap, (15)inttab-fater under text-014,
*                                      "Father Name
*              sy-vline no-gap, (15)inttab-gbort under text-015,
*                                      "Birthplace
*              sy-vline no-gap, (10)inttab-gbdat under text-016,
*                                      "Birthdate
*              sy-vline no-gap, (8)inttab-mc_short under text-004,
*                                      "Dep.Code
*             '|' no-gap, (40)inttab-mc_stext under text-005, "Dept Name
*              '|' no-gap, (25)inttab-plstx under text-006,    "position
*              '|' no-gap, (2)inttab-persk under text-007,  "SG
*          '|' no-gap,(20)inttab-ptext under text-008,  "Sub. Group Text
*              '|' no-gap, (12)inttab-sskno under text-009,   "SSK No
*              '|' no-gap, (4)inttab-ansvh under text-010,    "Contract
*              '|' no-gap, (5)inttab-tel01 under text-011,  "Tel01
              '|'.
    ADD 1 TO MYTOPLAM.
  ENDLOOP.
  ULINE (30).
ENDFORM.                               " BODY
*&-----------------------------------------------------------------*
*&          Isme gore sirali                                       *
*&-----------------------------------------------------------------*
FORM NAME.
  SORT INTTAB BY ENAME.
  FORMAT  INTENSIFIED OFF COLOR 3.
  CLEAR MYTOPLAM.
  LOOP AT INTTAB.

    CHECK INTTAB-MC_SHORT IN SHORT.
    CHECK INTTAB-BEGDA    GE BEGDA_DT AND INTTAB-BEGDA LE ENDDA_DT.

    WRITE: / '|' NO-GAP,(8)INTTAB-PERNR NO-ZERO UNDER TEXT-001,
                                       "pers.no.
             '|' NO-GAP, (25)INTTAB-ENAME UNDER TEXT-002,
                 SY-VLINE NO-GAP.      " Name and Surname

    SET LEFT SCROLL-BOUNDARY.

    WRITE:     SY-VLINE NO-GAP, (10)INTTAB-BEGDA UNDER TEXT-003,
                                       "Entry Date
               SY-VLINE NO-GAP, (15)INTTAB-FATER UNDER TEXT-014,
                                       "Father Name
               SY-VLINE NO-GAP, (15)INTTAB-GBORT UNDER TEXT-015,
                                       "Birthplace
               SY-VLINE NO-GAP, (10)INTTAB-GBDAT UNDER TEXT-016,
                                       "Birthdate
               SY-VLINE NO-GAP, (8)INTTAB-MC_SHORT UNDER TEXT-004,
                                       "Dep.Code
              '|' NO-GAP, (40)INTTAB-MC_STEXT UNDER TEXT-005, "Dept Name
               '|' NO-GAP, (25)INTTAB-PLSTX UNDER TEXT-006,    "position
               '|' NO-GAP, (2)INTTAB-PERSK UNDER TEXT-007,  "SG
           '|' NO-GAP,(20)INTTAB-PTEXT UNDER TEXT-008,  "Sub. Group Text
               '|' NO-GAP, (12)INTTAB-SSKNO UNDER TEXT-009,   "SSK No
               '|' NO-GAP, (4)INTTAB-ANSVH UNDER TEXT-010,    "Contract
               '|' NO-GAP, (5)INTTAB-TEL01 UNDER TEXT-011,  "Tel01
               '|'.
    ADD 1 TO MYTOPLAM.
  ENDLOOP.
  ULINE (228).

ENDFORM.                               "BODY

*---------------------------------------------------------------------*
*       FORM TOTAL                                                    *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM TOTAL.
  SKIP.
  WRITE :/ TEXT-017,MYTOPLAM NO-ZERO COLOR COL_NEGATIVE.

ENDFORM.                               " TOTAL
*&---------------------------------------------------------------------*
*&      Form  SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
FORM SET_INITIAL_VALUES.
*--- set date
  IF BEGDA EQ 0.   "Ekrandan begda degiskenin bos geçilmesi
    MOVE '18000101' TO BEGDA. MOVE BEGDA TO PNPBEGDA.
    MOVE '99991231' TO ENDDA. MOVE ENDDA TO PNPENDDA.
  ELSE.
    MOVE BEGDA TO BEGDA_DT.   "Ekranda bir tarih araliginin girilmesi
    MOVE ENDDA TO ENDDA_DT.
  ENDIF.
*--- set massn islemler dizisi
  MOVE : 'I'     TO     PNPMASSN-SIGN,
         'EQ'    TO     PNPMASSN-OPTION,
         '01'    TO     PNPMASSN-LOW.
  APPEND PNPMASSN. CLEAR PNPMASSN.
  MOVE : 'I'     TO     PNPMASSN-SIGN,
         'EQ'    TO     PNPMASSN-OPTION,
         '12'    TO     PNPMASSN-LOW.
  APPEND PNPMASSN. CLEAR PNPMASSN.
*---- departman listesi
  SELECT OBJID MC_SHORT MC_STEXT  FROM HRP1000  INTO TABLE  DEP
           WHERE OTYPE     EQ  'O'           AND
                 PLVAR     EQ  '01'          AND
                 MC_SHORT  IN  SHORT         AND
                 LANGU     EQ  SY-LANGU
                 ORDER BY OBJID.
*-- Pozisyon textleri listesi
  SELECT * FROM T528T INTO TABLE XT528T WHERE SPRSL EQ SY-LANGU
                                        AND   OTYPE EQ 'S'.
*-- Çalisan grup textleri listesi
  SELECT * FROM T503T INTO TABLE XT503T WHERE SPRSL EQ SY-LANGU.


ENDFORM.                               " SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
*&      Form  BATCH_INPUT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BATCH_INPUT.

*call function 'UPLOAD'
*     exporting
*        filename            = 'C\WORK\019.TXT'
*        filetype            = 'ASC'
*     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'.


ENDFORM.                               " BATCH_INPUT

*&---------------------------------------------------------------------*
*&      Form  BASLA
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BASLA.

  PERFORM DEG USING 'SAPMP50A' '1000'  .
  PERFORM YAZ USING 'RP50G-PERNR' REC-PERNR .
  PERFORM YAZ USING 'RP50G-CHOIC' '2010'.
  PERFORM YAZ USING 'RP50G-SUBTY' '5500'.
  PERFORM YAZ USING 'BDC_OKCODE' '/6'.

*******0000 COPY EVENTS
  PERFORM DEG USING 'MP200000' '2450'.
  PERFORM YAZ USING 'P2010-BEGDA' '01011999'.
  PERFORM YAZ USING 'P2010-ANZHL' REC-IHBAR.
  PERFORM YAZ USING 'Q2010-EITXT' 'Saat '.
  PERFORM YAZ USING 'BDC_OKCODE' '/11'.

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

*&---------------------------------------------------------------------*
*&      Form  DEG
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DEG USING PROGRAM DYNPRO.

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

*&---------------------------------------------------------------------*
*&      Form  YAZ
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM YAZ USING FNAM FVAL.

  CLEAR BDC_TAB.
  BDC_TAB-FNAM = FNAM.
  BDC_TAB-FVAL = FVAL.
  APPEND BDC_TAB.
ENDFORM.                               " YAZ

Geçici Personel Izleme Listesi - Örnek ABAP Uygulaması 9

REPORT ZHRRGPI1 LINE-SIZE 185 NO STANDARD PAGE HEADING.
*-- Table(s)
TABLES : PERNR,
         HRP1000,
         T528T,
         T531S,
         T503T.

*-- Infotype(s)
INFOTYPES: 0000, 0001, 0002, 0019 .

*--- Internal Table(s)
DATA:BEGIN OF P OCCURS 10,
      PERNR    LIKE PERNR-PERNR,
      ENAME    LIKE PERNR-ENAME,
      HIRE     LIKE P0000-BEGDA,       "ISE GIRIS TARIHI
      FIRE     LIKE P0000-ENDDA,       "ISten çikis TARIHI
      MC_SHORT LIKE HRP1000-MC_SHORT,  "Departman kodu
      MC_STEXT LIKE HRP1000-MC_STEXT,  "Departman text
*     plstx    like t528t-plstx,       "Pozisyon text
*     persk    like p0001-persk,       "Çalisan Altgrup
*     ptext    like t503t-ptext,       "Çalisan Altgrup Text
      ANSVH    LIKE P0001-ANSVH,       "Istihdam Kosullari
      TMART    LIKE P0019-TMART,       "Tarih türü
      TMTXT    LIKE T531S-TMTXT,       "Tarih türü izleme metni
      TERMN    LIKE P0019-TERMN,       "Sözlesme Sonu
      MNDAT    LIKE P0019-MNDAT.       "Ihbar Tarihi
DATA: END OF P.

DATA: XT528T LIKE T528T OCCURS 0 WITH HEADER LINE,
      XT531S LIKE T531S OCCURS 0 WITH HEADER LINE,
      XT503T LIKE T503T OCCURS 0 WITH HEADER LINE.

*-- Departman Listesi
DATA: BEGIN OF DEP OCCURS 0,
     OBJID  LIKE HRP1000-OBJID,
     SHORT  LIKE HRP1000-MC_SHORT,
     STEXT  LIKE HRP1000-MC_STEXT,
     BEGDA  LIKE HRP1000-BEGDA   ,
     ENDDA  LIKE HRP1000-ENDDA   ,
    END OF DEP .

*-- RP_HIRE_FIRE
DATA: HIREDATE LIKE P0000-BEGDA,
      FIREDATE LIKE P0000-ENDDA.
DATA: BEGIN OF PHIFI OCCURS 5.
        INCLUDE STRUCTURE PHIFI.
DATA: END OF PHIFI.

*-- Variables
DATA: MYTOPLAM(4)       TYPE N,
      BEGDA             LIKE P0000-BEGDA,
      ENDDA             LIKE P0000-ENDDA,
      C01               LIKE SY-COLNO VALUE 180.

*-- Giris ekranina ilave
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1 WITH FRAME TITLE TEXT-012.
SELECT-OPTIONS: HI_FI    FOR P0001-BEGDA
                DEFAULT '19800101'
                TO      SY-DATUM .
SELECT-OPTIONS: SHORT    FOR HRP1000-MC_SHORT,
                ANSVH    FOR P0001-ANSVH DEFAULT 'TE'.
*               persk    for p0001-persk.
SELECTION-SCREEN END OF BLOCK BLOCK1.

*-------     PROGRAM BASLIYOR
*initialization.
*  rp-sel-ein-aus-init.    "Istihdam Durumu <> 0 islemi

START-OF-SELECTION.

  PERFORM SET_INITIAL_VALUES .

GET PERNR.
*--
  CALL FUNCTION 'RP_HIRE_FIRE'
       EXPORTING
            BEG       = PN-BEGDA
            END       = PN-ENDDA
       IMPORTING
            HIRE_DATE = HIREDATE
            FIRE_DATE = FIREDATE
       TABLES
            PP0000    = P0000          "input
            PP0001    = P0001          "input
            PPHIFI    = PHIFI.         "output
*----
* write :/1 hiredate,' ',firedate.
*---

  PERFORM CALC_HIRE.

*-- end-of-selection
END-OF-SELECTION.
*--  GUI Status Bilgisi
  SET PF-STATUS 'LIST'.
  PERFORM BODY.
  PERFORM TOTAL.

TOP-OF-PAGE.
  PERFORM FORMAT .

*&---------------------------------------------------------------------*
*&      Form  FORMAT
*&---------------------------------------------------------------------*
FORM FORMAT.
  WRITE : /60 TEXT-013 COLOR COL_BACKGROUND INVERSE.
  SKIP.
  ULINE AT (C01).
  FORMAT   INTENSIFIED OFF COLOR 6.
  WRITE : /1 '|' NO-GAP,(09)TEXT-001 NO-GAP,    "Pers.no.
             '|' NO-GAP,(26)TEXT-002 NO-GAP,    "Name and Surname
             '|' NO-GAP,(11)TEXT-003 NO-GAP,    "Giris Tarihi
             '|' NO-GAP,(11)TEXT-026 NO-GAP,    "Çikis Tarihi
             '|' NO-GAP,(10)TEXT-004 NO-GAP,    "Bölüm Kodu
             '|' NO-GAP,(41)TEXT-005 NO-GAP,    "Bölüm Adi
*            '|' no-gap,(26)text-006 no-gap,    "Pozisyon
*            '|' no-gap,(07)text-007 no-gap,    "Çalisan Altgrup
*            '|' no-gap,(21)text-008 no-gap,    "Çalisan Altgrup Text
             '|' NO-GAP,(08)TEXT-009 NO-GAP,    "Istihdam Kosullari
             '|' NO-GAP,(07)TEXT-020 NO-GAP,    "Tarih Türü
             '|' NO-GAP,(20)TEXT-021 NO-GAP,    "Tarih Türü Izleme Metni
             '|' NO-GAP,(13)TEXT-022 NO-GAP,    "Sözlesme Sonu
             '|' NO-GAP,(12)TEXT-023 NO-GAP,    "Ihbar Tarihi
             '|' .
  ULINE AT (C01).
ENDFORM.                               " FORMAT
*&---------------------------------------------------------------------*
*&      Form  BODY
*&---------------------------------------------------------------------*
FORM BODY.
  FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
  SORT P BY PERNR HIRE.
  CLEAR : MYTOPLAM .
  LOOP AT P.

    CHECK P-MC_SHORT  IN SHORT.
    CHECK P-ANSVH  IN ANSVH.
*   check p-persk  in persk.

    WRITE: /01 SY-VLINE NO-GAP,
          (08) P-PERNR NO-ZERO UNDER TEXT-001, " pers.no
               SY-VLINE NO-GAP,
          (25) P-ENAME    UNDER TEXT-002,      " Name and Surname
               SY-VLINE NO-GAP,
          (10) P-HIRE    UNDER TEXT-003,       " Giris tarihi
               SY-VLINE NO-GAP,
          (10) P-FIRE    UNDER TEXT-026,       " Çikis Tarihi
               SY-VLINE NO-GAP ,
          (09) P-MC_SHORT UNDER TEXT-004,      " Bölüm kodu
               SY-VLINE NO-GAP ,
          (40) P-MC_STEXT UNDER TEXT-005,      " Bölüm adi
               SY-VLINE NO-GAP ,
*         (25) p-plstx    under text-006,      " Pozisyon
*              sy-vline no-gap ,
*         (06) p-persk    under text-007,      " Çalisan Altgrup
*              sy-vline no-gap ,
*         (20) p-ptext    under text-008,      " Çalisan Altgrup Text
*              sy-vline no-gap ,
          (07) P-ANSVH    UNDER TEXT-009,      " Istihdam Kosullari
               SY-VLINE NO-GAP ,
          (06) P-TMART    UNDER TEXT-020,      " Tarih Türü
               SY-VLINE NO-GAP ,
          (19) P-TMTXT    UNDER TEXT-021,      " Tarih Türü Izleme Metni
               SY-VLINE NO-GAP ,
          (12) P-TERMN    UNDER TEXT-022,      " Sözlesme Sonu
               SY-VLINE NO-GAP ,
          (11) P-MNDAT    UNDER TEXT-023,      " Ihbar Tarihi
               SY-VLINE NO-GAP .
    ADD: 1     TO MYTOPLAM .
  ENDLOOP.
  ULINE AT (C01).
ENDFORM.                               " BODY
*---------------------------------------------------------------------*
*       FORM TOTAL                                                    *
*---------------------------------------------------------------------*
FORM TOTAL.
  SKIP.
  WRITE :/ TEXT-017,
           MYTOPLAM NO-ZERO COLOR COL_NEGATIVE .
ENDFORM.                               " TOTAL
*&---------------------------------------------------------------------*
*&      Form  WRITE_TOP_OF_HEADER
*&---------------------------------------------------------------------*
FORM WRITE_TOP_OF_HEADER.

  WRITE : /35 TEXT-013 COLOR COL_BACKGROUND INVERSE.
  SKIP.

ENDFORM.                               " WRITE_TOP_OF_HEADER
*&---------------------------------------------------------------------*
*&      Form  CALC_HIRE
*&---------------------------------------------------------------------*
FORM CALC_HIRE.
* check h_hire between hi_fi-low and hi_fi-high.
  CHECK HIREDATE BETWEEN HI_FI-LOW AND HI_FI-HIGH.
  RP-PROVIDE-FROM-LAST P0001 SPACE HI_FI-HIGH HI_FI-HIGH.
  PROVIDE * FROM P0019 BETWEEN PN-BEGDA AND PN-ENDDA.
*  write:/1 pn/begda,' ',pn/endda.
*-- Çalisan Altgroup
  READ TABLE XT503T WITH KEY PERSK = P0001-PERSK .
* check sy-subrc eq 0 .

*-- Istenilen Departman
* read table dep with key p0001-orgeh .            " TL. 25.10.2000
* check sy-subrc eq 0 .                            " TL. 25.10.2000
  LOOP AT DEP WHERE OBJID = P0001-ORGEH   AND      " TL. 25.10.2000
                    ENDDA = '99991231' .           " TL. 25.10.2000
  ENDLOOP.                                         " TL. 25.10.2000
  CHECK SY-SUBRC EQ 0 .                            " TL. 25.10.2000

*-- Istenilen Pozisyon
  READ TABLE XT528T WITH KEY PLANS = P0001-PLANS .
* check sy-subrc eq 0 .

*-- Tarih izleme metni texti bulunuyor
  READ TABLE XT531S WITH KEY TMART = P0019-TMART .

  PERFORM FILL_P.

  ENDPROVIDE.
ENDFORM.                               " CALC_HIRE
*&---------------------------------------------------------------------*
*&      Form  FILL_P
*&---------------------------------------------------------------------*
FORM FILL_P.

*-- Istenilen tarih araliginda bilginin bulunmasi
  CHECK FIREDATE GE HI_FI-HIGH .

  MOVE: PERNR-PERNR   TO P-PERNR,
        P0001-ENAME   TO P-ENAME,
        HIREDATE      TO P-HIRE,
        FIREDATE      TO P-FIRE,
        DEP-SHORT     TO P-MC_SHORT,
        DEP-STEXT     TO P-MC_STEXT,
*       xt528t-plstx  to p-plstx,
*       p0001-persk   to p-persk,
*       xt503t-ptext  to p-ptext,
        P0001-ANSVH   TO P-ANSVH,
        P0019-TMART   TO P-TMART,
        XT531S-TMTXT  TO P-TMTXT,
        P0019-TERMN   TO P-TERMN,
        P0019-MNDAT   TO P-MNDAT.
  APPEND P.

*-- Clear
  CLEAR : P0002, P0019, XT528T, XT503T, XT531S, DEP.

ENDFORM.                               " FILL_P
*&---------------------------------------------------------------------*
*&      Form  SET_INITIAL_VALUES
*&---------------------------------------------------------------------*
FORM SET_INITIAL_VALUES.

*-- Departman Listesi
  SELECT OBJID MC_SHORT MC_STEXT BEGDA ENDDA FROM HRP1000 INTO TABLE DEP
       WHERE OTYPE   EQ 'O'      AND
             PLVAR   EQ '01'     AND
             LANGU   EQ SY-LANGU
        ORDER  BY OBJID .

*-- Pozisyon Text Listesi
  SELECT * FROM T528T INTO TABLE XT528T WHERE SPRSL  EQ SY-LANGU
                                        AND   OTYPE  EQ 'S'.
*-- Çalisan AltGroup Listesi
  SELECT * FROM T503T INTO TABLE XT503T WHERE SPRSL  EQ SY-LANGU .

*-- Tarih Izleme Textleri (P0019 için)
  SELECT * FROM T531S INTO TABLE XT531S WHERE SPRSL  EQ SY-LANGU .

ENDFORM.                               " SET_INITIAL_VALUES