opcenter cio消息对接不同的自定义API接口
首先需要说明CIO的触发实在opcenter配置的,跟service直接挂钩,如下图CIOOutboundMsgDef的定义,直接选择对应的service
配置好信息以后消息需要发送到API接口,但是系统是已经写死了,如下图
为了实现消息发送到不同API的功能,需要添加一些modeling设置和更改原来的CLF指向不同配置的API地址。
在CIOOutboundDefinition添加ciosettings字段
更改changes
然后修改VP界面,添加ciosetting的控件
在CIOMessagesToSend添加Url字段用来保存每条消息发送到的地址
这样完成了基础数据的配置了,接下来更改events来完成分发到不同API的功能
更改CIO_CreateMessagesToSend,添加function用来保存url
更改发送逻辑,如果URL不是NULL则发送到指定的地址
更改CIOSettingsChanges,让系统能够保存多个CIOSettings
更改完成后,进行update,打开CIO定义界面
基础数据和opcenter的修改到这里已经完成,接下来要进行自定以API端口的功能
创建一个webapi项目
创建成功项目后,添加控制器MessagesController,方法post ,方法的参数如下图
这里只在控制台打印信息
返回的消息opcenter只接受xml格式,所以要在startup添加配置
Opcenter接收的xml格式也是固定的所以定义了一个实体类作为返回值,id和contents是opcenter固定接收的字段
发送端和接收端已经全部完毕,现在来进行测试。
先定义两个CIOSettings,一个发送到5000端口
另一个到5001端口
添加CIOOutboundMsgDef配置
控制台打开两个服务端
dotnet CIO.Server.dll --urls=http://*:5000
dotnet CIO.Server.dll --urls=http://*:5001
然后修改employee的数据,保存,这个时候就看到两个服务端各自收到对应的消息了