10
SAP ABAP HR This site aimed to learn from each other, especially ABAP HR. If there are errors or omissions to be corrected please. Written on Friday, October 30, 2009 by D i o c i o SAP R/3 HR Programming Overview. Filed Under: ABAP HR 0 Comments Untuk bahan belajar buat yang ingin belajar ABAP HR Programming. Pada dasarnya untuk secara ABAP umum nya sih sama dengan modul lainnya, hanya sedikit perbedaan di HR Programming yang coba saya jelaskan di blog ini. Selamat membaca. Ada yang disebut dengan transparan table dengan format table name nya PAnnnn dan HRPnnnn. Nnnn adalah nomor 00001 – 9999 dan dibagi-bagi lagi secara fungsi merekam datanya. Ada yang disebut Data Cluster yang merupakan data yang tersimpan secara berjenjang didalam transparant table ( tepat gak ya istilahnya ). Kita bahas MASTER DATA ( PA ). Kita sebut INFOTYPE yang secara definisi : - bisnis definisnya yaitu Group dari field-field yang secara basic isinya saling berhubungan. contohnya seperti nama, tanggal lahir, sebutan, Jenis Kelamin dimasukan ke dalam group Infotype 0002.

SAP ABAP HR

Embed Size (px)

DESCRIPTION

SAP ABAP HR

Citation preview

SAP ABAP HR This site aimed to learn from each other, especially ABAP HR. If there are errors or omissions to be corrected please.Written on Friday, October 30, 2009 by D i o c i oSAP R/3 HR Programming Overview. Filed Under: ABAP HR 0 Comments Untuk bahan belajar buat yang ingin belajar ABAP HR Programming. Pada dasarnya untuk secara ABAP umum nya sih sama dengan modul lainnya, hanya sedikit perbedaan di HR Programming yang coba saya jelaskan di blog ini. Selamat membaca.

Ada yang disebut dengan transparan table dengan format table name nya PAnnnn dan HRPnnnn. Nnnn adalah nomor 00001 9999 dan dibagi-bagi lagi secara fungsi merekam datanya.Ada yang disebut Data Cluster yang merupakan data yang tersimpan secara berjenjang didalam transparant table ( tepat gak ya istilahnya ).

Kita bahas MASTER DATA ( PA ).Kita sebut INFOTYPE yang secara definisi :- bisnis definisnya yaitu Group dari field-field yang secara basic isinya saling berhubungan. contohnya seperti nama, tanggal lahir, sebutan, Jenis Kelamin dimasukan ke dalam group Infotype 0002.- Teknis definisinya yaitu Group dari atribut pada dasarnya sebuah screen yang berhubungan dengan transparant table.Contoh screen dari infotype 00002 bisa dilihat dibawah ini.

Master Data Infotype seperti dijelaskan diatas untuk penomoran merekam data secara fungsinya. range nya seperti list dibawah ini.0000 - 0999 : HR Master Data.1000 - 1999 : Organisational Management / Personnel Planning2000 - 2999 : Time Recruitment9000 - 9999 : Customer-developed enhancements.List semua infotype ini bisa dilihat di table V_T582A beserta descriptionnya.

Didalam Infotype bisa terbagi lagi kedalam Subtype yang mengontrol action dari infotype tersebut, contohnya seperti pada infotype 00021 ada subtype 1 untuk spouse, 2 untuk child dst.

Didalam infotype ada Time and Time Constraints pembatasan periode dari data dari mulai berlakunya data sampai data diperbaharui. fungsi ini tercermin dalam field BEGDA dan ENDDA yang merupakan validity dari sebuah record tersebut berlaku.

Record-record dari infotype tersimpan dalam transparant table PAnnnn, dengan nnnn sesuai dengan fungsi yang telah di urai diatas tadi.

Payroll Result Data ( PCL2 )

Data payroll yang telah diproses akan tersimpan di transparant table PCL2 pada field CLUSTD. contoh beberapa cluster didalam PCL2 sbb:

- CU : Cluster Directory. Payroll directory akan tercipta untuk setiap employee dan dapat diakses untuk setiap employee secara specifik individual per payroll periode.- RG : Payroll Result ( GB )- B2 : Time Management Result- ZL : Personnel shift Plan- PS : Generated Schema- PT : Texts for Generated Schemacontoh salah satu struktur cluster dapat dilihat pada diagram dibawah ini.

Untuk melihat payroll result bisa menggunakan tcode : PC_PAYRESULT.

HR Programming Nah pada dasarnya HR Programming akan memanipulasi table-table diatas tadi, bisa saja membaca, menulis, mendelete sesuai kebutuhannya.

HR Programming - LOGICAL DATABASEDidalam ABAP Programming ada disebut LOGICAL DATABASE ( LDB ) yang fungsinya sangat bermanfaat sekali kalo kita pake LDB ini, pertanyaannya kenapa pake LDB di HR Programming ?jawabannya :- Mampu mengurangi waktu dan tenaga dalam membuat program karena sudah di sediakan LDB ini untuk salah satu contoh dalam membuat penanganan aktifitas screen, selection screen sampai menyaring data yang dibaca dari table-table diatas tadi dengan waktu singkat dan disediakan oleh LDB ini.- Otorisasi check nya terpusat dan terjamin.- Mampu meningkatkan performan baik secara ABAPER nya maupun secara programnya.

HR Programming - InfotypeJika kita sudah menggunakan LDB maka untuk mengakses Infotype kita dengan mudah membaca informasi dari infotype yang kita butuhkan dengan sedikit menambahkan coding dibawah ini misalnya.

PENDEFINISIAN.kita mendefine statement : INFOTYPES : 0002.dengan statement itu sebagai pengganti jika kita tidak menggunakan LDB maka kita harus mendefine sbb:DATA : BEGIN OF P0002 OCCURS 10.INCLUDE STRUCTURE P0002.DATA : END OF P0002 VALID BETWEEN BEGDA AND ENDDA.nah kelihatan bukan jika kita menggunakan LDB coding nya pun semakin irit.

PENGUMPULAN DATA.Setelah kita mendefine infotype diatas maka kita membaca data infotype tersebut dengan hanya menggunakan statement : GET PERNR.maka program akan mengumpulkan data dari infotype yang telah kita define diatas tadi.

PENGEVALUASI VALIDITY DATAsetelah data terbaca kemudian kita harus memilih dan memilah data record yang mana yang valid berdasarkan periode data tersebut yang sesuai dengan kebutuhan kita dengan perintah :PROVIDE * FROM P0006BETWEEN PN-BEGDA AND PN-ENDDAWHERE P0006-SUBTY = 1.* additional processingENDPROVIDE.

Variable-variable yang perlu diingat dalam PNP LDB ini.- PN-BEGDA dan PN-ENDDA adalah periode awal dan akhir untuk periode yang berlaku.- PN-BEGPS dan PN-ENDPS adalah periode awal dan akhir untuk periode employee yang di seleksi.- Untuk fungsi-fungsi LDB ini berjalan pastikan table PERNR di dekarasikan diatas program.

sampai disini dulu, untuk LDB payroll nanti di sessi tulisan berikutnya kita bahas.

ABAP HR Logical Database ( LDB ) Filed Under: ABAP HR 0 Comments Logical Database atau disebut LDB adalah suatu program khusus ABAP/4 yang di kombinasikan dengan isi database table tertentu, dengan LDB memudahkan abaper dalam menyaring/menyeleksi data dari table untuk di baca dalam programnya.

Dengan kata lain, LDB adalah metode program ABAP yang membaca dan memproses data. Yang mana secara berurutan akan menyediakan data yang mana data yang diberikan ke program secara terstruktur.The LDB biasanya terdiri dari komponen-komponen berikut:

Structure Selections Database programs

Bagaimana Logical Database digunakan ?1. saat membuat sebuah program ABAPDengan memasukan Selection (SELECT-OPTION dan Parameters) pada Selection Screen logical database atau program2. Pada saat run-timePada saat run-time, system memproses event dalam program dan dalam logical database secara berurutan.

Sebelum program menampilkan layar selection screen, Pada bagian Initializations akan berjalan untuk menset sesuatu yang akan di tampilkan di selection screen. contoh nya memberikan nilai default pada selection screen tanggal dengan nilai tanggal current date.

Logical Database tidak hanya mengecek kelengkapan dan kebenaran data yang di masukan di selection screen, tapi juga akan memeriksa otorisasi yang di miliki pengguna terhadap data yang akan di baca.

Pada Bagian START-OF-SELECTION maka program akan melakukan proses awal. Logical Database akan membaca data sesuai dengan pilihan dan otorisasi yg dimiliki user pada saat perintah GET dilaksanakan.

3. Merancang Layar Selection Screen.Standard Selection Logical Database memiliki standard tampilan SELECT-OPTION dan PARAMETERS sesuai dengan urutan deklarasi. jadi system otomatis menampilkan selection screen seperti itu .Tapi Anda dapat menentukan pilihan anda sendiri untuk layar Logical database ini dengan memilih field-field yang akan di tampilkan.

contoh LDB di HR adalah biasanya pake PNP. fungsi PNP ini seperti : sebagai standard selection screen, biasanya setiap program abap report ada selection screen untuk menginput periode, seleksi data dan parameter lainnya. Data Retrieval, dalam menyeleksi data yang akan di baca dalam program. Authorization check.dalam menggunakan PNP ini specifikasi yang harus di ikutkan di dalam program seperti berikut : Create data structures for infotypes.

INFOTYPES: 0001, "ORG ASSIGNMENT0002, "PERSONAL DATA0008. "BASIC PAY

ini fungsinya membuat internal table yang langsung berhubungan dengan LDB yang akan menampung data dari LDB ke dalam struktur yang di define, kalo liat contoh diatas maka nantinya data dari LDB akan di tampung di internal table P0001, P0002, P0008. Fill data structures with the infotype records. Start-of-selection.GET PERNR.End-0f-selection.

nah disini membaca data per emplyee dari database berdasarkan kriteria dari LDB diatas tadi yang akan masuk ke internal table P0001, P0002,P0008. jadi data di internal table itu bisa di proses sesuai dan sudah valid sesuai kriteria datanya.biasanya data yang sudah di baca dengan GET pernr diatas tadi dilakukan lagi seleksi berdasarkan periode yang sesuai dengan kriteria yang dinginkan dengan menyeleksi perintah :GET PERNR.PROVIDE * FROM Pnnnn BETWEEN PN/BEGDA AND PN/ENDDAIf Pnnnn-XXXX = ' '. write:/ Pnnnn-XXXX. endif.ENDPROVIDE.

atau kalo mau lebih pendek lagi codingnya pake macro kayak giniRP-PROVIDE-FROM-LAST P0006 1 PN/BEGDA PN/ENDDA.

ABAP - MACRO Filed Under: ABAP HR 0 Comments Tau kan macro ?, di SAP ada RMAC module disitu kumpulan macro yang dibuat khusus untuk memudahkan pembuatan program/Abap sehingga coding tidak terlalu panjang dengan fungsi yang dipakai berulang-ulang.

Macro berisi cuplikan code program yang dibuat untuk melakukan suatu pekerjaan sehingga dapat dipakai berkali-kali, seperti function module.

SAP sih sudah membuatkan standard macro yang sudah ada tapi kalo kita mau nambah dan bikin sendiri tinggal di masukin ke tabel TRMAC, atau bisa di lihat di program include DBPNPMAC , yang bisa kita pakai macro nya dengan mendeklarasikan include DBPNPMAC terlebih dahulu diatas program..

biar lebih jelas ada contoh yang aye dapet dari baca-baca terus dipake di program. contohnya : Macro untuk baca(read) infotype. Nama macronya -> RP-READ-INFOTYPEREPORT ZHR00001.INFOTYPE: 0002.PARAMETERS: PERNR LIKE P0002-PERNR.RP-READ-INFOTYPE PERNR 0002 P0002 .PROVIDE * FROM P0002if ... then ...endif.ENDPROVIDE.

keliatan kan huruf yg di tebelin, perintahnya kalo pake macro cuma 1 baris, kalo gak pake macro bisa lebih dari 4 baris.artinya : program membaca infotype 00002 yang akan di tampung di internal table P0002 dengan kriteria periode data mulai dari tanggal sampai .

Macro untuk ubah(update) infotype. Nama macronya -> RP-UPDATESebelum update data infotype, data harus di baca dulu supaya ada di internal table. kemudian data di ubah yang ada di internal table baru nanti di save ke table infotype dengan conding kayak gini nih.

INFOTYPES: Pnnnn NAME OLD, "nyiapin internal table buat tampunganPnnnn NAME NEW. "sama ini juga internal table untuk tampungan dataGET PERNR. "nah yang ini baca data menggunakan LDB ( logical database )PROVIDE * FROM OLD "awal blok ini untuk menyaring data sesuai kriteria yang diinginkanWHERE .... = ... "Change old record*Save old record in alternate tableNEW = OLD.ENDPROVIDE. "Akhir blokRP-UPDATE OLD NEW. "Update changed recordDengan macro data yang kita baca lebih akurat, code jadi lebih singkat, program berjalan lebih cepat.