一、系统集成平台位置
如何开通
下集成平台的订单,所有连接器可用。
入口位置
位于 管理后台 --> 系统集成平台 (当前处于灰度阶段,下订单以后找 研发值班开通灰度)
基本概念
一个集成流由1个trigger节点和若干个action节点组成。第1个节点就是trigger节点,其它的都是action节点。
二、基本配置步骤
1、新建集成流
点击 管理后台 --> 集成流编排
2、创建授权,连接三方系统
3. 选择调试数据
4. 字段映射
绑定数组的作用是:从对象可以像主对象一样配置字段映射。集成平台内部会自动识别,循环处理主数据下所有从数据。
5、保存ID映射关系
系统集成平台(ipaas2.0), 使用CRM的自定义对象来存储id映射关系, 人员账号绑定关系,国家省市区的映射关系。
一个租户下所有集成流,只能使用同一个CRM自定义对象来存储ID映射关系。通过分类字段进行区分。
5.1在CRM新建 自定义对象
主属性类型选择自增编号
不需要新增什么字段,点击保存就行
5.2 在集成平台绑定CRM自定义对象
进入 管理后台 --> 系统集成平台 --> 工具 --> 数据存储
选择新建的中间表映射对象进行绑定
6.查询集成流运行日志
管理后台 --> 系统集成平台 --> 运行监控 --> 同步日志
7.自定义函数节点


如果入参需要用到多个参数,可以使用公式把数据放到一起传,比如:tuple(数据1的变量,数据2的变量),如下:
附录A。K3c特性配置指引
附录B。实际配置例子参考
1、物料分组同步:erp --> crm
1、新建集成流,触发事件选择Bill Query Polling,输入SAL_MATERIALGROUP
2、字段映射,选择纷享销客CRM连接器,执行动作选择 创建或者更新数据,对象apiName选择 产品分类
选择需要映射的字段
填写_id映射,有值更新,没有找到映射的值就新增
3、选择映射关系
4、成功后选择发布,启用集成流
2、物料同步: erp -- > crm
1、新建集成流,触发事件选择Bill Query Polling,FormId选择 Material (BD_MATERIAL)
2、字段映射,选择纷享销客CRM连接器,执行动作选择 创建或者更新数据,对象apiName选择 产品
如果有依赖的字段,需要先建相关的集成流,再通过lookupmapping进行查找关联
3、选择映射关系
4、成功后选择发布,启用集成流
3、销售订单同步 crm --> erp
1、新建连接器,触发节点选择 纷享销客CRM连接器
2、创建条件分支,这步是为了判断销售订单是新增还是更新
3、判断走新增,新建k3cloud 保存提交审核节点
从对象需要选择绑定数组
4、选择映射关系
5、此时新增已经走通了,重新选择触发节点,现在相同的销售订单,条件分支判断为false,走到更新分支
6、反审核节点
7、新增保存提交审核节点,注意此时是更新数据,需要填写主键id
8、新增映射关系节点
10、成功后选择发布,启用集成流
附录C. 常见问题
1、中间表映射节点怎么保存
1、映射数据会保存在上面新建的自定义对象中
2、映射数据选择几个,下面可填写映射数量有几个
3、填写映射数据分类的时候,如果是手动填写的固定值,一定需要选择固定值
3、如果同时需要保存id映射和编码映射,需要两个映射数据,一个填写id映射,一个填写编码映射
4、明细映射,需要几个明细对象映射,就需要增加几个,比如一个主对象映射,两个从对象映射,就需要选择映射数量为3,当前选择不同的明细数量后系统会清空已填写的映射,这块尽量一开始就规划好所需要的映射数量;选择明细映射数据的时候,因为需要轮询插入多条明细,需要增加公式:pluck
2、中间表映射节点怎么查询
选择公式:lookupmapping。
从中间映射对象上找到关联字段的值,例如下面查询映射数据分类为 销售订单ID,通过_id的值匹配ID2,来找到ID1的值
3、crm人员字段怎么填,核心是字符串数组
1、固定值:
2、字段映射:
4、时间日期转换公式
比如crm是时间戳 --> erp是日期时间
5、订单依赖客户,该怎么配置?
客户作为单独的集成流,订单也是单独的集成流,订单上增加一个mappingwait节点,
订单集成流依赖等待 客户集成流。
下面以物料分组为例,同步的时候,上级物料分类没有同步过来的时候,需要等待上级物料分组先同步过来,再同步改物料分组。
方法:增加映射等待节点,该节点会在30分钟内不断查询依赖集成流关联数据的同步情况,如果查到后就会往下流转
从对象的等待映射:这块注意,由于涉及多个明细,需要用到公式:pluck
6.自研系统怎么对接?
1.通过http组件。适合接口比较少的时候。
2.先通过连接器开发者平台创建一个连接器,然后从集成流上选择连接器使用。适合接口比较多的情况。
7.订单明细更新时会删除后新增,导致映射表错误
应避免覆盖式删除重建,按映射关系直接修改明细
8.云星空客户分配规则会返回多组织客户,CRM 只需要部分组织
trigger 附加
filterString,按需配置查询条件9.把 2000 个 FNumber 拼成超长 OR,导致报错:"ErrorCode":500,"IsSuccess":false,"Errors":[{"Message":"GetRealExpress error. detail message is :\n过滤条件太长,请修改此过滤条件
将or条件拼成in
10.如何做数据过滤?
1.K3cloud 为trigger的时候,可以在trigger直接过滤拉取的数据
2.增加条件通行组件,满足条件的才会继续执行
11.配置了查找中间表公式但是值没有转换或转换后报错
1.先检查该节点输入时,这个字段有没有传值,没有传值的话:
1)检查第一个参数,查找的分类名称是否填写正确
2)检查第二个参数表达式是否选择正确
3)检查第三个参数,查找的数据id是否正确
如果有值的话:
1)确认查找到的id在目标系统存在,比如查找到的crm的数据,那这条数据是否在crm还存在
常见场景有,同步了数据后,删除了目标系统数据,但是中间表没有清除,导致查出来的还是原来的值
12.历史数据外部 1 万多条,CRM 只有 5 千多条
检查同步日志列表,排查错误日志
13.编辑数据没同步
检查action中的 primary key 是否有值且传值正确
14.外部数据同步到CRM 时提示XX关联关系不存在
这是crm该字段使用了查找关联,检查字段查找的中间表结果是否正确
15.ERP 从对象被 CRM 空数组覆盖
当前逻辑会用CRM传入的数组覆盖 ERP 数组,如果不需要同步,就不要对接该从对象
16.第一个节点无法做过滤
可以在 filter 配置查询条件,或者使用条件通行节点处理。
17.已配置好的流程中插入分支条件后需要重新配置
可以优先使用条件通行节点;同时建议支持节点复制/插入后保留已有配置。
18.配置检查时系统校验已有数据,导致无法继续配置
建议取消配置阶段的强校验,改为同步执行时校验;配置阶段只做提示。
19.金蝶客户编码未对接,推送后没有按金蝶规则生成
需要和客户确认编码生成规则;若由 ERP 自动生成,则 CRM 推送时不要覆盖编码字段。
21.物料分组上级不存在时,下级仍被同步
可以通过依赖等待节点控制顺序。
22.产品只同步基本单位,多单位未一并同步
产品和多单位存在依赖关系,先同步产品,再同步多单位;可增加 映射等待节点。
23.CRM 推送 ERP 单据后需要回写
ERP保存节点后,增加一个CRM节点。
24.多次同步历史数据的时候,第二次没有同步
需要清除快照(临时库)数据。
25.ERP 单选字段和 CRM 单选字段如何配置
选项值一致时可直接配置;不一致时需要把 选项对应关系导入中间映射表,使用的使用通过lookupmapping查找。
26.价目表和价目明细是否能放在同一个集成流
建议分开2个集成流。从对象的流之间建议通过依赖等待节点串联。
27.新增时希望写入某些字段,更新时不希望更新这些字段
需要区分新增字段和更新字段配置,避免更新动作覆盖不该更新的字段。
28.销售订单同步 ERP 时传了明细产品,仍提示明细必填
需要检查 ERP 侧可售范围、物料是否可被当前组织/订单选择,物料状态可否已审核。
29.同一条数据短时间同步两次,第二次应该编辑却走了新增
需要检查中间表映射是否及时生成,以及新增/编辑判断条件是否正确。
30.微信聊天记录消息类型从整数变成 1.0
需要检查字段类型转换逻辑,运行时应保持整数类型,不要转成浮点数。
31.创建映射关系后没有写入中间表
需要检查映射节点是否真正执行成功,以及中间表分类、主键、写入条件是否正确。
32.定时轮询接口或历史数据无法同步
需要检查轮询任务是否启用、轮询时间配置、接口是否支持历史数据拉取。
33.附件字段无法找到字段对应关系
需要按附件对接方案处理,确认附件字段的返回结构、下载地址和 CRM 附件字段写入方式。
34.trigger 选了 3 条样例数据,但下游节点重新查询全量数据
下游节点应沿用 trigger 当前样例/上下文,不应重新拉全量数据。
35.同一对象既有回调又有定时轮询,字段映射是否要配置两遍
根据客户时效要求选择一种方案;如果两种都启用,通常需要分别配置对应集成流。
36.字段映射只能找 ID,不好识别
配置字段映射的时候,映射ID后,可以将两边的主属性字段也映射上,但是需要注意,主属性字段只作为展示,无法查询
37.日志列表数据没有同步成功,中间表也没,但是erp有数据
保存、提交是分开的步骤,保存成功了,提交失败,写中间表在提交节点后面,所以没执行。
38.没改流配置,crm数据只改了客户,同步的时候提示销售员必填
客户不同,关联的销售部门不同,对接的销售员没有在对应部门下,在erp能选销售员是因为人工将客户带出来的部门清除了。如果不对接销售部门,在字段映射的时候,将销售部门设置为固定值 null
39. 外部数据同步到CRM,返回:FS远程服务异常,500......
检查输入的数据类型是否正确,一般有负责人或者部门格式不正确,需要数组
40. 同步销售订单到金蝶,接口返回:Save failed: NeedReturnData exception: Unable to cast object of type 'Kingdee.BOS.Core.Metadata.FieldElement.BaseDataField' to type 'Kingdee.BOS.Core.Metadata.EntityElement.Entity'.
解决方法:配置的返回字段去掉明细的物料编码
41. 创建映射节点返回的空数组
检查配置的地方,映射分类是不是选择的固定值
42.金蝶系统有值,但是获取测试样本数据列表为空,或外部有明细,但是获取到的明细列表为空
1.检查trigger 是否配置了筛选条件,测试数据是否满足条件
2.检查trigger配置的返回字段,主从是否都加了ID字段
43.k3cloud 保存订单报错
节点[k3cloud]执行失败,错误信息:Save failed: FCustId: 字段“客户”是必填项 (index=0); FSalerId: 字段“销售员”是必填项 (index=0); FSaleOrderEntry: 分录实体“订单明细”是必填项 (index=0); MsgCode=11
下面的解决方法(1)销售订单中的客户 FCustId 要用客户编码,不用客户id从 AccountObj.ID.CRM_ERP_MAP 改为 AccountObj.NUMBER.CRM_ERP_MAP 后不报错了(2) 输入中 FSalerId 是空的说明id映射表缺少 EmployeeObj.ID.CRM_ERP_MAP 类型的数据,加一条。(3) FSaleOrderEntry: 分录实体“订单明细”是必填项 (index=0); MsgCode=11。k3cloud返回的报错信息有误导,其实是分录实体“订单明细”某个字段为空。看输入FSaleOrderEntry: [{FEntryID: "6a60917859cb2e0007fb1337", FMaterialId: {FNumber: "1132133"}, FUnitID: {},…}]FUnitID: 改为lookup正确的单位,或者清空不填写。 报错消除。(4)上面的问题解决后,报下面呢的错误节点[k3cloud]执行失败,错误信息:Submit failed: 单据编号为“20260722-000117”的销售订单,只有暂存、创建和重新审核的数据才允许提交! (index=0); MsgCode=11 Automatic cleanup failed after submit error: Delete failed: 单据编号为“20260722-000117”的销售订单,只能删除创建状态或者暂存的数据! (index=0);解决:在action配置中,打开 ”更新前需先反审核“选项,下面选择 primary key即可 成功保存订单。
44.K3C产品分组历史数据同步,K3C只有几十条数据,但是拉回来的数据却非常多
产品分组不能增量更新,是全量更新,集成流里没有时间字段。如果同步历史数据时又选择了时间段,那么同步历史数据时,时间段内的每天都会全量拉取一次分组数据,所以总条数=时间范围天数*分组数据条数
45.包含CPQ的订单同步到K3C的时候,返回错误如图
原因1:CPQ对应产品组合或选配明细没有同步到K3C
原因2:编辑既有订单,新增了一个CPQ,返回这个错误,需要将isEntryBatchFill设为false