K
K
o
o
n
n
e
e
k
k
s
s
i
i
S
S
A
A
P
P
r
r
/
/
3
3
m
m
e
e
n
n
g
g
g
g
u
u
n
n
a
a
k
k
a
a
n
n
D
D
e
e
l
l
p
p
h
h
i
i
Albertus Reinandang
reinandang@yahoo.com; reinandang@tingold.com http://www.tingold.comLisensi Dokumen:
Copyright © 2005 IlmuKomputer.ComSeluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari
IlmuKomputer.Com.
PENDAHULUAN
System Application Product in Data Processing atau yang lebih dikenal sebagai SAP merupakan software ERP (Enterprise Resource Planning) yang terbesar didunia. Software yang berasal dari Jerman ini sudah banyak digunakan diseluruh belahan dunia, bahkan hampir seluruh perusahaan besar maupun menengah di Indonesia telah menggunakan SAP, seperti TELKOM, Indosat, Excelcomido, BRI, Bank Mandiri, HSBC, Indofood, Wing’s Group, Sari Husada dan masih banyak lagi. SAP sendiri terdiri dari banyak produk untuk tingkatan usaha, seperti SAP Bussines One yang banyak digunakan UKM dan SAP r/3 yang digunakan untuk perusahaan besar.
Implementasi SAP r/3 disuatu perusahaan diperlukan adaptasi yang cukup besar dan lama, dimana SAP ini menghubungkan semua lini produksi dan seluruh departement di perusahaan. SAP r/3 merupakan software yang sangat dinamis, dinama semua menu dan tampilan program dapat di-costumazing menggunakan bahasa pemrograman ABAP sesuai dengan kebutuhan perusahaan. Selain itu SAP r/3 memungkinkan pembuatan user interface yang lebih baik menggunakan bahasa pemrograman yang lainnya seperti JAVA, PHP, Visual Basic, ASP, VB.net, Lotus Script, Delphi dan sebagainya. Tentunya untuk perusahaan yang menggunakan SAP r/3, hal ini merupakan suatu nilai tambah yang memiliki nilai yang tinggi, dimana perusahaan bisa menggabungkan dan mengembangkan semua aplikasi yang ada dan dibutuhkan perusahaan.
Delphi merupakan salah satu bahasa pemrograman yang sangat powerfull untuk mebuat aplikasi berbasis windows. Salah satu keunggulan delphi adalah kecepatan dalam pembuatan suatu aplikasi. Maka dari itu, penulis ingin membagi pengetahuan dan ilmu mengenai koneksi SAP r/3 menggunakan Delphi. Dalam artikel berikut ini diperlukan 2 software yang diinstal dikomputer, yaitu : Borland Delphi dan SAP GUI versi 6.20 keatas. Selain itu dalam artikel ini diharapkan pembaca sudah menguasai Delphi dan memiliki authorisasi untuk menggunakan Remote Function Call (RFC) dan BAPI dari Server SAP r/3.
KONFIGURASI KOMPONEN
Konfigurasi komponen dilakukan untuk mengimport ActiveX yang berasal dari SAP GUI, yaitu SAP Login Control dan SAP Remote Fuction Call Control.
Langkah-langkah konfigurasi : 1. Jalankan program Delphi 2. Buka Import AxtiveX,
> Component > Import ActiveX Control… 3. Pilih “ SAP Logon Control “
4. Tekan tombol “ install “
5. Tekan tombol “ Ok “
6. Lakukan langkan 2 hingga 5 untuk menginstal “SAP Remote Fuction Call Control “ 7. Periksa di Pallete page “ AxtiveX “
SAPFunctions SAPLogonControl
MEMBUAT LOGIN SAP
Dalam sistem SAP ada aturan yang mewajibkan jika ingin mengakses suatu fitur di SAP harus melalui sistem Logon SAP. Logon SAP memerlukan kode-kode khusus untuk yang menjadi standar sistem logon di SAP, yaitu :
• Client ( Kode Client server SAP )
• ApplicationServer ( server SAP )
• SystemNumber ( System Numner server SAP )
• System ( System ID server SAP )
• User ( nama pengguna )
• Password ( Kata Kunci )
• Language ( Bahasa yang digunakan )
Jika tidak memenuhi persyaratan kode diatas maka fitur-fitur SAP tidak dapat digunakan. Konsep dan format penggunaan SAPLogonControl :
… Deklarasi koneksi baru … … Isi variabel koneksi …
… login … Contoh :
KoneksiSAP:= SAPLogoncontrol1. newConnection; if KoneksiSAP.LogOn(0,false) = true then
showMessage('Anda berhasil login ke SAP !!');
… LogOn(0,false) … jika disetting false maka akan muncul menu dialog login standar dari ActiveX. Berikut ini ada dua soal latihan yang dapat di coba :
A. Login SAP sederhana
No Deskripsi Keterangan
1 Tingkat kesulitan Pemula 2 Komponen yang digunakan SAPLogonControl
Langkah-langkah pembuatan : 1. Buat project/application baru
2. Tambahkan satu komponen “ SAPLogonControl ” pada Form
No Kompoenen Properties Nilai
1 TSAPLogonControl Name SAPLogonControl11
3. Tambahkan event OnClik pada komponen SAPLogonControl1 dengan kode berikut ini : procedure TForm1.SAPLogonControl1Click(Sender: TObject); var KoneksiSAP : variant;
begin
KoneksiSAP:= SAPLogoncontrol1. newConnection; if KoneksiSAP.LogOn(0,false) = true then
showMessage('Anda berhasil login ke SAP !!');
end;
4. Tekan tombol “ Run “ untuk menguji kode diatas.
B. Login SAP menggunakan input sendiri
No Deskripsi Keterangan
1 Tingkat kesulitan Pemula
2 Komponen yang digunakan TSAPLogonControl
TEdit
TLabel
Langkah-langkah pembuatan : 1. Buat project/application baru
2. Desain Form seperti pada gambar dibawah ini :
No Kompoenen Properties Nilai
1 TSAPLogonControl Name SAPLogonControl11
Lainnya Default
2 TEdit Name eApplicationServer
Text Null (kosong)
3 TEdit Name eSystemNumber
Text Null (kosong)
4 TEdit Name eClient
Text Null (kosong)
5 TEdit Name eSystem
Text Null (kosong)
6 TEdit Name eUsername
Text Null (kosong)
7 TEdit Name ePssword
Text Null (kosong)
8 TEdit Name eLanguage
3. Tambahkan event OnClik pada komponen SAPLogonControl1 dengan kode berikut ini : procedure TForm1.SAPLogonControl1Click(Sender: TObject); var KoneksiSAP : variant;
begin
KoneksiSAP:= SAPLogoncontrol1. newConnection; KoneksiSAP.Client := eClient.Text; KoneksiSAP.ApplicationServer := eAppilcationServer.Text; KoneksiSAP.SystemNumber := eSystemNumber.Text; KoneksiSAP.System := eSystem.Text; KoneksiSAP.User := Ansiuppercase(eUsername.text); KoneksiSAP.Password := ePassword.text; KoneksiSAP.Language := eLanguage.Text; if KoneksiSAP.LogOn(0,true) = true then
showMessage('Anda berhasil login ke SAP !!');
end;
MEMANGGIL DAN MENGGUNAKAN RFC/BAPI
RFC/BAPI merupakan sarana untuk komunikasi antara SAP dengan bahasa pemrograman yang lainnya. RFC dibuat dari sisi SAP menggunakan bahasa pemrograman ABAP. Tidak sembarangan user SAP dapat mengakses membuat RFC, hanya user yang memiliki access key saja yang dapat membuat RFC. Access key didapatkan dari http://service.sap.com. RFC/BAPI dapat diakses melalui Transcation Code (t-code) “ SE37 ”.
Dalam rancangan RFC atau BAPI terdapat lima tipe variabel, yaitu Import, Export, Changing, Tables dan Exeptions. Pada umumnya, variable yang digunakan adalah Import, Export dan Tabels.
Variabel Import dalam SAPFunctions dideklarasikan sebagai function “ exports “, sedangkan variable Exprot dideklarasikan sebagai function “ imports “.
Konsep dan format penggunaan SAPFunctions : … Koneksi SAPFunction …
… Panggil SAPFunctions …
… Isi (upload) variabel Import/Tables di SAP … … Panggil (download) variabel Export/Tables di SAP … … Tutup Koneksi …
Contoh : …
SAPFunctions1.KoneksiSAP := KoneksiSAP;
Funct := SAPFunctions1.add('/CRYSTAL/GET_USER_LIST'); //Isi (upload) variabel Import di SAP
Funct.exports('PERNR').value := Edit1.Text; if not Funct.call then
//Jika RFC atau BAPI gagal dipanggil showMessage(Funct.exception)
else begin
//Panggil (download) variabel Emport dan Tables di SAP Tabel := Funct.Tabels.item('USERACTGRP');
Edit2.Text:= Funct.exports('PERNR').value; end;
Berikut ini ada soal untuk latihan memanggil RFC :
No Deskripsi Keterangan
1 Tingkat kesulitan Menengah 2 Komponen yang digunakan TSAPLogonControl
TSAPFunctions
TEdit
TLabel
TPanel
TStringGrid
3 RFC yang digunakan /CRYSTAL/GET_USER_LIST Langkah-langkah pembuatan :
1. Buat project/application baru
2. Desain Form seperti pada gambar dibawah ini :
No Kompoenen Properties Nilai
1 TSAPLogonControl Name SAPLogonControl11
Lainnya Default
2 TEdit Name eApplicationServer
Text Null (kosong)
3 TEdit Name eSystemNumber
Text Null (kosong)
4 TEdit Name eClient
Text Null (kosong)
5 TEdit Name eSystem
Text Null (kosong)
6 TEdit Name eUsername
Text Null (kosong)
7 TEdit Name ePssword
Text Null (kosong)
8 TEdit Name eLanguage
Text Null (kosong)
9 TSAPFunctions Name SAPFunctions1
Lainnya Default
DefaultColWidth 100
DefaultRowHeight 19
Align alClient
3. Tambahkan event OnShow pada Form
procedure TForm1.FormShow(Sender: TObject); begin
//Mengatur Tampilan StringGrid StringGrid1.ColCount:=8; StringGrid1.Cells[0,0]:='No'; StringGrid1.Cells[1,0]:='MANDT'; StringGrid1.Cells[2,0]:='BNAME'; StringGrid1.Cells[3,0]:='SUBSYSTEM'; StringGrid1.Cells[4,0]:='AGR_NAME'; StringGrid1.Cells[5,0]:='FROM_DAT'; StringGrid1.Cells[6,0]:='TO_DAT'; StringGrid1.Cells[7,0]:='ORG_FLAG'; end;
4. Tambahkan event OnClik pada komponen SAPLogonControl1 dengan kode berikut ini : procedure TForm1.SAPLogonControl1Click(Sender: TObject); var KoneksiSAP, Funct, Tabel : variant;
i :integer; begin
KoneksiSAP:= SAPLogoncontrol1. newConnection; KoneksiSAP.Client := eClient.Text; KoneksiSAP.ApplicationServer := eAppilcationServer.Text; KoneksiSAP.SystemNumber := eSystemNumber.Text; KoneksiSAP.System := eSystem.Text; KoneksiSAP.User := Ansiuppercase(eUsername.text); KoneksiSAP.Password := ePassword.text; KoneksiSAP.Language := eLanguage.Text; if KoneksiSAP.LogOn(0,true) = true then
begin
//Deklarasi koneksi untuk RFC
SAPFunctions1.Connection := KoneksiSAP; //Panggil RFC atao BAPI
Funct := SAPFunctions1.add('/CRYSTAL/GET_USER_LIST');
//Jika RFC atau BAPI memerlukan variabel exports ( kalau di SAP import )
//Funct.exports(< Nama variabel Import di SAP >).value := < nilai >; //Contoh :
//Funct.exports('PERNR').value := Edit1.Text;
if not Funct.call then
//Jika RFC atau BAPI gagal dipanggil showMessage(Funct.exception)
//< nilai >:= Funct.imports(< Nama variabel Export di SAP >).value ; //Contoh : //Edit2.Text:= Funct.exports('PERNR').value; StringGrid1.rowCount := Tabel.rowcount + 1; for i := 1 to StringGrid1.rowCount -1 do begin StringGrid1.cells[0,i] := IntToStr(i); //Mengambil nilai pada Tabel
//Tabel.Value(< data ke >, < Nama Field > )
StringGrid1.cells[1,i] := Tabel.Value(i,'MANDT'); StringGrid1.cells[2,i] := Tabel.Value(i,'BNAME'); StringGrid1.cells[3,i] := Tabel.Value(i,'SUBSYSTEM'); StringGrid1.cells[4,i] := Tabel.Value(i,'AGR_NAME'); StringGrid1.cells[5,i] := Tabel.Value(i,'FROM_DAT'); StringGrid1.cells[6,i] := Tabel.Value(i,'TO_DAT'); StringGrid1.cells[7,i] := Tabel.Value(i,'ORG_FLAG'); end; StringGrid1.visible := True; end;
//Menutup koneksi ke SAP KoneksiSAP.LogOff;
end; end;
5. Tekan tombol “ Run “ untuk menguji kode diatas.
Modul yang dijelaskan diatas merupakan salah satu koneksi SAP r/3 menggunakan bahasa pemrograman lain, masih banyak sekali bahasa pemrograman lainnya yang dapat berhubungan dengan SAP. Jika ada kesempatan penulis akan membuat tulisan mengenai koneksi SAP r/3 menggunakan bahasa pemograman selain delphi.
Saya ucapkan terima kasih kepada rekan-rekan yang membaca artikel ini, semoga artikel ini dapat berguna untuk memajukan bangsa kita, INDONESIA.
Kritik dan saran kirim ke email : reinandang@yahoo.com atau reinandang@tingold.com
BIOGRAFI PENULIS
Albertus Reinandang. Lahir di Bogor, 20 Mei 1981. Menamatkan SMU di SMU Negeri 2 Bogor, Bogor pada tahun 1999. Menyelesaikan program S1 pada jurusan Teknologi Industri Pertanian di Intitut Pertanian Bogor pada tahun 2003. Saat ini (tahun 2005), penulis bekerja di salah satu perusahaan konsultan SAP di indonesia sebagai junior konsultan. Kompetensi inti adalah pada Software developer untuk aplikasi perkantoran dan developer thirdparty untuk SAP r/3.
Penulis berpengalaman dalam mengembangkan software menggunakan beberapa bahasa pemrograman, dan dapat menggabungkannya menjadi satu aplikasi yang cukup handal.
Albertus Reinandang adalah salah satu orang yang belajar teknologi informasi secara otodidak, belajar dari pengalaman, teman, internet, buku, majalah dan terutama dari ilmukomputer.com. Maka dari itu sebagai rasa terima kasih ke ilmukomputer.com serta para penulis-nya, penulis ingin membagi pengetahuannya kepada seluruh bangsa indonesia melalui ilmukomputer.com.
Informasi lebih lanjut tentang penulis ini bisa didapat melalui: URL: http://www.tingold.com