Belajar Programming ABAP Dasar 2
Nah untuk pelajaran yang ke dua kita akan coba bikin inputan periode sebelum program di jalankan dan data akan di proses sesuai dengan periode yang di input tersebut.
Step:
1. Edit program dan tambahkan paramater untuk inputan tanggal mulai dan tanggal akhir.
* patameter untuk user input tanggal mulai dan akhir
PARAMETERS: ZBEGDA LIKE SY-DATUM,
ZENDDA LIKE SYDATUM.
2. Edit program dan tambahkan di bawah INITIALIZATION nilai awal Zbegda dan Zendda.
* nilai awal periode
ZBEGDA = SY-DATUM.
ZENDDA = SY-DATUM.
3. Edit program dan ganti line :
LOOP AT ITAB_PA0002 WHERE GBDAT > '19693112' AND GBDAT < '19710101'. Menjadi : LOOP AT ITAB_PA0002 WHERE GBDAT >= ZBEGDA AND GBDAT <= ZENDDA.
4. Untuk lebih informatif ganti tampilan inputan menjadi “Tanggal Mulai” dan “Tanggal Akhir”. Click Goto > Text Elements > Selection Texts
5. Masukan Textnya. Kemudian click tombol Activate untuk di aktifkan. Click tombol Back kembali ke source code.
Nah sekarang user bias input tanggal mulai dan akhir yang nantinya akan di seleksi di program untuk tanggal lahir berdasarkan range tersebut.

untuk code secara lengkapnya sbb:
REPORT ZPRG1 .
* Define internal table untuk PA0002 dengan strukture disamakan
DATA: ITAB_PA0002 LIKE PA0002 OCCURS 0 WITH HEADER LINE.
* Define variable Tampungan dengan type integer
DATA: ZJML_LAHIR TYPE I.
* patameter untuk user input tanggal mulai dan akhir
PARAMETERS: ZBEGDA LIKE SY-DATUM,
ZENDDA LIKE SY-DATUM.
* tempat untuk inisialisasi variable / parameter
INITIALIZATION.
* nilai awal periode
ZBEGDA = SY-DATUM.
ZENDDA = SY-DATUM.
* Awal program proses akan di jalankan
START-OF-SELECTION.
* baca list PA0002 ke internal table
SELECT * FROM PA0002 INTO TABLE ITAB_PA0002.
* hitung jumlah Employee yang lahir tahun 1970
LOOP AT ITAB_PA0002 WHERE GBDAT >= ZBEGDA AND GBDAT <= ZENDDA.
ZJML_LAHIR = ZJML_LAHIR + 1.
WRITE : / ITAB_PA0002-PERNR, ITAB_PA0002-CNAME.
ENDLOOP.
WRITE : / 'JUMLAH : ', ZJML_LAHIR.
* akhir program proses
END-OF-SELECTION.
semoga berhasil
[ Read More..... Baca Selengkapnya Click disini ]
Written on Monday, January 25, 2010 by D i o c i o
Belajar ABAP Programming Dasar 2
Filed Under:
ABAP
0 Comments
Written on
by D i o c i o
Belajar ABAP Programming Dasar 1.
Filed Under:
ABAP
0 Comments
Belajar Programming ABAP Dasar 1.
Sebagai dasar dari pemrogramman di SAP kita akan coba belajar nge-ABAP seperti apa ?. kita coba dari yang mudah dulu semoga gak ada kendala. kita akan bikin list report untuk Employee yang lahir di tahun 1970 dan dihitung ada berapa orang. ikuti langkah langkahnya.
1. Ketik tcode SE38 pada command field dan tekan enter.
2. Ketik nama program yang akan kita buat. Kemudian click Create.
3. Masukan Titile program yang kita buat. Tentukan Type dari atrribute program yang kita buat. Kemudian cliak save.
4. Click Tombol “Local Object” jika program tidak untuk di transport ke Server Production. Jika akan di transport maka isi Development Class kemudian Click Save. Untuk belajar kali ini kita pilih tombol “Local Object”
5. Ketik Code nya seperti dibawah ini.
REPORT ZPRG1 .
* Define internal table untuk PA0002 dengan strukture disamakan
DATA: ITAB_PA0002 LIKE PA0002 OCCURS 0 WITH HEADER LINE.
* Define variable Tampungan dengan type integer
DATA: ZJML_LAHIR TYPE I.
* tempat untuk inisialisasi variable / parameter
INITIALIZATION.
* Awal program proses akan di jalankan
START-OF-SELECTION.
* baca list PA0002 ke internal table
SELECT * FROM PA0002 INTO TABLE ITAB_PA0002.
* hitung jumlah Employee yang lahir tahun 1970
LOOP AT ITAB_PA0002 WHERE GBDAT > '19693112' AND GBDAT < '19710101'.
ZJML_LAHIR = ZJML_LAHIR + 1.
WRITE : / ITAB_PA0002-PERNR, ITAB_PA0002-CNAME.
ENDLOOP.
WRITE : / 'JUMLAH : ', ZJML_LAHIR.
* akhir program proses
END-OF-SELECTION.
6. Click Tombol Activate untuk mengaktivasi program yang sudah di edit / diketik.
7. Click Tombol Test (F8) untuk menjalankan program.
Nah selesai deh tinggal liat hasilnya.
program akan menampilkan nomor karaywan dan nama. serta dibaris terakhir akan di cetak jumlah Employee yang lahir tahun 1970 tersebut.
[ Read More..... Baca Selengkapnya Click disini ]
Written on Monday, January 18, 2010 by D i o c i o
SELECT A DIRECTORY / FOLDER
Filed Under:
ABAP
0 Comments
suatu waktu ada request user untuk download file di folder tertentu, atau membaca fiel di folder tertentu dari PC mereka. pada saat program jalan kemudian memilih folder / Directory maka diperlukan code dibawah ini.
REPORT ZTEST NO STANDARD PAGE HEADING LINE-SIZE 255.
* Select Directory / Folder in Local Computer
TYPE-POOLS SSCR.
DATA: STRINGPATH TYPE STRING.
DATA RESTRICT TYPE SSCR_RESTRICT.
PARAMETERS: P_PATH LIKE RLGRAP-FILENAME.
INITIALIZATION.
* set default value
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
RESTRICTION = RESTRICT.
IF SY-BATCH IS INITIAL.
CALL FUNCTION 'WS_ULDL_PATH'
IMPORTING
DOWNLOAD_PATH = P_PATH.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PATH.
STRINGPATH = P_PATH.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
EXPORTING
INITIAL_FOLDER = STRINGPATH
CHANGING
SELECTED_FOLDER = STRINGPATH.
CALL METHOD CL_GUI_CFW=>FLUSH.
P_PATH = STRINGPATH.
START-OF-SELECTION.
* your code here ....
END-OF-SELECTION.
hasilnya [ Read More..... Baca Selengkapnya Click disini ]
Written on Wednesday, November 11, 2009 by D i o c i o
Useful Transaction codes in SAP HR module
Filed Under:
SAP HR
0 Comments
Master Data
PA10 Personnel File
PA20 Display HR Master Data
PA30 Maintain HR Master Data
PA40 Personnel Events
PA41 Change Hiring Data
PA42 Fast Data Entry for Events
PRMD Maintain HR Master Data
PRMF Travel Expenses: Feature TRVFD
PRML Set Country Grouping via Popup
PRMM Personnel Events
PRMO Travel Expenses: Feature TRVCO
PRMP Travel Expenses: Feature TRVPA
PRMS Display HR Master Data
PRMT Update Matchcode
PSO3 Infotype overview
PSO4 Individual maintenance of infotypes
Time Management
PA51 Display Time Data
PA53 Display Time Data
PA61 Maintain Time Data
PA62 List Entry of Additional Data
PA63 Maintain Time Data
PA64 Calendar Entry
PA70 Fast Data Entry
PA71 Fast Entry of Time Data
PBAB Maintain vacancy assignments
PT01 Create Work Schedule
PT02 Change Work Schedule
PT03 Display Work Schedules
Payroll
PC00 Run Payroll
PC10 Payroll menu USA
PE00 Starts Transactions PE01,PE02,PE03
PE01 Schemas
PE02 Calculation Rules
PE03 Features
PE04 Create functions and operations
PE51 HR form editor
PRCA Payroll calendar
PRCT Current Settings
PRCU Printing Checks USA
PRD1 Create DME
SM31 Maintain Tables
SM12 Locked Secessions
TSTC Table lookup
SPR0 IMG
SE16 Data Browser (Table reports)
PP03 PD Tables
PP0M Change Org Unit
P013 Maintain Positions
PO03 Maintain Jobs
Benefits
PA85 Benefits - Call RPLBEN11
PA86 Benefits - Call RPLBEN07
PA87 Benefits - Call RPLBEN09
PA89 COBRA Administration
PA90 Benefits Enrollment – Individual
PA91 Benefits - Forms
PA92 Benefits Tables - Maintain
PA93 Benefits Tables - Display
PA94 Benefits - Access Reporting Tree
PA95 Benefits IMG - Jump to Views
PA96 Benefits reporting
PA97 Salary Administration - Matrix
PA98 Salary Administration
PA99 Compensation Admin. - rel.changes
PACP HR-CH: Pension fund, interface
Payroll
PC00 Run Payroll
PC10 Payroll menu USA
PE00 Starts Transactions PE01,PE02,PE03
PE01 Schemas
PE02 Calculation Rules
PE03 Features
PE04 Create functions and operations
PE51 HR form editor
PRCA Payroll calendar
PRCT Current Settings
PRCU Printing Checks USA
PRD1 Create DME
SM31 Maintain Tables
SM12 Locked Secessions
TSTC Table lookup
SPR0 IMG
SE16 Data Browser (Table reports)
PP03 PD Tables
PP0M Change Org Unit
P013 Maintain Positions
PO03 Maintain Jobs
Benefits
PA85 Benefits - Call RPLBEN11
PA86 Benefits - Call RPLBEN07
PA87 Benefits - Call RPLBEN09
PA89 COBRA Administration
PA90 Benefits Enrollment – Individual
PA91 Benefits - Forms
PA92 Benefits Tables - Maintain
PA93 Benefits Tables - Display
PA94 Benefits - Access Reporting Tree
PA95 Benefits IMG - Jump to Views
PA96 Benefits reporting
PA97 Salary Administration - Matrix
PA98 Salary Administration
PA99 Compensation Admin. - rel.changes
PACP HR-CH: Pension fund, interface
General/Reporting
PM00 Menu for HR Reports
PM01 Dialogs in HR - Create custom infotypes
PRF0 Standard Form
PSVT Dynamic Tools Menu
PAR1 Flexible employee data
PAR2 Employee list
PD - Organizational Management
PP0M Change Org Unit
PO03 Maintain Jobs
PO13 Maintain Position
PO10 Maintain Organizational Unit
PP01 Maintain Plan Data (menu-guided)
PP02 Maintain Plan Data (Open)
PP03 Maintain Plan Data (event-guided)
PP05 Number Ranges
PP06 Number Range Maintenance: HRADATA
PP07 Tasks/Descriptions
PP69 Choose Text for Organizational Unit
PP90 Set Up Organization
PPO1 Change Cost Center Assignment
PPO2 Display Cost Center Assignment
PPO3 Change Reporting Structure
PPO4 Display Reporting Structure
PPO5 Change Object Indicators (O/S)
PPO6 Change Object Indicators O/S
PPOA Display Menu Interface (with dyn.)
PPOC Create Organizational Unit
PPOM Maintain Organizational Plan
PPOS Display Organizational Plan
PQ01 Events for Work Center
PQ02 Events for Training Program
PQ03 Events for Job
PQ04 Events for Business Event Type
PQ06 Location Events
PQ07 Resource Events
PQ08 Events for External Person
PQ09 Events for Business Event Group
PQ10 Events for Organizational Unit
PQ11 Events for Qualification
PQ12 Resource Type Events
PQ13 Events for Position
PQ14 Events for Task
PQ15 Events for Company
PSO5 PD: Administration Tools
PSOA Work Center Reporting
PSOC Job Reporting
PSOG OrgManagement General Reporting
PSOI Tools Integration PA-PD
PSOO Organizational Unit Reporting
PSOS Position Reporting
PSOT Task Reporting
Recruitment
PB10 Init.entry of applicant master data
PB20 Display applicant master data
PB30 Maintain applicant master data
PB40 Applicant events
PB50 Display applicant actions
PB60 Maintain applicant actions
PB80 Evaluate vacancies
PBA0 Evaluate advertisements
PBA1 Applicant index
PBA2 List of applications
PBA3 Applicant vacancy assignment list
PBA4 Receipt of application
[ Read More..... Baca Selengkapnya Click disini ]
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.
- 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 Planning
2000 - 2999 : Time Recruitment
9000 - 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 Schema
contoh 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 DATABASE
Didalam 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 - Infotype
Jika 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 DATA
setelah 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 P0006
BETWEEN PN-BEGDA AND PN-ENDDA
WHERE P0006-SUBTY = ‘1’.
* additional processing
ENDPROVIDE.
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.
[ Read More..... Baca Selengkapnya Click disini ]









