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

4 thoughts on “Embedded Electronic dan SAP

  1. Well, this enlightenment is leading my curiousness what is SAP in simple manners.

    According Wikipedia in first search results:
    Atari SAP music format, format used for storing music on 8-bit Atari computers and consoles
    SAP AG, a German software company
    SAP ERP, the main product of SAP AG, previously known as SAP R/3
    SAP2000, a Structural Analysis Program
    Second audio program, an auxiliary audio channel for broadcast and cable television
    Service Access Point, an identifying label for network endpoints in OSI networking
    Service Advertising Protocol, an IPX network protocol for services
    Session Announcement Protocol, a computer protocol for broadcasting multicast session information
    SIM Access Profile, a connectivity profile defined by the Bluetooth specification
    Standard Assessment Procedure, a method system for measuring the energy rating of residential dwellings used in the United Kingdom
    Space allocation problem, in architecture or space planning is determining the position and size of several elements within the space

    So, which SAP mean? my closest conclusion is Structural Analysis Program, nor Stocks Analysis Program? some short kinda simple explanations is my need.

    thank you.

    • Dear Om Rudik,
      nice to know your searching spirit hehehe

      SAP term in my posting is SAP AG (http://sap.com), the ERP software from Germany. I worked as SAP consultants for more than ten years. I was build several interface from this back end (SAP) application to shop floor activity or even machinery interface (man machine interface). One example is what you see now on my posting. I was build Ethernet based (ISA for this case but also in other embedded manner) micro controller from machine to SAP transaction. This device will automatically do SAP transaction posting directly to SAP Server without any human interaction.

      thank you

  2. And the RFC, is this mean “Request For Comments” just like RFC terms in the Computer protocols technology?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s