Embedded Electronic dan SAP

SAP RFC
Beberapa tahun ke belakang (sebelum ECC version) kebanyakan interface ke SAP dilakukan dengan RFC dengan basis CPIC connection dengan selanjutnya muncul istilah-istilah ITS (Internet Transaction Server), lalu BSP (Business Server Page).

Di era yang saya sebutkan di atas ada beberapa kali saya berusaha membuat sebuah embedded device yang mampu terkoneksi ke SAP dengan menggunakan TCP/IC connection dengan mencoba mem-parsing RFC data packet. Saya bangun TCP/IP embedded system dengan menggunakan ATMega32 dan sebuah card ethernet ISA bekas. Lalu saya capture packet-packet data dari sebuah PC yang login ke SAP menggunakan software Ethereal/Wireshack . Packet-paket data tersebut saya masukkan ke dalam SD Card dalam bentuk binari yang kemudian dibaca microcontroller lalu ditransmissikan melalui jaringan ethernet ke SAP server seolah-olah layaknya sebuah PC.  And yes,  it connected dan berhasil log on ke SAP as RFC user. Tapi semua itu hanya sampai di sana sebab saya tidak pernah tahu detail parsing dari data di dalam packet-packet tersebut. Karena memang packet tersebut propriatery dari SAP dan tidak akan di-publish strukturnya. Namun,  saya cukup senang bisa log on dari embedded system.

SAP WebService
Thanks to SAP yang pada versi selanjutnya mengembangkan kemampuan Webservice sebagai salah satu kemampuan interface-nya. Pada saat mengetahui bahwa SAP support webservice ide-ide saya berkembang dan terpancing dengan liar. Bagaimana tidak terpancing,  sudah terbayang oleh saya berbagai device dan platform yang akan mudah dihubungkan dengan SAP.  Berbagai perangkat mobile, webpad seperti IPad, Samsung Galaxy, Apad dan bahkan Cellular phone mid-low (JSR-000172 J2ME support) saat ini pun sudah support MIDP.  Apalagi smartphone seperti Blackberry. Ya Blackberry, langsung terbayang oleh saya melakukan release document, melakukan transfer posting bahkan bagaimana dengan mini management cockpit untuk executive report melalui Blackbery (BB).  Semangat bereksperimen mendorong saya untuk hunting low level BB product dengan OS minimun untuk dijadikan based development, dan akhirnya saya berhasil memperoleh satu buah BB tua seri 8700 dengan BB OS 4.5.

Lalu bekerjalah downloader untuk memilih IDE (Integrated Development Environment) yang akan digunakan, NetBean, Eclipse, sampai Microsoft Visual Studio, lalu JRE (Java Runtime Engine), Blackberry JDE (Java Development Ennviroment) saya coba satu persatu, beberapa J2ME framework seperti JME2 Polish juga tak luput dari sasaran download.  Serta tidak lupa BES and BIS versi trial.

link utk software-software diatas:
*. Eclipse
*. Netbean
*. Blackberry JDE
*. JME2 Polish

Setelah kerja keras dan penantian dengan sabar download dari internet broadband versi indonesia (total saya download kira-kira hampir 3GB selama 1 minggu), dimulailah code and code bug and bug. Dan akhirnya saya bisa connect ke SAP melalui blackberry dan melakukan transfer posting, display stock dan lainnya. Sempat saya beri nama Mobiberry dan sedikit keinginan untuk membuatnya menjadi komersial product sebagai mobile solution tapi saya sadar tidak cukup resource yang saya miliki untuk melakukan itu.

Berbicara web service tentunya tidak lepas dari istilah-istilah XML, SOAP, WSDL, UDDI dan lainnya (bagi yang ingin mengetahui lebih lanjut mengenai WSDL bisa dibaca pada link berikut “WSDL Port“, juga untuk SAP webservices pada link berikut “SAP WebServices“.

SAP dengan Embedded WebService
Setelah sukses dengan BB saya coba gali lebih dalam webservice ini  dengan membaca dan mencoba.  Lalu munculah suatu ide untuk mengakses/consume webservice melalui embedded system 8 bit microcontroller.  Why not?

Konsepnya adalah sebuah embedded device (mungkin cukup yang 8 bit) dengan ethernet port sebagai I/O serta sebuah SD Card sebagai storage (External Virtual RAM), dengan TCP/IP stack, XML Stack (untuk parsing dan building) harusnya bisa dilakukan untuk mengkonsum webservice. Intinya adalah bagaimana melakukan HTTP SOAP Request melalui embedded TCP/IP. Perhatikan gambar berikut.

Sebuah embedded device berfungsi sebagai client yang akan melakukan request dan mendapatkan response melalui TCP/IP sebagai transport layer. SAP yang memiliki webservice engine sebagai listener akan merespon request tersebut dan melanjutkan service method nya ke applikasi dan object SAP dalam hal ini RFC/BAPI, lalu mengembalikan response kepada requestor.

Sedikit mundur kebelakang mengenai HTTP. HTTP berkomunikasi di atas TCP/IP (katakan ethernet) sebagai transport layer. HTTP Client terhubung ke HTTP Server melalui TCP. Setelah hubungan terjalin client mengirimkan HTTP request message ke HTTP server:

POST /item HTTP/1.1
Host: 189.123.345.239
Content-Type: text/plain
Content-Length: 200

Lalu HTTP server memberikan reponse:

200 OK
Content-Type: text/plain
Content-Length: 200

detil mengenai HTTP Protocol (RFC2616) silahkan di baca pada link berikut : (RFC2616)

Selanjutnya kita binding SOAP (Simple Object Access Protocol) dengan HTTP. SOAP method adalah HTTP request dan response yang comply dengan SOAP encoding rule. Secara sederhana bisa dikatakan:

HTTP + XML = SOAP

sebuah SOAP request sebenarnya bisa berupa HTTP GET atau HTTP POST (bagi yang sudah terbiasa dengan HTTP protocol tentu sudah tidak asing lagi).

Berikut adalah contoh SOAP request.

POST /InStock HTTP/1.1
Host: http://www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version=”1.0″?>
<soap:Envelope
xmlns:soap=”http://www.w3.org/2001/12/soap-envelope&#8221;
soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”&gt;

<soap:Body xmlns:m=”http://www.example.org/stock”&gt;
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>

</soap:Envelope>

dan contoh SOAP response

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version=”1.0″?>
<soap:Envelope
xmlns:soap=”http://www.w3.org/2001/12/soap-envelope&#8221;
soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”&gt;

<soap:Body xmlns:m=”http://www.example.org/stock”&gt;
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>

</soap:Envelope>

Dengan membangun xml parser dan xml generator pada TCP/IP enabled embedded device yang kita miliki kita bisa melakukan SOAP request dan response. Selanjutnya tinggal kita ketahui SOAP structure dan response yang sesuai dengan object SAP yang ingin kita access dari embedded berikut adalah salah satu SOAP yang digunakan untuk mengakses suatu RFC module di SAP

<?xml version=”1.0″ encoding=”UTF-8″?>
<soapenv:Envelope xmlns:soapenv=”http://schemas.xmlsoap.org/soap/envelope/&#8221; xmlns:z01=”http://XXXdonesia/xi/z01fcm002caget”&gt;
<soapenv:Header/>
<soapenv:Body>
<z01:z01fcm002cagetRequestDT>
<I_BUSPARTNER/>
<I_CONT_ACCT>000000000655</I_CONT_ACCT>
</z01:z01fcm002cagetRequestDT>
</soapenv:Body>
</soapenv:Envelope>

Implementasi Embedded device Webservice dan SAP

  • Machine to SAP  interface. Dengan menggunakan embedded device kita bisa melakukan shop-floor data transaction yang real-time akurat dan tanpa sentuhan manusia. Silahkan dibayangkan bagaimana sebuah mesin produksi yang secara langsung dapat melaporkan ouputnya sehingga secara otomatis melakukan GR (goods receive) atas suatu production order atau sebuah metering valve yang melaporkan banyaknya aliran fluida menjadi suatu transaksi stock transfer antar silo – pipe atau bahkan misalnya suatu metering device yang mampu menerbitkan customer invoice atas pemakaian dan banyak lagi.
  • Portable Data Terminal. Salah satu key succes ERP adalah “real time”. Konsepnya adalah bagaimana kita membawa transaksi (input data) sedekat mungkin dengan sumber data (shop floor) dengan mudah dan murah. Sehingga data ownership menjadi lekat dengan sumber data. Alangkah baiknya bila seorang picker atau warehouse crew sambil mengendarai forklift dapat melakukan secara realtime transaksi put away atau picking atau bahkan melakukan physical inventory count..
  • Mobile transaction, bentuk lain dari portable data terminal yang memiliki feature telekomunikasi yang canggih, katakanlah GSM-GPRS atau bahkan 3G memungkinkan sebuah transaksi/laporan/warning/earlywarning menjadi mobile sejauh komunikasi mampu menghubungkan bagi eksekutif/sales dsb, dengan mudah seorang sales dapat memantau finished goods stock, price atau informasi lainnya untuk mendukung CRM secara online-realtime dari manapun dia berada selama ada sinyal cellular..

Mudah-mudahan ada project terkait embedded device/electronic dan SAP sehingga bisa saya share.

semoga bermanfaat

Dian Kurniawan


SAP AG official site
SAP defines business software as comprising enterprise resource planning and related applications such as supply chain management, customer relationship management, product life-cycle management, and supplier relationship management.

Advertisements