Skip to content

应用间依赖和通信

概述

大型系统之间通常会存在依赖关系,比如在生产制造领域,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中设置数据表其它应用访问控制项

  • 设计器中打开用户高级设置,开启允许其它应用查询本表的数据

    开启后允许删除数据允许更新数据允许新增数据可依据使用情况调整 depend-table-misc.png

  • 打开应用A全局设置下的高级设置,在允许以下应用依赖本应用中添加应用B(testb)

    depend-table-app-misc.png

  • 在应用A用户端录入测试数据

    app-a-depend-table-view.png


应用B中创建对于应用A 用户表的依赖

  • 打开应用B全局设置下的高级设置,在依赖的应用中添加应用A(test)app-b-depend-app-misc.png

  • 在应用B中创建数据表模块,数据源选择来自其他应用的数据表app-b-depend-table-create.png

  • 完善任务表 task表单,新增任务责任人字段 app-b-depend-table-field-owner.png

  • 完善应用B中 用户表的依赖展示信息 app-b-depend-table-user-view.png

  • 完善应用B中 任务表的展示信息 app-b-depend-table-task-view.png

  • 在应用B用户端查看 用户表的数据 app-b-depend-client-task-view.png

  • 在应用B用户端创建任务表的数据 app-b-depend-client-task-create.png

至此应用内数据表依赖的操作步骤展示完毕

数据表依赖注意事项

  • 创建数据表依赖模块后,该模块的模块标识符和数据源信息将无法修改
  • 数据表依赖时,依赖其他应用模块标识符发生变化时,该模块也将自动同步变化
  • 数据表依赖时,仅依赖数据,对于数据展示和表单扩展的控件需要单独配置
  • 数据表依赖时,对于表单内的自定义组件字段,平台会自动计算依赖信息,使用原应用信息来渲染自定义组件字段内容