首页
云表平台
品牌
客户案例
管理智库
用户故事
新闻动态
管理系统
应用商城
云粉社区
新手指南
视频教程
学习教程
帮助文档
视频教程
收费课堂
亲,请
登录
|
免费注册
|
管理控制台
查看“同步/更新组织机构解决方案”的源代码
←
同步/更新组织机构解决方案
跳转至:
导航
、
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只对以下1个用户组开放:
用户
。
您可以查看并复制此页面的源代码:
=一、场景假设= 在企业管理中,常常会有多个业务系统同时运作,如HR系统、销售系统、OA系统等等,这就需要实现同步组织机构信息,我们以HR系统为管理组织机构的主系统A,其他系统为子系统B,那么,我们现在要实现以下效果: ==1.1 同步组织机构== 子系统B没有组织机构信息时,把主系统A的组织机构信息(部门、岗位)同步到子系统B。 ==1.2 更新组织机构== 子系统B已经同步了组织机构,当主系统A的组织机构信息发生变化(增/删/改)时,更新信息到子系统B。 =二、解决方案思路= 整体思路是利用网关服务器串通两个系统,实现数据同步,所以我们需要准备一个网关服务器。 我们需要考虑3个问题,要实现什么效果?何时执行同步/更新?如何执行同步/更新? ==2.1 要实现什么效果?== 1、主系统A把部门信息、岗位信息写入中间模版“获取组织机构”,用于获取主系统组织机构信息,并作为业务公式的触发模版,把数据推送到网关服务器。 2、子系统B创建中间模版“写入组织机构”,用于接收由网关服务器下发组织结构数据,并执行业务公式写入子系统B的组织机构中。 ==2.2 何时执行更新操作?== 执行更新操作分2种方式: 1、手动执行更新 2、定时更新 ==2.3 如何执行更新操作?== 主系统A组织机构信息变化分3种情况,新增、修改、删除。 首次同步只存在新增,更新则3种情况都需要考虑。 [[文件:001思路.png|720px|无框|居中]] 如图所示:“新增”与“修改”的情况,可以执行“同步组织机构”的业务公式进行更新操作,但是对于“删除”操作,由于数据被删除,我们不能直接得知哪些数据被删除,所以,我们需要找出被删数据。 1、由于主系统A推数据到网关时是按照部门推送的,所以有多少个部门,就推送多少次数据,所以我们需要在主系统A中,新增模版“同步次数”,用于记录主系统A推送的次数,且可以作为数据分组的依据。 2、在主系统A的中间模版“获取组织机构”中增加业务公式,每一轮推送后,“同步次数”+1。 3、在子系统B中,新增模版“查询被删数据”,通过对比新旧2组数据,查询出被删除的组织机构信息,并使用业务公式对其进行禁用(因为删除操作不可逆,所以绝大数情况,不执行删除操作。) 4、模版“查询被删数据”执行禁用被删数据后,同业务公式执行中间模版“写入组织机构”的业务公式。 =三、操作步骤= ==3.1 准备工作== 主系统A:http://192.168.1.66:88/10001 子系统B:http://192.168.1.59:88/10001 网关服务器C:http://192.168.1.148:88/10001 ==3.2 同步组织机构的配置方法== ===3.2.1 子系统B设计模版“写入组织机构”=== ====3.2.1.1 结构分析==== 下面是一个比较简单的企业组织结构,企业下有多个部门,在部门下有下级部门、岗位等信息,如何用统一的模版进行管理? [[文件:002结构分析.png|720px|无框|居中]] 通过观察可以发现,我们只需要分别记录部门信息和该部门的岗位信息就可以把所有组织机构信息管理起来,所以我们接收组织机构信息的模版设计为以下结构: [[文件:003写入组织机构模版样式.png|720px|无框|居中]] ====3.2.1.2 模版样式==== 主表为部门信息,明细表为该部门的岗位信息。
'''部门信息包括:'''
1、更新次数:因为数据是按部门为单位推送,有多少部门就推送多少条数据,此数据项就是为了识别每一个表单属于哪次更新推送过去的。 2、部门编号 3、部门名称 4、部门ID:系统内部生成ID,用于内部逻辑关联 5、上级部门ID 6、是否分支机构 7、是否禁用
'''岗位信息包括:'''
1、岗位编号 2、岗位名称 3、岗位ID 4、上级岗位ID 5、岗位描述 ==3.3 设置网关服务器== 网关服务器配置请参考以下
'''参考文档:'''
[[网关服务器配置方法]] a、按照网关服务器配置方法,设置好所需的网关服务器,并注册api模版“写入组织机构” [[文件:004网关api模版.png|720px|无框|居中]] b、在主系统A中,注册接口模版“写入组织机构”。 [[文件:005系统A接口模版.png|720px|无框|居中]] ==3.4 主系统A设计“执行”模版== 此模版的作用在于执行业务公式,把主系统A的组织机构信息推送到子系统B的“写入组织机构”模版。 需要推送的数据如下: 1、记录并自动累加“更新次数” 2、所有部门信息 3、每个部门对应的岗位信息 ===3.4.1 模版样式=== 由于部门、岗位信息直接通过业务公式查询并赋值,所以不需要设计部门和岗位的数据项,只需要“更新次数”即可。 [[文件:006执行模版样式.png|720px|无框|居中]] ===3.4.2 记录并自动累加“更新次数”=== 由于我们最终需要实现计划任务进行更新组织机构,而计划任务不能执行表单的填表公式,所以我们需要用业务公式计算更新次数。 “执行”模版每保存1次模版就执行一次业务公式,所以,在“保存表单后事件”中需要先执行更新次数最大值+1,以便其他公式能正确取值。 1、新增数据接口,查询更新次数最大值 数据源选择本模版,数据列为更新次数,注意选择降序排序,过滤条件中设置只返回1条数据即可,因为进行降序排序后,第一个值就是最大值。 [[文件:007更新次数接口1.png|720px|无框|居中]] [[文件:008更新次数接口2.png|720px|无框|居中]] 2、在业务公式中对当前模版“执行”增加“保存表单后事件”,通过上面做的接口,对“更新次数”进行累加操作。 [[文件:009更新次数加一业务公式.png|720px|无框|居中]]
'''注意:'''
a、此时要检查数据项“更新次数”是否为整数类型,因为文本类型是无法进行数学运算的。 b、在表单样式中,在单元格中输入0作为默认值,业务公式中,通过匹配条件“更新次数 = 0”匹配出当前表单,然后进行“更新表单”的赋值操作。 ===3.4.3 查询部门/岗位信息的数据接口=== 推送组织机构信息前,我们需要先获取当前系统A的组织机构信息,使用全局数据接口。 ====3.4.3.1 “查询所有部门”数据接口==== 打开数据接口模版,左侧分类树中选择“全局”,新建接口“查询所有部门”。 '''''数据源:'''''选择“组织机构”(注意:不是“SYS_DEPARTMENT”) '''''数据列:'''''全部数据项都添加下来,如下图,注意修改列名,便于后续操作时辨认。 '''''过滤条件:'''''全部数据都要取出,不需要设置过滤条件。 设置完后,可以对照系统管理中的组织机构进行调试,检查接口是否正确。 [[文件:010查询所有部门接口.png|720px|无框|居中]] ====3.4.3.2 “查询岗位信息”数据接口==== 和“查询部门信息”类似,新建全局数据接口“查询岗位信息”。 '''''数据源:'''''为“组织机构”的明细表“岗位” '''''数据列:'''''所有数据项,注意设置列名如下图。 '''''过滤条件:'''''添加参数“部门编号”,表达式“自定义参数.部门编号 = 组织机构.代码” 设置好后,进行调试。 [[文件:011查询所有岗位接口1.png|720px|无框|居中]] [[文件:012查询所有岗位接口2.png|720px|无框|居中]] ===3.4.4 推送部门信息、岗位信息=== 设置完2个关键的接口,就可以回到“执行”模版,在业务公式中,新建“保存表单后事件”,对象为“写入组织机构”模版。 [[文件:013执行模版业务公式.png|720px|无框|居中]]
'''注意事项:'''
在数据在推送的过程中,我们不能保证数据推送的顺序,有可能会先推送下级部门再推送上级部门,那么在子系统中如果同时写入上下级关系,会导致下级部门找不到上级部门的情况,所以,我们需要先写入所有部门信息,然后再构建上下级关系。 为了方便子系统B写入组织结构的时候更容易过滤数据,在主系统A中,分2次推送组织机构信息,先推送部门信息(不含上级部门ID),再推送完整的部门岗位信息。 ====3.4.4.1 推送部门信息(不含上级部门)==== 新建业务公式“写入部门信息”,目标模版为api模版“写入组织机构”。 1、添加同级数据源,选择“查询更新次数最大值”接口,勾选“多记录”(虽然这个数据接口指只会返回一个值,但子级数据源要用多记录,父数据源就要勾选“多记录”) 2、添加“子级数据源”,选择“查询所有部门”接口,勾选“多记录”(组织中有多个部门,必须勾选多记录,否则只返回第一个结果) 3、选择执行“新建表单”操作(必须是新建表单,网关服务器只能在目标模版“新建”,不可以进行“更新”) 4、赋值,要注意是指数据接口返回的值,不需要写入“上级部门ID” [[文件:014公式-写入部门信息.png|720px|无框|居中]] ====3.4.4.2 推送上级部门信息==== 判断逻辑和“写入部门信息”一致,我们可以直接复制“写入部门信息”业务公式进行修改。 判断条件不需要修改,只需要修改赋值内容。 [[文件:015公式-写入部门上下级.png|720px|无框|居中]] ====3.4.4.3 推送明细表“岗位信息”的公式==== 在同一条业务公式的明细表“岗位信息”中编辑公式: 1、添加同级数据源,选择“查询岗位信息”接口,设置查询条件的参数,并勾选“多记录”(必须勾选)。 2、添加满足条件“查询岗位”不等于空,防止某个部门没有岗位,导致赋值时报错。 3、选择“插入记录”操作,增加明细表数据要选择“插入操作”。 4、赋值,注意选择接口返回的数据。 [[文件:016公式-写入岗位信息.png|720px|无框|居中]] ==3.5 子系统B设计业务公式== 通过前面3个步骤,我们已经能把主系统A的组织机构数据获取到子系统B的中间模版“写入组织机构”中。 接下来要针对前面所说的“新增”“修改”“删除”数据分别进行过滤并写入到子系统的组织机构中: 假设:主系统推送了5条数据,我们如何判断哪些部门被删除、哪些部门信息被修改、哪些不能需要新增呢? 我们可以通过与子系统B现有的组织机构进行对比,分别找出新增、修改、删除的数据。 '''''被删除的部门/岗位:'''''为了确保操作可逆,降低风险,子系统中不进行删除操作,只对相关数据进行“禁用”。 '''''被修改的部门/岗位:'''''根据部门编号匹配,进行更新赋值。 '''''新增的部门/岗位:'''''根据部门编号匹配,不存在时新增数据。 ===3.5.1 新增模版“对比部门信息”=== 这个模版用于记录主系统新推送的数据,与当前系统组织机构进行对比,并且通过数据接口,把对比的结果返回给中间模版。
'''模版设计如下图:'''
主表记录数据推送的次数,用于匹配条件; 2个明细表分别获取当前系统组织机构的部门信息,另一个明细表记录推送来的数据。 [[文件:017对比部门信息模版.png|720px|无框|居中]]
'''数据接口:'''
1、查询被删部门编号 [[文件:018查询被删部门思路.png|720px|无框|居中]] 如图所示,我们可以通过多数据源左关联,找出被删除的部门。 '''''数据源:'''''左边选择“当前部门信息”,右边选择“新部门信息”,中间选择“左关联”,在数据项关联中按照截图中设置。 '''''数据列:'''''返回部门编号和部门名称,部门编号为默认返回值。 '''''过滤条件:'''''如图,匹配更新次数并且新部门信息为空。 [[文件:019查询被删部门编号1.png|720px|无框|居中]] [[文件:020查询被删部门编号2.png|720px|无框|居中]] [[文件:021查询被删部门编号3.png|720px|无框|居中]] 2、检查当前部门信息是否为空 上面的接口在调试的时候,我们会发现,当前部门信息为空,即当前系统没有组织机构的时候,关联查询会报错,所以我们要增加一个接口,用于判断当前部门这个明细表是否为空,如果是空,就不执行“查询被删部门”接口对应的逻辑。 '''''数据源:'''''选择本模版的明细表“当前部门信息” '''''数据列:'''''选择任意一个数据项,对其进行“计数”,如果计数=0,说明明细表为空。 '''''过滤条件:'''''只需要匹配更新次数 [[文件:022检查当前部门是否空.png|720px|无框|居中]] ===3.5.2 新增模版“对比岗位信息”=== 和部门信息类似,用于记录和对比岗位信息,但是每个表单只能记录1个部门的岗位信息。
'''模版设计如下图:'''
与“对比部门信息”不同的是,主表中增加了“部门编号”数据项。 [[文件:023对比岗位信息模版.png|720px|无框|居中]]
'''数据接口:'''
和对比部门信息一样,需要2个接口。 1、查询被删岗位编号 [[文件:024查询被删岗位1.png|720px|无框|居中]] [[文件:025查询被删岗位2.png|720px|无框|居中]] [[文件:026查询被删岗位3.png|720px|无框|居中]] 2、检查当前岗位信息是否为空 [[文件:027检查当前岗位是否空1.png|720px|无框|居中]] [[文件:028检查当前岗位是否空2.png|720px|无框|居中]] ===3.5.3 “写入组织机构”的业务公式设计=== “写入组织机构”模版是接收网关推送过来的数据的,我们处理这些数据的顺序应该是怎么样? [[文件:029同步组织机构公式思路.png|720px|无框|居中]] 我们需要把数据分别写入上述的2个对比信息的中间表,然后通过接口查询出被删部门的编号,再对其禁用,最后把其他数据都写入子系统的组织机构中。 [[文件:030写入组织机构业务公式全部.png|720px|无框|居中]] '''a、数据写入对比模版''' 目标模版为“对比部门信息”模版,对主表进行“新建表单”操作,赋值“更新次数”。 对明细表“当前部门信息”进行“插入操作”,添加同级数据源,选择数据接口“查询所有部门信息”,把当前系统的部门信息赋值到明细表中。 对明细表“新部门信息”进行“插入操作”,用本表单的部门信息进行赋值。 [[文件:031部门信息对比业务公式.png|720px|无框|居中]] [[文件:032部门信息对比业务公式2.png|720px|无框|居中]] [[文件:033部门信息对比业务公式3.png|720px|无框|居中]] '''b、禁用被删部门''' 按顺序添加2个同级数据源,并设置参数“更新次数”,要注意“查询被删部门编号”接口必须设置为“多记录”。 因为部门数量为0的时,第二个接口会报错,所以我们要通过判断第一个接口的返回值判断,“部门数量”不等于0时,才继续下面的操作。 对“SYS_DEPARTMENT”执行“更新表单”操作,根据接口返回的部门编号进行匹配,将对应的部门的“是否禁用”数据项赋值为“常量.是”。 [[文件:034禁用被删部门业务公式.png|720px|无框|居中]] '''c、更新组织机构''' 更新组织机构,我们需要先写入部门信息,再构建上下级关系,正如前面说到主系统A为什么要分步推送信息一样,因为数据在推送的过程中,可能会先推送下级部门再推送上级部门,如果同时写入上下级关系,会导致下级部门可能找不到上级部门的情况,所以分为2步。 '''更新部门信息:''' 更新部门信息比较简单,目标模版为“SYS_DEPARTMENT”,用“上级部门ID”数据项作为执行条件,对主表进行“更新表单”操作,根据“部门编号”匹配,然后给“上级部门编号”以外的其他数据项进行赋值。 [[文件:035更新部门信息业务公式.png|720px|无框|居中]] '''更新上级部门:''' 新增一个“情况”页,命名为“更新上级部门”,执行条件和“更新部门信息”相反,当“上级部门ID”不为空的时候执行,构建上下级关系。 [[文件:036更新上级部门业务公式.png|720px|无框|居中]] '''更新部门岗位:''' 注意明细表需要执行“插入记录”操作。 [[文件:037更新岗位信息业务公式.png|720px|无框|居中]] '''更新上级岗位:''' [[文件:038更新上级岗位业务公式png|720px|无框|居中]] =手动/自动执行更新= ==4.1 手动更新== 组织机构一般不会频繁更新,我们可以手动进行更新。 在主系统A的“执行”模版,新建并保存表单,即可立即执行一次“更新组织机构”。 ==4.2 设置计划任务== 如果需要系统定期执行更新,则需要找到在主系统A中注册的API模版“写入制止机构”,在总表上方有“同步服务设置”按钮,点击打开即可直接对本API模版进行计划任务设置。 [[文件:039同步服务设置.png|720px|无框|居中]] 设置计划任务的开始时间、频率,勾选“启用”即可定时更新组织机构。 [[文件:040设置计划任务.png|720px|无框|居中]]
返回
同步/更新组织机构解决方案
。
导航菜单
查看
阅读
查看源代码
查看历史
操作
搜索
名字空间
页面
讨论
变种
首页
云表平台简介
云表概述
云表服务器各版本介绍
安装与配置
概述
创建云端应用空间
创建本地应用空间
安装云表服务器
商城产品的购买与安装
解绑服务器
激活服务器
在其它电脑上安装云表浏览器
新手入门
登入系统
新建文件夹
新建模板
如何定义数据项
在总表中管理表单
定义明细表
简化和规范数据的录入
列表选择辅助表单填写
设置主键,保证数据的唯一性
Excel公式快速填写表单
根据表单数据自动填写其它数据
在对话框中添加按钮
用本表单更改其它表单信息
使用数据校验保证准确性
组织机构
设置表单的操作权限
设置允许查看的数据范围
建立统计报表方便数据的查询
简易工作流的使用
建立业务流程
建立导航,美化系统
文件夹与导航目录
1.1 文件夹
表单模板
2.1 概述
2.2 新建模板
2.3 多表格模板的设计
2.4 内嵌浏览器的设计
2.5 模板样式
2.6 基本数据项
2.7 明细表
2.8 树形明细
2.9 交叉表
2.10 数据表管理
2.11 单元格格式
2.12 单元格类型
2.13 云表浏览器内核的切换方法
2.14 工具栏按钮右键菜单设置
2.15 隐藏文件列表操作按钮
数据接口
3.1 概述
3.2 自动编号
3.3 下拉列表
3.4 列表选择
3.5 树形列表
3.6 系统变量
状态设置
4.1 概述
4.2 应用
模板属性
5.1 基本属性
5.2 锁定条件
5.3 审批流程
5.4 附件
组织机构与操作权限
6.1 角色
6.2 用户
6.3 组织机构
6.4 岗位
6.5 业务公式更新用户信息
模板权限
7.1 权限
7.2 策略
总表
8.1 概述
8.2 筛选
8.3 分页显示
8.4 设置列宽
8.5 设置隐藏/显示数据项
8.6 设置数据项显示顺序
8.7 恢复列默认设置
8.8 显示表单图片
8.9 批量审核
8.10 批量导入
8.11 批量导入图片
8.12 给总表添加分类树
8.13 在总表中显示明细表
8.14 在总表中关联显示其他表单
填表公式
9.1 概述
9.2 事件
9.3 数据源
9.4 操作
9.5 函数
9.6 应用
业务公式
10.1 概述
10.2 快速入门
10.3 参数说明
10.4 新建操作
10.5 更新操作
10.6 删除操作
10.7 报错操作
10.8 更新明细表
10.9 子数据源
10.10 原理讲解
10.11 深入理解业务公式
10.12 事件
10.13 业务公式更新用户信息
业务流程
11.1 概述
11.2 快速入门
11.3 工作流进阶
11.4 流程删除方法
11.5 系统变量使用方法
其他类型模板
12.1 统计查询
12.2 报表
12.3 图表
12.4 设计登入界面
图形表单(导航)
13.1 使用方法
13.2 实现九宫格布局
系统服务
14.1 短信服务
14.2 短信服务(旧)
14.3 邮件服务
14.4 计划任务
14.5 系统日志
14.6 电话盒子服务
14.7 APP消息推送服务
14.8 文件系统
14.9 对接企业微信配置
14.10 对接钉钉配置
14.11 企业微信推送配置
14.12 微信推送配置
14.13 钉钉推送配置
14.14 网关服务器配置方法
系统配置
15.1 全局边栏配置
15.2 全局超时时间配置
企业云盘
16.1 概述
16.2 个人文件夹
16.3 协作文件夹
16.4 公用文件夹
16.5 基本操作
16.6 表单与云盘配合使用
外部数据源
17.1 概述
17.2 新建数据源(数据库)
17.3 新建数据源(API)
表达式
18.1 执行表达式
18.2 赋值表达式
打印
19.1 打印设置
19.2 自定义纸张大小
19.3 默认打印机设置
19.4 批量打印条码标签
移动端APP
20.1 APP概述
20.2 APP下载及安装
20.3 APP使用说明
20.4 APP地图定位
20.5 APP自动分组
云表服务器控制中心
21.1 云表服务器控制中心使用说明
常见问题分析
22.1 启动服务失败问题汇总
22.2 手工安装加密锁驱动
22.3 常用端口
22.4 配置数据接口最大返回条数限制
22.5 服务器安装启动问题指南
通用
23.1 函数
23.2 隐藏待办事项和已完成事项设置方法
23.3 账号密码缓存管理
23.4 修改模板样式文件及附件文件保存路径
23.5 导出word文档使用方法
23.6 电子围栏的使用
23.7 Json数据接口
23.8 高拍仪的使用
23.9 身份证读卡器的使用
23.10 同步组织机构
23.11 云表支付功能开通流程
23.12 云表支付业务逻辑设计
23.13 OpenAPI接口使用说明
管理软件帮助文档
云表进销存操作说明
新版帮助
表单与模版:概述
统计查询:概述
统计查询:区别
统计查询:基本用法
工具
链入页面
相关更改
特殊页面
页面信息
map