需要解决问题点:
多账套之间要根据账套间数据是否存在重复情况来修改接口的单据唯一值字段,
需要实现,crm账套中的数据在对接任一账套的接口时,都能通过:编号、名称或内码id 的方式 确定唯一的正确对应数据
1 、云星空、t+、好业财等api配置的接口(不包含云星辰)
1.1 、客户、产品接口 crm->erp方向
erp的保存接口,更新单据时需传值erp的主键ID,crm对应单据中需要存储对应的erp主键ID(接口默认是存储在kis_id字段上的)
1.1.1 、如果crm的一条客户产品数据只会同步到erp其中一个账套,且erp的多个账套的历史数据间不存在重复的编号
解决方案:
多账套间数据不存在冲突。
crm增加下拉框字段:“同步账套”,通过“同步账套”字段作为过滤条件来判断crm数据需要同步到星空的那一个账套上。
其他字段配置方案和只有一个账套的接口配置方案一致。
1.1.2 、如果crm的一条客户产品数据只会同步到erp其中一个账套,但是erp的多个账套的历史数据间存在重复的编号
解决方案:
crm增加一个自定义字段“erp单据编号”来对应erp历史数据的单据编号,crm通过触发器、工作流或者创建单据时手动输入等方法实现在新增单据时,这个erp编号字段需要有值,且对应一个erp账套的数据中不存在重复,连接erp映射时用“erp单据编号”字段来对应erp的单据编号字段。
crm预置的单据编号字段不要映射到erp的单据编号字段,可以映射到erp的其他字段上或者不做映射。
crm增加下拉框字段:“同步账套”,通过“同步账套”字段作为过滤条件来判断crm数据需要同步到erp的那一个账套上。
其他字段配置方案和只有一个账套的接口配置方案一致。
1.1.3 、如果crm的一条数据需要同步到erp的多个账套
解决方案:
a、好业财系统产品接口crm->erp对接:
好业财的产品接口crm->erp方向是按照产品编码进行更新的,不需要传递内码,产品接口配置crm->erp方向时只需要以产品编号为单据唯一值即可
b、除好业财以外api系统对接 以及 好业财的客户接口:
crm单据对应模块主表增加字段 kis_id1、kis_id2...,分别对应第一个账套的erp数据主键id、第二个账套的erp数据主键id...,连接erp映射时,第一个账套使用crm的kis_id1映射erp的“erp单据内码”字段、第二个账套使用crm的kis_id2映射erp的“erp单据内码”字段。(接口映射时,crm字段选不到kis_id1、kis_id2,需要在数据库里进行修改crm字段)
crm->erp对应模块的配置文件需要添加一行代码
$this->crmErpIdField='kis_id'.$this->input->input('exch_key');
代码含义:
接口crm->erp同步成功时,会将erp的内码更新到crm对应单据中$this->crmErpIdField变量对应的字段上,
$this->input->input('exch_key') 的值为接口的erp账套ID,
1.2 、客户、产品接口 erp->crm方向
crm的保存接口一般使用单据编号作为唯一值
如果不传单据编号字段使用其他字段作为单据唯一值,不传单据编号时,会按照crm后台设置的编码规则自动生成编码
1.2.1 、erp多个账套的数据,每个账套的编码规则不同,单据编号不存在重复的情况
解决方案:
接口使用单据编号字段作为接口唯一值, 字段映射正常配置
1.2.2 、erp多个账套,单据编号编码规则一致,账套间编码一样的单据是一样的数据
解决方案:
a 、如果一个编号的数据,在erp多账套中同时存在,但是在crm一个编号的数据只显示一条
接口设置单据编号作为唯一值,其他字段正常配置。
b 、如果一个编号的数据,在erp有几个账套中存在,在crm中就显示几条数据(按账套区分)
解决方案同下一条 1.2.3 解决方案一致
1.2.3 、多个账套间单据编码规则相同,不同账套同一编码的单据代表不同的数据
解决方案:
crm预置的单据编号字段连接erp接口不做映射。
crm增加字段 “erp单据编号” ,连接erp接口用这个增加的字段来映射erp对应模块的编号字段(crm预计的单据编号字段是不允许保存重复值的)
crm增加字段 “erp账套”,连接erp映射这个账套字段给默认值,区分来源账套
连接erp该接口映射 “erp单据编号” 和“erp账套” 两个字段都需要勾选 数据同步唯一项 为 “是” ,同时作为接口的单据唯一值(多个字段同时勾选是数据同步唯一项时,多个值是 “且” 的关系)
1.3 、销售订单等业务单据 crm->erp方向
erp的保存接口,同步销售订单的时候同步客户,产品字段一般是使用编号(也有可能是使用名称客户可以在云星空自行调整)
crm选择客户或者产品时,添加取值SQL或者选择取值字段时需要注意,最终需要传到erp的值为该账套对应的单据在erp的编码或者名称
1.3.1 、crm一个单据只同步到erp其中一个账套
crm模块增加“所属账套”字段作为接口的过滤条件
1.3.2 、crm一个单据需要同步同步到erp多个账套
解决方案同上面 1.1.3 里的方案需要注意kis_id字段的处理
1.4 、销售订单等业务单据 erp->crm方向
erp->crm同步单据时同步客户和产品字段需要传的值是crm的对应单据ID
客户和产品字段在写SQL时要注意crm是使用哪个字段对应的erp对应的编号字段,crm如果存在所属账套字段,添加SQL时要加上账套字段过滤
1.4.1 、 erp账套间单据编号编码规则不一样,账套间单据编号不存在重复情况
账套间数据没有重复的和单个账套配置方案一样
1.4.2 、 erp账套间编号编码规则一样,账套间单据编号存在重复的情况
rm预置的单据编号字段连接erp接口不做映射。
crm增加字段 “erp单据编号” ,连接erp接口用这个增加的字段来映射erp对应模块的编号字段(crm预计的单据编号字段是不允许保存重复值的)
crm增加字段 “erp账套”,连接erp映射这个账套字段给默认值,区分来源账套
连接erp该接口映射 “erp单据编号” 和“erp账套” 两个字段都需要勾选 数据同步唯一项 为 “是” ,同时作为接口的单据唯一值(多个字段同时勾选是数据同步唯一项时,多个值是 “且” 的关系)
2 、云星辰
2.1 、客户产品接口 crm->erp方向
星辰crm->erp的接口同样需要传值erp的主键ID,解决方案同上 1.1 中解决方案
2.2 、客户产品接口 erp->crm方向
因为星辰的订单接口查询和保存接口都需要用到客户和产品对应erp主键ID的值,所以对应erp每一个账套的erpID都需要同步到crm来
2.2.1 、erp多账套间编码不存在重复
接口和只有账套的解决方案一致,需要注意erp模块对应的单据ID字段必须映射到crm来
2.2.2 、erp多账套间编号一致,同一编号的数据在不同账套代表同一数据
a 、一个编号的数据在crm只显示一条
接口使用单据编号作为单据唯一值。
crm添加字段映射erp的单据ID,不同账套同一模块接口用来映射erp单据ID的crm字段不能重复
b 、不同账套相同编号的数据在crm分开显示
解决方案同下一步2.2.3
2.2.3 erp多账套间编号一致,同一编号的数据在不同账套代表不同数据
crm预置的单据编号字段连接erp接口不做映射。
crm增加字段 “erp单据编号” ,连接erp接口用这个增加的字段来映射erp对应模块的编号字段(crm预计的单据编号字段是不允许保存重复值的)
crm增加字段 “erp账套”,连接erp映射这个账套字段给默认值,区分来源账套
接口用crm的kis_id字段来映射erp的单据ID
连接erp该接口映射 “erp单据编号” 和“erp账套” 两个字段都需要勾选 数据同步唯一项 为 “是” ,同时作为接口的单据唯一值(多个字段同时勾选是数据同步唯一项时,多个值是 “且” 的关系)
2.3 、销售订单接口 erp->crm方向
2.3.1 、云星辰多账套间编码不存在重复
接口映射使用单据编号做唯一值
客户和产品字段,erp可以选择对应的值ID、名称或者编码。crm取值方法选则“sql查询”,通过erp选择的字段值,调整crm的取值SQL,查询到对应的crmID
2.3.2 、erp账套间编号编码规则一样,账套间单据编号存在重复的情况
rm预置的单据编号字段连接erp接口不做映射。
crm增加字段 “erp单据编号” ,连接erp接口用这个增加的字段来映射erp对应模块的编号字段(crm预计的单据编号字段是不允许保存重复值的)
crm增加字段 “erp账套”,连接erp映射这个账套字段给默认值,区分来源账套
连接erp该接口映射 “erp单据编号” 和“erp账套” 两个字段都需要勾选 数据同步唯一项 为 “是” ,同时作为接口的单据唯一值(多个字段同时勾选是数据同步唯一项时,多个值是 “且” 的关系)
2.4 、销售订单 crm->erp方向
星辰销售订单保存接口客户、产品字段传值需要是erp对应数据的主键ID
配置客户和产品字段的时候,组要结合客户和产品接口映射的内码字段来调整crm字段的取值SQL
3 、k3 wise 、kis、u8等数据库对接的接口
数据库对接 的接口一般是不传递内码的,接口都是根据名称或者编码做为唯一值的
3.1 、客户、产品接口 crm->erp方向
数据映射的接口是根据接口设置的单据唯一值来判断是新增还是更新单据
3.2 、 客户、产品接口 erp->crm方向
3.2.1 、erp多账套间单据编码不存在重复
接口映射正常配置使用单据编号作为接口的唯一值
3.2.2 、erp多账套间单据编号存在重复
crm增加字段“所属账套”,接口映射给默认值来源账套
接口映射时,crm预置的单据编号字段不做映射
crm增加“erp编号”字段,接口映射改字段对应erp的单据编号字段。
“所属账套”和“erp编号”两个字段同时作为接口的单据唯一值
3.3 、销售订单接口 erp->crm方向
订单接口在映射客户和产品字段时需要根据客户和产品接口设置的单据唯一值对订单皆苦映射字段的SQL进行调整,要保证最终查询出来的结果是可以唯一对应的
3.3.1 、erp多账套间单据编号存在重复的
crm增加字段“所属账套”,接口映射给默认值来源账套
接口映射时,crm预置的单据编号字段不做映射
crm增加“erp编号”字段,接口映射改字段对应erp的单据编号字段。
3.3.2 、erp多账套间单据编号不存在重复的
按照单据编号作为单据唯一值正常映射接口