Send XML Document in webMethods using HTTP POST

Pada bahasan kali ini, akan disampaikan contoh mengirim xml document via webMethods menggunakan HTTP POST.

Tutorial akan dibagi menjadi dua bagian :
1. Pembuatan service webMethods untuk mengirim data xml via HTTP
2. Membuat program php untuk menerima xml document yang dikirim dari webMethods.

A. Membuat service send xml document di webMethods.

untuk dapat mengirim xml docment atau jenis content lain via http di webMethods cukup sederhana, karena webMethods sudah menyediakan buil in function untuk hal ini.
service yang bisa digunakanan adalah pub.client.http

berikut contoh service wm untuk send xml

B. Membuat service php untuk menerima data xml
Untuk menerima content data yang dikirim dari webMethods kita bisa menggunakan PHP,ASP, JSP atau yang lainnya sesuai dengan selera anda. Untuk kasus ini saya akan buat service menggunakan php

 <?php
      $data = "";
      if ($input = fopen("php://input", "rb")) {
        while (!feof($input)) {
          $temp = fread($input, 1024);
          //$temp = str_replace('<', '&lt;', $temp);
          //$temp = str_replace('>', '&gt;', $temp);
          $data .= $temp;
 
        }
        $handle = fopen('/var/www/test.xml','w');
        fwrite($handle,$data);
        fclose($handle);
        fclose($input);
      }
    ?>

jika service wm dijalankan maka akan membuat satu file namanya test.xml dengan content sesua dengan content yang dikirimkan dari webMethods

selamat mencoba dan semoga bermanfaat.

Connection PHP Oracle using adodb

[ad code=1 align=center]
Adodb adalah Database Abstraction Layer untuk php dan support berbagai macam database seperti MySQL, Oracle,DB2,SAP Db, Sql Serverdan lain-lain. Untuk informasi lebih lanjut anda bisa melihat link berikut adodb.

Berikut contoh penggunaan adodb untuk konek ke database oracle.

 
<?php
 
 
  require_once("lib/adodb/adodb.inc.php"); /*asumsi library adodb diletakan di folder lib*/
 
  $server = "192.168.1.9";
  $user   = "hr";
  $password = "hr";
  $db = "NEURON";
 
  $oraConn = NewADOConnection("oci8");
  $oraConn->debug = true;
  $oraConn->Connect($server, $user, $pwd, $db);
 
  $query = "select * from employees";
  $result = $oraConn->Execute($query);
 
  //var_dump($resut); 
 
  while (!$result->EOF) {
    print_r($result->fields);
    $result->MoveNext();
  }
?>

Contoh diatas adalah contoh yang sederhana, masih banyak kemampuan adodb yang bisa digunakan dan akan mempermudah development kita.

Java webMethods connectivity

Hari ini saya mencoba konektivitas java dengan webMethods (softwareAG) dan mencoba memanggil service diwebmethods menggunakan java. Untuk pembuatan contoh service anda bisa melihat link berikut create flowservice webMethods.

Contoh yang dibuat disini menggunakan Netbeans untuk memudahkan coding nya. webMethods menyediakan Java API untuk connectivitas dengan java yang library nya ada di WMHOME/Developer/lib atau di WMHOME/IntegrationServer/lib dengan nama client.jar.

tempatkan client.jar ini pada classpath program kita dengan menambahkan library di Netbeans.
berikut contoh script untuk mengeksekusi service webMethods menggunakan java.

package webmethods;

import com.wm.app.b2b.client.Context;
import com.wm.app.b2b.client.ServiceException;
import com.wm.data.IData;
import com.wm.data.IDataCursor;
import com.wm.data.IDataFactory;
import com.wm.data.IDataUtil;
import java.util.logging.Level;
import java.util.logging.Logger;

public class WMService {
   private String server;
   private String port;
   private String username;
   private String password;

   private Context context;

   private IData idata;
   private IDataCursor idc;

   private String namespace;
   private String serviceName;

   public WMService(){
        this.idata = IDataFactory.create();
        this.idc = idata.getCursor();
   }

   public WMService(String server, String port, String username, String password){
        this();
        this.server = server;
        this.port = port;
        this.username = username;
        this.password = password;
   }

   public void Connect(){
        try {
            this.context = new Context();
            this.context.connect(this.getServer()+':'+this.getPort(), this.getUsername(), this.getPassword());
        } catch (ServiceException ex) {
            Logger.getLogger(WMServer.class.getName()).log(Level.SEVERE, null, ex);
        }
   }

    public Context getContext() {
        return context;
    }

    public void setParam(String param,String value){
        IDataUtil.put(idc, param, value);
    }

    public void setParam(String param,int value){
        IDataUtil.putInt(idc, param, value);
    }

    public void setNamespace(String namespace) {
        this.namespace = namespace;
    }

    public void setServiceName(String serviceName) {
        this.serviceName = serviceName;
    }

    public IData getIdata() {
        return idata;
    }

    public void destroy(){
        this.idc.destroy();
    }

   public void executeService(){
        IData odata = IDataFactory.create();
        try {
            odata = this.context.invoke(this.namespace, this.serviceName, this.idata);
        } catch (ServiceException ex) {
            Logger.getLogger(WMService.class.getName()).log(Level.SEVERE, null, ex);
        }
        System.out.println("Hasil = "+ odata.toString());
    }        

     public static void main(String[] args) {
           WMService wm = new WMService("192.168.1.10","5555","Administrator","manage");
           wm.Connect();

           wm.setNamespace("neuronTrain.businessProcess");
           wm.setService("aritmatika");

           wm.setParam("opr","+"); // variable input opr
           wm.setParam("bil1",3);
           wm.setParam("bil2",4);

           wm.executeService();

    }
}

Service webMethods yang dipanggil adalah aritmatika yang berapa pada namespace neuronTrain.businessProcess dengan input output seperti seperti gambar berikut

setelah dijalankan hasilnya adalah :

run:
Connected
Hasil >>>BasicData:hasil=7,num1=3,num2=4,opr=+,bil1=3,bil2=4,value=7<<<
BUILD SUCCESSFUL (total time: 2 seconds)

Object Oriented Programming in PHP

Untuk hari ini saya akan coba menulis berkaitan dengan PHP khususnya pemrograman berorientasi object dengan PHP.
Baik kita mulai dari konsep dasarnya OOP di php

Class
Mendefinisikan class di PHP menggunakan keyword class diikuti dengan nama kelas, Nama kelas ini tidak boleh keyword yang sudah digunakan oleh php.

<?php
  class Student {
       $name;
       $age;
 
      public function setName($name) {
         $this->name = $name;
      }
 
      public function getName(){
          return $this->name;
     }
   }
 
   // Contoh deklaresi object dari kelas Student 
 
   $std = new Student();
   $std::setName("Massri");
   echo $std->getName();
 
?>

Pada code diatas untuk mengakses method dari suatu object bisa menggunakan “::” atau “->”, $this adalah pseudo-variable yang digunakan untuk memanggil metod dari object itu sendiri.
Untuk membuat instance dari class digunakan keyword new

extends
Extends digunakan untuk mewariskan methods dan attribute ke kelas turunannya, untuk deklarsinya di tempatkan setelah nama kelas

<?php
  class A extends B{
     // metod pada class B akan diwariskan pada kelas A
  }
?>