ESAP达摩院 思想有多远,我们就能走多远

ESAP暗黑教程|跨企业-系统订单确认

2019-04-03

客户需求

A公司是客户,下采购单;B公司是供应商之一,收到邮件通知后,希望从A公司ERP系统获取相关订单数据并导入自己公司的ERP系统。

分析和方案

典型的现代供应链系统工作方式,告别传统手工录单。

通常,两家公司的系统是不一样的,只能通过Internet通信,像下图这样。

如果是在局域网,可以直接在B公司系统中注册A公司系统的数据库为外部源。

* 但是,在广域网,应该禁止直接暴露数据库端口1433,这非常危险。*

本案采用ESAP构建当下流行的API微服务,A公司仅暴露需要的数据,B通过api获取采购订单数据。

实现场景

模拟A公司系统

假设A使用ES系统,下若干采购单给不同供应商。

订单数据使用sql查询结果如下:

构建订单查询API

配置好ESAP,在ESAP根目录/sql/api2/下配置getpurchaseordersql模板:

{ {define "getpurchaseorder"} }
select 
    .交期,
    .,
    .供方,
    .,
    .品名,
    .,
    .单位
from  
inner join  on .excelserverrcid=.excelserverrcid
where .='采购'
and .供方=:name
{ {end} }

api访问效果如下,name代入特斯拉获得特斯拉相关采购订单:

模拟B公司系统

假设B公司使用NX,在外部接口中注册这个接口。

根据esap查询结果,getpurchaseorder关键表结构设置如下:

建立待确认采购单模板,设置表间公式从API提数,表字段一一对应。

最终效果

特斯拉供应商:

华为供应商:

小结

主要应用esap构建API微服务。

A公司可以是任意基于sql的系统。

B公司系统需要支持API提数。

本文涉及的数据库备份可在ESAP水镜禅院中下载。

2019-04-03


近似文章