ERP集成平台产品手册
版本 | 作者 | 日期 | 说明 |
---|---|---|---|
v1.0 | 刘登跃 | 20210218 | |
v1.1 | 冯远华 | 20210414 | 修复目录跳转问题 |
v1.2 | 郑素兰 | 20210420 | 增加了配置demo的步骤 |
目录
[toc]
四. 功能点对接设置
4.1 K3 Cloud价目表和可售范围对接
K3 Cloud中对象是销售价目表(BD_SAL_PriceList,如果预置对象没有请找研发添加),需要对接到CRM中两个对象价目表(PriceBookObj)和可售范围(AvailableRangeObj)。
第一步:
先进入K3 Cloud价目表的对象配置。
第二步:
在对象里面里面添加一个自定义的从对象,对象名称随意,编码必须是:BD_SAL_PriceList.AvailablePriceBookObj,拆分类型为从对象(明细)。
第三步:
配置完对象后,进入字段配置。
字段内容如下图。其中价目表的引用字段名必须是:AvailablePriceBookObj。
第四步:
建立两个策略和分别建立策略明细。
第五步:
CRM价目表对象按照需求正常对接就可以。可售范围,当前不支持按照范围选取客户和产品,只支持按照具体明细对接。所以三个范围都要按照固定值对接。
客户:{"type":"FIXED","value":"FIXED"}、组织:{"type":"ALL","value":"ALL"}、产品:{"type":"FIXED","value":"FIXED"}。
第六步:剩余字段按照需求自行对接。
4.2 多规格对接
4.3 多单位对接
1.多单位对接涉及两个erp对象,如下图,如果这两个预设对象在对象管理里面没找到,联系研发初始化
2.如果物料单位换算没有该字段:CrmConvertNumber,请手动添加
3.单位对象的策略配置(crm单位对接erp计量单位)
4.多单位关联表的策略配置(crm多单位关联表对接erp物料单位换算)
5.如果crm已经存在了部分单位,请在数据单位的数据维护导入crm已经存在的的单位映射
6.如果新增的测试数据都没有问题了,联系研发同步历史所有单位和单位换算数据
注意:如果erp的单位有重名的情况,要联系客户修改,或者通过自定义函数把重名的单位拼接一些后缀同步到crm,
因为crm单位不允许重名
4.4 K3C的CPQ对接
1.CPQ对接涉及物料清单对象,下图中如果没有物料清单对象,请联系研发进行初始化
需自行在ERP物料清单对象增加5个字段:【是否必选】、【父BOMid】、【产品编码】、【数量】、【根BOMid】
a.【是否必选】-- 字段编码为isRequired,字段类型为布尔值
b. 【父BOMid】-- 字段编码为parent_bom_id,字段类型为查找关联,关联对象为物料清单
c.【产品编码】-- 字段编码为productId,字段类型为查找关联,关联对象为物料
d. 【数量】-- 字段编码为quantity,字段类型为数字
e. 【根BOMid】-- 字段编码为root_id,字段类型为查找关联,关联对象为物料清单
2.新建产品选配明细对象策略,并新建策略明细把ERP【物料清单】对象与之对接,如下图
字段映射如下:
CRM【产品选配明细】对象【启用状态】字段设置为固定值“是”
CRM【产品选配明细】对象【必选】字段与ERP【物料清单】中的【是否必选】字段映射
CRM【产品选配明细】对象【产品名称】字段与ERP【物料清单】中的【产品编码】字段映射
CRM【产品选配明细】对象【根BOMid】字段与ERP【物料清单】中的【根BOMid】字段映射
CRM【产品选配明细】对象【数量】字段与ERP【物料清单】中的【数量】字段映射
CRM【产品选配明细】对象【父BOMid】字段与ERP【物料清单】中的【父BOMid】字段映射
其余字段客户根据需求自行对接
3.在ERP数据同步 -> 数据同步设置 -> ERP对象管理,物料对象有预置【套件】字段,选项设置按下图配置
4.在产品策略明细中,增加CRM【产品】对象【产品组合】字段与ERP【物料】中的【套件】字段映射
增加如下字段映射
5.策略配置好后,在K3C新增物料清单,检查能否正确同步到CRM。在K3C新增物料清单步骤如下
(1)新增父物料,物料属性选择“自制”,套件选择“是”
(2)新建物料清单,选择父物料及子物料
6.K3C同步物料清单到CRM后,CRM-> ERP方向销售订单需要同步CPQ到K3C,配置如下
(1)在ERP订单明细对象增加如下字段
a.产品组合虚拟parent key,字段编码为parent_prod_pkg_key,字段类型为文本
b.产品组合虚拟root key,字段编码为root_prod_pkg_key,字段类型为文本
c.产品组合虚拟key,字段编码为prod_pkg_key,字段类型为文本
d.物料清单id,字段编码为FBOMEntryId,查看接口字段编码为BOMEntryId,保存接口字段编码为FBOMEntryId,批量查询接口字段编码为FBOMEntryId,字段类型为查找关联,查找关联物料清单
f.父项产品,字段编码为FParentMatId.FNumber,查看接口字段编码为ParentMatId,保存接口字段编码为FParentMatId.FNumber,字段类型为文本
(2)订单明细增加红框的字段映射
7.K3C不同步物料清单到CRM,只同父物料;CRM销售订单-订单产品是父物料,同步到K3C后需自动展开套件配置如下
(1)在ERP数据同步 -> 数据同步设置 -> ERP对象管理,订单明细对象有预置【产品类型】字段,选项设置按下图配置,四个选项编码分别为Standard,Parent,Son,Service
(2)给CRM【订单产品】对象新增【产品类型】字段,类型为单选,API Name任意,选项设置如下,四个选项编码分别为Standard,Parent,Son,Service
(3)在销售订单策略明细中新增CRM【订单产品】对象【产品类型】字段与ERP【订单明细】中的【产品类型】字段映射
新增字段映射,如下图红色框出区域
(4)策略配置好后,在CRM新增销售订单,订单产品选择父物料,订单产品对象的产品类型字段必须填写-参照下图,新建好后检查同步到ERP是否正确
(5)K3C销售订单套件自动展开,需启用套件管理,操作如下图
4.5 SAP的CPQ对接
4.6 K3C订单变更对接
第一步:在K3C启用订单新变更单
第二步:在CRM销售订单对象新增【变更原因】字段,字段类型为文本
第三步:在销售订单策略明细中,增加变更原因字段映射
增加如下字段映射
注:CRM修改订单时必须填写变更原因字段,才能同步K3C
4.7 多账套/多数据中心对接
4.8 K3C自定义对象对接
4.9 K3C自定义字段对接
4.10 K3C国家省市区对接
K3C国家省市区对接有两种对接方式,一种是在系统字段管理将纷享侧的国家省市区与K3C的国家省市区进行关联,另外一种方式是通过辅助资料对接
一、第一种方式,在系统字段管理进行关联
第一步:在K3C和CRM找到国家省市区数据
K3C的国家、省、市、区在辅助资料列表中可以找到,如下图所示
可在选项操作导出国家省市区数据,如下图所示,在选项点击引出
CRM的国家、省、市、区数据见附件【国家省市区】,或实时获取最新数据(浏览器需要登录CRM且账号具有CRM权限):国家省市区
第二步:在ERP数据同步 -> 数据同步设置 ->系统字段管理,将纷享侧的国家省市区与K3C的国家省市区进行关联
第三步:在同步策略将国家、省、市、区字段进行映射,注意字段类型需是国家、省、市、区,比如下图的国家字段映射。
二、第二种方式, 通过辅助资料对接
第一步 在ERP数据同步->数据同步设置->ERP对象管理检查预置对象是否有辅助资料,没有则找研发添加
第二步 在CRM新建自定义对象-辅助资料,字段设置如下,上级资料字段查找关联辅助资料
第三步 建立辅助资料同步策略,字段映射如下所示
第四步 将K3C国家省市区的辅助资料同步到CRM后,在CRM新建查找关联辅助资料字段,并进行映射
4.11 K3C附件字段对接
附件字段对接,需要先在ERP对象新建附件字段,然后与CRM附件字段进行映射即可;附件字段对接CRM往ERP、和ERP往CRM都支持,需注意的是金蝶K3C附件字段只能上传一个附件,所以如果CRM附件有多个,只会取第一个同步到金蝶K3C中
下面以客户对象的附件字段对接为例来进行讲解
1.在ERP客户对象新建附件字段,字段名称任意,字段类型选择附件。字段编码、查看接口字段编码、保存接口字段编码填写参考【3.4.3.1.2.1 新增字段】
2.在同步策略的字段映射中把附件字段进行映射即可
其余对象附件字段对接参考该步骤即可
4.12 K3C批次对接
K3 Cloud中对象是批号主档(BD_BatchMainFile,如果预置对象没有请找研发添加),需要对接到CRM的批次对象
第一步:建立批次对象同步策略
第二步:配置批次对象同步策略的字段映射,根据需求对接即可
第三步:在物料对象中增加三个字段,【启用批号管理】-- 字段编码为MaterialStock[0].IsBatchManage,查看接口字段编码为MaterialStock[0].IsBatchManage,字段类型为布尔值;【是否开启批次序列号管理(虚拟)】-- 字段编码为VirtualHasBatchAndSerial,字段类型为单选,选项设置:1对应不开启;2对应开启批次管理,3对应开启序列号管理;【启用序列号管理】--字段编码为 MaterialStock[0].IsSNManage,查看接口字段编码为MaterialStock[0].IsSNManage,字段类型为布尔值
第四步:
在产品对象同步策略中配置是否开启批次序列号管理字段映射。点击产品对象的字段映射
增加下图中的字段映射
4.13 K3C序列号对接
第一步:ERP对象管理中增加序列号主档、和物料对象、销售出库单对象中序列号相关字段(如果序列号主档预置对象没有请找研发添加)
1.序列号主档(没有请找研发添加)
2.物料对象中增加三个字段
a.【启用批号管理】:字段编码为MaterialStock[0].IsBatchManage,查看接口字段编码为MaterialStock[0].IsBatchManage,字段类型为布尔值;
b.【是否开启批次序列号管理(虚拟)】: 字段编码为VirtualHasBatchAndSerial,字段类型为单选,选项设置:1对应不开启;2对应开启批次管理,3对应开启序列号管理;
c.【启用序列号管理】--字段编码为 MaterialStock[0].IsSNManage,查看接口字段编码为MaterialStock[0].IsSNManage,字段类型为布尔值;
3.销售出库单中增加四个字段
a.【序列号(编码)】:字段编码为crmSerialNo,字段类型为文本
b.【序列号备注】:字段编码为crmSerialNote,字段类型为文本
c.【序列号(id)】:字段编码为serialId,字段类型为查找关联,引用对象为序列号主档
d.【出库序列号】:字段编码为SAL_OutStockSerial,字段类型为文本
第二步:建立序列号主档对象的同步策略和完成字段映射
第三步:产品对象同步策略增加“是否开启批次序列号管理”映射字段
增加下图中的字段映射
第四步:发货单同步策略明细字段映射增加【序列号(编号)】、【序列号备注】、【序列号(id)】三个映射字段 注:如果发货单为自定义对象,无需做【序列号(id)】字段映射。
发货单明细中增加下图中的字段映射
注:同步成功后会将K3C出库单每行产品明细拆分成的多条数量为1的发货单产品明细(条数与K3C出库单该产品的出库数量保持一致),也可以不进行拆分(找研发设置),会将多个序列号拼接再一起传至CRM序列号字段。
4.14 不能按照时间查询数据的对接
4.15 发货单自动关联库存
第一步:
在CRM发货单对象新增字段【无库存ID集成平台同步标识】,字段类型为布尔值,API Name设置为field_no_stock_id_integration_flag__c
第二步:在发货单同步策略增加【无库存ID集成平台同步标识】字段映射,设置为固定值“是”,如下图
4.16 ERP一个对象,要对接CRM的主从两个对象
ERP一个对象对接CRM主从两个对象,在新建ERP对象的时候需要把ERP对象的拆分类型选择为“ERP对象拆分为主从关系的中间对象”,然后再跟CRM主从对象对接
下面以ERP【销售订单】为例来进行讲解。
1.首先需要新建对象,进入ERP数据同步 -> 数据同步设置 -> ERP对象管理新增对象,拆分类型选择“ERP对象拆分为主从关系的中间对象”,ERP对象编码以及明细编码填写可参考【3.4.3.1.1 新增对象】
2.新建完对象后,根据需求新增ERP主从对象字段,操作可参考【3.4.3.1.2.1 新增字段】
3.之后新建同步策略,拆分后的ERP主对象与CRM主对象映射,拆分后的ERP从对象与CRM从对象映射,如下图
其余对接可参照以上示例配置
4.17 CRM一个对象,对接ERP的两个对象
CRM一个对象,对接ERP两个对象,先建立CRM对象的同步策略,后新增与两个ERP对象对接的策略明细即可
下面以CRM【开票申请】对象为例进行讲解。假设CRM【开票申请】对象,需要对接ERP【增值税销售发票】以及【销售普通发票】
则先新建CRM【开票申请】对象同步策略,然后再新增与ERP【增值税销售发票】以及【销售普通发票】对接的策略明细,如下图
其余此需求可参照该示例进行对接
4.18 ERP一个对象下的数据,按条件对接到CRM两个独立的对象
ERP一个对象按条件对接到CRM两个独立的对象,要先建好ERP对象与CRM两个独立对象的策略明细,在策略明细中设置数据范围条件则可根据该条件过滤数据
下面以ERP出库单为例来进行讲解。假设ERP出库单需要对接到CRM预设对象【发货单】以及自定义对象【销售出库单】,当ERP出库单【销售组织】字段值等于“纷享销客”时,同步到CRM预设对象【发货单】;当ERP出库单【销售组织】字段值不等于“纷享销客”时同步到CRM自定义对象【销售出库单】,则按照如下步骤操作可实现该功能:
1、首先建立CRM【发货单】跟ERP出库单对接的策略明细以及CRM【销售出库单】跟ERP出库单对接的策略明细
2、根据条件当ERP出库单【销售组织】字段值等于“纷享销客”时,同步到CRM预设对象【发货单】;当ERP出库单【销售组织】字段值不等于“纷享销客”时同步到CRM自定义对象【销售出库单】,分别设置策略的数据范围条件如下
CRM【发货单】跟ERP出库单对接的同步策略,数据范围按如下设置
CRM【销售出库单】跟ERP出库单对接的同步策略,数据范围按如下设置
其他条件参照示例配置即可
4.19 CRM的数据同步到ERP后,ERP更改完数据回写到CRM
要完成此对接,需两个同步方向都建立同个CRM对象与同个ERP对象对接的同步策略,并在CRM往ERP方向策略的同步规则中,同步事件监听、同步事件写入只勾选新增,在ERP往CRM方向策略的同步规则中,同步事件监听、同步事件写入只勾选修改
下面以销售订单为例,假设销售订单数据是由CRM同步到ERP,在ERP更改完数据后回写到CRM
1.在两个同步方向都建立销售订单同步策略如下
2.在CRM同步到ERP方向同步策略的同步规则中,同步事件监听、同步事件写入只勾选新增;
3.在ERP同步到CRM方向的同步策略的同步规则中,同步事件监听、同步事件写入只勾选修改;
其余对接可参照以上示例配置
4.20 ERP调价后,快速同步到CRM的产品
4.21 自定义函数
4.21.1ERP集成平台当前支持三种类型的自定义函数介绍
1.固定入参:Map syncArg
2.固定返回:return syncArg;
3.自定义函数校验:只要自定义函数代码中含有 Fx.object.create 、Fx.object.batchCreate 、Fx.object.update 、 Fx.object.batchUpdate 等其中一个字符串即表明函数body处于更新/新增/作废的调用。 场景:在自定义函数中加入上述字符串(字符串注释无效,同样会检测)并且含有与绑定字段apiName相同的字符串(注释也会检测),策略将无法开启,并报异常函数校验失败。
4.数据新增时:syncArg.objectData是对象主数据,syncArg.details是对象明细数据
5.数据更新时:syncArg.objectData有可能是主对象数据有可能是从对象数据,具体得通过objApiName来判断
4.21.2同步前自定义函数执行支持数据过滤:
即函中返回结果中包含"isExec":"false",即该次同步将不再往后执行,目标数据将不会做出相应的更改。
测试场景:在自定义函数返回的Map中加入"isExec":"false",或"isExec":false目标数据将不会发生更改。
函数代码: Map map = ["details":syncArg.details, "objectData":syncArg.objectData, "isExec":"false" ]; return map;
4.21.3同步中执行自定义函数:
函数执行后,在函数中编写的映射值修改,企业id和对象apiName不会更改。
测试场景:只有新增数据,才会携带从对象;更新时会更新对象映射值,因此如果没有对从对象做出特殊鉴别,更新的对象将不区分主从对象,一律更新,主从对象名称都会更新为自定义函数赋值
函数代码:
log.info("事件类型:" + syncArg.destEventType); log.info(syncArg.objectData); log.info(syncArg.details); Map objectData = syncArg.objectData as Map; objectData.name = "自定义函数修改" Map map = ["details":syncArg.details, "objectData":syncArg.objectData]; log.info(map); return map;
4.21.4同步后执行自定义函数:
函数执行后,在函数中编写的映射值修改,企业id和对象apiName不会更改。
测试场景:数据同步不会受到影响,只是将数据传给自定义函数即可,需要通过查看日志进行判断
函数代码: Map map = ["details":context.details, "objectData":context.data, "afterSync" : "yes001"]; return map;
具体入参字段(如果不清楚入参有什么字段就先把函数写好,然后打印入参看一下,注意新增和更新入参不一样)和函数例子如下
同步前:通过数据范围的校验之后
主要入参字段: { "destObjectApiName": "",//目标对象apiName "sourceData": {"字段apiName":"字段值"}//对象字段信息 }
简单例子:
log.info(syncArg); String destObjApiName=syncArg["destObjectApiName"] as String; log.info("destObjectApiName:"+destObjApiName); if("object_xo21i__c"==destObjApiName){ return syncArg; } Map objectData=syncArg["objectData"] as Map; String customerCode=objectData["customerCodeHead"] as String; syncArg["isExec"]=false;//把这个字段设置为false,会过滤掉这条数据不同步 return syncArg;
同步中:写入目标系统之前
主要入参字段: { "destDetailSyncDataIdAndDestDataMap": {"":{"字段apiName":"字段值"}},//目标对象明细 "destData": {"字段apiName":"字段值"}//目标对象字段信息 //如果新增主对象在destData,明细数据在destDetailSyncDataIdAndDestDataMap,如果是更新主从数据都在destData(更新是单独更新的) }
简单例子:
//修改customerShortName字段值 log.info(syncArg); syncArg["objectData"]["customerShortName"]="dddddd" log.info(syncArg); return syncArg;
同步后:写入目标系统之后
主要入参字段: { "sourceDataId": "5fead1146660700001170e3d",//源数据id,只有crm->erp方向有这个字段 "sourceObjectApiName": "AccountObj",//源对象apiName "completeDataWriteResult": {//写入目标数据的结果 "detailWriteResults": [],//明细数据结果 "errCode": 0, "success": true, "destEventType": 1, "errMsg": "success", "writeResult": {//主数据结果,errCode为s106240000成功,其他的失败接口返回的错误码 "errCode": 5001, "success": false, "syncDataId": "3ab1c2c2ffe04111b3e713632d5a4f76", "errMsg": "预处理服务调用错误:调用外部http接口失败,错误信息:100,SAP系统BP名称已创建,不允许重复创建。::errCode=s306240003", "destDetailSyncDataIdAndDestDataMap": {} } }, "destObjectApiName": "AccountObj_1el03su6s",//目标数据对象apiName "objectData": {//目标数据 "tenant_id": "706089",//企业ei "object_describe_api_name": "AccountObj_1el03su6s",//对象apiName "_id": "5fead2696532bf0001e524e4" }, "details": {},//明细数据 }
简单例子:
//crm->erp,把目标对象的id写到crm源对象
log.info(syncArg)
if(syncArg["objectData"]["_id"]!=null&&syncArg["objectData"]["_id"]!=""
&&syncArg["sourceDataId"]!=null&&syncArg["sourceDataId"]!=""){
String destDataId=syncArg["objectData"]["_id"] as String;//目标数据id
String sourceDataId=syncArg["sourceDataId"] as String;//源数据id
String errCode=syncArg["completeDataWriteResult"]["writeResult"]["errCode"]as String;
log.info("--"+errCode)
if (errCode =="0"){//&&destDataId.length()<11
def (Boolean error,Map data,String errorMessage) =
Fx.object.update("AccountObj",sourceDataId,
["field_b25i7__c":destDataId],true);
log.info(errorMessage)
}
}
return syncArg;
4.22 数据中间表开放接口能力
自定义函数可以插入/修改/查询数据映射表,函数例子如下:
Map header=[:] //创建数据映射 Map param1=["ployDetailId":"155bd981457343f291e0edc13776217f",//策略明细id,如果策略被删除重新建了,这里需要改动 "sourceObjectApiName":"AccountObj",//源对象apiName,如果对象apiName变了,这里要改动 "destObjectApiName":"BD_Customer.BillHead",//目标对象apiName(虚拟的),如果对象apiName变了,这里要改动 "sourceDataId":"sourceDataId123",//源对象数据id "destDataId":"destDataId123666",//目标对象数据id "sourceDataName":"sourceDataName3666",//源对象数据name属性 "destDataName":"destDataName66",//目标对象数据name属性 "remark":"remark1341"];//备注 def result1=Fx.proxy.callAPI("erp.syncData.createSyncDataMapping",header,param1); //[false, HttpResult(statusCode=200, content={"errCode":"s106240000","errMsg":"成功"}, bytes=null), ] s106240000成功,其他失败 log.info(result1)
//根据源对象数据id更新目标对象数据id Map param2=["sourceObjectApiName":"AccountObj",//源对象apiName,如果对象apiName变了,这里要改动 "destObjectApiName":"BD_Customer.BillHead",//目标对象apiName(虚拟的),如果对象apiName变了,这里要改动 "sourceDataId":"sourceDataId123",//源对象数据id "destDataId":"destDataId123666"]//目标对象数据id def result2=Fx.proxy.callAPI("erp.syncData.updateSyncDataMapping",header,param2); //[false, HttpResult(statusCode=200, content={"errCode":"s106240000","errMsg":"成功"}, bytes=null), ] s106240000成功,其他失败 log.info(result2)
//查询源对象数据id是否存在映射关系 Map param3=["sourceObjectApiName":"AccountObj",//源对象apiName,如果对象apiName变了,这里要改动 "destObjectApiName":"BD_Customer.BillHead",//目标对象apiName(虚拟的),如果对象apiName变了,这里要改动 "sourceDataId":["sourceDataId123"]]//源对象数据ids,List //如果需要查询目标对象数据id是否存在映射关系,把sourceDataId改成destDataId,如果两个都传只会根据源数据id查询 def result3=Fx.proxy.callAPI("erp.syncData.getSyncDataMappingBySourceDataId",header,param3); // [false, HttpResult(statusCode=200, content={"data":{"sourceDataId123": //{"sourceDataId":"sourceDataId123","isCreated":true,"destDataId":"destDataId123666","sourceDataName":"sourceDataName1233","updateTime":1611047455451,"lastSyncStatus":6, //"destDataName":"destDataName123","destTenantId":"81138","sourceObjectApiName":"AccountObj","destObjectApiName":"BD_Customer.BillHead","sourceTenantId":"81138", //"statusName":"新增成功","id":"aa46ed320312476485e932a1ca4b4263","lastSyncDataId":"92c86fb175254e54b990bd86b6ce1145","status":1}},"errCode":"s106240000","errMsg":"成功"}, bytes=null), ] //s106240000成功,其他失败 //data是一个Map,存储着存在映射关系的数据,key是源数据id,value是已存在的对应关系, log.info(result3)
4.23 ERP导入历史到CRM
分下面几种情况处理:
1.已经把数据手工导入到CRM了。 需要把ERP和CRM数据ID映射关系导入中间表。请参考3.7节的内容写入中间表。
2.ERP这边不能提供读接口。按照第1条处理,手工导入历史数据。
3.ERP这边可以提供读接口。配置ERP到CRM的数据同步策略,测试增量数据同步是否正确。然后找研发处理全量的历史数据同步。
4.24 自定义函数新建erp字段映射表
//channel合法值有 ERP_K3CLOUD,ERP_SAP,ERP_U8,OA,STANDARD_CHANNEL //"dataType":"employee" 表示新建的是人员 //dataCenterId是数据中心id //fsDataId是crm上的数据id.对于人员,这里是员工ID,不是crm人员对象的数据id. //erpDataId是erp上的数据id //fsDataName是crm的数据名称 //erpDataName是erp上的数据名称
Map data = ["dataCenterId":"数据中心id", "channel":"ERP_K3CLOUD","dataType":"employee", "fsDataId":"fsDataId","fsDataName":"fsDataName","erpDataId":"erpDataId","erpDataName":"erpDataName"];
def ret = Fx.proxy.callAPI("erp.syncData.createErpfieldmapping", [:], data); Fx.log.info("ret is : "+ret)
4.25 可售范围+价目表
4.27 K3c订单回溯
4.28 沙盒拷贝
4.29 单据从CRM同步到K3Cloud关联上游单据
创建K3Cloud单据时如果需要关联上游单据,接口需要特殊的格式和传值。WebAPI保存接口实现上下游关联 (kingdee.com)以下以预设【发货通知单】为例说明对接方案。
一些准备步骤
第一步,查询发货通知单的单据关联配置,确定关联数据包放在哪里
a.首先打开BOS设计器
b.选择单据对应的业务领域,比如发货通知单在供应链-销售管理下,选择后点击确定即可
c.找到单据关联配置,确定关联数据包放在哪里。下图示例的发货通知单的关联数据包是放置在明细里面
第二步,从webapi获取需要对接的字段
名称 | 字段编码 | 保存字段编码 | 对接说明 |
---|---|---|---|
关联关系表 | FEntity_Link | FEntity_Link[0] | 拼接在其他字段前 |
转换规则 | FEntity_Link_FRuleId | FEntity_Link[0].FEntity_Link_FRuleId | 固定值:SaleOrder-DeliveryNotice |
源单表 | FEntity_Link_FSTableName | FEntity_Link[0].FEntity_Link_FSTableName | 固定值:T_SAL_ORDERENTRY |
源单内码 | FEntity_Link_FSBillId | FEntity_Link[0].FEntity_Link_FSBillId | ERP订单ID |
源单分录内码 | FEntity_Link_FSId | FEntity_Link[0].FEntity_Link_FSId | ERP订单明细ID |
原始携带量 | FEntity_Link_FBaseUnitQtyOld | FEntity_Link[0].FEntity_Link_FBaseUnitQtyOld | |
修改携带量 | FEntity_Link_FBaseUnitQty | FEntity_Link[0].FEntity_Link_FBaseUnitQty | |
原始携带量 | FEntity_Link_FStockBaseQtyOld | FEntity_Link[0].FEntity_Link_FStockBaseQtyOld | |
修改携带量 | FEntity_Link_FStockBaseQty | FEntity_Link[0].FEntity_Link_FStockBaseQty |
第三步,获取转换规则内码
第四步,获取源单相关信息
从第一步得知,需要关联销售订单的订单明细实体。通过bos查询销售订单-订单明细的实体表名。
配置步骤
第一步,在crm的订单对象上新增两个单行文本字段,用于储存ERP订单ID和ERP订单编码。在crm申请单明细对象增加一个引用字段,引用订单的ERP订单ID
第二步,订单是CRM往ERP方向,通过手段在同步后填ERP订单ID和ERP订单编码字段。订单是ERP往CRM方向可以直接配置这两个字段的映射。订单 是CRM往ERP方向可以配置一个同步后自定义函数。示例函数如下:订单同步后回填K3订单id和编码
第三步,在ERP中间对象增加字段:如上表(从准备步骤中的第二步可得)
第四步,字段映射参考
引用的ERP订单ID字段对接到源单内码,关联订单产品的查找关联字段对接到【源单分录内码】【销售订单EntryId】,【源单类型】使用固定值SAL_SaleOrder。【转换规则】使用固定值,由准备步骤中的第三步获取。【源单表】使用固定值,由准备步骤中的第四步获取
第五步,测试。需要注意测试订单同步回写id,以及申请单同步是否成功关联订单。注:未对接携带量,可能导致订单 上面的回填字段(累积发货通知数量)不准确。
创建人、审核人等用户对接同步
下面以创建人为例进行讲解
1.在ERP中间对象查看【创建人】是否有字段编码为FUserId类型的字段,如果没有需要自行添加,字段类型需设置为用户
【创建人】字段编码为FCreatorId.FUserId,查看接口字段编码为CreatorId.Id,保存接口字段编码为FCreatorId.FUserId,批量查询接口字段编码为FCreatorId
2.在账户绑定里面设置跟纷享账号绑定的K3C用户名称,注意是K3C用户名称
3.在字段映射里面添加创建人字段映射即可
五. 金蝶K3Cloud按照CRM对象对接设置
1. K3c多组织
1.1 先导入K3C组织机构
1.首先在CRM菜单中配置ERP组织机构对象:
进入 管理>CRM平台管理>界面定制管理>CRM主页自定义>菜单模块管理 右侧选择应用菜单名称为CRM,点击编辑 进入 下一步 在设置菜单项页面,搜索 “ERP组织机构” 设置为可见(若无该选项,请通过添加自定义菜单添加进去),保存退出;
2.用Admin账号登录云星空,把组织机构导出来。
3.进入CRM>ERP组织机构,手工在CRM上新建组织数据,如下图:
4.CRM上的数据新增完成后,添加同步策略及映射关系:
进入 管理>系统管理>系统对接管理>ERP数据同步>同步策略 选择同步方向(ERP同步到CRM)下的ERP组织机构,右侧添加策略并进入字段映射(业务类型和负责人设置为插入固定值,其他字段配置见下图):
5.进入 管理>系统管理>系统对接管理>ERP数据同步>数据维护 ERP同步到CRM方向下选择ERP组织机构对象,右侧进入 数据维护 页面,点击 导入 按钮,下载导入模板后,填写对应关系后,导入系统即可建议关联关系;
1.2 指定需要同步 的客户,物料,仓库 的组织。
是否同步客户:CRM往K3C同步客户的时候,把该组织当做创建组织。
是否同步物料:K3C往CRM同步产品的时候,会把该组织编码作为K3C上的物料使用组织进行条件过滤。
是否同步仓库:K3C往CRM同步产品的时候,会把该组织编码作为K3C上的仓库使用组织进行条件过滤。
1.3 CRM客户往ERP同步,指定K3C创建组织。
CRM订单对象往ERP同步时,设置方法也是一样的。
2. K3C辅助资料和辅助属性
2.1 K3C辅助资料对接
判断要对接的内容是否是k3c的辅助资料,可以参考第八章,1.8节。
对接方案:K3C的辅助资料的数据,对接到CRM上的辅助资料对象,CRM上其它对象查找关联辅助资料。
第一步 在ERP数据同步->数据同步设置->ERP对象管理检查预置对象是否有辅助资料,没有则找研发添加
第二步 在CRM新建自定义对象-辅助资料,字段设置如下,上级资料字段查找关联辅助资料
第三步 建立辅助资料同步策略,字段映射按照下图配置
设置字段映射
配置好字段映射,开启同步策略即可。
以客户对象为例,配置 国家的映射,其它对象的配置方式是一样的。
把字段类型改为查找关联,如果预置的类型不是查找关联,直接改动就行。
设置客户对象的"国家"字段的字段映射关系
最后开启同步策略,还要联系研发刷历史数据。
2.2 K3C辅助属性对接
2.2.1 辅助属性的概念
判断要对接的内容是否是k3c的辅助属性,可以登录到客户的K3C系统后,搜索“辅助属性列表”,看看要对接的字段在不在里面。
对接方案:K3C的辅助属性,是几个字段。对接到CRM上分情况选择不同的方案:
值来源是基础资料:辅助属性字段配置为查找关联字段,查找关联基础资料对象。如果在ERP对象管理中,找不到该基础资料对象,联系研发预置。
值来源是辅助资料:辅助属性字段配置为查找关联字段,查找关联辅助资料对象。辅助资料对象的对接,请参考2.1章节。
值来源是手工输入:辅助属性字段配置为文本字段。
简单来说,辅助属性就是在现有物料基本属性的基础上动态的为物料添加的属性集合,物料的属性=基本属性+辅助属性,我们在k3cloud建立了辅助属性,需要在编辑物料的时候手动勾选需要启用的辅助属性,辅助属性启用后,如果有库存记录,就不能再修改物料的辅助属性,反之,则可以。注意:辅助属性库存对象的对接,目前只支持自定义库存对象的对接
辅助属性的类型和值来源
辅助属性字段配置说明
1.基础资料
辅助属性的值来源于基础资料对象,对接的时候,也需要对接对应的基础资料对象,比如:辅助属性的值来源于银行对象,那么就需要对接银行对象
基础资料对象查找方法
基础资料对象银行的id字段配置
基础对象的对接方法和普通对象的对接方法一致
2.辅助资料
辅助资料的值来源于辅助资料对象,对接的时候,也需要对接辅助资料对象,这里需要注意的是,辅助资料的对接,辅助资料的id字段必须按下图配置
辅助资料id字段配置
3.手工输入 (辅助资料的值来源于用户手工输入的数据)
辅助资料的值来源于用户手工输入的数据,对接的时候,把这种类型的辅助属性当作普通属性字段对接就行,不需要特殊处理
k3cloud辅助属性示例图:
辅助属性列表
开启辅助属性的物料
新建订单选择带辅助属性的物料
2.2.2 辅助属性和辅助资料的关系
辅助属性的值可以从辅助资料的分类里面选择,也就是说如果辅助资料的值来源于辅助资料
2.2.3 哪些对象支持辅助属性
只要是使用带辅助属性的物料,都支持辅助属性。比如订单,入库单,出库单,库存,开票,回款等
2.2.4 辅助属性字段的配置
辅助属性的查找关联字段配置
辅助属性编码字段配置
辅助属性值字段配置
辅助属性值字段配置
2.2.5 辅助辅助字段的对接
3.K3C对接字段说明
3.1 主键
每个ERP中间对象都必须要有主键字段,用来表示在集成平台中数据的唯一标识。目前主键字段有的设置为ERP编码比如客户、产品,有的设置为ERP内码id#单据编号比如销售订单主对象,有的设置为ERP内码id比如批次、序列号。ERP预置对象的主键字段不可轻易更改,如需更改请慎重
在数据维护中,ERP中间对象数据ID即是主键字段所表示的数据
3.2 查找关联
一个对象中某些字段需要关联到另外一个对象的对象数据,可以用查找关联字段进行配置。比如销售订单中的客户字段需要关联客户对象数据,则把该字段设置为查找关联-关联对象为客户
在同步策略的字段映射中,查找关联字段只能与查找关联字段进行映射或者设置为固定值
3.3 主从关联
当ERP对象拆分为主从关系的中间对象时,从对象需设置虚拟主从字段来进行主从关联。虚拟主从字段的字段编码通常设置为【fake_master_detail】,关联对象设置所需要关联的主对象。比如销售订单拆分为主从关系的中间对象,从对象订单明细中设置了虚拟主从字段如下
3.4 单选
单选字段,跟平常在其他地方用到的单选并没有太大差别,单选字段需要配置选项编码和选项名称,如下
在同步策略的字段映射中,单选字段需要把选项进行映射
3.5 固定值
固定值就是该字段设置为一个固定不变的值,配置为固定值后,所有同步成功的数据该字段都为字段映射中设置的固定值。比如单据类型(编码)字段设置为固定值--XSDD01_SYS,那么设置后同步成功的数据,单据类型(编码)字段的值则为XSDD01_SYS
固定值在同步策略的字段映射中配置,点击插入值后选择输入固定值,则可进行固定值设置
3.6 默认值
默认值就是如果映射的字段是没有填写或者没有获取到值,则设置为默认值。比如下图中版本号字段与备注字段映射,默认值设置为sk001,假设某条数据的备注字段没有填写,则同步成功后,在目标系统对应数据的版本号字段值为sk001
默认值在同步策略的字段映射中配置,点击插入值后选择输入默认值,则可进行默认值设置
3.7 部门
CRM部门想要与ERP部门进行对接,需要建立部门字段进行映射
首先建立部门数据的映射。部门字段数据映射是在数据同步设置-系统字段管理下
在部门数据映射中,可通过新建或者导入把CRM的部门与ERP的部门进行映射
其中CRM基础数据ID和CRM基础数据名称可参照下图获取
其中ERP基础数据ID填写ERP部门的编码,ERP基础数据名称填写ERP部门名称
后面在同步策略的字段映射中,把部门字段进行映射即可
3.8 员工
1.人员字段,有两种对接方式,一种是销售员编码,一种是员工ID,通常情况下选择销售员编码,如果是需要在数据维护中显示员工ID则使用员工ID对接
2.首先在数据同步设置-账户绑定中把人员进行绑定。K3C推荐使用【同步ERP职员账户】来同步ERP侧人员,同步ERP侧人员时会根据ERP职员的手机号自动匹配CRM员工账号,如果未能匹配则点击 操作列的【编辑】,手工绑定CRM员工账号
3.人员绑定后,在同步策略把人员字段进行映射,如下图
4.如果同一人员在K3C不同部门有不同的销售员编码,又需要进行销售员对接,则还需在ERP中间对象里面添加一个字段编码为【ERP_Dept】的字段并进行字段映射配置
首先添加字段如下图,字段编码为【ERP_Dept】,字段名称任意,字段类型为单选,选项编码和选项名称均填写部门名称
在同步策略中添加该字段的映射,如下图,在CRM建立单选字段与之映射即可
4.客户和联系人
4.1 客户
crm客户,客户地址、客户财务信息->k3的客户,客户地址,银行信息
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略--CRM同步到ERP方向中,点击【添加对象】添加客户对象的同步策略,如下图
第三步,在客户对象的同步策略,点击右上侧的添加策略,添加策略明细,选择映射的对象,如下图
第四步,配置字段映射,点击客户对象同步策略明细的字段映射可进行配置。字段映射配置可参考下图。下图中CRM客户、客户财务信息、客户地址对象的某些字段需自行在CRM创建。需注意客户对象的【创建组织】字段为查找关联类型,查找关联【ERP组织机构】对象。
第五步,配置同步规则。根据客户需求选择可以触发同步的事件,同时根据客户需求决定是否配置自定义函数
4.2 联系人
crm联系人->k3的联系人
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略--CRM同步到ERP方向中,点击【添加对象】添加联系人对象的同步策略,如下图
第三步,在联系人对象的同步策略,点击右上侧的添加策略,添加策略明细,选择映射的对象,如下图
第四步,配置字段映射,点击联系人对象同步策略明细的字段映射可进行配置。下图的字段映射为必须映射字段,其余字段根据客户需求自行添加
ERP联系人对象【类型】字段设置为固定值BD_Customer
CRM联系人对象【客户名称】与ERP联系人对象【所属公司】字段映射,ERP联系人对象【所属公司】的字段已预设,但需注意要选择编码为 FCompany.FNumber的那个字段
以上两个字段需配置正确才能使ERP的联系人关联上客户
第五步,配置同步规则,根据客户需求勾选需要触发同步的事件,同时自定义函数也根据客户需求决定是否需要配置
5.K3C产品
5.1 产品对接(必选)
产品对象是对接的基础,在对接产品对象的时候,一定慎重,产品对象对接好了,后面依赖产品对象的对象对接工作,就会顺利很多
5.1.1产品对接字段映射参考
CRM批次与序列号管理字段说明
CRM产品对象中的批次与序列号管理字段,是服务端用来标记当前产品是否开启了批次或序列号,并根据情况返回对应的标识值,0为普通产品,2为开启了批次管理,3为开启了序列号管理,这个字段不需要对接,这个说明文档,仅供技术同学参考,实施同学请忽略
5.1.2批次对接参考
如果物料启用批号管理被选中,那么这个产品就需要对接CRM的批次,对接CRM的批次,首先需要把CRM的批次与序列号管理开关打开,之后才能对接批次
5.1.3保质期管理对接
在k3cloud,也可以不启用批次,只启用保质期管理,如果启用了保质期管理,只需要对接保质期就行,不需要对接批次。在k3cloud在对启用了保质期的物料进行入库时,需要填写保质期相关的字段信息,入库后,在库存里面也可以查询到保质期相关的字段,比如生产日期,有效期至等字段
5.1.4序列号对接
如果物料在序列号管理模块启用了库存管理,那么这个产品就需要对接CRM的序列号,对接CRM的序列号,首先需要把CRM的批次与序列号管理开关打开,之后才能对接序列号
5.1.5多单位对接
如果CRM开启了多单位并且ERP也开启了多单位,那么,在对接的过程中,可以考虑多单位的对接,因为订单,入库单,发货单等对象,会依赖多单位,下面是多单位对接的核心操作
核心对接对象
ERP的 计量单位 --> CRM的 单位
ERP的 物料单位转换 --> CRM的 多单位关联表


核心对接字段映射配置
5.1.6多规格对接
说明:目前对接平台还不支持k3cloud多规格的对接,只支持SAF多规格的对接
5.2 产品分类的对接
产品分类对接,就是把ERP的物料分组和CRM和产品分类进行对接,由于这一块对接比较特殊,所以,单独拎出来说明
产品分类自动导入(推荐)
对接步骤
第一步,在对接平台系统字段管理,导入产品分类,可以采用上面说的自动导入或批量导入
第二步,在产品对象上添加产品分类字段,如图
第三步,在同步策略明细上,配置产品分类字段映射,如图
第四步,启用同步策略,就可以正常进行产品和产品分类同步了
5.3 CPQ对接(可选 ,如果CRM开启了CPQ,ERP开启了BOM,可以考虑对接)
CPQ对接前提:
- 1.k3cloud支持物料清单对象(也就是BOM对象)
- 2.CRM开启了CPQ即产品选配明细对象
CPQ对接注意事项:
- 1.CRM的CPQ支持嵌套,也就是支持CPQ层级树结构
- 2.k3cloud的物料清单,支持标准BOM和配置BOM,我们目前只支持对接标准BOM
- 3.k3cloud的物料清单,有BOM版本的概述,CRM的CPQ没有类似的概念,所以,我们在对接的时候,会把k3cloud的BOM版本号同步到CRM的产品名称里面,以此来区分不同步BOM版本的CPQ产品
k3cloud物料清单和CRM产品CPQ示例图
CPQ对接步骤:
第一步,新建ERP物料清单对象,如图
第二步,在同步策略添加CPQ对象和策略明细,并配置CPQ字段映射,如图
第三步,启用同步策略,就可以进行数据同步了
6.K3C订单
配置步骤
先对ERP销售订单对象完成基本配置
配置单据类型(编码)
配置结算币别
配置销售组织
配置订单明细对象的销售单位
字段配置参考下图
对接注意点
crm-> k3c创建订单时,会自动分配 客户和物料
7.K3C回款
k3Cloud的收款单对象对接crm的回款对象(也可以根据需要对接到自定义对象)
对接步骤
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略里面添加回款的同步策略,如图:
第三步,选中回款策略,点击右上侧按钮添加策略明细,选择映射的对象,如图:
第四步,点击字段映射,把需要映射的各个字段映射上,最基本的映射如下图:
第五步,点击同步规则,根据需求设置:选择轮询,新增/更新根据客户需求选择,同步时间根据客户需求选择,是否需要函数也视情况而定,自定义函数介绍在4.21 节。规则如图:
对接注意点
回款的对接没有太多的特殊的地方,主要要注意几个查找关联的字段的映射:关联客户,关联订单
8.K3C退款
k3Cloud的收款退款单->crm的退款对象(也可以根据需要对接到自定义对象)
可以咨询【深圳市施罗德工业集团有限公司】相关实施人员,这个企业配置了k3Cloud的收款退款单对接crm的退款对象
对接步骤
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略里面添加退款的同步策略,如图:
第三步,选中退款策略,点击右上侧按钮添加策略明细,选择映射的对象,如图:
第四步,点击字段映射,把需要映射的各个字段映射上,最基本的映射如下图:
第五步,点击同步规则,根据需求设置:选择轮询,新增/更新根据客户需求选择,同步时间根据客户需求选择,是否需要函数也视情况而定,自定义函数介绍在4.21 节。规则如图:
数据范围
根据业务需求,过滤对应不需要同步的数据,只有满足配置的数据范围的数据才会被同步
对接注意点
注意查找关联字段映射查找关联字段
退款的对接没有太多的特殊的地方,主要要注意几个查找关联的字段的映射:关联客户
注意关联订单字段
关联订单(选择k3的对象的SalesOrderComId这个字段与crm的查找关联订单的字段映射),如果不存在该字段SalesOrderComId,按下图手动添加
9.K3C开票
k3销售普通发票(主),普通销售发票明细->crm的开票申请(主),开票申请明细(也可以根据需要对接到自定义对象)
增值税销售发票(主),增值税销售发票明细->crm的开票申请(主),开票申请明细(也可以根据需要对接到自定义对象)
可以咨询【深圳市施罗德工业集团有限公司】相关实施人员,这个企业配置了k3Cloud的发票对接crm的开票对象
对接步骤
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略里面添加开票的同步策略,如图:
第三步,选中开票策略,点击右上侧按钮添加策略明细,选择映射的对象,如图:
第四步,点击字段映射,把需要映射的各个字段映射上,最基本的映射如下图:
第五步,点击同步规则,根据需求设置:选择轮询,新增/更新根据客户需求选择,同步时间根据客户需求选择,是否需要函数也视情况而定,自定义函数介绍在4.21 节。规则如图:
数据范围
根据业务需求,过滤对应不需要同步的数据,只有满足配置的数据范围的数据才会被同步
对接注意点
注意查找关联字段映射查找关联字段
发票的对接没有太多的特殊的地方,主要要注意几个查找关联的字段的映射:关联客户
注意明细对象关联订单字段
关联订单(选择k3发票明细对象的SalesOrderComId这个字段与crm明细的查找关联订单的字段映射),如果不存在该字段SalesOrderComId,按下图手动添加
10.K3C 可售范围+价目表
对接前准备
配置前先检查ERP对象里面是否有销售价目表和可销控制,没有的话请自行添加。
价目表对接有两个方案,请根据实际情况选择相应的方案。
方案一:
K3C销售价目表-------->CRM价目表+可售范围
方案二:
K3C销售价目表-------->CRM价目表
K3C可销控制----------->CRM可售范围
需注意,CRM可售范围里面客户只有一个客户,按照客户维度进行同步。一张价目表,包含多个可售范围。
详细配置
方案一:
K3 Cloud中对象是销售价目表(BD_SAL_PriceList),需要对接到CRM中两个对象价目表(PriceBookObj)和可售范围(AvailableRangeObj)。
第一步:
先进入K3 Cloud价目表的对象配置。
第二步:
在对象里面里面添加一个自定义的从对象,对象名称随意,编码必须是:BD_SAL_PriceList.AvailablePriceBookObj,拆分类型为从对象(明细)。
第三步:
配置完对象后,进入字段配置。
字段内容如下图。其中价目表的引用字段名必须是:AvailablePriceBookObj。
第四步:
建立两个策略和分别建立策略明细。
第五步:
CRM价目表对象按照需求正常对接就可以。可售范围,当前不支持按照范围选取客户和产品,只支持按照具体明细对接。所以三个范围都要按照固定值对接。
客户:{"type":"FIXED","value":"FIXED"}、组织:{"type":"ALL","value":"ALL"}、产品:{"type":"FIXED","value":"FIXED"}。
第六步:剩余字段按照需求自行对接。
方案二:
第一步:
先进入K3 Cloud可销控制的对象配置。
第二步:
添加三个从对象,对象编码分别是
客户:SAL_SC_CustMat.AvailableAccountObj
产品:SAL_SC_CustMat.AvailableProductObj
价目表:SAL_SC_CustMat.AvailablePriceBookObj
第三步:
配置完对象后,进入字段配置。
字段配置如下图
第四步:
建立两个策略和分别建立策略明细。
第五步:
CRM价目表对象按照需求正常对接就可以。可售范围,当前不支持按照范围选取客户和产品,只支持按照具体明细对接。所以三个范围都要按照固定值对接。
客户:{"type":"FIXED","value":"FIXED"}、组织:{"type":"ALL","value":"ALL"}、产品:{"type":"FIXED","value":"FIXED"}。
字段参考配置:
11.K3C 发货单
K3C销售出库单对接到CRM发货单。针对B类库存,发货单自动补齐关联的库存ID
字段映射参考
发货单自动关联库存
1.在CRM发货单对象增加【无库存ID集成平台同步标识】字段,字段类型为布尔值,字段API Name为 field_no_stock_id_integration_flag__c
2.在字段映射中增加该字段映射,设置为固定值【是】
开启序列号物料发货
1.在ERP出库单明细对象里面添加4个字段
a.【序列号(编码)】:字段编码为crmSerialNo,字段类型为文本
b.【序列号备注】:字段编码为crmSerialNote,字段类型为文本
c.【序列号(id)】:字段编码为serialId,字段类型为查找关联,引用对象为序列号主档
d.【出库序列号】:字段编码为SAL_OutStockSerial,字段类型为文本
2.在CRM发货单产品对象增加两个文本字段--ERP序列号、ERP序列号备注,字段Api Name无要求
3.在明细对象字段映射里面添加如下字段
开启批次物料发货
1.在ERP出库单明细对象里面,增加一个字段【批号】,字段编码为【FLot】,查看接口字段编码为【Lot.Id】,保存接口字段编码为【FLot】;字段类型为查找关联,关联批号主档对象
2.在明细对象字段映射里面添加如下字段
多订单发货
1.在进销存管理-插件管理,开启多订单发货
2.在K3C勾选多个订单后(注意需是同一个客户的订单),点击下推,选择下推销售出库单即可
12.K3C 仓库
K3Cloud渠道注意事项
- 先确认ERP需要同步哪些组织的仓库。
- 如果只同步一个组织的仓库,需要保证CRM中ERP组织机构对象的组织id正确。可以参考导入K3C组织机构
- 如果需要同步多个组织的仓库,需要保证K3Cloud的不同组织间仓库编码唯一。历史数据可以直接修改编码。可以修改编码规则增加组织编码确保新建仓库不存在重复编码。
- 在ERP组织机构对象中,把需要同步仓库的组织的【是否同步仓库】选项选择【是】,其他选【否】
- 对于存在仓位的仓库,需要按仓位的规则进行同步。(注意:即使不需要同步仓位,如果同步库存,也需要同步仓位)
字段映射参考
ERP数据导入说明
如果K3Cloud仓库未开启仓位,可以在导入CRM数据后,在【数据维护】页面导入中间表。需要注意的是,K3Cloud渠道,仓库的ERP主键id默认使用仓库编码字段。
K3Cloud特殊预设字段
字段名称 | 字段编码 | 查看接口编码 | 保存接口编码 | 说明 |
---|---|---|---|---|
母仓库编码 | parentWarehouseNumber | 查找关联仓库,用于仓位对接 | ||
是否仓位 | isLoc | 布尔值, |
13.K3C B类库存对接逻辑图
B类库存,原来的库存和批次库存对象,不需要对接。数据进入库存明细对象后,会自动生成库存和批次库存的数据。
云星空中,页面上的对象名叫做即时库存明细, webapi中的对象叫做 即时库存。注意,页面上的"即时库存"的数据,并不能通过webapi的接口返回。
14.K3C 即时库存对接CRM库存明细
注意事项
- 由于K3Cloud【即时库存】储存的数据只有库存量(基本单位)【FBaseQty】是准确的,暂时只支持该数量准确对接。库存量(主单位)、可用量等字段获取准确值正在开发中。
- 如果K3Cloud存在开启了批次的物料需要同步,必须开启批次对接以及在库存明细添加批次字段映射。
第一步 在进销存管理-插件管理,设置对接插件同步机制为“同步库存明细”,CRM才会有库存明细对象
第二步 在数据同步设置->ERP对象管理,检查ERP即时库存对象的主键字段是否为FID,如果不是需要把主键设置为该字段。
主键字段详细内容如下,字段编码、查看接口字段编码、保存接口字段编码都设置为FID
第三步 添加CRM【库存明细】对象的同步策略
第四步 配置字段映射,基本字段配置如下
15.K3C 批次
注意事项
- CRM库存需要打开批次及序列化管理。
- 产品需要对接字段【是否开启批次序列号管理(虚拟)】,参考【产品】对接说明。
字段映射参考
数据导入说明
注意批次K3Cloud预置的中间对象id字段为K3Cloud的内码Id字段,需要取该字段的值作为ERP数据id导入。
16.K3C 批次库存
K3C即时库存对接到CRM的库存明细对象后,不需要对接批次库存对象。
17.K3C 序列号
注意事项
- CRM不支持同一产品既开启批次又开启序列号。
- 产品需要对接字段【是否开启批次序列号管理(虚拟)】,参考【产品】对接说明。
- 序列号有两种对接方案--跟库存对接方案相关,不同方案字段映射不一样,具体详见字段映射说明
字段映射参考
1.如果K3C【即时库存】采用对接到CRM【库存】对象这种方案,序列号对接字段映射如下
需要在ERP序列号主档对象增加【仓库物料混合编码】字段,字段编码为StockMultiCode,字段类型为查找关联,关联即时库存
2.如果K3C【即时库存】采用对接到CRM【库存明细】对象这种方案,序列号对接字段映射如下
需要在ERP序列号主档对象增加【虚拟库存】、【仓库复合ID】以及【仓位(ID)】字段
a.【虚拟库存】字段,字段编码为 virtual_stock_id,字段类型为查找关联,查找关联库存
b.仓库复合ID(仓库编号||仓位1编号.仓位2编号...)字段,字段编码为 warehouseComId,字段类型为查找关联,查找关联仓库
c.仓位(ID)字段,字段编码为FSubHeadEntity.FStockLocId.Id,查看接口字段编码为BD_SERIALMASTEROTHER[0].StockLocId.Id,字段类型为文本
18.K3C退货单
k3销售退货单(主),退货单明细->crm的退货单(主),退货单产品(也可以根据需要对接到自定义对象)
可以咨询【深圳市施罗德工业集团有限公司】相关实施人员,这个企业配置了k3Cloud的退货对接crm的退货对象
对接步骤
第一步,在erp对象管理里面确定ERP对象已经存在,如果不存在,联系开发初始化该对象,如图:
第二步,在同步策略里面添加退货的同步策略,如图:
第三步,选中退货策略,点击右上侧按钮添加策略明细,选择映射的对象,如图:
第四步,点击字段映射,把需要映射的各个字段映射上,最基本的映射如下图:
第五步,点击同步规则,根据需求设置:选择轮询,新增/更新根据客户需求选择,同步时间根据客户需求选择,是否需要函数也视情况而定,自定义函数介绍在4.21 节。规则如图:
数据范围
根据业务需求,过滤对应不需要同步的数据,只有满足配置的数据范围的数据才会被同步
对接注意点
注意查找关联字段映射查找关联字段
发票的对接没有太多的特殊的地方,主要要注意几个查找关联的字段的映射:关联客户
注意明细对象关联订单字段
关联订单(选择k3发票明细对象的SalesOrderComId这个字段与crm明细的查找关联订单的字段映射),如果不存在该字段SalesOrderComId,按下图手动添加
19. K3C 二开非标准接口对接
创建ERP对象和字段,然后通过写自定义函数调用外部接口做格式转换
八.ERP系统常见操作指引
1 金蝶云星空(含早期K3 Cloud版本)部分
1.1 金蝶云星空(含早期K3 Cloud版本)基础资料控制类型及基础资料控制策略如何查看?
使用金蝶云星空(含早期K3 Cloud版本)管理员账户(具备基础资料分配权限)进入系统管理>组织机构>基础资料控制查看,见下图。
1.2 基础资料控制类型的策略类型为分配类型,如何设置金蝶云星空(含早期K3 Cloud版本)自动分配执行频率?
以物料为例,在执行计划列表,通过名称找到对应的执行计划,双击进入即可设置执行频率,见下图:
参见:https://vip.kingdee.com/article/8771
1.3 如何启用变更单/新变更单?
进入销售管理系统参数界面,在订单变更单选项中勾选后保存即可开启,见下图:
1.4 如何查看该员工在金蝶云星空(含早期K3 Cloud版本)是否为销售员?
在金蝶云星空(含早期K3 Cloud版本)的基础管理>基础资料>公共资料>业务员列表查看,见下图:
或者在录入单据时,填写销售员字段,点解弹出的弹窗即为销售员列表,见下图:
1.5 如何从金蝶云星空(含早期K3 Cloud版本)中导出物料/销售订单/即时库存导出数据?
物料导出:
在物料列表>选项>引出 有按引入/出模板引出数据:
销售订单/即时库存引出参考物料引出;
1.6 如何查看纷享界面字段的apiname?
在界面搜索WebAPISDK Web API,如下图,点击进入后再web api界面左侧找到对应的单据,进入选择 保存 ,即可看到该单据界面的字段标识;
注:CRM新增ERP字段时,请参照该单据json格式判断是否需要增加明细或FNumber/FName,详情参见培训助手视频课程:金蝶云星空(含早期K3 Cloud版本)产品培训2.0 ;
1.7 在客户/订单等单据列表查看页面,如何将隐藏的列放出来?
在单据列表页,点击 过滤 按钮,在弹窗中切换显示隐藏列页签,即可勾选显示隐藏列,见下图: