快速对接明道云和企业自研系统的教程与技巧

文/陈淋文 刘泽欣 冯宏伟

编辑/杜逸敏

前言

明道云APaaS平台已经在V7.5版本上线了集成中心功能。大家可以通过集成中心便捷地使用内置的第三方API了。那么对于还未纳入集成中心的或自研系统中的接口,我们可以通过什么方法进行自定义连接呢?本文将从一个实际场景切入,带您了解明道云API的使用及工作流的配置方法。

场景例举

根据某公司的业务流程规定,已经成立的项目需要基于门店向库房申请设备。这时需要将公司在明道云里搭建的项目管理系统公司自研产品库存管理系统对接。

该对接需求主要包含项目、门店、设备清单信息,这是一类典型的主、子表嵌套结构接下来,需要按照对接字段和结构、对接工作流配置、接口调试的顺序逐步操作

  1. 字段清单梳理和表字段配置

首先需要确认好接口涉及到的字段清单本案例需要用到这些信息:项目ID项目信息)、门店ID门店信息设备列表包含的物料编码和数量等。接下来就是根据接口字段的数据类型反推出所需的工作表结构和字段。

对照着上述字段清单,我们就可以在工作表中配置相应的字段,用于后续的数据映射

配置好字段后,还可以为字段设置别名,方便后续外部系统调用接口时字段索引

  1. 工作流代码块节点配置

接下来进入工作流的配置一般来说,标准的商业接口只需通过Webhook配置好请求URL和请求参数即可完成对接但是对于自定义的接口可能需要进行传输数据的格式预处理或数据类型转换等操作。这时,我们可以用工作流的代码块节点进行数据处理和接口调用

在前面的接口背景说明中有提到需要将设备清单这类包含物料编码和数量的子表数据组装到项目门店中进行传参,那么这就可以通过工作流节点中的子流程节点来处理需要注意的是对于组装应该选择逐条执行的类型

在子流程中组装设备清单时,按照字段清单中定义的格式去构造,比如接口所需的要设备清单其实是一个数组,数组内的每个元素对象就代表一款设备产品的申请数量记录在代码块中只需将参数数据来源从工作流触发节点中获取到,最后进行组装输出即可

在子流程的最后一个节点,需要将组装好的结果赋值到门店列表中,作为下一条子流程执行的输入参数来源

这样就能够将每次组装的结果累加到设备清单数组中,当最后一条子流程执行完毕所需的设备清单也就组装完成

设备清单组装完成后,就只剩下项目信息和门店信息了,根据项目-门店列表-设备清单的结构分析可知,将项目ID、门店ID、设备列表参数等请求数据在门店列表子流程中进行二次组装

最终将项目、门店、设备清单全部组装完成后结合AppKey、Token和接口地址即可调用接口传输数据

  1. 接口调试

接口的工作流节点配置大功告成后,我们还需要创建触发工作流调用接口的测试数据进行测试

在工作流中内置测试按钮,点击“立即执行”选择事先构造好的测试数据后即可触发工作流运行

对于大批量数据并发调用的测试,可在工作表中设置批量操作的触发字段调用原理与单条记录依然是一样的,此处不再赘述

  1. 附加技巧

对于token加密获取的常见方法根据接口要求的加密方法生成签名,最终将签名连同其他请求信息一起调用接口

比如下面的例子中是以 AccessKeySecret 为密钥,使用 HMAC-SHA1算法对用户请求参数(QueryString)、访问密钥ID(AccessKeyId)、签名有效时间(Expires)、签名当前时间戳(Timestamp)做哈希计算得到的签名结果

具体实现代码如下所示:

var AccessKeyId="895c84c88f88bd290d8e5766987a4a04";

var t=input.time
var ymd=t.slice(0,10)+"T"
var hms=t.slice(11)+"Z"
var times=ymd+hms
var timestamp=encodeURIComponent(times)

var str="GETapi-bj.clink.cn/cc/list_clients?AccessKeyId="+AccessKeyId+"&Expires=60&Timestamp="+timestamp+"&cnos%5B0%5D=0000&cnos%5B1%5D=0001&limit=10&offset=0&qno=0000";

var crypto=require('crypto');
function sha1(s,secret) {
 var hash = crypto.createHmac('sha1',secret);
 hash.update(s,'utf8');
 return hash.digest('base64');
};
var signstr=sha1(str,AccessKeyId)
output={"index":signstr}

获取到token签名后可以将其作为接口的传入参数配置到Webhook或者代码块中使用本例中只举了常见的哈希算法加密,其他接口的签名获取需要根据其提供的说明文档来调整,实现思路大体上是相近的,可以作为参考。

总结

通过明道云集成中心可以快捷使用各大厂商的商业接口,而对于不在范畴内的自研系统和其他接口也可以使用自定义工作流节点进行适配连接,如果您的企业存在多种系统之间数据互通的难题,不妨来尝试使用明道云零代码平台作为中台来进行处理。

关于明道云

明道云是一个创新的超级应用平台,可以帮助用户零代码构建企业应用,用户不需要代码开发就能够搭建出用户体验上佳的销售、运营、人事、采购等核心业务应用,打通企业内部数据。明道云还具备超自动化引擎,可以全面自动化复杂和重复的业务流程。运用明道云的集成中心与完整的API对接能力,用户可以轻松地将明道云与外部系统集成。除此之外,明道云超级应用平台还具备很高的可组合性,国际化支持,并支持云原生架构,实现了多云部署能力。通过插件架构,明道云正在逐步建立起繁荣的实施与开发生态。

明道云可以帮助企业大大节省软件费用、降低定制开发的成本和时间,拥有一个极度灵活和易用的数字化平台,是企业数字化建设的重要工具。目前已有上百万用户使用,付费企业超过4000家,包括可口可乐、复星集团、中国移动、中国联通、中国电信、中铁集团、北京地铁、佛山铁路、华夏银行、民生银行、迪卡侬、艾默生电气、泰科电子、四川航空、东方证券、万豪酒店、洲际酒店等知名客户。

2021年5月,明道云获得海纳亚洲近亿元投资。公司目前有超过130名员工,产品研发团队过半,总部位于上海漕河泾开发区,在北京、广州、深圳、成都、郑州、武汉、西安和宁波设有分支机构。公司为高新技术企业,上海市专新特精认定企业。