Pengumpan:
Tulisan
Komentar

Arsip untuk ‘Programming’ Kategori

Mengintegrasikan Aplikasi Web dengan SAP

Saya selama ini hanya mengembangkan aplikasi web dengan database SQL Server. Suatu saat ada kebutuhan bahwa aplikasi web yang saya buat harus bisa terintegrasi dengan SAP. Setelah berdiskusi dengan ABAP-ernya ternyata memang dimungkinkan membuat aplikasi diluar SAP yang menggunakan function-function SAP. Salah satu caranya adalah dengan BAPI (Business Application Programming Interface).

Kebetulan saya menggunakan Microsoft Windows 2000 Server dengan IIS sebagai webservernya. Saya masih menggunakan ASP Classic untuk scripting languagenya.

Sebelum kita melakukan pemrograman di ASP, kita harus terlebih dahulu menginstall SAP di server, karena pada dasarnya aplikasi yang kita buat nantinya akan berjalan di Server, dan untuk berkomnunikasi dengan SAP memerlukan komponent-komponen (DLL, OCX dll) yang sudah terinstall di server. Kita harus memastikan bahwa SAP bisa berjalan di web server kita.

ABAP akan membuat function BAPI sesuai yang kita inginkan, contoh function BAPI dibawah digunakan untuk membaca data pegawai di SAP berdasarkan parameter-parameter yang sudah dimasukkan, parameter untuk inputnya adalah GEBR (Business Area) dan SNAME (Employee Name), jika fungsi ini dipanggil maka akan mengeluarkan data ke tabel TCPROL_EMP, tabel inilah yang nantinya kita baca di ASP (web application). Setelah ditampilkan, tentunya tergantung dengan keinginan kita data tersebut akan diproses seperti apa di ASP. Berikut adalah coding ASP yang dimaksud :


Set oFunctions = Server.CreateObject(“SAP.Functions”)
oFunctions.Connection.Client = “200″
oFunctions.Connection.User = “SAPUSR”
oFunctions.Connection.Password = “SAPPWD”
oFunctions.Connection.Language = “EN”
oFunctions.Connection.System = “AGD”
oFunctions.Connection.ApplicationServer = “100.100.10.132″
oFunctions.Connection.SystemNumber = “00″

If oFunctions.Connection.logon(0, True) Then
Set oBFunction = oFunctions.Add(“ZCPROL_EMPLOYEE”)
Set oCompcode = oBFunction.Tables(“TCPROL_EMP”)
Set oBA = oBFunction.Exports(“P01_GSBER”)
Set oName = oBFunction.Exports(“P01_SNAME”)
oBA.value =request(“BA”)
oName.value =request(“Nama”)
oBFunction.Call
If oBFunction.Exception <> “” Then
response.write “error in call ZCPROL_EMPLOYEE”
Else
Set oReturn = oBFunction.Imports(“RETURN”)
If oReturn(“ERROR”) <> “S” Then
Response.write “No Data Found, Choose another selection..!”
Else
response.write “<table>” For Each oRow In oCompcode.Rows
response.write “<tr><td>” & oRow(“BTRTL”) & “</td><td>” & oRow(“PERNR”) & “</td><td>” & oRow(“SNAME”) & “</td></tr>”
Next
response.write “<table>”
Else
response.write “connection failed”
End If

Contoh diatas hanyalah salah satu contoh script ASP yang mengakses BAPI Function di SAP disini parameter masukanya berupa variabel dan keluaran fungsi berupa tabel TCPROL_EMP. Tentunya masing-masing function bisa berbeda cara mengaksesnya.

Untuk mentranslate bahasa

Berkreasi Dengan Iframe

Dalam pengembangan aplikasi berbasis Web. Terkadang kita ingin menggabungkan satu halaman web dengan halaman lain sehingga terlihat lebih menyatu dan interaktif. Dengan AJAX (yang sudah saya tulis sebelumnya) dimungkinkan merubah isi bagian dari halaman web tanpa merefresh secara keseluruhan halaman utamanya.

Cara lain yang lebih mudah adalah dengan menggunakan <IFRAME>. Iframe merupakan object pengembangan dari FRAMESET, dimana kalau menggunakan frame di HTML maka memungkinkan beberapa halaman web digabung dalam sebuah halaman, dan tentunya masing-masing komponen halamn ini bisa berjalan sendiri-sendiri (tanpa tergantung pada halaman induknya). Pembuatan HTML dengan metode Frame sekarang ini tidak popluer lagi karena kelihatan tidak professional, dan kalau di cetak akan terjadi halaman yang terpisah-pisah.

Object <IFRAME> sedikit berbeda, dimana IFRAME ini bisa disisipkan dalam halaman utama HTML, dan bisa diatur lebar dan tingginya. User tidak akan tahu bahwa didalam sebuah dokumen HTML itu disisipkan IFRAME atau tidak (kecuali kalau user melakukan view source). Agar supaya IFRAME yang kita buat tidak nampak sebagai IFRAME ada beberapa trik yang harus dilakukan.

Properties yang penting dalam object IFRAME :

  • Scrolling : parameter ini menentukan apakah IFRAME akan ada scrollnya atau tidak. Gunakan Scrolling=’no’ jika tidak ingin ada scrollbar
  • ALLOWTRANSPARENCY : option ini menentukan apakah frame yang kita buat transparan atau tidak. Perlu diingat penggunaan option ini harus dibarengi dengan design HTML yang mengisi frame tersebut. Dimana properties HTML yang mengisinya juga harus dibuat transparant : <body topmargin=0 leftmargin=0 STYLE=”background-color: transparent;”>
  • FrameBorder : parameter ini menentukan berapa lebar border dari frame yang kita buat. Gunakan Frameborder=0 jika menginginkan
  • SRC : parameter ini menunjukkan alamat web yang mengisi frame tersebut

Contoh : <iframe ALLOWTRANSPARENCY scrolling=’no’ width=’180′ id=’idContent’ height=’20′ src=’http://xww.idn.xerox.com/webmail/info.asp&#8217; frameborder=0></iframe>
Dengan setting diatas maka Iframe yang kita buat tidak kelihatan sebagai frame, seperti HTML biasa saja tanpa frame.
Selamat mencoba.

Untuk mentranslate bahasa

Pengertian

AJAX adalah singkatan dari Asynchronous JavaScript And XML. AJAX bukan merupakan bahasa pemrograman baru, tetapi merupakan teknik yang membuat aplikasi web kita menjadi lebih baik, lebih cepat dan lebih interaktif.

Jika anda pengguna Yahoo!Mail atau GMail atau pengguna blog di wordpress ini, semuanya sudah dibuat dengan teknik AJAX. Dengan menggunakan AJAX maka script yang berjalan disisi client (JavaScript) bisa berkomunikasi langsung dengan server tanpa merefresh ulang keseluruhan halaman yang ada. Jadi JavaScript yang berjalan disisi client bisa menjalankan script disisi server secara background (script di sisi server bisa berupa ASP, PHP, JSP dll).

Contoh mudah : Misalnya ada form HTML yang dipakai untuk registrasi user, dimana ada kolom propinsi yang berupa pilihan (combobox), propinsi ini tergantung dari Negara yang dipilih sebelumnya. Pada saat user memilih Negara, maka ada script JavaScript yang diexecute untuk membaca ke server list dari propinsi yang ada di negara yang dipilih (secara background), setelah ketemu akan mengembalikan nilai yang akan menjadi pilihan propinsi.

AJAX sebenarnya menggunakan teknologi yang sudah ada : JavaScript, HTML, DHTML, CSS dan XML. Jika anda sudah terbiasa menggunakan DHTML, bagaimana membuat layer menggunakan <span>, <div>, menggunakan innerHTML atau outerHTML, maka teknologi seperti itu juga akan dipakai dalam AJAX. Dimana setelah JavaScript mendapatkan data dari server, maka data tersebut harus dilempar ke client melalui object2 yang sudah kita definisikan sebelumnya (menggunakan <span> atau ,<div>)

AJAX menggunakan HTTP Request

Dalam aplikasi JavaScript tradisional, jika anda ingin mendapatkan informasi dari database (di sisi server) maka anda harus membuat HTML form dan mengirimnya ke server (pakai method POST atau GET). Setelah form kita isi dan click ‘submit’ maka informasi yang kita masukkan akan dikirim ke server, diproses oleh server script dan halaman HTML baru akan di load beserta data yang diinginkan. Server selalu mengembalikan keseluruhan halaman setiap user submit data. Disinilah yang menyebabkan pemborosan sehingga aplikasi web terasa lambat.

Dengan menggunakan object yang ada di JavaScript yaitu XMLHTTPRequest, maka proses request ke server ini bisa dilakukan oleh JavaScript secara langsung. JavaScript ini bisa ditriger dari user input misalnya onchange, onclick, onkeyup, onmousedown dll. Sehingga bisa jadi user tidak tahu kalau JavaScript sudah request ke server sebelum user submit. Hal ini sangat berguna saat ada diperlukan validasi ke server sebelum user submit form secara keseluruhan.

Google SuggestUntuk melihat contoh nyata dari AJAX adalah Google Suggest http://www.google.com/webhp?complete=1&hl=en, kalau kita menuliskan keyword maka goggle bisa langsung menghitung keyword tersebut ke database sebelum kita submit. Jadi disini pada tiap entri-an kita di keyword JavaScrypt jalan mengexecute script di server sehingga bisa menampilkan/menghitung jumlah keyword tersebut di database. Atau kalau anda punya Account BLOGGER disitu pada saat saat kita edit tulisan/draft secara periodik hasil yang kita tulis langsung tersimpan di server tanpa harus click tombol Simpan/Save.

Kuncinya adalah object XMLHttpRequest, karena dengan menggunakan object ini dari javascript, maka request data ke server dapat dilakukan tanpa mengirimkan keseluruhan halaman. XMLHttpRequest sudah disupport dalam Internet Explorer 5.0+, Safaru 1.2, Mozilla 1.0/Firefox, Opera 8+ dan Netscape 7.

Attributes

readyState the code successively changes value from 0 to 4 that means
for “ready”.

Methods

open(mode,
url, boolean)
mode: type of request, GET or POST url: the location of the file, with a path. boolean: true (asynchronous) / false (synchronous). optionally, a login and a password may be added to arguments.

ReadyState merupakan atribute yang cukup benting, berikut adalah keterangan nilai dari atribut readystate

State Description

Ada sedikit perbedaan mengenaih initialisasi Object XMLHttpRequest di beberapa browser :

Internet Explorer :

  • xmlHttp = new ActiveXObject (“Msxml2.XMLHTTP”) ;
  • xmlHttp = new ActiveXObject (“Microsoft.XMLHTTP”) ;

Firefox, Opera 8.0+, Safari

  • xmlHTTP = new XMLHttpRequest();

Untuk mempermudah pemahaman tentang teknik AJAX, berikut adalah contoh script. Script terdiri dari 2 file, file pertama adalah file HTML yang sudah ada script JavaScript yang berfungsi memanggil server script, file ke dua adalah file server script (saya menggunakan Active Server Pages). Kedua file tersebut dapat dilihat di script dibawah ini :

File "AJAX.HTML" 
<html>
<body>
<script type="text/javascript">
 function ajaxFunction()
  {
   var xmlHttp;
  try
    {
     // Firefox, Opera 8.0+, Safari
     xmlHttp=new XMLHttpRequest();
     }
  catch (e)
    {
     // Internet Explorer
     try
      {
       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
       }
    catch (e)
      {
       try
        {
         xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
         }
      catch (e)
        {
         alert("Your browser does not support AJAX!");
         return false;
         }
       }
     }
    xmlHttp.onreadystatechange=function()
      {
      if(xmlHttp.readyState==4)
        {
        document.myForm.time.value=xmlHttp.responseText;
        }
      }
    xmlHttp.open("GET","time.asp",true);
    xmlHttp.send(null);
   }
 </script>
<form name="myForm">
<input type="button" value="Test AJAX" onclick="ajaxFunction();" name="username" />
Time: <input type="text" name="time" size="50" />
</form>
</body>

</html>

File “Time.asp”

<%
response.expires=-1
response.write "Waktu server saat ini adalah " & (time)

%>

Contoh diatas merupakan contoh teknik AJAX yang sangat simple, dimana file AJAX.Html akan menampilkan sebuah tombol ‘Test AJAX’ dan sebuah TextBox yangn nantinya berisi hasil dari script ‘Time.asp’. Jika tombol ‘Test Ajax’ diclick maka script ajaxFunction akan dijalankan.
If (xmlHttp.readyState==4) maksudnya adalah untuk ngecek apakah request sudah selesai , jika sudah selesai maka hasilnya (responseText) ditaruh ke dalam value dari textbox ‘time’. Maka tampillah waktu server di textbox tersebut. Lihat juga tutorial AJAX di http://www.w3schools.com/ajax/default.asp

Untuk mentranslate bahasa

Ikuti

Get every new post delivered to your Inbox.

Bergabunglah dengan 28 pengikut lainnya.