这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

三方系统同步至V8

集成模式

1 - COP平台开放写入OpenAPI

COP平台开放写入OpenAPI,由三方异构系统定时增量推送,完成组织同步模式。

1、概述

COP平台开放写入OpenAPI,由三方异构系统定时增量推送,完成组织同步模式。

2、优缺点分析

a. 优点:

COP集成压力小;

b. 缺点:

三方系统需要有一定的研发能力,完成接口调用和字段映射;

3、集成配置

序号 步骤名称 责任方 使用场景
1 提供组织增量查询接口规范和文档 致远 必须,包含接口定义、签名规则、字段来源等信息
2 API启用 致远 必须,只有启用的API才可以正常进行授权访问
3 新建接入应用 致远 必须,负责分配AppKey和APPSecret、配置访问授权、访问白名单等配置页
4 启用接入应用 致远 必须,未启用的接入应用,访问时会提示接入应用未启用
5 分配APPKey和APPSecret 致远 必须,接口签名核心字段
6 API授权 致远 必须,只有添加权限的额API接口才可以正常访问
7 导出接口文档 致远 非必须,导出所有已经启用的API手册
8 配置访问限流 致远 非必须,根据服务器资源性能,可以配置指定时间段内调用上线
9 配置访问白名单 致远 非必须,开启后,访问白名单之后的API请求将会被拦截
10 调用测试 三方系统 必须,根据平台提供的接口文档和必须字段,使用postmen等工具直接调用,验证网络连通性和信息准确性

4、接口目录

API分类 API名称 接口描述
组织信息同步(基于编码) 批量新建/更新组织 组织(机构+部门)
职务信息同步(基于编码) 批量新建/更新职务 职务
职级信息同步(基于编码) 批量新建/更新职级 职级
岗位信息同步(基于编码) 批量新建/更新岗位 岗位
人员及任职信息同步(基于编码) 批量新建/更新人员及任职 人员&任职

4.1、接口文档在线查看位置

1720490441002

4.2、接口签名

4.2.1、请求头(Header)

参数名称 是否必填 参数说明
app-key true 应用的唯一标识,创建接入应用后生成,可在应用基础信息页面获得。
示例:d43b0b442cf34076a2c4af6bb8928afb
sign-type true 固定值:MD5
sign true 签名,字符串“AppSecret+请求体的JSON字符串+AppSecret”的MD5值(MD5值忽略大小写)
AppSecret,为应用的秘钥,创建接入应用后生成,可在应用基础信息页面获得。
示例:154fa5bc7e294deda68a15559b07c845请求体的JSON字符串,
需要将请求体中的请求参数转换为JSON字符串。
Accept-Language false 语种:用以设置开放平台OpenAPI运行时上下文的语种参数。
枚举项可选值列表:zh-CN(简体中文),
zh-TW(繁体中文),
en(英文),
其他枚举项请参照平台语种列表。

4.2.2、签名示例(sign)

String secret = "154fa5bc7e294deda68a15559b07c845";
String body = "{"name": "张三", "age": 35, "company": {"name": "致远", "address": "北京"}";
String sign = Md5(secret + body + secret); // 结果是 01a8795a7fe6dda23aaec40de3d301b7;

5、接口清单

5.1、批量新建/更新组织

请求地址

【接口请求地址前缀】/organization/unit/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl FALSE string 异步回调URL。如果此参数非空,
表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchUnitDto 请求参数数据
units data TRUE array[OrgUnitDataDto] 组织数据
name units TRUE string 组织名称
shortName units FALSE string 组织简称 ,类型为机构时,简称必填,类型为部门时,简称非必填
code units TRUE string 组织编号
type units TRUE enum 组织类型。枚举项可选值列表:
NONE(空),
INSTITUTION(机构),
DEPARTMENT(部门),
OUTSIDE_INSTITUTION(外部(编外)单位),
OUTSIDE_DEPARTMENT(外部(编外)部门),
parentCode units TRUE string 父组织Code,根节点不填
effectiveTime units FALSE string 生效日期
invalidTime units FALSE string 失效日期
sortId units TRUE int32 排序号
isEnable units FALSE boolean 状态
description units FALSE string 备注
metadataList units FALSE array[OrgMetadataValueDataDto] 自定义扩展属性数据
k metadataList FALSE string 扩展字段的名称
v metadataList FALSE string 扩展字段的的值
address units FALSE string 地址
officeNumber units FALSE string 电话
tax units FALSE string 税号
bankAccount units FALSE string 银行账号
bank units FALSE string 开户银行
isLegalEntity units FALSE boolean 是否法人实体
socialCreditCode units FALSE string 统一社会信用代码
legalPersonName units FALSE string 法定代表人姓名
legalCertificateNumber units FALSE string 法定代表人身份证号码
legalPhoneNumber units FALSE string 法定代表人手机号号码
createTime units FALSE date 创建时间,毫秒时间戳
updateTime units FALSE date 更新时间,毫秒时间戳
syncChildMetadataValue data FALSE boolean 是否同步下级组织扩展字段值,默认是false

请求参数示例

{
  "data": {
    "syncChildMetadataValue": "false",
    "units": [
      {
        "bankAccount": "",
        "legalPhoneNumber": "",
        "code": "CoolAcademyImport1001",
        "address": "",
        "effectiveTime": "2023-09-01",
        "officeNumber": "",
        "description": "",
        "tax": "",
        "updateTime": {{timestamp}},
        "invalidTime": "2024-12-31",
        "type": "INSTITUTION",
        "socialCreditCode": "",
        "isEnable": "true",
        "legalPersonName": "",
        "bank": "",
        "legalCertificateNumber": "",
        "parentCode": "group",
        "createTime": {{timestamp}},
        "sortId": 10,
        "name": "集成演示Import1001",
        "isLegalEntity": "false",
        "shortName": "集成演示1001"
      }
    ]
  },
  "requestId":1705902274340,
  "notifyUrl": "",
  "timestamp":1705902274340
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_UNITS",
            "status": "COMPLETE",
            "startTime": 1705913688259,
            "endTime": 1705913688492,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1659577340788737399",
                    "name": "集成演示Import1001",
                    "code": "CoolAcademyImport1001",
                    "status": "SUCCESS",
                    "messageCode": null,
                    "message": "成功"
                }
            ]
        }
    }
}

5.2、批量新建/更新职务

请求地址

【接口请求地址前缀】/organization/job/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl False string 异步回调URL。如果此参数非空,
表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchJobDto 请求参数数据
jobs data TRUE array[OrgJobDataDto] 职务数据
name jobs TRUE string 职务名称
code jobs TRUE string 编号
unitCode jobs TRUE string 所属组织编号
category jobs TRUE enum 职务性质。枚举项可选值列表:
NONE(空),
BENCH_MARK(基准岗),
SELF_BUILT(自用岗),
sortId jobs TRUE int32 排序号
isEnable jobs TRUE boolean 启用状态
description jobs TRUE string 备注

请求参数示例

{
  "data": {
    "jobs": [
      {
        "code": "JobWorkor",
        "sortId": 10,
        "unitCode": "CoolAcademyImport1001",
        "name": "干事",
        "description": "",
        "category": "SELF_BUILT",
        "isEnable": "true"
      }
    ]
  },
  "requestId": 1705913739277,
  "notifyUrl": "",
  "timestamp": 1705913739277
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_JOBS",
            "status": "COMPLETE",
            "startTime": 1705913739212,
            "endTime": 1705913739234,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660303025123624311",
                    "name": "{\"zh_CN\":\"干事\"}",
                    "code": "JobWorkor",
                    "status": "SUCCESS",
                    "messageCode": "成功",
                    "message": null
                }
            ]
        }
    }
}

5.3、批量新建/更新职级

请求地址

【接口请求地址前缀】/organization/level/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchLevelDto 请求参数数据
levels data TRUE array[OrgLevelDataDto] 职级数据
name levels TRUE string 职级名称(必填)
code levels TRUE string 编号(必填)
levelSort levels TRUE int32 序号
isEnable levels TRUE boolean 启用状态
description levels TRUE string 备注

请求参数示例

{
  "data": {
    "levels": [
      {
        "code": "M22",
        "levelSort": 1,
        "name": "M22",
        "description": "M22,酷学院",
        "isEnable": "true"
      }
    ]
  },
  "requestId":1705913759647,
  "notifyUrl": "",
  "timestamp": 1705913759647
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_JOBS",
            "status": "COMPLETE",
            "startTime": 1705913759662,
            "endTime": 1705913759700,
            "totalNum": 1,
            "successNum": 1,
            "failNum": 0,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660303424790463863",
                    "name": "{\"zh_CN\":\"M22\"}",
                    "code": "M22",
                    "status": "SUCCESS",
                    "messageCode": "成功",
                    "message": null
                }
            ]
        }
    }
}

5.4、批量新建/更新岗位

请求地址

【接口请求地址前缀】/organization/post/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchPostDto 请求参数数据
posts data TRUE array[OrgPostDataDto] 岗位数据
name posts TRUE string 岗位名称
code posts TRUE string 编号
type posts TRUE string 岗位分类的枚举code值
unitCode posts TRUE string 所属组织编号
category posts TRUE enum 岗位性质。枚举项可选值列表:
NONE(空),
BENCH_MARK(基准岗),
SELF_BUILT(自用岗),
sortId posts TRUE int32 排序号
isEnable posts TRUE boolean 启用状态
description posts TRUE string 备注

请求参数示例

{
  "data": {
    "posts": [
      {
        "code": "salesEngineer",
        "sortId": 10,
        "unitCode": "CoolAcademyImport1001",
        "name": "销售工程师",
        "description": "",
        "type": "Management",
        "category": "SELF_BUILT",
        "isEnable": "true"
      }
    ]
  },
  "requestId": 1705913779906,
  "notifyUrl": "",
  "timestamp": 1705913779906
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": {
        "content": {
            "validate": true,
            "type": "BATCH_POSTS",
            "status": "COMPLETE",
            "startTime": 1705913779967,
            "endTime": 1705913780058,
            "totalNum": 1,
            "successNum": 0,
            "failNum": 1,
            "details": [
                {
                    "validate": true,
                    "line": 1,
                    "id": "1660309690828981623",
                    "name": "{\"zh_CN\":\"销售工程师\"}",
                    "code": "salesEngineer",
                    "status": "FAILED",
                    "messageCode": "ORG_0102",
                    "message": "岗位分类枚举值不存在!"
                }
            ]
        }
    }
}

5.5、批量新建/更新人员及任职

请求地址

【接口请求地址前缀】/organization/member/batch

请求方式

POST

请求参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
requestId TRUE string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp TRUE int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data TRUE OrgBatchMemberDto 请求参数数据
members data TRUE array[OrgMemberDataDto] 人员数据
thirdId members TRUE string 第三方唯一标识
name members TRUE string 姓名
code members TRUE string 编号
username members TRUE string 用户名
gender members TRUE enum 性别。枚举项可选值列表:
NONE(空),
MALE(男),
FEMALE(女),
UN_KNOW(未知),
birthday members TRUE string 出生日期
phoneNumber members TRUE string 手机号码
officeNumber members TRUE string 工作电话
email members TRUE string 邮箱
effectiveTime members TRUE string 生效日期
invalidTime members TRUE string 失效日期
sortId members TRUE int32 排序号
isEnable members TRUE boolean 状态
description members TRUE string 备注
memberPosts members TRUE array[OrgMemberPostDataDto] 人员的任职信息
main memberPosts TRUE boolean 是否主岗
unitCode memberPosts TRUE string 组织编码
postCode memberPosts TRUE string 岗位编码(内部人员必填)
levelCode memberPosts TRUE string 职级编码
jobCode memberPosts TRUE string 职务编码
effectiveTime memberPosts TRUE string 生效日期
invalidTime memberPosts TRUE string 失效日期
sortId memberPosts TRUE int32 排序号
topSortId memberPosts TRUE int32 优先置顶排序
isEnable memberPosts TRUE boolean 状态
memberType memberPosts TRUE enum 人员类型。枚举项可选值列表:
NONE(空),
MEMBER(内部人员),
OUTSIDE_MEMBER(外部单位用户),
NATURAL_MEMBER(外部个人用户),
metadataList members TRUE array[OrgMetadataValueDataDto] 自定义扩展属性数据
k metadataList TRUE string 扩展字段的名称
v metadataList TRUE string 扩展字段的的值
certificateType members TRUE string 证件类型
certificateNumber members TRUE string 证件号码
entryDate members TRUE string 入职日期
bankAccount members TRUE string 银行账号
bank members TRUE string 开户银行
bankOutlets members TRUE string 开户网点
image members TRUE string 头像路径
memberType members TRUE enum 人员类型。枚举项可选值列表:
NONE(空),
MEMBER(内部人员),
OUTSIDE_MEMBER(外部单位用户),
NATURAL_MEMBER(外部个人用户),
createTime members TRUE date 创建时间,毫秒时间戳
updateTime members TRUE date 更新时间,毫秒时间戳

请求参数示例

{
  "data": [
      {
        "birthday": "",
        "code": "KXY1081001",
        "gender": "MALE",
        "bankOutlets": "",
        "effectiveTime": "2023-09-01",
        "officeNumber": "",
        "description": "",
        "invalidTime": "2024-12-31",
        "isEnable": "true",
        "bank": "",
        "sortId": 10,
        "email": "",
        "bankAccount": "",
        "image": "",
        "thirdId": "KXY1081001",
        "entryDate": "2023-09-01",
        "updateTime": 1705913802791,
        "memberPosts": [
          {
            "levelCode": "M22",
            "effectiveTime": "2023-09-01",
            "sortId": 10,
            "unitCode": "InformationCenter",
            "jobCode": "JobWorkor",
            "main": "true",
            "postCode": "salesEngineer",
            "invalidTime": "2024-12-31",
            "memberType": "MEMBER",
            "isEnable": "true"
          }
        ],
        "phoneNumber": "18701021001",
        "certificateNumber": "",
        "createTime": 1705913802791,
        "name": "集成演示-张三",
        "memberType": "MEMBER",
        "username": "18701021001",
        "certificateType": "idCard"
      }
    ]
  ,
  "requestId": 1705913802791,
  "notifyUrl": "",
  "timestamp": 1705913802791
}

响应参数(Body)

参数名称 父节点 是否必填 参数类型 参数描述
data SingleData 批量处理结果
content data OrgSyncInfoDto 数据对象
type content enum 任务类型。枚举项可选值列表:
BATCH_UNITS(批量处理组织数据),
BATCH_POSTS(批量处理岗位数据),
BATCH_MEMBERS(批量处理人员数据),
BATCH_JOBS(批量处理职务数据),
BATCH_LEVELS(批量处理职级数据),
BATCH_MEMBER_POSTS(批量处理任职数据),
BATCH_UNIT_METADATA(批量处理组织扩展字段数据),
BATCH_MEMBER_METADATA(批量处理人员扩展字段数据),
BATCH_NATURAL_MEMBERS(批量处理外部个人用户数据),
status content enum 状态。枚举项可选值列表:COMPLETE(完成),
startTime content date 开始时间
endTime content date 结束时间
totalNum content int32 总条数
successNum content int32 任务当前执行成功的条数
failNum content int32 任务当前执行失败的条数
details content array[OrgMessageDto] 详情
line details int32 行号
id details int64 id
name details string 名称
code details string 编号
status details enum 状态。枚举项可选值列表:
SUCCESS(成功),
FAILED(失败),
SKIP(跳过),
messageCode details string 错误码
message details string 信息
status int32 状态
code string 错误码
message string 返回信息

响应参数示例

{
  "code": "200",
  "data": {
    "content": {
      "failNum": 1,
      "totalNum": 100,
      "successNum": 99,
      "startTime": "",
      "details": [
        {
          "code": "",
          "line": 10,
          "name": "",
          "messageCode": "",
          "id": "10828711522402302",
          "message": "SUCCESS",
          "status": ""
        }
      ],
      "endTime": "",
      "type": "BATCH_MEMBERS",
      "status": "READY"
    }
  },
  "message": "成功",
  "status": "FRONT"
}

5、注意事项

接口授权和分配AppKey、AppSecret请参考【数据开放】操作步骤

2 - 数据库中间表(推荐)

针对三方异构系统与COP组织人员数据结构差异较大场景,COP开放数据库中间表,三方异构系统按要求将组织数据写入中间表后,COP重新组装完成组织同步模式。

1、概述

针对三方异构系统与COP组织人员数据结构差异较大场景,COP开放数据库中间表,三方异构系统按要求将组织数据写入中间表后,COP重新组装后完成组织同步模式。

2、优缺点

a. 优点

i. 集成压力小;

ii. 对数据质量要求低;

ⅲ.问题跟踪,问题定位速度快

b. 缺点

i. 无

3、操作步骤

3.1、开放OpenAPI模式(推荐)

序号 步骤名称 责任方 使用场景
1 开放OpenAPI 致远 必须,提供组织数据写入OpenAPI和调用示例
2 新建集成应用,获取集成应用ID 致远 必须,获取集成应用ID,接口必须入参
3 启用API 致远 必须,只有启用API,才能分配授权
4 新建接入应用 致远 必须,分配授权APPKey和AppSecret
5 查看AppKey和AppSecret 致远 必须,接口鉴权使用
6 API授权 致远 必须,未启用时,接口调用直接报错
7 启用接入应用 致远 必须,未启用时,接口调用直接报错
8 选择同步模式 致远 必须,选择中间表模式
9 配置同步周期 致远 必须,配置数据处理周期
10 配置字段映射 致远 必须,字段映射、默认值、过滤条件等
11 调用接口写入数据 三方异构系统 必须,三方异构系统负责写入数据到中间表
12 查看日志 致远 非必须,监控过程数据

3.2、直接写入数据库模式

序号 步骤名称 责任方 使用场景
1 提供数据库连接信息和库表结构 致远 必须,
2 新建集成应用,获取集成应用ID 致远 必须,获取集成应用ID,接口必须入参
3 选择同步模式 致远 必须,选择中间表模式
4 配置同步周期 致远 必须,配置数据处理周期
5 配置字段映射 致远 必须,字段映射、默认值、过滤条件等
6 连接数据库写入数据 三方异构系统 必须,三方异构系统负责写入数据到中间表
7 查看日志 致远 非必须,监控过程数据

4、集成配置步骤

4.1、开放OpenAPI模式(推荐)

4.1.1、开放OpenAPI

参照接口清单

4.1.2、新建集成应用,获取集成应用ID

1720595899626

1720595936814

4.1.3、启用API

1720596032390

4.1.4、新建接入应用

1720596066425

4.1.5、查看AppKey和AppSecret

1720596102771

4.1.6、API授权

1720596150002

4.1.7、启用接入应用

1720596170496

4.1.8、选择同步模式

1720596695013

4.1.9、内容配置

1720596811554

1720596874359

4.1.10、配置同步周期

1720596969443

4.1.11、调用接口写入数据

参考接口清单调用接口处理

4.1.12、查看日志

1720597917440

1720597926133

4.2、直接写入数据库模式

4.2.1、提供数据库连接信息和库表结构

请参照物理表接口定义

4.2.2、新建集成应用,获取集成应用ID

1720595899626

1720595936814

4.2.3、选择同步模式

1720596695013

4.2.4、配置同步内容

1720596811554

1720596874359

4.2.5、配置同步周期

1720596969443

5、接口清单

4.1、接口鉴权

4.1.1、请求头(Header)

参数名称 是否必填 参数说明
app-key true 应用的唯一标识,创建接入应用后生成,可在应用基础信息页面获得。
示例:d43b0b442cf34076a2c4af6bb8928afb
sign-type true 固定值:MD5
sign true 签名,字符串“AppSecret+请求体的JSON字符串+AppSecret”的MD5值(MD5值忽略大小写)
AppSecret,为应用的秘钥,创建接入应用后生成,可在应用基础信息页面获得。
示例:154fa5bc7e294deda68a15559b07c845请求体的JSON字符串,
需要将请求体中的请求参数转换为JSON字符串。
Accept-Language false 语种:用以设置开放平台OpenAPI运行时上下文的语种参数。
枚举项可选值列表:zh-CN(简体中文),
zh-TW(繁体中文),
en(英文),
其他枚举项请参照平台语种列表。

4.1.2、签名示例(sign)

String secret = "154fa5bc7e294deda68a15559b07c845";
String body = "{"name": "张三", "age": 35, "company": {"name": "致远", "address": "北京"}";
String sign = Md5(secret + body + secret); // 结果是 01a8795a7fe6dda23aaec40de3d301b7;

4.2、批量插入组织中间表(机构/部门)

请求地址:

【接口请求地址前缀】/cip-connector/middle-table/unit-create

请求参数

参数名称 父节点 是否必填 参数类型 参数描述
requestId true string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp true int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data true UnitInfoReqDto 请求参数数据
linkerId data true int64 集成应用ID
data data true array[UnitInfoDto] 数据列表
code data true string 编码
name data true string 组织名称
parentCode data true string 父组织code
shortName data false string 简称
type data false enum 类型。枚举项可选值列表:
INSTITUTION(机构),
DEPARTMENT(部门),
thirdId data false string 第三方组织id
enable data false boolean 是否启用
thirdUpdateTime data true date 第三方数据最新时间
sortId data false int32 排序号
str1 data false string 扩展字段1
str2 data false string 扩展字段2
str3 data false string 扩展字段3
str4 data false string 扩展字段4
str5 data false string 扩展字段5
str6 data false string 扩展字段6
str7 data false string 扩展字段7
str8 data false string 扩展字段8
str9 data false string 扩展字段9
str10 data false string 扩展字段10

请求示例

{
  "data": {
    "data": [
      {
        "code": "100101",
        "thirdId": "100101",
        "type": "INSTITUTION",
        "str7": "",
        "str8": "",
        "str5": "",
        "str6": "",
        "str3": "",
        "parentCode": "group",
        "str4": "",
        "enable": "true",
        "sortId": 1,
        "str1": "",
        "str2": "",
        "name": "API导入致远",
        "str10": "",
        "shortName": "API导入致远",
        "thirdUpdateTime": "2024-01-01",
        "str9": ""
      }
    ],
    "linkerId": "-4511464491497948501"
  },
  "requestId": "3799345662156838701",
  "notifyUrl": "",
  "timestamp": 1720592508046
}

返回参数

参数名称 父节点 参数类型 参数描述
data SingleData 返回值数据
content data void 数据对象
status int32 状态
code string 错误码
message string 返回信息

返回示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": null
}

4.3、批量插入岗位中间表

请求地址:

【接口请求地址前缀】/cip-connector/middle-table/post-create

请求参数

参数名称 父节点 是否必填 参数类型 参数描述
requestId true string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp true int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data true PostInfoReqDto 请求参数数据
linkerId data true int64 集成应用ID
data data true array[PostInfoDto] 数据列表
code data true string 编码
name data true string 名称
unitCode data true string 组织code
thirdId data false string 第三方id
type data false string 岗位分类枚举值code
category data false enum 岗位性质。枚举项可选值列表:
NONE(空),
BENCH_MARK(基准岗),
SELF_BUILT(自用岗),
enable data false boolean 是否启用
thirdUpdateTime data true date 第三方数据最新时间
sortId data false int32 排序号

请求示例

{
  "data": {
    "data": [
      {
        "code": "001",
        "thirdId": "12345",
        "enable": "true",
        "sortId": 1,
        "unitCode": "100101",
        "name": "P0",
        "type": "1",
        "category": "BENCH_MARK",
        "thirdUpdateTime": "2024-01-01"
      }
    ],
    "linkerId": "-4511464491497948501"
  },
  "requestId": "-4579930924623847185",
  "notifyUrl": "",
  "timestamp": 1720592507597
}

返回参数

参数名称 父节点 参数类型 参数描述
data SingleData 返回值数据
content data void 数据对象
status int32 状态
code string 错误码
message string 返回信息

返回示例

{
    "status": 0,
    "code": "BOOT_0000",
    "message": "SUCCESS",
    "data": null
}

4.4、批量插入职级中间表

请求地址:

【接口请求地址前缀】/cip-connector/middle-table/level-create

请求参数

参数名称 父节点 是否必填 参数类型 参数描述
requestId true string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp true int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data true LevelInfoReqDto 请求参数数据
linkerId data true int64 集成应用ID
data data true array[LevelInfoDto] 数据列表
code data true string 编码
name data true string 名称
thirdId data false string 第三方id
enable data false boolean 是否启用
thirdUpdateTime data true date 第三方数据最新时间
sortId data false int32 排序号(默认:1)

请求示例

{
  "data": {
    "data": [
      {
        "code": "001",
        "thirdId": "12345",
        "enable": "true",
        "sortId": 1,
        "name": "P0",
        "thirdUpdateTime": "2024-01-01"
      }
    ],
    "linkerId": "158933225308768072"
  },
  "requestId": "-395422794033167315",
  "notifyUrl": "",
  "timestamp": 1720592508081
}

返回参数

参数名称 父节点 参数类型 参数描述
data SingleData 返回值数据
content data void 数据对象
status int32 状态
code string 错误码
message string 返回信息

返回示例

{
  "code": "200",
  "data": {
    "content": ""
  },
  "message": "成功",
  "status": "FRONT"
}

4.5、批量插入人员中间表

请求地址:

【接口请求地址前缀】/cip-connector/middle-table/member-create

请求参数

参数名称 父节点 是否必填 参数类型 参数描述
requestId true string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp true int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data true MemberInfoReqDto 请求参数数据
linkerId data true int64 集成应用ID
data data true array[MemberInfoDto] 数据列表
code data true string 编码
name data true string 名称
thirdId data false string 第三方id
email data false string 邮箱
phoneNumber data false string 手机
gender data false enum 性别。枚举项可选值列表:
NONE(空),
MALE(男),
FEMALE(女),
UN_KNOW(未知),
unitCode data true string 组织code
thirdJobId data false string 第三方任职id
main data false boolean 是否主岗
postCode data false string 岗位code
levelCode data false string 职级code
effectiveTime data false date 生效日期
invalidTime data false date 失效日期
enable data true boolean 是否启用
thirdUpdateTime data true date 第三方数据最新时间
sortId data false int32 排序号(默认:1)
str1 data false string 扩展字段1
str2 data false string 扩展字段2
str3 data false string 扩展字段3
str4 data false string 扩展字段4
str5 data false string 扩展字段5
str6 data false string 扩展字段6
str7 data false string 扩展字段7
str8 data false string 扩展字段8
str9 data false string 扩展字段9
str10 data false string 扩展字段10

请求示例

{
  "data": {
    "data": [
      {
        "code": "001",
        "gender": "MALE",
        "effectiveTime": "2023-12-31 00:00:00",
        "main": "true",
        "invalidTime": "9999-12-31 00:00:00",
        "str7": "aaa",
        "levelCode": "001",
        "str8": "aaa",
        "str5": "aaa",
        "str6": "aaa",
        "str3": "aaa",
        "str4": "aaa",
        "enable": "true",
        "sortId": 1,
        "str1": "aaa",
        "unitCode": "seeyon",
        "str2": "aaa",
        "str10": "aaa",
        "email": "pan@163.com",
        "thirdUpdateTime": "2024-01-01",
        "str9": "aaa",
        "thirdId": "12345",
        "thirdJobId": "12345456",
        "phoneNumber": "1345668900",
        "name": "P0",
        "postCode": "defaultCode"
      }
    ],
    "linkerId": "158933225308768072"
  },
  "requestId": "1121213206799116311",
  "notifyUrl": "",
  "timestamp": 1720592507997
}

返回参数

参数名称 父节点 参数类型 参数描述
data SingleData 返回值数据
content data void 数据对象
status int32 状态
code string 错误码
message string 返回信息

返回示例

{
  "code": "200",
  "data": {
    "content": ""
  },
  "message": "成功",
  "status": "FRONT"
}

4.6、确认全量同步完毕(必须)

说明:

全量模式下,每次全量数据写入中间表后,必须调用当前接口,否则即使满足集成平台配置的定时执行时间,也不会执行同步

请求地址:

【接口请求地址前缀】/cip-connector/middle-table/sync-finish

请求参数

参数名称 父节点 是否必填 参数类型 参数描述
requestId true string 请求流水号。同一接入应用下的流水号不要重复;
最长32位,超过部分会被截断。
timestamp true int64 请求时间戳。请求时间和服务器时间不能相差过大,
默认5分钟以内。
notifyUrl false string 异步回调URL。如果此参数非空,表示使用异步方式调用开放API,
执行结果将通过此URL异步通知调用者。
data true int64 集成应用ID

请求示例

{
  "data": "-4511464491497948501",
  "requestId": "-4875171919230719752",
  "notifyUrl": "",
  "timestamp": 1720592508031
}

返回参数

参数名称 父节点 参数类型 参数描述
data SingleData 返回值数据
content data string 数据对象
status int32 状态
code string 错误码
message string 返回信息

返回示例

{
  "code": "200",
  "data": {
    "content": ""
  },
  "message": "成功",
  "status": "FRONT"
}

6、物理表结构

注意:库名称:cip-connector

6.1、机构/部门

CREATE TABLE `cip_sync_unit` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  `version` smallint(6) NOT NULL COMMENT '版本号',
  `linker_id` bigint(20) NOT NULL COMMENT '连接器ID',
  `code` varchar(100) DEFAULT NULL COMMENT '组织编号',
  `name` varchar(255) DEFAULT NULL COMMENT '组织名称',
  `short_name` varchar(255)  DEFAULT NULL COMMENT '简称',
  `type` smallint  NOT NULL COMMENT '类型(机构=1,部门=2)',
  `parent_code` varchar(100)  DEFAULT NULL COMMENT '父组织code',
  `third_id` varchar(100) DEFAULT NULL COMMENT '组织id',
  `is_enable` tinyint(1)  NOT NULL COMMENT '是否启用(1-启用,0-停用)',
  `third_update_time` datetime NOT NULL COMMENT '第三方数据最新时间',
  `status` smallint  NOT NULL DEFAULT 0 COMMENT '同步状态(不处理=-1,未处理=0,失败=1,成功=2)',
  `retry` smallint NOT NULL DEFAULT 0 COMMENT '重试次数',
  `batch` varchar(20) DEFAULT NULL COMMENT '批次号',
  `sort_id` int(11) NOT NULL DEFAULT 1 COMMENT '排序号',
  `v8_id` bigint(20) NOT NULL DEFAULT -1 COMMENT 'V8ID',
  `str1` varchar(255)  DEFAULT NULL COMMENT '扩展字段1',
  `str2` varchar(255)  DEFAULT NULL COMMENT '扩展字段2',
  `str3` varchar(255)  DEFAULT NULL COMMENT '扩展字段3',
  `str4` varchar(255)  DEFAULT NULL COMMENT '扩展字段4',
  `str5` varchar(255)  DEFAULT NULL COMMENT '扩展字段5',
  `str6` varchar(255)  DEFAULT NULL COMMENT '扩展字段6',
  `str7` varchar(255)  DEFAULT NULL COMMENT '扩展字段7',
  `str8` varchar(255)  DEFAULT NULL COMMENT '扩展字段8',
  `str9` varchar(255)  DEFAULT NULL COMMENT '扩展字段9',
  `str10` varchar(255)  DEFAULT NULL COMMENT '扩展字段10',
  `msg` longtext  DEFAULT NULL COMMENT '异常信息',
  PRIMARY KEY (`id`)
) COMMENT='组织同步组织中间表';

6.2、职级

CREATE TABLE `cip_sync_level` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  `version` smallint(6) NOT NULL COMMENT '版本号',
  `linker_id` bigint(20) NOT NULL COMMENT '连接器ID',
  `code` varchar(50) DEFAULT NULL COMMENT '职级编号',
  `name` varchar(100) DEFAULT NULL COMMENT '职级名称',
  `third_id` varchar(100) DEFAULT NULL COMMENT '职级id',
  `is_enable` tinyint(1)  NOT NULL COMMENT '是否启用(1-启用,0-停用)',
  `third_update_time` datetime NOT NULL COMMENT '第三方数据最新时间',
  `status` smallint NOT NULL DEFAULT 0 COMMENT '同步状态(不处理=-1,未处理=0,失败=1,成功=2)',
  `retry` smallint NOT NULL DEFAULT 0 COMMENT '重试次数',
  `batch` varchar(20) DEFAULT NULL COMMENT '批次号',
  `sort_id` int(11) NOT NULL DEFAULT 1 COMMENT '排序号',
  `v8_id` bigint(20) NOT NULL DEFAULT -1 COMMENT 'V8ID',
  `msg` longtext  DEFAULT NULL COMMENT '异常信息',
  PRIMARY KEY (`id`)
) COMMENT='组织同步职级中间表';

6.3、岗位

CREATE TABLE `cip_sync_post` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  `version` smallint(6) NOT NULL COMMENT '版本号',
  `linker_id` bigint(20) NOT NULL COMMENT '连接器ID',
  `code` varchar(50) DEFAULT NULL COMMENT '岗位编号',
  `name` varchar(100) DEFAULT NULL COMMENT '岗位名称',
  `unit_code` varchar(100) DEFAULT NULL COMMENT '组织code',
  `type` varchar(100) DEFAULT NULL COMMENT '岗位分类枚举值code',
  `category` smallint NOT NULL DEFAULT 0 COMMENT '岗位性质(基准岗=0,自用岗=1)',
  `third_id` varchar(100) DEFAULT NULL COMMENT '岗位id',
  `is_enable` tinyint(1)  NOT NULL COMMENT '是否启用(1-启用,0-停用)',
  `third_update_time` datetime NOT NULL COMMENT '第三方数据最新时间',
  `status` smallint NOT NULL DEFAULT 0 COMMENT '同步状态(不处理=-1,未处理=0,失败=1,成功=2)',
  `retry` smallint NOT NULL DEFAULT 0 COMMENT '重试次数',
  `batch` varchar(20) DEFAULT NULL COMMENT '批次号',
  `sort_id` int(11) NOT NULL DEFAULT 1 COMMENT '排序号',
  `v8_id` bigint(20) NOT NULL DEFAULT -1 COMMENT 'V8ID',
  `msg` longtext  DEFAULT NULL COMMENT '异常信息',
  PRIMARY KEY (`id`)
) COMMENT='组织同步岗位中间表';

6.4、人员&任职

CREATE TABLE `cip_sync_member` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `tenant_id` bigint(20) NOT NULL COMMENT '租户ID',
  `create_time` datetime NOT NULL COMMENT '创建时间',
  `update_time` datetime NOT NULL COMMENT '修改时间',
  `version` smallint(6) NOT NULL COMMENT '版本号',
  `linker_id` bigint(20) NOT NULL COMMENT '连接器ID',
  `code` varchar(50) DEFAULT NULL COMMENT '工号',
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `third_id` varchar(100) DEFAULT NULL COMMENT '第三方人员id',
  `gender` smallint NOT NULL DEFAULT 0 COMMENT '性别(男=0,女=1)',
  `email` varchar(255) DEFAULT NULL COMMENT '邮箱',
  `phone_number` varchar(20) DEFAULT NULL COMMENT '手机号码',
  `unit_code` varchar(100) DEFAULT NULL COMMENT '组织code',
  `third_job_id` varchar(100) DEFAULT NULL COMMENT '第三方任职id',
  `is_main` tinyint(1) NOT NULL DEFAULT '1' COMMENT '是否主岗(主岗=1,副岗=0)',
  `post_code` varchar(50) DEFAULT NULL COMMENT '岗位code',
  `level_code` varchar(50) DEFAULT NULL COMMENT '职级code',
  `effective_time` datetime NOT NULL DEFAULT '2024-01-01' COMMENT '生效日期',
  `invalid_time` datetime NOT NULL DEFAULT '9998-12-31' COMMENT '失效日期',
  `is_enable` tinyint(1)  NOT NULL COMMENT '是否启用(1-启用,0-停用)',
  `third_update_time` datetime NOT NULL COMMENT '第三方数据最新时间',
  `status` smallint NOT NULL DEFAULT 0 COMMENT '同步状态(不处理=-1,未处理=0,失败=1,成功=2)',
  `retry` smallint NOT NULL DEFAULT 0 COMMENT '重试次数',
  `batch` varchar(20) DEFAULT NULL COMMENT '批次号',
  `sort_id` int(11) NOT NULL DEFAULT 1 COMMENT '排序号',
  `v8_id` bigint(20) NOT NULL DEFAULT -1 COMMENT 'V8ID',
  `str1` varchar(255)  DEFAULT NULL COMMENT '扩展字段1',
  `str2` varchar(255)  DEFAULT NULL COMMENT '扩展字段2',
  `str3` varchar(255)  DEFAULT NULL COMMENT '扩展字段3',
  `str4` varchar(255)  DEFAULT NULL COMMENT '扩展字段4',
  `str5` varchar(255)  DEFAULT NULL COMMENT '扩展字段5',
  `str6` varchar(255)  DEFAULT NULL COMMENT '扩展字段6',
  `str7` varchar(255)  DEFAULT NULL COMMENT '扩展字段7',
  `str8` varchar(255)  DEFAULT NULL COMMENT '扩展字段8',
  `str9` varchar(255)  DEFAULT NULL COMMENT '扩展字段9',
  `str10` varchar(255)  DEFAULT NULL COMMENT '扩展字段10',
  `msg` longtext  DEFAULT NULL COMMENT '异常信息',
  PRIMARY KEY (`id`)
) COMMENT='组织同步人员中间表';

7、注意事项

7.1、更新标识【重重重】

选择OpenAPI模式时,为了防止同一批次数据全部写入前,定时处理任务开始执行,造成数据不完整,请务必再同一批次数据写入完成后调用【全量同步完毕】接口,更新批次同步完成标识。

7.2、扩展字段定义

1720595133347

7.3、集成应用ID

1720594988748

7.4、开放OpenAPI

如需要限制访问IP、限流控制等高级设计,请参考集成开发-开放平台-接入应用配置说明

7.5、手工同步

如果同步频率配置的为手工同步,请在调用OpenAPI写入数据,调用【全部同步完毕】接口后,手工点击执行同步,否则数据不会再日志表中执行同步。


3 - 第三方同步到V8常见问题

常见问题记录。

1、拉取方式

适合全量 从上到下依次进行。第一遍,要单个逐次手动同步。组织同步标识都是作为v8的code进行同步的。 拉取有一定的制约性,比如人员接口入参是机构id,如果前面机构同步,用code做标识,那么后面循环拉取就获取不到人员信息。

1.1、常见问题

1、任职→查询底表是否已经有该人员→调用组织模型接口 任职数据,需先同步人员基本信息,如果手动系统录入人员,目前任职无法通过连接器进入系统。 2、如果组织的扩展字段是人员,那么还需同步第二遍。 3、拉取接口变化成分页,因为业务路径会变化,所有配置项需要重新选一遍。 4、内部根节点,外部根节点如果选错同步后,因为组织模型目前不支持跨单位调整部门,所以需要手动进行维护,或者找组织模型部门人员,清空数据库重新同步。 5、如果是导入的连接器,要核实一下所有页签的业务路径和参数。 6、偶尔有表达式感觉不生效的情况,重新清空保存然后再选一遍重试。 7、如果日志中,接口中有日志,但是组织同步页签没有日志,那么应该后台报错了,需要取服务器日志(cip-connector)进一步分析。 搜索关键字为:执行组织同步任务项。 常见的一种情况是机构授权数不够,无法新建机构,这个找商务进行license授权 8、组织同步日志表,如果量大也可以手动清理。 cip-connector库: select * from cip_p_sync_his where plugin_id=(select id from cip_p_plugin_info where connector_id={连接器id}) and data_type in(0,1,2,3,4,5,6,7); 其中:data_type: 0=组织(单位+部门)基本信息,1=组织(单位+部门)扩展信息,2=岗位信息,3=职务信息,4=职级信息,5=人员基本信息,6=人员扩展信息,7=人员任职信息

img1

2、第三方推送

2.1、事件订阅和消息队列

事件订阅:监听第三方回调事件 消息队列:监听mq 因为组织模型的关联性和异步性,可以作为中间的一种技术手段,不建议作为直接交付使用。

2.2、中间表

支持全量/增量。支持重试。暂不支持自动创建用户映射。一般需第三方开发或者结合微流程开发使用。 可以直接将数据直插数据库表,也可以通过openapi进行插入。 全量模式: 1、如果第三方只给最新的启用的组织,停用数据不给,那么会比较v8数据,自动进行停用。 2、需要同步完全部数据后,再给予一个同步完成标识。 增量模式: 按照[第三方数据最新时间]比对出最新数据,定时同步。每次同步为一个批次。 【写入02】任职变化时,写入用户的全部任职,与【写入01】只能二选一,这个意思是人员增量,但是对应的任职必须是该人全部的。如果人员第一次同步任职有两条任职,第二次同步有一条新增任职,目前因为没有组织模型没有记录任职唯一标识,无法判断第二次任职是新增还是更新已有的某个岗位。