<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2enclosuresfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-8903058954273916066</atom:id><lastBuildDate>Mon, 28 Nov 2011 00:26:27 +0000</lastBuildDate><category>PHP</category><category>ABAP HR</category><category>SAP HR</category><category>ABAP</category><title>SAP ABAP HR</title><description>This site aimed to learn from each other, especially ABAP HR. If there are errors or omissions to be corrected please.</description><link>http://bukuabaphr.blogspot.com/</link><managingEditor>noreply@blogger.com (D i o c i o)</managingEditor><generator>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/SAPabaphr" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="sapabaphr" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:subtitle>This site aimed to learn from each other, especially ABAP HR. If there are errors or omissions to be corrected please.</itunes:subtitle><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-3714222633092999892</guid><pubDate>Mon, 25 Jan 2010 08:47:00 +0000</pubDate><atom:updated>2010-05-27T11:30:51.243+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Belajar ABAP Programming Dasar 2</title><description>Belajar Programming ABAP Dasar 2&lt;br /&gt;
&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Step:&lt;br /&gt;
1. Edit program dan tambahkan paramater untuk inputan tanggal mulai dan tanggal akhir.&lt;br /&gt;
* patameter untuk user input tanggal mulai dan akhir&lt;br /&gt;
PARAMETERS: ZBEGDA LIKE SY-DATUM, &lt;br /&gt;
ZENDDA LIKE SYDATUM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11ZFCTdxVI/AAAAAAAAAL8/ZPEqoMAyUF4/s1600-h/ABAP2basic1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11ZFCTdxVI/AAAAAAAAAL8/ZPEqoMAyUF4/s320/ABAP2basic1.jpg" /&gt;&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Edit program dan tambahkan di bawah INITIALIZATION nilai awal Zbegda dan Zendda.&lt;br /&gt;
* nilai awal periode&lt;br /&gt;
ZBEGDA = SY-DATUM.&lt;br /&gt;
ZENDDA = SY-DATUM.&lt;br /&gt;
&lt;br /&gt;
3. Edit program dan ganti line : &lt;br /&gt;
LOOP AT ITAB_PA0002 WHERE GBDAT &amp;gt; '19693112' AND GBDAT &amp;lt; '19710101'. Menjadi :  LOOP AT ITAB_PA0002 WHERE GBDAT &amp;gt;= ZBEGDA AND GBDAT &amp;lt;= ZENDDA.&lt;br /&gt;
&lt;br /&gt;
4. Untuk lebih informatif ganti tampilan inputan menjadi “Tanggal Mulai” dan “Tanggal Akhir”. Click Goto &amp;gt; Text Elements &amp;gt; Selection Texts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11ZVi13L1I/AAAAAAAAAME/6iHjNwe5xGY/s1600-h/ABAP2basic2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11ZVi13L1I/AAAAAAAAAME/6iHjNwe5xGY/s320/ABAP2basic2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Masukan Textnya. Kemudian click tombol Activate untuk di aktifkan. Click tombol Back kembali ke source code.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_TUsjEl6QdGc/S11Z0ISSuyI/AAAAAAAAAMM/j_3iUlQ76Qs/s1600-h/ABAP2basic3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/S11Z0ISSuyI/AAAAAAAAAMM/j_3iUlQ76Qs/s320/ABAP2basic3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah sekarang user bias input tanggal mulai dan akhir yang nantinya akan di seleksi di program untuk tanggal lahir berdasarkan range tersebut.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_TUsjEl6QdGc/S11Z8QfecGI/AAAAAAAAAMU/bOz7uc8wVSI/s1600-h/ABAP2basic4.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/S11Z8QfecGI/AAAAAAAAAMU/bOz7uc8wVSI/s320/ABAP2basic4.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
untuk code secara lengkapnya sbb:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: lightyellow none repeat scroll 0pt 0pt; border: 1px inset orange; height: 150px; margin: 10px; overflow: auto; padding: 6px; text-align: left;"&gt;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 &amp;gt;= ZBEGDA AND GBDAT &amp;lt;= ZENDDA.
    ZJML_LAHIR = ZJML_LAHIR + 1.
    WRITE : / ITAB_PA0002-PERNR, ITAB_PA0002-CNAME.
  ENDLOOP.

  WRITE : / 'JUMLAH : ', ZJML_LAHIR.

* akhir program proses
END-OF-SELECTION.
&lt;/pre&gt;&lt;br /&gt;
semoga berhasil&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-3714222633092999892?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2010/01/belajar-programming-abap-dasar-2.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11ZFCTdxVI/AAAAAAAAAL8/ZPEqoMAyUF4/s72-c/ABAP2basic1.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-5384345282361988160</guid><pubDate>Mon, 25 Jan 2010 08:09:00 +0000</pubDate><atom:updated>2010-04-14T09:44:46.441+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Belajar ABAP Programming Dasar 1.</title><description>Belajar Programming ABAP Dasar 1.&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. Ketik tcode SE38 pada command field dan tekan enter.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_TUsjEl6QdGc/S11P1RKWBqI/AAAAAAAAALM/Trx9UBCd0nk/s1600-h/ABAP1basic1.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="90" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/S11P1RKWBqI/AAAAAAAAALM/Trx9UBCd0nk/s200/ABAP1basic1.jpg" width="200" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2. Ketik nama program yang akan kita buat. Kemudian click Create.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11QWLHICHI/AAAAAAAAALU/4ym6PxOQq48/s1600-h/ABAP1basic2.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11QWLHICHI/AAAAAAAAALU/4ym6PxOQq48/s320/ABAP1basic2.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Masukan Titile program yang kita buat. Tentukan Type dari atrribute program yang kita buat. Kemudian cliak save.&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11QjoeqxnI/AAAAAAAAALc/ZmSc9aVFdbg/s1600-h/ABAP1basic3.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11QjoeqxnI/AAAAAAAAALc/ZmSc9aVFdbg/s320/ABAP1basic3.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
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”&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11Qvkrn_aI/AAAAAAAAALk/qnrD2yo5uMQ/s1600-h/ABAP1basic4.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11Qvkrn_aI/AAAAAAAAALk/qnrD2yo5uMQ/s320/ABAP1basic4.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Ketik Code nya seperti dibawah ini.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: lightyellow none repeat scroll 0pt 0pt; border: 1px inset orange; height: 150px; margin: 10px; overflow: auto; padding: 6px; text-align: left;"&gt;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 &amp;gt; '19693112' AND GBDAT &amp;lt; '19710101'.
    ZJML_LAHIR = ZJML_LAHIR + 1.
    WRITE : / ITAB_PA0002-PERNR, ITAB_PA0002-CNAME.
  ENDLOOP.

  WRITE : / 'JUMLAH : ', ZJML_LAHIR.

* akhir program proses
END-OF-SELECTION.

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
6. Click Tombol Activate untuk mengaktivasi program yang sudah di edit / diketik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11RR38BktI/AAAAAAAAALs/03_x9WmsCRU/s1600-h/ABAP1basic5.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/S11RR38BktI/AAAAAAAAALs/03_x9WmsCRU/s320/ABAP1basic5.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
7. Click Tombol Test (F8) untuk menjalankan program.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11Rc8i28GI/AAAAAAAAAL0/OG0Ha7C1R2I/s1600-h/ABAP1basic6.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/S11Rc8i28GI/AAAAAAAAAL0/OG0Ha7C1R2I/s320/ABAP1basic6.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah selesai deh tinggal liat hasilnya.&lt;br /&gt;
program akan menampilkan nomor karaywan dan nama. serta dibaris terakhir akan di cetak jumlah Employee yang lahir tahun 1970 tersebut.&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-5384345282361988160?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2010/01/belajar-programming-abap-dasar.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://3.bp.blogspot.com/_TUsjEl6QdGc/S11P1RKWBqI/AAAAAAAAALM/Trx9UBCd0nk/s72-c/ABAP1basic1.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-8775203512477563750</guid><pubDate>Mon, 18 Jan 2010 05:01:00 +0000</pubDate><atom:updated>2010-04-14T09:45:32.231+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>SELECT A DIRECTORY / FOLDER</title><description>ABAP - SELECT A DIRECTORY / FOLDER&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background:lightyellow none repeat scroll 0 0; border:1px inset orange; height:150px;  margin:10px; overflow:auto; padding:6px; text-align:left;"&gt;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=&gt;DIRECTORY_BROWSE
     EXPORTING
       INITIAL_FOLDER  = STRINGPATH
    CHANGING
      SELECTED_FOLDER = STRINGPATH.
  CALL METHOD CL_GUI_CFW=&gt;FLUSH.
  P_PATH = STRINGPATH.


START-OF-SELECTION.

* your code here ....


END-OF-SELECTION.

&lt;/pre&gt;&lt;br /&gt;
hasilnya&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-8775203512477563750?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2010/01/select-directory-folder.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-4094341089498695164</guid><pubDate>Wed, 11 Nov 2009 03:35:00 +0000</pubDate><atom:updated>2010-04-14T09:46:05.582+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SAP HR</category><title>Useful Transaction codes in SAP HR module</title><description>&lt;strong&gt;Master Data&lt;/strong&gt;&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
PA10 Personnel File&lt;br /&gt;
PA20 Display HR Master Data&lt;br /&gt;
PA30 Maintain HR Master Data&lt;br /&gt;
PA40 Personnel Events&lt;br /&gt;
PA41 Change Hiring Data&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
PA42 Fast Data Entry for Events&lt;br /&gt;
PRMD Maintain HR Master Data&lt;br /&gt;
PRMF Travel Expenses: Feature TRVFD&lt;br /&gt;
PRML Set Country Grouping via Popup&lt;br /&gt;
PRMM Personnel Events&lt;br /&gt;
PRMO Travel Expenses: Feature TRVCO&lt;br /&gt;
PRMP Travel Expenses: Feature TRVPA&lt;br /&gt;
PRMS Display HR Master Data&lt;br /&gt;
PRMT Update Matchcode&lt;br /&gt;
PSO3 Infotype overview&lt;br /&gt;
PSO4 Individual maintenance of infotypes&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Time Management&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PA51 Display Time Data&lt;br /&gt;
PA53 Display Time Data&lt;br /&gt;
PA61 Maintain Time Data&lt;br /&gt;
PA62 List Entry of Additional Data&lt;br /&gt;
PA63 Maintain Time Data&lt;br /&gt;
PA64 Calendar Entry&lt;br /&gt;
PA70 Fast Data Entry&lt;br /&gt;
PA71 Fast Entry of Time Data&lt;br /&gt;
PBAB Maintain vacancy assignments&lt;br /&gt;
PT01 Create Work Schedule&lt;br /&gt;
PT02 Change Work Schedule&lt;br /&gt;
PT03 Display Work Schedules&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Payroll&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PC00 Run Payroll&lt;br /&gt;
PC10 Payroll menu USA&lt;br /&gt;
PE00 Starts Transactions PE01,PE02,PE03&lt;br /&gt;
PE01 Schemas&lt;br /&gt;
PE02 Calculation Rules&lt;br /&gt;
PE03 Features&lt;br /&gt;
PE04 Create functions and operations&lt;br /&gt;
PE51 HR form editor&lt;br /&gt;
PRCA Payroll calendar&lt;br /&gt;
PRCT Current Settings&lt;br /&gt;
PRCU Printing Checks USA&lt;br /&gt;
PRD1 Create DME&lt;br /&gt;
SM31 Maintain Tables&lt;br /&gt;
SM12 Locked Secessions&lt;br /&gt;
TSTC Table lookup&lt;br /&gt;
SPR0 IMG&lt;br /&gt;
SE16 Data Browser (Table reports)&lt;br /&gt;
PP03 PD Tables&lt;br /&gt;
PP0M Change Org Unit&lt;br /&gt;
P013 Maintain Positions&lt;br /&gt;
PO03 Maintain Jobs&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Benefits&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PA85 Benefits - Call RPLBEN11&lt;br /&gt;
PA86 Benefits - Call RPLBEN07&lt;br /&gt;
PA87 Benefits - Call RPLBEN09&lt;br /&gt;
PA89 COBRA Administration&lt;br /&gt;
PA90 Benefits Enrollment – Individual&lt;br /&gt;
PA91 Benefits - Forms&lt;br /&gt;
PA92 Benefits Tables - Maintain&lt;br /&gt;
PA93 Benefits Tables - Display&lt;br /&gt;
PA94 Benefits - Access Reporting Tree&lt;br /&gt;
PA95 Benefits IMG - Jump to Views&lt;br /&gt;
PA96 Benefits reporting&lt;br /&gt;
PA97 Salary Administration - Matrix&lt;br /&gt;
PA98 Salary Administration&lt;br /&gt;
PA99 Compensation Admin. - rel.changes&lt;br /&gt;
PACP HR-CH: Pension fund, interface&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Payroll&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PC00 Run Payroll&lt;br /&gt;
PC10 Payroll menu USA&lt;br /&gt;
PE00 Starts Transactions PE01,PE02,PE03&lt;br /&gt;
PE01 Schemas&lt;br /&gt;
PE02 Calculation Rules&lt;br /&gt;
PE03 Features&lt;br /&gt;
PE04 Create functions and operations&lt;br /&gt;
PE51 HR form editor&lt;br /&gt;
PRCA Payroll calendar&lt;br /&gt;
PRCT Current Settings&lt;br /&gt;
PRCU Printing Checks USA&lt;br /&gt;
PRD1 Create DME&lt;br /&gt;
SM31 Maintain Tables&lt;br /&gt;
SM12 Locked Secessions&lt;br /&gt;
TSTC Table lookup&lt;br /&gt;
SPR0 IMG&lt;br /&gt;
SE16 Data Browser (Table reports)&lt;br /&gt;
PP03 PD Tables&lt;br /&gt;
PP0M Change Org Unit&lt;br /&gt;
P013 Maintain Positions&lt;br /&gt;
PO03 Maintain Jobs&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Benefits&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PA85 Benefits - Call RPLBEN11&lt;br /&gt;
PA86 Benefits - Call RPLBEN07&lt;br /&gt;
PA87 Benefits - Call RPLBEN09&lt;br /&gt;
PA89 COBRA Administration&lt;br /&gt;
PA90 Benefits Enrollment – Individual&lt;br /&gt;
PA91 Benefits - Forms&lt;br /&gt;
PA92 Benefits Tables - Maintain&lt;br /&gt;
PA93 Benefits Tables - Display&lt;br /&gt;
PA94 Benefits - Access Reporting Tree&lt;br /&gt;
PA95 Benefits IMG - Jump to Views&lt;br /&gt;
PA96 Benefits reporting&lt;br /&gt;
PA97 Salary Administration - Matrix&lt;br /&gt;
PA98 Salary Administration&lt;br /&gt;
PA99 Compensation Admin. - rel.changes&lt;br /&gt;
PACP HR-CH: Pension fund, interface&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;General/Reporting&lt;br /&gt;
&lt;/strong&gt;&lt;br /&gt;
PM00 Menu for HR Reports&lt;br /&gt;
PM01 Dialogs in HR - Create custom infotypes&lt;br /&gt;
PRF0 Standard Form&lt;br /&gt;
PSVT Dynamic Tools Menu&lt;br /&gt;
PAR1 Flexible employee data&lt;br /&gt;
PAR2 Employee list&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;PD - Organizational Management&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PP0M Change Org Unit&lt;br /&gt;
PO03 Maintain Jobs&lt;br /&gt;
PO13 Maintain Position&lt;br /&gt;
PO10 Maintain Organizational Unit&lt;br /&gt;
PP01 Maintain Plan Data (menu-guided)&lt;br /&gt;
PP02 Maintain Plan Data (Open)&lt;br /&gt;
PP03 Maintain Plan Data (event-guided)&lt;br /&gt;
PP05 Number Ranges&lt;br /&gt;
PP06 Number Range Maintenance: HRADATA&lt;br /&gt;
PP07 Tasks/Descriptions&lt;br /&gt;
PP69 Choose Text for Organizational Unit&lt;br /&gt;
PP90 Set Up Organization&lt;br /&gt;
PPO1 Change Cost Center Assignment&lt;br /&gt;
PPO2 Display Cost Center Assignment&lt;br /&gt;
PPO3 Change Reporting Structure&lt;br /&gt;
PPO4 Display Reporting Structure&lt;br /&gt;
PPO5 Change Object Indicators (O/S)&lt;br /&gt;
PPO6 Change Object Indicators O/S&lt;br /&gt;
PPOA Display Menu Interface (with dyn.)&lt;br /&gt;
PPOC Create Organizational Unit&lt;br /&gt;
PPOM Maintain Organizational Plan&lt;br /&gt;
PPOS Display Organizational Plan&lt;br /&gt;
PQ01 Events for Work Center&lt;br /&gt;
PQ02 Events for Training Program&lt;br /&gt;
PQ03 Events for Job&lt;br /&gt;
PQ04 Events for Business Event Type&lt;br /&gt;
PQ06 Location Events&lt;br /&gt;
PQ07 Resource Events&lt;br /&gt;
PQ08 Events for External Person&lt;br /&gt;
PQ09 Events for Business Event Group&lt;br /&gt;
PQ10 Events for Organizational Unit&lt;br /&gt;
PQ11 Events for Qualification&lt;br /&gt;
PQ12 Resource Type Events&lt;br /&gt;
PQ13 Events for Position&lt;br /&gt;
PQ14 Events for Task&lt;br /&gt;
PQ15 Events for Company&lt;br /&gt;
PSO5 PD: Administration Tools&lt;br /&gt;
PSOA Work Center Reporting&lt;br /&gt;
PSOC Job Reporting&lt;br /&gt;
PSOG OrgManagement General Reporting&lt;br /&gt;
PSOI Tools Integration PA-PD&lt;br /&gt;
PSOO Organizational Unit Reporting&lt;br /&gt;
PSOS Position Reporting&lt;br /&gt;
PSOT Task Reporting&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Recruitment&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
PB10 Init.entry of applicant master data&lt;br /&gt;
PB20 Display applicant master data&lt;br /&gt;
PB30 Maintain applicant master data&lt;br /&gt;
PB40 Applicant events&lt;br /&gt;
PB50 Display applicant actions&lt;br /&gt;
PB60 Maintain applicant actions&lt;br /&gt;
PB80 Evaluate vacancies&lt;br /&gt;
PBA0 Evaluate advertisements&lt;br /&gt;
PBA1 Applicant index&lt;br /&gt;
PBA2 List of applications&lt;br /&gt;
PBA3 Applicant vacancy assignment list&lt;br /&gt;
PBA4 Receipt of application&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-4094341089498695164?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/11/useful-transaction-codes-in-sap-hr.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-5630494412747747718</guid><pubDate>Fri, 30 Oct 2009 06:07:00 +0000</pubDate><atom:updated>2009-10-30T14:27:10.104+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>SAP R/3 HR Programming Overview.</title><description>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.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SuqDA9XTVnI/AAAAAAAAAKw/tckNIGJrg3A/s1600-h/hr1.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5398271155852498546" style="WIDTH: 297px; CURSOR: hand; HEIGHT: 324px" alt="" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SuqDA9XTVnI/AAAAAAAAAKw/tckNIGJrg3A/s200/hr1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;Ada yang disebut Data Cluster yang merupakan data yang tersimpan secara berjenjang didalam transparant table ( tepat gak ya istilahnya ).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Kita bahas MASTER DATA ( PA ).&lt;/strong&gt;&lt;br /&gt;Kita sebut INFOTYPE yang secara definisi :&lt;br /&gt;- 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.&lt;br /&gt;- Teknis definisinya yaitu Group dari atribut pada dasarnya sebuah screen yang berhubungan dengan transparant table.&lt;br /&gt;Contoh screen dari infotype 00002 bisa dilihat dibawah ini.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SuqFJYvWjaI/AAAAAAAAAK4/79_MRiWFQVA/s1600-h/hr2.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5398273499663338914" style="WIDTH: 200px; CURSOR: hand; HEIGHT: 106px" alt="" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SuqFJYvWjaI/AAAAAAAAAK4/79_MRiWFQVA/s200/hr2.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Master Data Infotype seperti dijelaskan diatas untuk penomoran merekam data secara fungsinya. range nya seperti list dibawah ini.&lt;br /&gt;0000 - 0999 : HR Master Data.&lt;br /&gt;1000 - 1999 : Organisational Management / Personnel Planning&lt;br /&gt;2000 - 2999 : Time Recruitment&lt;br /&gt;9000 - 9999 : Customer-developed enhancements.&lt;br /&gt;List semua infotype ini bisa dilihat di table V_T582A beserta descriptionnya.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;Record-record dari infotype tersimpan dalam transparant table PAnnnn, dengan nnnn sesuai dengan fungsi yang telah di urai diatas tadi.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Payroll Result Data ( PCL2 )&lt;/strong&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;Data payroll yang telah diproses akan tersimpan di transparant table PCL2 pada field CLUSTD. contoh beberapa cluster didalam PCL2 sbb:&lt;br /&gt;&lt;br /&gt;- CU : Cluster Directory. Payroll directory akan tercipta untuk setiap employee dan dapat diakses untuk setiap employee secara specifik individual per payroll periode.&lt;br /&gt;- RG : Payroll Result ( GB )&lt;br /&gt;- B2 : Time Management Result&lt;br /&gt;- ZL : Personnel shift Plan&lt;br /&gt;- PS : Generated Schema&lt;br /&gt;- PT : Texts for Generated Schema&lt;br /&gt;contoh salah satu struktur cluster dapat dilihat pada diagram dibawah ini.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SuqLz23OzkI/AAAAAAAAALA/RaqUjIpabV8/s1600-h/hr3.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5398280826373721666" style="WIDTH: 288px; CURSOR: hand; HEIGHT: 242px" alt="" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SuqLz23OzkI/AAAAAAAAALA/RaqUjIpabV8/s200/hr3.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Untuk melihat payroll result bisa menggunakan tcode : PC_PAYRESULT.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HR Programming &lt;/strong&gt;&lt;br /&gt;Nah pada dasarnya HR Programming akan memanipulasi table-table diatas tadi, bisa saja membaca, menulis, mendelete sesuai kebutuhannya.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HR Programming - LOGICAL DATABASE&lt;/strong&gt;&lt;br /&gt;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 ?&lt;br /&gt;jawabannya :&lt;br /&gt;- 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.&lt;br /&gt;- Otorisasi check nya terpusat dan terjamin.&lt;br /&gt;- Mampu meningkatkan performan baik secara ABAPER nya maupun secara programnya.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HR Programming - Infotype&lt;/strong&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;PENDEFINISIAN.&lt;br /&gt;kita mendefine statement : INFOTYPES : 0002.&lt;br /&gt;dengan statement itu sebagai pengganti jika kita tidak menggunakan LDB maka kita harus mendefine sbb:&lt;br /&gt;DATA : BEGIN OF P0002 OCCURS 10.&lt;br /&gt;INCLUDE STRUCTURE P0002.&lt;br /&gt;DATA : END OF P0002 VALID BETWEEN BEGDA AND ENDDA.&lt;br /&gt;nah kelihatan bukan jika kita menggunakan LDB coding nya pun semakin irit.&lt;br /&gt;&lt;br /&gt;PENGUMPULAN DATA.&lt;br /&gt;Setelah kita mendefine infotype diatas maka kita membaca data infotype tersebut dengan hanya menggunakan statement : GET PERNR.&lt;br /&gt;maka program akan mengumpulkan data dari infotype yang telah kita define diatas tadi.&lt;br /&gt;&lt;br /&gt;PENGEVALUASI VALIDITY DATA&lt;br /&gt;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 :&lt;br /&gt;PROVIDE * FROM P0006&lt;br /&gt;BETWEEN PN-BEGDA AND PN-ENDDA&lt;br /&gt;WHERE P0006-SUBTY = ‘1’.&lt;br /&gt;* additional processing&lt;br /&gt;ENDPROVIDE.&lt;br /&gt;&lt;br /&gt;Variable-variable yang perlu diingat dalam PNP LDB ini.&lt;br /&gt;- PN-BEGDA dan PN-ENDDA adalah periode awal dan akhir untuk periode yang berlaku.&lt;br /&gt;- PN-BEGPS dan PN-ENDPS adalah periode awal dan akhir untuk periode employee yang di seleksi.&lt;br /&gt;- Untuk fungsi-fungsi LDB ini berjalan pastikan table PERNR di dekarasikan diatas program.&lt;br /&gt;&lt;br /&gt;sampai disini dulu, untuk LDB payroll nanti di sessi tulisan berikutnya kita bahas.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-5630494412747747718?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/10/sap-r3-hr-programming-overview.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://3.bp.blogspot.com/_TUsjEl6QdGc/SuqDA9XTVnI/AAAAAAAAAKw/tckNIGJrg3A/s72-c/hr1.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-5119955347011735066</guid><pubDate>Tue, 20 Oct 2009 06:03:00 +0000</pubDate><atom:updated>2010-04-14T09:46:21.568+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">SAP HR</category><title>INFOTYPE 0031 REFERENCE PERSONNEL NUMBERS</title><description>INFOTYPE 0031 REFERENCE PERSONNEL NUMBERS&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
Infotype 0031 digunakan jika employee yang memiliki lebih dari satu Personnel Number secara bersamaan, misalkan si A dengan nomor Employee 0001 kemudian diterminate dan di rehire dengan nomor 0005. Maka dengan Infotype 0031 kita bisa menelusuri nomor lama si A dan informasi lainnya yang otomatis akan di copy infotype-infotype lainnya di nomor 0001 jika nomor 0005 di update dengan hanya memaintain nomor lamanya di infotype 0031.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
tapi bagaimana jika kita menginginkan agar TIDAK semua infotype di copy jika employee nomor 0005 di update ?.&lt;br /&gt;
&lt;br /&gt;
Untuk reference personnel number ini, kita bisa memilih hanya infotype tertentu saja yang ingin link nya tetap terupdate, contohnya kita hanya ingin infotype 000, 0001, 0002 maka kita bisa di set di table V_T582A dan pastikan hanya infotype-infotype yang kita inginkan di tandai pada field "Copy Infotype".&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://3.bp.blogspot.com/_TUsjEl6QdGc/St1Ypw14OmI/AAAAAAAAAKo/oL_ATlDz8vo/s1600-h/0031.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 192px; height: 200px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/St1Ypw14OmI/AAAAAAAAAKo/oL_ATlDz8vo/s200/0031.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5394565403168488034" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-5119955347011735066?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/10/infotype-0031-reference-personnel.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://3.bp.blogspot.com/_TUsjEl6QdGc/St1Ypw14OmI/AAAAAAAAAKo/oL_ATlDz8vo/s72-c/0031.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-950990982260615660</guid><pubDate>Thu, 14 May 2009 05:33:00 +0000</pubDate><atom:updated>2010-04-14T09:46:53.410+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Upload multy sheet excel into internal table</title><description>ABAP - Upload multy sheet excel into internal table&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
&lt;span class="dropcaps"&gt;S&lt;/span&gt;uatu saat ada kebutuhan upload dari excel ke sap nah berhubung pakai function &lt;span style="font-weight: bold;"&gt;ALSM_EXCEL_TO_INTERNAL_TABLE&lt;/span&gt; ada keterbatasan yaitu hanya bisa baca sheet yang active sementara kebutuhannya pengen baca fleksibel sheet lebih dari satu. nah akhirnya aye copy function &lt;span style="font-weight: bold;"&gt;ALSM_EXCEL_TO_INTERNAL_TABLE&lt;/span&gt; itu ke &lt;span style="font-weight: bold;"&gt;ZALSM_EXCEL_SHEET_TO_ITAB&lt;/span&gt; terus di edit dikit. edit nya apa aja ada di bawah ini yuk kita simak.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
1. tambah parameter zsheetnm di tab import.&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SguvgtT9t7I/AAAAAAAAAJA/8Jwo8X3wr_A/s1600-h/Picture1.gif"&gt;&lt;img style="cursor: pointer; width: 200px; height: 85px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SguvgtT9t7I/AAAAAAAAAJA/8Jwo8X3wr_A/s200/Picture1.gif" alt="" id="BLOGGER_PHOTO_ID_5335551160004491186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. edit source nya jadi kayak dibawah ini&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background:lightyellow none repeat scroll 0 0; border:1px inset orange; height:150px;  margin:10px; overflow:auto; padding:6px; text-align:left;"&gt;
FUNCTION ZALSM_EXCEL_SHEET_TO_ITAB.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(FILENAME) LIKE  RLGRAP-FILENAME
*"     VALUE(I_BEGIN_COL) TYPE  I
*"     VALUE(I_BEGIN_ROW) TYPE  I
*"     VALUE(I_END_COL) TYPE  I
*"     VALUE(I_END_ROW) TYPE  I
*"     REFERENCE(ZSHEETNAME) TYPE  ZSHEETNM
*"  TABLES
*"      INTERN STRUCTURE  ALSMEX_TABLINE
*"  EXCEPTIONS
*"      INCONSISTENT_PARAMETERS
*"      UPLOAD_OLE
*"----------------------------------------------------------------------

DATA: EXCEL_TAB     TYPE  TY_T_SENDER.
DATA: LD_SEPARATOR  TYPE  C.
FIELD-SYMBOLS: &amp;lt;FIELD&amp;gt;.
DATA: APPLICATION   TYPE  OLE2_OBJECT,
WORKBOOK      TYPE  OLE2_OBJECT,
RANGE         TYPE  OLE2_OBJECT,
WORKSHEET     TYPE  OLE2_OBJECT,
************************************************************
* added to read dedicated sheet
************************************************************
SHEETS        TYPE  OLE2_OBJECT.
************************************************************
* added to read dedicated sheet
************************************************************
DATA: H_CELL        TYPE  OLE2_OBJECT,
H_CELL1       TYPE  OLE2_OBJECT.

* Makro für Fehlerbehandlung der Methods
DEFINE M_MESSAGE.
CASE SY-SUBRC.
WHEN 0.
WHEN 1.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
WHEN OTHERS. RAISE UPLOAD_OLE.
ENDCASE.
END-OF-DEFINITION.


* check parameters
IF I_BEGIN_ROW &gt; I_END_ROW. RAISE INCONSISTENT_PARAMETERS. ENDIF.
IF I_BEGIN_COL &gt; I_END_COL. RAISE INCONSISTENT_PARAMETERS. ENDIF.

* set seperator. Direct move is not sufficient (cause of hex type)
ASSIGN LD_SEPARATOR TO &amp;lt;FIELD&amp;gt; TYPE 'X'.
&amp;lt;FIELD&amp;gt; = GC_HEX_TAB.

* open file in Excel
IF APPLICATION-HEADER = SPACE OR APPLICATION-HANDLE = -1.
CREATE OBJECT APPLICATION 'Excel.Application'.
M_MESSAGE.
ENDIF.
CALL METHOD  OF APPLICATION    'Workbooks' = WORKBOOK.
M_MESSAGE.
CALL METHOD  OF WORKBOOK 'Open'    EXPORTING #1 = FILENAME.
M_MESSAGE.
*  set property of application 'Visible' = 1.
*  m_message.

************************************************************
* added to read dedicated sheet
************************************************************
IF ZSHEETNAME NE ''.
* Determine number of sheets
CALL METHOD OF APPLICATION 'Sheets' = SHEETS.
M_MESSAGE.

*    CALL METHOD OF SHEETS 'Count' = SHEETNO.
*    M_MESSAGE.

* Activate sheet number L_ACTIVE_SHEET with tab name
CALL METHOD OF APPLICATION 'Worksheets' = WORKSHEET
EXPORTING #1 = ZSHEETNAME.
M_MESSAGE.

CALL METHOD OF WORKSHEET 'Activate'.
M_MESSAGE.

*    GET PROPERTY OF worksheets 'Name' = ZSHEETNAME.
ENDIF.
************************************************************
* added to read dedicated sheet
************************************************************

GET PROPERTY OF  APPLICATION 'ACTIVESHEET' = WORKSHEET.
M_MESSAGE.

* mark whole spread sheet
CALL METHOD OF WORKSHEET 'Cells' = H_CELL
EXPORTING #1 = I_BEGIN_ROW #2 = I_BEGIN_COL.
M_MESSAGE.
CALL METHOD OF WORKSHEET 'Cells' = H_CELL1
EXPORTING #1 = I_END_ROW #2 = I_END_COL.
M_MESSAGE.

CALL METHOD  OF WORKSHEET 'RANGE' = RANGE
EXPORTING #1 = H_CELL #2 = H_CELL1.
M_MESSAGE.
CALL METHOD OF RANGE 'SELECT'.
M_MESSAGE.

* copy marked area (whole spread sheet) into Clippboard
CALL METHOD OF RANGE 'COPY'.
M_MESSAGE.

* Without control flush, CLPB_IMPORT does not find any data
CALL FUNCTION 'CONTROL_FLUSH'
EXCEPTIONS
OTHERS = 3.

* read clipboard into ABAP
CALL FUNCTION 'CLPB_IMPORT'
TABLES
DATA_TAB   = EXCEL_TAB
EXCEPTIONS
CLPB_ERROR = 1
OTHERS     = 2.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE A037(ALSMEX).
ENDIF.

PERFORM SEPARATED_TO_INTERN_CONVERT TABLES EXCEL_TAB INTERN
USING  LD_SEPARATOR.

* clear clipboard
REFRESH EXCEL_TAB.
CALL FUNCTION 'CLPB_EXPORT'
TABLES
DATA_TAB   = EXCEL_TAB
EXCEPTIONS
CLPB_ERROR = 1
OTHERS     = 2.

* quit Excel and free ABAP Object - unfortunately, this does not kill
* the Excel process
CALL METHOD OF APPLICATION 'QUIT'.
M_MESSAGE.

FREE   OBJECT APPLICATION.
M_MESSAGE.

* &gt;&gt;&gt;&gt;&gt; Begin of change note 575877
* to kill the Excel process it's necessary to free all used objects
FREE OBJECT H_CELL.       M_MESSAGE.
FREE OBJECT H_CELL1.      M_MESSAGE.
FREE OBJECT RANGE.        M_MESSAGE.
FREE OBJECT WORKSHEET.    M_MESSAGE.
FREE OBJECT WORKBOOK.     M_MESSAGE.
*  FREE OBJECT application.  m_message.
* &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; End of change note 575877
ENDFUNCTION.

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
3. nah tinggal di pake deh functionnya, contohnya :&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
&lt;span style="font-size:78%;"&gt;* --Load Excel actual sheet
REFRESH ITDATA.
CALL FUNCTION 'ZALSM_EXCEL_SHEET_TO_ITAB'
EXPORTING
FILENAME    = ZFILESRC
I_BEGIN_COL = BCOL
I_BEGIN_ROW = BROW
I_END_COL   = ECOL
I_END_ROW   = EROW
ZSHEETNAME  = 'Actual'
TABLES
INTERN      = ITDATA.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
nah kalo mau liat di web lainnya bisa liat di sini nih karena aye dapet idenya dari situ :&lt;a href="https://www.sdn.sap.com/irj/scn/thread?tstart=0&amp;amp;threadID=1272542&amp;amp;messageID=7207436"&gt; https://www.sdn.sap.com/irj/scn/thread?tstart=0&amp;amp;threadID=1272542&amp;amp;messageID=7207436&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
selamat mencoba yeeee.&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-950990982260615660?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/05/sap-abap-upload-multy-sheet-excel-into.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://1.bp.blogspot.com/_TUsjEl6QdGc/SguvgtT9t7I/AAAAAAAAAJA/8Jwo8X3wr_A/s72-c/Picture1.gif" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-782948444308681458</guid><pubDate>Tue, 21 Apr 2009 01:57:00 +0000</pubDate><atom:updated>2010-04-14T09:49:01.439+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PHP</category><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>SAP ABAP – PHP Connector dan RFC</title><description>SAP ABAP – PHP Connector dan RFC&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
&lt;span class="dropcaps"&gt;K&lt;/span&gt;ali ini aye mau bahas Interface antara SAP dan PHP. Skenario Applikasinya gini, aye mau bikin semacem ESS untuk employee gunanya untuk employee bisa mengecek sisa cutinya masing-masing melalui WEB, sementara data nye ada di SAP ( background-nye ). Kurang lebih gambarannya gitu aje ye…. Gak usah yg gede-gede dulu nyang penting ketangkep malingnya…… maksudnye idenya. Sebenernya nyang kayak gini sih di SAP versi baru ( netweaver bo ) itu lebih mudah karena udeh ade java nye, atau bisa pake SOAP, atau SOA atau pake .NET atau VB connector tapi nyang ini ni sekarang kita coba pake PHP connector karena gratis dan mudah.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/Se0p9VB7pwI/AAAAAAAAAIA/itb88PVYA_s/s1600-h/Clipboard01.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 80px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/Se0p9VB7pwI/AAAAAAAAAIA/itb88PVYA_s/s200/Clipboard01.jpg" alt="" id="BLOGGER_PHOTO_ID_5326960067843172098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
Nyang kite butuhin sekarang sih ya mungkin :&lt;br /&gt;
1. SAP, ya emang sebagai background system nya, semua data employee ada di sini, termasuk data cuti employee yang nanti kita butuhkan untuk coba disini ye.&lt;br /&gt;
2. Application Server, nah nanti kite coba pake yang simple aje install aje XAMPP biar cepet ye. &lt;a href="https://www.sdn.sap.com/irj/scn/wiki?path=/display/EmTech/Run+XAMPP+on+Windows+with+sapnwrfc+for+PHP"&gt;&lt;/a&gt;&lt;br /&gt;
3. PHP udah include di nomor 2 diatas tuh kalo kite udah install.&lt;br /&gt;
4. PHP Connector bisa di download disini &lt;a href="http://saprfc.sourceforge.net/"&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah kalo nyang kite butuhin udeh ade semua tinggal kita ikutin step-step nye ye, yuk kite mulai, start your engine, get set and …… goooo&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 1 :&lt;/span&gt; Install Application server XAMPP nye, ikutin aje ye, aye anggap udah bisa lah cara install XAMPP ini. Nanti biasenye udan terinstall juga PHP nye disitu.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 2 :&lt;/span&gt; Taro deh PHP connector DLL nye di PHP server nye. Kalo pake PHP 5 biasenye ada di folder …\xampp\php\ext  kalo di php 4 biasenye ada di folder …\xampp\php\extentions&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 3 :&lt;/span&gt; Edit file php.ini tambahin -&gt; extension=php_saprfc.dll di bagian extention nye ye. Bisa di test Saprfc dll itu jalan ape enggak lewat phpinfo() tau kan ? Kalo keliatan ada berarti udah on tuh.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/Se0s1WrRHLI/AAAAAAAAAII/AxHZG0HNA3g/s1600-h/Clipboard02.jpg"&gt;&lt;img style="cursor: pointer; width: 200px; height: 86px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/Se0s1WrRHLI/AAAAAAAAAII/AxHZG0HNA3g/s200/Clipboard02.jpg" alt="" id="BLOGGER_PHOTO_ID_5326963229380910258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 4 :&lt;/span&gt; bikin folder working\cuti di htdocs&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 5 :&lt;/span&gt; taro file saprfc.php di folder working\cuti itu ye ( coba baca2 deh saprfc.php nye isinye ye )&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold;"&gt;Step 6 :&lt;/span&gt; bikin file Infocuti.php isinye kayak dibawah ini codingnye.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background:lightyellow none repeat scroll 0 0; border:1px inset orange; height:150px;  margin:10px; overflow:auto; padding:6px; text-align:left;"&gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;fieldset&amp;gt;&amp;lt;legend&amp;gt;Absence Quota&amp;lt;/legend&amp;gt;
&amp;lt;?
$zpernr = '';
echo "&amp;lt;form method='POST' action='getcuti.php'&amp;gt;
Employee Number  : &amp;lt;input type='text' name='zpernr' value='$zpernr' size='8' Maxlength='8'&amp;gt;&amp;amp;nbsp&amp;amp;nbsp&amp;lt;input type='submit' name='submit' value='Submit'&amp;gt;
&amp;lt;/form&amp;gt;";
?&amp;gt;
&amp;lt;/fieldset&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Step 7 :&lt;/span&gt; Bikin lagi di folder tadi ye file getcuti.php nyang isi nye dibawah niii.&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background:lightyellow none repeat scroll 0 0; border:1px inset orange; height:150px;  margin:10px; overflow:auto; padding:6px; text-align:left;"&gt;
&amp;lt;?php 
include(&amp;quot;infocuti.php&amp;quot;);
require_once(&amp;quot;saprfc.php&amp;quot;);
$zpernr = $_POST[&amp;quot;zpernr&amp;quot;];
?&amp;gt;

&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;

&amp;lt;fieldset&amp;gt;&amp;lt;legend&amp;gt;Information&amp;lt;/legend&amp;gt;
&amp;lt;?
//Create Object to login SAP
$rfc = new saprfc(array(
&amp;quot;logindata&amp;quot;=&amp;gt;array(
&amp;quot;ASHOST&amp;quot;=&amp;gt;&amp;quot;10.1.10.11&amp;quot;   // application server
,&amp;quot;SYSNR&amp;quot;=&amp;gt;&amp;quot;00&amp;quot;           // system number
,&amp;quot;CLIENT&amp;quot;=&amp;gt;&amp;quot;805&amp;quot;         // client
,&amp;quot;USER&amp;quot;=&amp;gt;&amp;quot;dicky.z&amp;quot;       // user
,&amp;quot;PASSWD&amp;quot;=&amp;gt;&amp;quot;dickyz&amp;quot;      // password
)
,&amp;quot;show_errors&amp;quot;=&amp;gt;false   // let class printout errors
,&amp;quot;debug&amp;quot;=&amp;gt;false)) ;      // detailed debugging information

if ( ! $rfc ){exit;}

//set date
list($d, $m, $y, ) = split('-', date(&amp;quot;d-m-Y&amp;quot;));
$zdesta = $y.&amp;quot;0101&amp;quot;;
$zdeend = $y.&amp;quot;1231&amp;quot;;
$zdesta = &amp;quot;18000101&amp;quot;;
$zdeend = &amp;quot;99991231&amp;quot;;

// Call-Function
$result = $rfc-&amp;gt;callFunction(&amp;quot;Z_GET_ABSENCE_QUOTA&amp;quot;,
array(array(&amp;quot;IMPORT&amp;quot;,&amp;quot;ZPERNR&amp;quot;,&amp;quot;$zpernr&amp;quot;),
array(&amp;quot;IMPORT&amp;quot;,&amp;quot;ZSUBTY&amp;quot;,&amp;quot;01&amp;quot;),
array(&amp;quot;IMPORT&amp;quot;,&amp;quot;ZDEDDA&amp;quot;,&amp;quot;$zdesta&amp;quot;),
array(&amp;quot;IMPORT&amp;quot;,&amp;quot;ZDEDEN&amp;quot;,&amp;quot;$zdeend&amp;quot;),
array(&amp;quot;EXPORT&amp;quot;,&amp;quot;ZENAME&amp;quot;,&amp;quot;&amp;quot;),
array(&amp;quot;TABLE&amp;quot; ,&amp;quot;ZP2006&amp;quot;,array())
));

// Call successfull?
if ($rfc-&amp;gt;getStatus() == SAPRFC_OK) {

if ($result[&amp;quot;ZENAME&amp;quot;]==''){
echo &amp;quot;Employee number not found, please verify...&amp;quot;;
$rfc-&amp;gt;logoff();
exit;
}

echo &amp;quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Employee Number&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;,$zpernr,&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;Name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;:&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;quot;,$result[&amp;quot;ZENAME&amp;quot;],&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;
?&amp;gt;
&amp;lt;table border='1' bordercolorlight='#000000'&amp;gt;
&amp;lt;tr&amp;gt;&amp;lt;th&amp;gt;Start&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;End&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Deduction Start&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Deduction End&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Quota&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Quota used&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;
&amp;lt;?
echo &amp;quot;&amp;lt;caption&amp;gt;Quota : &amp;quot;,$zdesta,&amp;quot; - &amp;quot;,$zdeend,&amp;quot;&amp;lt;/caption&amp;gt;&amp;quot;;

$zquota = 0;
$zused = 0;
$zn = 0;
foreach ($result[&amp;quot;ZP2006&amp;quot;] as $detail) {
if ($zn==0){ 
echo &amp;quot;&amp;lt;tr CLASS='a'&amp;gt;&amp;quot;; $zn++; }
else{
echo &amp;quot;&amp;lt;tr CLASS='b'&amp;gt;&amp;quot;; $zn--; }
echo &amp;quot;&amp;lt;td&amp;gt;&amp;quot;, $detail[&amp;quot;BEGDA&amp;quot;],&amp;quot;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;&amp;quot;, $detail[&amp;quot;ENDDA&amp;quot;],&amp;quot;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;&amp;quot;, $detail[&amp;quot;DESTA&amp;quot;],&amp;quot;&amp;lt;/td&amp;gt;
&amp;lt;td&amp;gt;&amp;quot;, $detail[&amp;quot;DEEND&amp;quot;],&amp;quot;&amp;lt;/td&amp;gt;
&amp;lt;td align='right'&amp;gt;&amp;quot;, $detail[&amp;quot;ANZHL&amp;quot;],&amp;quot; day(s)&amp;lt;/td&amp;gt;
&amp;lt;td align='right'&amp;gt;&amp;quot;, $detail[&amp;quot;KVERB&amp;quot;],&amp;quot; day(s)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
$zquota = $zquota + $detail[&amp;quot;ANZHL&amp;quot;];
$zused = $zused + $detail[&amp;quot;KVERB&amp;quot;];
}

echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=4&amp;gt;Total&amp;lt;/td&amp;gt;&amp;lt;td align='right'&amp;gt;&amp;quot;,$zquota,&amp;quot; day(s)&amp;lt;/td&amp;gt;&amp;lt;td align='right'&amp;gt;&amp;quot;,$zused,&amp;quot; day(s)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
echo &amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=5&amp;gt;Balance&amp;lt;/td&amp;gt;&amp;lt;td align='right'&amp;gt;&amp;quot;,$zquota-$zused,&amp;quot; day(s)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;;
?&amp;gt;&amp;lt;/table&amp;gt;&amp;lt;?

} else {
// No, print long Version of last Error
$rfc-&amp;gt;printStatus();
// or print your own error-message with the strings received from
//   $sap-&amp;gt;getStatusText() or $sap-&amp;gt;getStatusTextLong()
}

$rfc-&amp;gt;logoff();

?&amp;gt;

&amp;lt;/fieldset&amp;gt;
&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;Step 8 :&lt;/span&gt; Untuk file getcuti.php perhatikan coding nye nyang bagian &lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;&lt;br /&gt;
$rfc = new saprfc(array(&lt;br /&gt;
"logindata"=&gt;array(&lt;br /&gt;
"ASHOST"=&gt;"10.1.10.11"   // application server&lt;br /&gt;
,"SYSNR"=&gt;"00"           // system number&lt;br /&gt;
,"CLIENT"=&gt;"805"         // client&lt;br /&gt;
,"USER"=&gt;"dicky.z"       // user&lt;br /&gt;
,"PASSWD"=&gt;"dickyz"      // password&lt;br /&gt;
)&lt;br /&gt;
,"show_errors"=&gt;false   // let class printout errors&lt;br /&gt;
,"debug"=&gt;false)) ;      // detailed debugging information&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
Harus di sesuaikan dengan login yang nantinye ente pake di SAP nye ye..&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;
Step 9 :&lt;/span&gt; Kite bikin Coding RFC di SAP nye ye, lewat SE37 kita bikin function namenye Z_GET_ABSENCE_QUOTA.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/Se1mdLs6E0I/AAAAAAAAAIQ/KREDPaWn7GU/s1600-h/Clipboard03.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 166px; height: 200px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/Se1mdLs6E0I/AAAAAAAAAIQ/KREDPaWn7GU/s200/Clipboard03.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327026585792549698" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/Se1m9wXiD6I/AAAAAAAAAIY/3Mw2ytQzwmc/s1600-h/Clipboard04.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 112px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/Se1m9wXiD6I/AAAAAAAAAIY/3Mw2ytQzwmc/s200/Clipboard04.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327027145390821282" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1r8KSP8EI/AAAAAAAAAIg/9NMBCpQPJ8E/s1600-h/Clipboard05.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 97px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1r8KSP8EI/AAAAAAAAAIg/9NMBCpQPJ8E/s200/Clipboard05.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327032615546384450" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1sIHr333I/AAAAAAAAAIo/iOrTdEQUw7Q/s1600-h/Clipboard06.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 93px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1sIHr333I/AAAAAAAAAIo/iOrTdEQUw7Q/s200/Clipboard06.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327032821006983026" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Coding Abap nye dibawah ini &lt;br /&gt;
&lt;pre style="background:lightyellow none repeat scroll 0 0; border:1px inset orange; height:150px;  margin:10px; overflow:auto; padding:6px; text-align:left;"&gt;
FUNCTION Z_GET_ABSENCE_QUOTA.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(ZPERNR) LIKE  P2006-PERNR
*"     VALUE(ZSUBTY) LIKE  P2006-SUBTY
*"     VALUE(ZDEDDA) LIKE  P2006-DESTA
*"     VALUE(ZDEDEN) LIKE  P2006-DEEND
*"  EXPORTING
*"     VALUE(ZENAME) LIKE  P0002-CNAME
*"  TABLES
*"      ZP2006 STRUCTURE  PA2006
*"----------------------------------------------------------------------

* Get Quota infty 2006

SELECT * FROM PA2006 INTO zp2006 WHERE PERNR eq zpernr
AND SUBTY eq zsubty
AND DESTA ge zdedda
AND DESTA le zdeden.
*                         AND DEEND ge zdeden.
APPEND zp2006.
CLEAR zp2006.
ENDSELECT.

* Get Personnal Data Infty 0002
INFOTYPES: 0002.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
TCLAS     = 'A'
PERNR     = zpernr
INFTY     = '0002'
BEGDA     = zdedda
ENDDA     = zdeden
TABLES
INFTY_TAB = p0002.
READ TABLE p0002 INDEX 1.
ZENAME = p0002-CNAME.

ENDFUNCTION.

&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;
Step 10 :&lt;/span&gt; Nanti tinggal di test kurang lebih hasilnye kayak gini. &lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1ssw-sP4I/AAAAAAAAAIw/RnqZV2J89G4/s1600-h/Clipboard07.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 142px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1ssw-sP4I/AAAAAAAAAIw/RnqZV2J89G4/s200/Clipboard07.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327033450567057282" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1s-nFpNQI/AAAAAAAAAI4/sUPEvPAfqiM/s1600-h/Clipboard08.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 200px; height: 31px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/Se1s-nFpNQI/AAAAAAAAAI4/sUPEvPAfqiM/s200/Clipboard08.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327033757149508866" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
silahkan.... selamat mencoba&lt;br /&gt;
Kalo ade salah salah mohon di koreksi ye…. Namanya juga sama-sama belajar.&lt;br /&gt;
&lt;br /&gt;
ini ada link yg thema nya same &lt;br /&gt;
&lt;a href="http://intip-sap.blogspot.com/2007/05/sap-java-conector-or-sap-net-connector.html"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/1270d0d9-0a01-0010-2d90-fb1f6db9ae96"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://foruminformatika.wordpress.com/2008/01/05/sap-php-connection/"&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-782948444308681458?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/04/sap-abap-php-connector-dan-rfc.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://4.bp.blogspot.com/_TUsjEl6QdGc/Se0p9VB7pwI/AAAAAAAAAIA/itb88PVYA_s/s72-c/Clipboard01.jpg" height="72" width="72" /><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-9181594687925115924</guid><pubDate>Tue, 14 Apr 2009 09:15:00 +0000</pubDate><atom:updated>2010-05-27T10:56:11.641+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Buat yang Belajar ABAP - Software Mini SAP</title><description>&lt;span class="dropcaps"&gt;B&lt;/span&gt;uat yang mau belajar SAP ABAP di rumah bisa di download source nya di bawah ini. aye dapet dari forum gak tau siapa yang punya. download aja deh jadi bisa belajar SAP ABAP dirumah.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
NB: This does not include the functional modules... only good for ABAP/4 programmers.&lt;br /&gt;
&lt;br /&gt;
Link Disk1:&lt;br /&gt;
http://rapidshare.com/files/795136/MiniSapCd1.part1.rar&lt;br /&gt;
http://rapidshare.com/files/795954/MiniSapCd1.part2.rar&lt;br /&gt;
http://rapidshare.com/files/810556/MiniSapCd1.part3.rar&lt;br /&gt;
http://rapidshare.com/files/810409/MiniSapCd1.part4.rar&lt;br /&gt;
http://rapidshare.com/files/819126/MiniSapCd1.part5.rar&lt;br /&gt;
http://rapidshare.com/files/818884/MiniSapCd1.part6.rar&lt;br /&gt;
http://rapidshare.com/files/828305/MiniSapCd1.part7.rar&lt;br /&gt;
http://rapidshare.com/files/827340/MiniSapCd1.part8.rar&lt;br /&gt;
&lt;br /&gt;
Link Disk2:&lt;br /&gt;
http://rapidshare.com/files/828319/MiniSapCd2.part01.rar&lt;br /&gt;
http://rapidshare.com/files/902524/MiniSapCd2.part02.rar&lt;br /&gt;
http://rapidshare.com/files/902316/MiniSapCd2.part03.rar&lt;br /&gt;
http://rapidshare.com/files/936050/MiniSapCd2.part04.rar&lt;br /&gt;
http://rapidshare.com/files/935692/MiniSapCd2.part05.rar&lt;br /&gt;
http://rapidshare.com/files/947683/MiniSapCd2.part06.rar&lt;br /&gt;
http://rapidshare.com/files/1320189/MiniSapCd2.part07.rar&lt;br /&gt;
http://rapidshare.com/files/1363944/MiniSapCd2.part08.rar&lt;br /&gt;
http://rapidshare.com/files/1378747/MiniSapCd2.part09.rar&lt;br /&gt;
http://rapidshare.com/files/1378696/MiniSapCd2.part10.rar&lt;br /&gt;
http://rapidshare.com/files/1378689/MiniSapCd2.part11.rar&lt;br /&gt;
http://rapidshare.com/files/1378679/MiniSapCd2.part12.rar&lt;br /&gt;
http://rapidshare.com/files/1440674/MiniSapCd2.part13.rar&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-9181594687925115924?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/04/sap-software-mini-sap.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-758912670241002330</guid><pubDate>Fri, 03 Apr 2009 02:37:00 +0000</pubDate><atom:updated>2010-04-14T09:49:30.924+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>SM30 Delimited Date</title><description>ABAP - SM30 Delimited Date&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;span class="dropcaps"&gt;B&lt;/span&gt;iasanya di modul HR, setiap data memakai delimit date untuk setiap perubahan data yang ada. Contoh nya nih seperti ilustrasi dibawah ini. Setiap kali data ditambahkan maka secara otomatis endda akan terpotong.&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV46FTDkpI/AAAAAAAAAGQ/ADMuQkcy9ZI/s1600-h/Picture1.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 184px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV46FTDkpI/AAAAAAAAAGQ/ADMuQkcy9ZI/s320/Picture1.jpg" alt="" id="BLOGGER_PHOTO_ID_5320291474057958034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk delimited date SAP mempunyai fungsi standard yang langsung bisa ditambahkan pada configurasi table dengan cara seperti dibawah ini.&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV5GI1zr1I/AAAAAAAAAGY/B2YqN1XXq-s/s1600-h/Picture2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 313px; height: 320px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV5GI1zr1I/AAAAAAAAAGY/B2YqN1XXq-s/s320/Picture2.jpg" alt="" id="BLOGGER_PHOTO_ID_5320291681167454034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1. SE11 kemudian masukan nama table.&lt;br /&gt;
2. Click Change&lt;br /&gt;
3. Pilih Menu Utilities &gt; Table Maintenance Generator.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV5cnjBTDI/AAAAAAAAAGg/2Qiy_WeG-jc/s1600-h/Picture3.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 174px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV5cnjBTDI/AAAAAAAAAGg/2Qiy_WeG-jc/s320/Picture3.jpg" alt="" id="BLOGGER_PHOTO_ID_5320292067367275570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Kemudian pilih Menu Environment &gt; Validity range&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SdV5sPJx5BI/AAAAAAAAAGo/0kR4iTbApwE/s1600-h/Picture4.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 293px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SdV5sPJx5BI/AAAAAAAAAGo/0kR4iTbApwE/s320/Picture4.jpg" alt="" id="BLOGGER_PHOTO_ID_5320292335696864274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Setelah itu maka kalo kita lihat di coding nya akan kelihatan pada Screens nya akan ada tambahan seperti dibawah ini.&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV6ELnAgMI/AAAAAAAAAGw/o8DAe1_tHyY/s1600-h/Picture5.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV6ELnAgMI/AAAAAAAAAGw/o8DAe1_tHyY/s320/Picture5.jpg" alt="" id="BLOGGER_PHOTO_ID_5320292747062575298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seperti yg dijelaskan di depan setelah menambahkan validity range hasilnya secara otomatis endda akan terpotong sehari sebelum tanggal record baru.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SdV6VTpQ5WI/AAAAAAAAAG4/KXVVyRioPPw/s1600-h/Picture6.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 184px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SdV6VTpQ5WI/AAAAAAAAAG4/KXVVyRioPPw/s320/Picture6.jpg" alt="" id="BLOGGER_PHOTO_ID_5320293041277298018" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah masalahnya bagaimana kalo record itu kita delete maka seharusnya tanggal endda harus di sesuaikan dengan endda sebelumnya supaya secara periode data tidak terjadi gap.&lt;br /&gt;
&lt;br /&gt;
Contoh : Jika saya mendelete pada record Personnel Area 100 dengan begda 01.02.2009 dan endda 28.02.2009, maka record akan menjadi seperti pada gambar berikut.&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV6pSPzVJI/AAAAAAAAAHA/uifjsGnnsmo/s1600-h/Picture7.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 262px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV6pSPzVJI/AAAAAAAAAHA/uifjsGnnsmo/s320/Picture7.jpg" alt="" id="BLOGGER_PHOTO_ID_5320293384499451026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
User menginginkan agar data Endda dikembalikan sesuai dengan endda record yang di delete. Bisa dilihat pada gambar ini. Endda record Personnel area 1000 dengan begda 01.01.2009 dan dengan endda yang berubah menjadi 28.02.2009 sesuai dengan endda record yang di delete.&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV7ICqXzKI/AAAAAAAAAHI/q21sSnc8T34/s1600-h/Picture8.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 300px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV7ICqXzKI/AAAAAAAAAHI/q21sSnc8T34/s320/Picture8.jpg" alt="" id="BLOGGER_PHOTO_ID_5320293912891870370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Untuk itu kita harus tambahkan coding di dalam configurasi table nya ( blom ketemu dari standard SAP nya, bagi yg udah tau dan nemu standardnya ya bagi-bagi lah infonya ). Caranya sbb:&lt;br /&gt;
&lt;br /&gt;
Masuk ke SE11 Lakukan seperti step 1,2,3 diatas. Kemudian step ke 4 sbb:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. Pilih Menu Environment &gt; Modification &gt; Events&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SdV8mVttEsI/AAAAAAAAAHY/ktZeSKjk0Pw/s1600-h/Picture9.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 151px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SdV8mVttEsI/AAAAAAAAAHY/ktZeSKjk0Pw/s320/Picture9.gif" alt="" id="BLOGGER_PHOTO_ID_5320295532913824450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5. Masukan Event seperti dibawah ini. Ingat setiap memasukan event click editor disamping nya supaya link sesuai dengan performnya.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV9j-2Z_PI/AAAAAAAAAHg/k-hOeYr-Afw/s1600-h/Picture10.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 290px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SdV9j-2Z_PI/AAAAAAAAAHg/k-hOeYr-Afw/s320/Picture10.gif" alt="" id="BLOGGER_PHOTO_ID_5320296591928196338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Coding nya sbb:&lt;br /&gt;
&lt;br /&gt;
&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;***INCLUDE ZDC_ZONA_UDF .&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*----------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* Variable tampungan endda yang akan di delete&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* yang nanti nya di replace ke record sebelumnya&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DATA: ZDELETED_ENDDA LIKE SY-DATUM.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DATA: ZIZONA LIKE ZPAZONA OCCURS 0 WITH HEADER LINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DATA: ZKEYLINE LIKE LINE OF ZIZONA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DATA: ZLINE LIKE LINE OF ZIZONA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DATA: ZLEN TYPE I.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       FORM ZGET_ZONA_BEFORE_DELETE                                  *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       ........                                                      *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;FORM ZGET_ZONA_BEFORE_DELETE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*  BREAK-POINT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZLINE = TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;PERFORM ZGET_KEYLEN CHANGING ZLEN.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;LOOP AT TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;IF TOTAL(ZLEN) EQ ZLINE(ZLEN).&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* ambil endda nya untuk di replace ke record sebelumnya&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZDELETED_ENDDA = ZLINE-ENDDA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;EXIT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ELSE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* simpen key record sebelumnya&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZKEYLINE = TOTAL(ZLEN).&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDIF.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDLOOP.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDFORM.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       FORM ZGET_ZONA_AFTER_DELETE                                   *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       ........                                                      *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;FORM ZGET_ZONA_AFTER_DELETE.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;IF ZKEYLINE NE ''.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;LOOP AT TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* baca record sebelumya&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CHECK TOTAL(ZLEN) EQ ZKEYLINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*      BREAK-POINT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* simpen record sebelumnya untuk di delete&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* supaya gak bentrok&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZIZONA = TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;APPEND ZIZONA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* Update endda&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZLINE = TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DELETE TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZLINE-ENDDA = ZDELETED_ENDDA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;TOTAL = ZLINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* record sebelunya dianggap new&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CONCATENATE TOTAL 'N' INTO TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;APPEND TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;SORT TOTAL.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;EXIT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDLOOP.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;LOOP AT EXTRACT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* baca record sebelumnya&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CHECK EXTRACT(ZLEN) EQ ZKEYLINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;* Update endda&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZLINE = EXTRACT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DELETE EXTRACT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZLINE-ENDDA = ZDELETED_ENDDA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;EXTRACT = ZLINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;APPEND EXTRACT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;SORT EXTRACT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;EXIT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDLOOP.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDIF.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDFORM.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       FORM ZGET_ZONA_BEFORE_SAVE                                    *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       ........                                                      *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;FORM ZGET_ZONA_BEFORE_SAVE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*  BREAK-POINT.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;READ TABLE ZIZONA INDEX 1.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;IF SY-SUBRC EQ 0.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;DELETE ZPAZONA FROM TABLE ZIZONA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDIF.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CLEAR: ZKEYLINE.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;REFRESH: ZIZONA.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CLEAR: SY-SUBRC.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDFORM.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       FORM ZGET_KEYLEN                                              *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*       ........                                                      *&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;*---------------------------------------------------------------------*&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;FORM ZGET_KEYLEN CHANGING ZKEYLEN.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;CLEAR: ZKEYLEN.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;LOOP AT X_NAMTAB WHERE KEYFLAG = 'X' AND TEXTTABFLD &lt;&gt; 'X'.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ZKEYLEN = ZKEYLEN + X_NAMTAB-FLENGTH.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDLOOP.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: rgb(0, 153, 0);"&gt;ENDFORM.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;/blockquote&gt;&lt;br /&gt;
&lt;br /&gt;
Selamat Mencoba Yeeee....&lt;br /&gt;
kalo ada cara yang lebih bagus kasih tau yee&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-758912670241002330?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/04/sap-sm30-delimited-date.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://3.bp.blogspot.com/_TUsjEl6QdGc/SdV46FTDkpI/AAAAAAAAAGQ/ADMuQkcy9ZI/s72-c/Picture1.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-3424952712952447373</guid><pubDate>Tue, 03 Feb 2009 02:58:00 +0000</pubDate><atom:updated>2009-11-11T13:55:16.383+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Kumpulan contoh Code ABAP koleksi lama gue</title><description>SAP : Kumpulan contoh Code ABAP koleksi lama gue&lt;br /&gt;&lt;br /&gt;&lt;span class="dropcaps"&gt;L&lt;/span&gt;umayan buat contekan kalo ada project terus lagi mentok bisa buat referensi teknik-teknik programming nya yang diambil dari sumber-sumber orang-orang yang udah master di ABAP nya tuh. gue sih ambil dari berbagai sumber di internet bisa di liat di &lt;span style="font-weight: bold;"&gt;http://diocio.wordpress.com&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-3424952712952447373?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/02/sap-kumpulan-contoh-code-abap-koleksi.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-7601908133967336656</guid><pubDate>Thu, 15 Jan 2009 03:58:00 +0000</pubDate><atom:updated>2009-10-20T13:35:39.104+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>INFOTYPE 0031 - REFERENCE PERSONNEL NUMBERS</title><description>&lt;span class="dropcaps"&gt;K&lt;/span&gt;enapa sih kita gak bisa liat data infotype 0031 lewat SE16 atau SE11 ?&lt;br /&gt;Enggak seperti infotype-infotype lainnya kita bisa liat data yang tersimpan di table lewat se11 atau se16, tapi untuk infotype 0031 gak bisa.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Nah ini jawabannya. ( &lt;span style="font-style: italic;"&gt;diambil dari link ini http://sap.ittoolbox.com/groups/technical-functional/sap-hr/reference-pers-numbers-1252496?cv=expanded&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;As background information I'd like to tell you thatsince release 4.6C apparently SAP do not use the table PA0031 anymore.&lt;br /&gt;&lt;br /&gt;The data model for the reference numbers was very poor and not absolutelystable. Therefore a new object called 'central person' has been intro-duced.&lt;br /&gt;This object does not carry any information than the relationshipsto the related employees.&lt;br /&gt;&lt;br /&gt;For each person we store an Object (Object type 'CP') and relatethe employee contracts (Object type 'P') to the Object (Infotype 1001).&lt;br /&gt;&lt;br /&gt;The Infotype 0031 can still be used but we do not store thisinfotype physically in table PA0031 any more.&lt;br /&gt;&lt;br /&gt;If you check the PA0031 on DB for your pernr you will see no entry. In normal circumstances, the central person is automatically created foreach new employee.&lt;br /&gt;However, the central persons and links for theTo delete CP objects, use the standard program RHRHDL00 - Delete Data Records from Personnel Planning Database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If you are migrating from a release below 4.6C you have to create the CP using the report RPU46CX_CENTRAL_PERSON_ONLINE - XPRA: Conversion of Reference Personnel Numbers.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Nah untuk lihat isi infotype 0031 bisa lewat t code -&gt; Run this T.Code for Reference Personnel Number : S_AHR_61016358&lt;br /&gt;Atau ada function -&gt; HR_READ_0031_DB to retrieve the data you require.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-7601908133967336656?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/infotype-0031-refference-number.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-2946545635557929327</guid><pubDate>Tue, 13 Jan 2009 07:56:00 +0000</pubDate><atom:updated>2010-04-14T09:49:55.239+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>SAP HR - Payroll Result</title><description>&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;
Payroll Result&lt;/span&gt;&lt;br /&gt;
Salam ABAP HR Indonesia !&lt;br /&gt;
&lt;br /&gt;
&lt;span class="dropcaps"&gt;D&lt;/span&gt;i ABAP HR kadang harus membaca &lt;span style="font-weight: bold;"&gt;Payroll result&lt;/span&gt; untuk keperluan report/program. Gimana sih cara baca payroll result nye ? Karena kan payroll result disimpan dalam cluster table, nah makanya perlu cara khusus untuk bacanya.&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
Pertama sih untuk lebih gampang pake logical database PNP yang biasa di pake di module HR ini.&lt;br /&gt;
Untuk gambaran pamakaian Logical database PNP bisa diliat di gambar dibawah ini deh. Jadi bisa keliatan kalo logical database PNP akan membaca semua table yang diperlukan sehigga prorgam yang kita bikin bisa langsung baca sesuai dengan ketentuan selection screen yang sudah di saring. Jadi kita gak perlu baca satu persatu table karena sudah di sediakan logical database PNP di internal table nya, tinggal di manipulasi atau kita proses sesuai dengan program yang akan kita bikin.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxSERbZBXI/AAAAAAAAADI/iMnBKoUAGgA/s1600-h/slide0002_image002.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 251px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxSERbZBXI/AAAAAAAAADI/iMnBKoUAGgA/s320/slide0002_image002.jpg" alt="" id="BLOGGER_PHOTO_ID_5290693895604733298" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Strukture Logical Database untuk Payroll Result itu kayak gini nih ilustrasinya.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWxStZBkMQI/AAAAAAAAADQ/wd0tel1KPzY/s1600-h/slide0016_image004.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 258px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWxStZBkMQI/AAAAAAAAADQ/wd0tel1KPzY/s320/slide0016_image004.jpg" alt="" id="BLOGGER_PHOTO_ID_5290694602018533634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Keuntungan-keuntungan kalo kita pake logical database.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Kita bisa akses payroll result dengan cepat dan lebih mudah. &lt;/li&gt;

&lt;li&gt;Mudah dan caranya sudah standard dalam membaca payroll result Antarmukanya yang standard dalam pemakaiannya. &lt;/li&gt;

&lt;li&gt;Kemampuan yang lebih baik dibanding kalo kita gak pake LDB dengan transparant table untuk menyeleksi data. &lt;/li&gt;

&lt;li&gt;Coding yang lebih singkat berkurang hingga 60%. &lt;/li&gt;

&lt;li&gt;Bisa bikin report/program jadi lebih cepet. &lt;/li&gt;

&lt;li&gt;Lebih terintegrasi dengan seluruh proses payroll&lt;/li&gt;

&lt;/ul&gt;&lt;br /&gt;
Bisa di liat deh perbandingan nya secara coding seperti ilustrasi dibawah ini.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWxUtlUBSGI/AAAAAAAAADg/pMRtqZLXNvk/s1600-h/slide0010_image006.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 219px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWxUtlUBSGI/AAAAAAAAADg/pMRtqZLXNvk/s320/slide0010_image006.jpg" alt="" id="BLOGGER_PHOTO_ID_5290696804340418658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ini contoh dari coding kalo kita mau bikin report untuk baca payroll result.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWxYBoUtNVI/AAAAAAAAADo/WuC8IkfoiKA/s1600-h/slide0004_image008.jpg"&gt;&lt;img style="cursor: pointer; width: 278px; height: 189px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWxYBoUtNVI/AAAAAAAAADo/WuC8IkfoiKA/s320/slide0004_image008.jpg" alt="" id="BLOGGER_PHOTO_ID_5290700447280870738" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Bisa juga kita pake macro biar lebih cepat dan lebih simpe program nya, kayak gini gambarannya.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxa687PEnI/AAAAAAAAADw/pvZPNrIyN8Y/s1600-h/slide0005_image010.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 197px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxa687PEnI/AAAAAAAAADw/pvZPNrIyN8Y/s320/slide0005_image010.jpg" alt="" id="BLOGGER_PHOTO_ID_5290703631086981746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah untuk perbandingan perbedaan coding versi lama dengan coding versi baru bisa keliatan dari ilustrasi dibawah ini.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWxbdExpCdI/AAAAAAAAAD4/-0JQOlqWtVg/s1600-h/slide0006_image012.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 284px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWxbdExpCdI/AAAAAAAAAD4/-0JQOlqWtVg/s320/slide0006_image012.jpg" alt="" id="BLOGGER_PHOTO_ID_5290704217309776338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxb3TwvvAI/AAAAAAAAAEA/vU5fVcbFg9c/s1600-h/slide0007_image014.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 259px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxb3TwvvAI/AAAAAAAAAEA/vU5fVcbFg9c/s320/slide0007_image014.jpg" alt="" id="BLOGGER_PHOTO_ID_5290704668009151490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxc-D44KxI/AAAAAAAAAEQ/ypJu0wA6les/s1600-h/slide0008_image016.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 247px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxc-D44KxI/AAAAAAAAAEQ/ypJu0wA6les/s320/slide0008_image016.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5290705883519003410" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nah dari gambaran diatas terserah deh mau cara yang A apa yang B bedanya yang satu pake macro untuk mindahin data ke internal table yang satu lagi langsung di baca.&lt;br /&gt;
Nah kalo yang pake macro gambaran mekanisme nya kayak dibawah ini.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxa687PEnI/AAAAAAAAADw/pvZPNrIyN8Y/s1600-h/slide0005_image010.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 197px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxa687PEnI/AAAAAAAAADw/pvZPNrIyN8Y/s320/slide0005_image010.jpg" alt="" id="BLOGGER_PHOTO_ID_5290703631086981746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Jelas gak ya kira-kira dari uraian diatas ?, semoga jelas deh ya kalo gak jelas silahkan di tanyakan. Kali-kali aja gue bisa jawab, kalo gak bisa jawab nanti gue tanya lagi ke orang-orang yang bisa jawab jadi biar sama-sama belajar.&lt;br /&gt;
O iya ini ada infotype-infotype yang berguna kalo kita baca payroll result.&lt;br /&gt;
&lt;br /&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxdtsSGqUI/AAAAAAAAAEY/dAXBB11CCak/s1600-h/slide0011_image020.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 157px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWxdtsSGqUI/AAAAAAAAAEY/dAXBB11CCak/s320/slide0011_image020.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5290706701816080706" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight:bold;"&gt;SELAMAT MENCOBA&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-2946545635557929327?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/abap-hr-payroll-result.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWxSERbZBXI/AAAAAAAAADI/iMnBKoUAGgA/s72-c/slide0002_image002.jpg" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-2979965510757949207</guid><pubDate>Fri, 09 Jan 2009 11:25:00 +0000</pubDate><atom:updated>2009-11-11T13:55:20.595+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>ABAP - CALCULATOR</title><description>&lt;span class="dropcaps"&gt;L&lt;/span&gt;agi liat-liat contoh program ada nemu calculator nih, lumayan sih buat liat-liat gak kalah sama calculatornya windows.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;blockquote&gt;A SAP Pop-out Calculator&lt;br /&gt;&lt;br /&gt;*&lt;br /&gt;* Written by : SAP Basis, ABAP Programming and Other IMG Stuff&lt;br /&gt;*              http://www.sap-img.com&lt;br /&gt;*&lt;br /&gt;* A Pop-out Calculator for the users&lt;br /&gt;*&lt;br /&gt;REPORT ZCALCULATOR.&lt;br /&gt;&lt;br /&gt;DATA: X_VALUE(15) TYPE C.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;call function 'FITRV_CALCULATOR'&lt;br /&gt;* EXPORTING&lt;br /&gt;*   INPUT_VALUE                =&lt;br /&gt;*   CURRENCY                   =&lt;br /&gt;*   START_COLUMN               = '10'&lt;br /&gt;*   START_ROW                  = '10'&lt;br /&gt;IMPORTING&lt;br /&gt;  OUTPUT_VALUE               = X_VALUE&lt;br /&gt;EXCEPTIONS&lt;br /&gt;  INVALID_INPUT              = 1&lt;br /&gt;  CALCULATION_CANCELED       = 2&lt;br /&gt;  OTHERS                     = 3.&lt;br /&gt;&lt;br /&gt;IF SY-SUBRC = 0.&lt;br /&gt; WRITE:/ 'Output Value ', X_VALUE.&lt;br /&gt;ENDIF.&lt;br /&gt;&lt;br /&gt;*-- End of Program&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-2979965510757949207?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/sap-calculator.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-6859432791251298768</guid><pubDate>Fri, 09 Jan 2009 11:09:00 +0000</pubDate><atom:updated>2009-11-11T13:55:38.063+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>Yang berhubungan dengan ABAP HR</title><description>&lt;span class="dropcaps"&gt;I&lt;/span&gt;ni pokoknya yang berhubungan dengan ABAP HR.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Database Tables in HR&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;· &lt;span style="font-weight: bold;"&gt; Personnel Administration (PA)&lt;/span&gt; - master and time data infotype tables (transparent tables).&lt;br /&gt;PAnnnn: e.g. PA0001 for infotype 0001&lt;br /&gt;&lt;br /&gt;· &lt;span style="font-weight: bold;"&gt; Personnel Development (PD)&lt;/span&gt; - Org Unit, Job, Position, etc. (transparent tables).&lt;br /&gt;HRPnnnn: e.g. HRP1000 for infotype 1000&lt;br /&gt;&lt;br /&gt;· &lt;span style="font-weight: bold;"&gt;Time/Travel expense/Payroll/Applicant Tracking data/HR work areas/Documents&lt;/span&gt; (cluster) &lt;br /&gt;  PCLn: e.g. PCL2 for time/payroll results.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tentang Custer Table.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Cluster Table kombinasi dari beberapa table yang keynya biasanya identik di gabung secara pisik dalam satu record dalam database.&lt;/li&gt;&lt;li&gt;Data ditulis dalam databse dengan format terkompresi.&lt;/li&gt;&lt;li&gt;Akse yang cepat dalam membaca/mencari record jika primary key nya sudah di ketahui.&lt;/li&gt;&lt;li&gt;Terdifine di dalam data dictionary sebagai transparant table.&lt;/li&gt;&lt;li&gt;Program External tidak dapat membaca/menginterprestasikan data di dalam cluster table.&lt;/li&gt;&lt;li&gt;Diperlukan element bahasa khusus EXPORT TO DATABASE, IMPORT TO DATABASE dan DELETE&lt;br /&gt; FROM DATABASE yang digunakan untuk memproses di dalam cluster table.&lt;/li&gt;&lt;/ul&gt;Contoh cluster table :&lt;br /&gt;PCL1 - Database for HR work area;&lt;br /&gt;PCL2 - Accounting Results (time, travel expense and payroll);&lt;br /&gt;PCL3 - Applicant tracking data;&lt;br /&gt;PCL4 - Documents, Payroll year-end Tax data&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-6859432791251298768?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/yang-berhubungan-dengan-abap-hr.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-6823460956414531356</guid><pubDate>Fri, 09 Jan 2009 10:48:00 +0000</pubDate><atom:updated>2009-11-11T13:55:39.747+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>ABAP HR Logical Database ( LDB )</title><description>&lt;span class="dropcaps"&gt;L&lt;/span&gt;ogical 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.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;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.&lt;br /&gt;&lt;p&gt;&lt;strong&gt;The LDB biasanya terdiri dari komponen-komponen berikut: &lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Structure&lt;/li&gt;&lt;li&gt;Selections&lt;/li&gt;&lt;li&gt;Database programs&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Bagaimana Logical Database digunakan ?&lt;br /&gt;1. saat membuat sebuah program ABAP&lt;br /&gt;Dengan memasukan Selection (SELECT-OPTION dan Parameters) pada Selection Screen logical database atau program&lt;br /&gt;2. Pada saat run-time&lt;br /&gt;Pada saat run-time, system memproses event dalam program dan dalam logical database secara berurutan.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;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. &lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;3. Merancang Layar Selection Screen.&lt;br /&gt;Standard Selection Logical Database memiliki standard tampilan SELECT-OPTION dan PARAMETERS sesuai dengan urutan deklarasi. jadi system otomatis menampilkan selection screen seperti itu .&lt;br /&gt;Tapi Anda dapat menentukan pilihan anda sendiri untuk layar Logical database ini dengan memilih field-field yang akan di tampilkan. &lt;br /&gt;&lt;br /&gt;contoh LDB di HR adalah biasanya pake PNP. fungsi PNP ini seperti :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;sebagai standard selection screen, biasanya setiap program abap report ada selection screen untuk menginput periode, seleksi data dan parameter lainnya.&lt;/li&gt;&lt;li&gt;Data Retrieval, dalam menyeleksi data yang akan di baca dalam program.&lt;/li&gt;&lt;li&gt;Authorization check.&lt;/li&gt;&lt;/ul&gt;dalam menggunakan PNP ini specifikasi yang harus di ikutkan di dalam program seperti berikut :&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create data structures for infotypes.&lt;br /&gt;&lt;br /&gt;INFOTYPES: 0001, "ORG ASSIGNMENT&lt;br /&gt;0002, "PERSONAL DATA&lt;br /&gt;0008. "BASIC PAY&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Fill data structures with the infotype records. &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Start-of-selection.&lt;br /&gt;GET PERNR.&lt;br /&gt;End-0f-selection.&lt;br /&gt;&lt;br /&gt;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.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;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 :&lt;br /&gt;GET PERNR.&lt;br /&gt;PROVIDE * FROM Pnnnn BETWEEN PN/BEGDA AND PN/ENDDA&lt;br /&gt;If Pnnnn-XXXX = ' '. write:/ Pnnnn-XXXX. endif.&lt;br /&gt;ENDPROVIDE.&lt;br /&gt;&lt;br /&gt;atau kalo mau lebih pendek lagi codingnya pake macro kayak gini&lt;br /&gt;RP-PROVIDE-FROM-LAST P0006 1 PN/BEGDA PN/ENDDA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-6823460956414531356?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/logical-database-ldb.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-2692010072489516488</guid><pubDate>Fri, 09 Jan 2009 10:14:00 +0000</pubDate><atom:updated>2009-11-11T13:55:47.206+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP HR</category><title>ABAP - MACRO</title><description>&lt;span class="dropcaps"&gt;T&lt;/span&gt;au 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.&lt;br /&gt;&lt;br /&gt;Macro berisi cuplikan code program yang dibuat untuk melakukan suatu pekerjaan sehingga dapat dipakai berkali-kali, seperti function module.&lt;br /&gt;&lt;br /&gt;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..&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;biar lebih jelas ada contoh yang aye dapet dari baca-baca terus dipake di program. contohnya :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;&lt;ul&gt;&lt;li&gt;Macro untuk baca(read) infotype. Nama macronya -&gt; RP-READ-INFOTYPE&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;REPORT ZHR00001.&lt;br /&gt;INFOTYPE: 0002.&lt;br /&gt;PARAMETERS: PERNR LIKE P0002-PERNR.&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;RP-READ-INFOTYPE PERNR 0002 P0002 &lt;begin&gt;&lt;end&gt;.&lt;/end&gt;&lt;/begin&gt;&lt;/span&gt;&lt;br /&gt;PROVIDE * FROM P0002&lt;br /&gt;if ... then ...endif.&lt;br /&gt;ENDPROVIDE.&lt;br /&gt;&lt;br /&gt;keliatan kan huruf yg di tebelin, perintahnya kalo pake macro cuma 1 baris, kalo gak pake macro bisa lebih dari 4 baris.&lt;br /&gt;artinya : program membaca infotype 00002 yang akan di tampung di internal table P0002 dengan kriteria periode data mulai dari tanggal &lt;begin&gt;sampai &lt;end&gt;.&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Macro untuk ubah(update) infotype. Nama macronya -&gt; RP-UPDATE&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Sebelum 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.&lt;br /&gt;&lt;br /&gt;INFOTYPES: Pnnnn NAME OLD, "nyiapin internal table buat tampungan&lt;br /&gt;Pnnnn NAME NEW. "sama ini juga internal table untuk tampungan data&lt;br /&gt;GET PERNR. "nah yang ini baca data menggunakan LDB ( logical database )&lt;br /&gt;PROVIDE * FROM OLD "awal blok ini untuk menyaring data sesuai kriteria yang diinginkan&lt;br /&gt;WHERE .... = ... "Change old record&lt;br /&gt;*Save old record in alternate table&lt;br /&gt;NEW = OLD.&lt;br /&gt;ENDPROVIDE. "Akhir blok&lt;br /&gt;RP-UPDATE OLD NEW. "Update changed record&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;Dengan macro data yang kita baca lebih akurat, code jadi lebih singkat, program berjalan lebih cepat.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-2692010072489516488?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/sap-macro.html</link><author>noreply@blogger.com (D i o c i o)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-8903058954273916066.post-3060499298005831790</guid><pubDate>Thu, 08 Jan 2009 10:13:00 +0000</pubDate><atom:updated>2009-11-11T13:56:01.223+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ABAP</category><title>Belajar ABAP Dialog Programming</title><description>&lt;span style="font-weight: bold;"&gt;Belajar Dialog Programming&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="dropcaps"&gt;B&lt;/span&gt;uat yang lagi belajar mungkin ini bisa tambah ngerti tentang dialog programming di SAP. kita mulai dari yang simple aja deh ya.&lt;br /&gt;&lt;br /&gt;1. bikin di SE38 program nya.  Isi Nama programkemudian click Tombol Create.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXgNkfWIoI/AAAAAAAAAAM/w8Qu73D-2KM/s1600-h/slide0001_image001.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 190px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXgNkfWIoI/AAAAAAAAAAM/w8Qu73D-2KM/s320/slide0001_image001.jpg" alt="" id="BLOGGER_PHOTO_ID_5288879861154587266" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Isi title nya, dan pilih type dari program module pool. Kemudian click tombol save.&lt;br /&gt;Click tombol local object.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWXhJUAJYMI/AAAAAAAAAAc/WQVwiiWRv3A/s1600-h/slide0002_image005.gif"&gt;&lt;img style="cursor: pointer; width: 320px; height: 191px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWXhJUAJYMI/AAAAAAAAAAc/WQVwiiWRv3A/s320/slide0002_image005.gif" alt="" id="BLOGGER_PHOTO_ID_5288880887520911554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Click tombol Object list, untuk melihat object yang ada, disisi kiri.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXiJV6HlVI/AAAAAAAAAAk/uw-gmRckm6o/s1600-h/slide0003_image004.gif"&gt;&lt;img style="cursor: pointer; width: 296px; height: 161px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXiJV6HlVI/AAAAAAAAAAk/uw-gmRckm6o/s320/slide0003_image004.gif" alt="" id="BLOGGER_PHOTO_ID_5288881987544126802" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2. Create screen. Click kanan di Object list pilih Create screen.&lt;br /&gt;Isi Screen number nya, kita mulai dengan 9000.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXimzkaH9I/AAAAAAAAAAs/phKGIVQSANo/s1600-h/slide0004_image009.gif"&gt;&lt;img style="cursor: pointer; width: 223px; height: 261px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXimzkaH9I/AAAAAAAAAAs/phKGIVQSANo/s320/slide0004_image009.gif" alt="" id="BLOGGER_PHOTO_ID_5288882493722337234" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Isi Description dari screen nya, kemujdian click tombol Layout diatas untuk mulai mendisain screen.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWXjBpHIzYI/AAAAAAAAAA0/XO5oStlS2EI/s1600-h/slide0005_image011.gif"&gt;&lt;img style="cursor: pointer; width: 291px; height: 244px;" src="http://2.bp.blogspot.com/_TUsjEl6QdGc/SWXjBpHIzYI/AAAAAAAAAA0/XO5oStlS2EI/s320/slide0005_image011.gif" alt="" id="BLOGGER_PHOTO_ID_5288882954771680642" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Buat Screen seperi contoh, untuk button isikan di BTN1 sebagai fctCode sebagai nilai pada saat button di click.&lt;br /&gt;Save screen kemudian keluar dari screen layout.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXjcvhf-VI/AAAAAAAAAA8/evCc6uA0uqA/s1600-h/slide0006_image014.gif"&gt;&lt;img style="cursor: pointer; width: 274px; height: 108px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXjcvhf-VI/AAAAAAAAAA8/evCc6uA0uqA/s320/slide0006_image014.gif" alt="" id="BLOGGER_PHOTO_ID_5288883420349331794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Click Tab Flow Logic untuk menulis code logic dari program.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWXjuUfOnbI/AAAAAAAAABE/6AxFKA24HZ8/s1600-h/slide0006_image016.jpg"&gt;&lt;img style="cursor: pointer; width: 320px; height: 170px;" src="http://3.bp.blogspot.com/_TUsjEl6QdGc/SWXjuUfOnbI/AAAAAAAAABE/6AxFKA24HZ8/s320/slide0006_image016.jpg" alt="" id="BLOGGER_PHOTO_ID_5288883722329693618" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Copy Paste codin di bawah ini.&lt;br /&gt;&lt;div shape="_x0000_s1026" class="O"&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;PROGRAM ZHELLO .&lt;br /&gt;DATA: ZNAMA(80) TYPE C.&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       MODULE USER_COMMAND_9000 INPUT                                *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;MODULE USER_COMMAND_9000 INPUT.&lt;br /&gt;CASE SY-UCOMM.&lt;br /&gt;WHEN 'BTNI'.&lt;br /&gt;MESSAGE I014(DEMOOFFICEINTEGRATIO) WITH ZNAMA.&lt;br /&gt;WHEN 'EXIT' OR 'CANCEL' OR 'BACK'.&lt;br /&gt;LEAVE SCREEN.&lt;br /&gt;ENDCASE.&lt;br /&gt;ENDMODULE.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;*---------------------------------------------------------------------*&lt;br /&gt;*       MODULE STATUS_9000 OUTPUT                                     *&lt;br /&gt;*---------------------------------------------------------------------*&lt;br /&gt;MODULE STATUS_9000 OUTPUT.&lt;br /&gt;SET PF-STATUS 'MSTATUS'.&lt;br /&gt;*  SET TITLEBAR 'xxx'.&lt;br /&gt;ENDMODULE.                 " STATUS_9000  OUTPUT&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;3. Create GUI Status. Berfungsi untuk navigasi.&lt;br /&gt;Click kanan di object list create Gui Status.&lt;br /&gt;&lt;p:colorscheme colors="#FFFFFF,#000000,#808080,#000000,#BBE0E3,#333399,#009999,#99CC00"&gt;&lt;br /&gt;&lt;/p:colorscheme&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXkRRwkOuI/AAAAAAAAABM/ai6Y_B2r7po/s1600-h/slide0008_image018.jpg"&gt;&lt;img style="cursor: pointer; width: 304px; height: 110px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXkRRwkOuI/AAAAAAAAABM/ai6Y_B2r7po/s320/slide0008_image018.jpg" alt="" id="BLOGGER_PHOTO_ID_5288884322892528354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Create Transaction Code, untuk memanggil program yang kita bikin. Caranya sama click kanan di object list pilih create transacation. Isi tcode nya, isi programnya dengan program yang kita bikin, isi screen nya sesuai yang screen yang kita bikin.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXknZRrp4I/AAAAAAAAABU/LQ93aZRtGEY/s1600-h/slide0009_image001.gif"&gt;&lt;img style="cursor: pointer; width: 249px; height: 320px;" src="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXknZRrp4I/AAAAAAAAABU/LQ93aZRtGEY/s320/slide0009_image001.gif" alt="" id="BLOGGER_PHOTO_ID_5288884702867597186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;nah selesai deh...&lt;br /&gt;tinggal di test dengan memanggil tcode nya zhello. selamat mencoba ya.... kalo gak bisa tanya aja.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXlh0Emv3I/AAAAAAAAABc/OmVbU4kBF4g/s1600-h/slide0010_image002.jpg"&gt;&lt;img style="cursor: pointer; width: 228px; height: 134px;" src="http://1.bp.blogspot.com/_TUsjEl6QdGc/SWXlh0Emv3I/AAAAAAAAABc/OmVbU4kBF4g/s320/slide0010_image002.jpg" alt="" id="BLOGGER_PHOTO_ID_5288885706492919666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8903058954273916066-3060499298005831790?l=bukuabaphr.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://bukuabaphr.blogspot.com/2009/01/belajar-abap-dialog-programming.html</link><author>noreply@blogger.com (D i o c i o)</author><media:thumbnail url="http://4.bp.blogspot.com/_TUsjEl6QdGc/SWXgNkfWIoI/AAAAAAAAAAM/w8Qu73D-2KM/s72-c/slide0001_image001.jpg" height="72" width="72" /><thr:total>0</thr:total></item><language>en-us</language><media:rating>nonadult</media:rating></channel></rss>

