Posts tagged webMethods
Send XML Document in webMethods using HTTP POST
1Pada 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('<', '<', $temp);
//$temp = str_replace('>', '>', $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.
Java webMethods connectivity
0Hari 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)