Appearance
应用间依赖和通信
概述
大型系统之间通常会存在依赖关系,比如在生产制造领域,ERP系统会依赖基础数据系统中的员工信息
、数据字典
,并且需要通过API的形式调用增加员工的接口。在织信中可以通过
- 数据表依赖
- 事件监听
- API调用
三种形式进行应用之间的通讯
数据表依赖
织信提供了数据表导出功能来实现应用之间的数据依赖。
假设系统A中有一张用户表user
,结构如下
字段 | 类型 | 说明 |
---|---|---|
name | 单行文本 | 用户名称 |
department | 部门选择 | 用户部门 |
系统B有一张订单表task
结构如下
字段 | 类型 | 说明 |
---|---|---|
id | 单行文本 | 订单号 |
owner | 关联记录 | 任务责任人 |
task
表的 owner
字段需要关联到 user
表。这是一个典型的跨系统数据依赖的场景,在传统的开发中,B系统会建立一张同构的user
表,定时同步A系统的user
表数据。这种同步方式可以基于接口也可以基于数据库。
在织信中要实现类似的功能,只需要在A系统应用设置中将user
表设置为允许其他应用访问,在B系统中新建一张数据表,设置数据源类型为来自其它应用
,这样B系统的其它模块就可访问这张虚拟的user
表。
提示
虚拟表的数据可以和普通数据表一样添查删改、也可以为虚拟表建立视图查看数据
事件监听
在应用之间发布事件也是非常常见的需求。例如订单系统
下单成功后,要通知生产系统
进行排期。在织信中可以使用自动化
中的发布应用事件
步骤发送一个事件,需要监听这个事件的系统需要在应用设置的监听器
模块增加事件监听器,监听的事件类型选择其它应用发布的事件
。
提示
事件发布和监听是同步的,如果处理事件的自动化程序出错,系统会自动的回滚所有事务。
API调用
当然也可以通过应用间的API调用来实现通讯,这与传统的开发过程类似,这里就不做说明。
数据表依赖示例
假设应用A(testa) 中有一张 用户表 user
,结构如下
字段 | 类型 | 说明 |
---|---|---|
name | 单行文本 | 用户名称 |
department | 部门选择 | 用户部门 |
sex | 列表选择 | 用户性别 |
应用B(testb) 中有一张 任务表 task
,结构如下
字段 | 类型 | 说明 |
---|---|---|
taskNo | 单行文本 | 编号 |
description | 富文本 | 任务描述 |
owner | 关联记录 | 任务责任人 |
在应用A中设置数据表其它应用访问控制项
设计器中打开用户的
高级设置
,开启允许其它应用查询本表的数据开启后
允许删除数据
、允许更新数据
、允许新增数据
可依据使用情况调整打开应用A全局设置下的
高级设置
,在允许以下应用依赖本应用中添加应用B(testb)在应用A用户端录入测试数据
在应用B中创建对于应用A 用户表
的依赖
打开应用B全局设置下的
高级设置
,在依赖的应用中添加应用A(test)在应用B中创建数据表模块,数据源选择来自其他应用的数据表
完善任务表
task
表单,新增任务责任人字段完善应用B中
用户表
的依赖展示信息完善应用B中
任务表
的展示信息在应用B用户端查看
用户表
的数据在应用B用户端创建
任务表
的数据
至此应用内数据表依赖的操作步骤展示完毕
数据表依赖注意事项
- 创建数据表依赖模块后,该模块的模块标识符和数据源信息将无法修改
- 数据表依赖时,依赖其他应用模块标识符发生变化时,该模块也将自动同步变化
- 数据表依赖时,仅依赖数据,对于数据展示和表单扩展的控件需要单独配置
- 数据表依赖时,对于表单内的自定义组件字段,平台会自动计算依赖信息,使用原应用信息来渲染自定义组件字段内容