**
ERP(企业资源管理计划)通过奇门对接WMS(仓库管理系统)**
奇门是什么?
说白了就是一个中间件,干嘛的呢?就是用来将两个不相干的系统连接起来的东西,转接头知道不!有的人就开始杠了,我两个系统直接接不就完了干嘛还要个中间件呢?
举个例子: A系统(A公司ERP系统) B系统(B公司wms) C系统(A公司OMS系统) 现在客户需要将A系统和B系统 and C系统互联
不用奇门的连接方式 A开发接口给B系统调用 B系统开发接口给A调 C开发接口给A,B调 (根据业务逻辑来变化)
用奇门的连接方式 A开发接口调用奇门 B开发接口调用奇门 C开发接口调用奇门 差异显而易见,如果我的A系统 还要多连一个新的wms系统,不用奇门的话,我是不是又加大了开发量,我用了奇门,就不用单独的在为新的wms系统开发独立的接口了,和任何wms对接我都可以共用一个奇门接口。
下面就进入实操了,我用的java,所以就要从官网上下载一个奇门java的sdk,如果这都找不到放弃吧骚年,洗洗睡!因为代码中涉及到了一些商业机密,所以我只能告诉大家连接奇门的思路与逻辑!
将单个商品信息传入奇门
第一步:controller层
- 调用Dao层 通过商品的唯一编码,从ERP中查询到该商品的信息
//Dao层返回的商品数据
JSONObject jospxx = v7SpxxSevice.selectSpxxById(joparam);
if(!jospxx.isEmpty()){
//创建奇门连接
QimenClient client = new DefaultQimenClient(Url, Appkey, Secret);
SingleitemSynchronizeRequest req = new SingleitemSynchronizeRequest();
req.setCustomerId(Customerid);
req.setVersion("2.0");
req.setActionType("add");
req.setOwnerCode(Customerid);
//这里要对着官方文档来传入参数,等下告诉你们怎么看
SingleitemSynchronizeRequest.Item obj1 = new SingleitemSynchronizeRequest.Item();
obj1.setItemCode(jospxx.getString("SPXX02"));//商品编码
obj1.setItemName(jospxx.getString("SPXX04"));//商品名称
obj1.setGoodsCode(jospxx.getString("SPXX02"));//商品编码
obj1.setSkuProperty(jospxx.getString("SPXX04"));//商品名称
obj1.setBrandCode(jospxx.getString("PPB01"));//品牌代码
obj1.setUnit(jospxx.getString("xxxx"));//单位
obj1.setItemType("ZC");//商品类型(ZC=正常商品;FX=分销商品;ZH=组合商品;ZP=赠品;BC=包材;HC=耗材;FL=辅料;XN=虚拟品;FS=附属品;CC=残次品; OTHER=其它;只传英文编码)
req.setItem(obj1);
SingleitemSynchronizeResponse rsp = null;
try {
//同步到奇门
rsp = client.execute(req);
if (rsp.getFlag().toString().equals("success")) {
System.out.println("----------------------更新V10奇门商品信息----------------------");
JSONObject joup = JsonUtils.JO();
joup.put("SPXX01", joparam.getString("SPXX01"));
joup.put("WBSPXX01", "1");
v7SpxxSevice.update(joup);
return EdiResult.done();
}
else {
return EdiResult.error(rsp.getMessage());
}
} catch (Exception e) {
e.printStackTrace();
return EdiResult.error(e.getMessage());
}
}
点击request,上面代码的SingleitemSynchronizeRequest对象,就是根据这个接口名来找的,request中的属性,都可以通过SingleitemSynchronizeRequest对象用get,set方法进行操作
商品数据封装完成后,就可以同步到奇门了
rsp = client.execute(req);
就这么简单,其他的接口都大同小异!一通百通!
appkey url Secret Customerid 这些都是必要的参数,奇门官方文档上有说明这是啥东西!