小满客户数据高效集成到金蝶云星空案例分享
在企业管理系统的对接过程中,确保数据准确、实时地流转是关键。本次我们聚焦于如何高效、可靠地将小满OKKICRM的客户数据集成到金蝶云星空。通过合理配置轻易云数据集成平台,本文将展示一个完整的技术实现方案。
为了保证从小满OKKICRM到金蝶云星空的数据不漏单,我们首先设计了定时可靠抓取机制。此机制利用/v1/company/updates API定时获取最新更新的数据,并处理分页和限流问题,确保每次抓取操作均能成功执行且无遗漏。在获取阶段,通过记录日志和状态监控,实现全程可追踪。
针对大量数据写入需求,我们使用了批量写入策略,将获取的大量客户信息快速且安全地写入金蝶云星空。这里调用的是金蝶的batchSave API,该接口支持批量操作,有助于提高效率并减少请求次数。然而,必须注意两个系统之间的数据格式差异,需要进行必要的数据转换,使之符合目标系统要求。
另外,对接过程中的异常处理与错误重试也是必不可少的一环。当出现网络波动或接口响应超时时,由于是API交互频繁的问题点之一,我们设置了完善的重试机制,以保证最终一致性。同时,在整个链路上配备详细而清晰的实时监控与日志记录,可以及时发现和解决潜在的问题,大幅降低风险和运维成本。
通过以上步骤,不仅实现了高效、安全的小满OKKICRM客户数据向金蝶云星空的无缝对接,还大幅提升了集成质量和工作效率,为业务提供坚实保障。这一案例也为其他类似场景下的数据对接提供了一种稳健、灵活的方法论。
调用小满OKKICRM接口/v1/company/updates获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的第一步。本文将详细探讨如何通过轻易云数据集成平台调用小满OKKICRM接口/v1/company/updates
来获取并加工客户数据。
接口概述
小满OKKICRM接口/v1/company/updates
用于查询客户更新信息。该接口支持多种查询参数,允许用户根据不同需求灵活配置请求。以下是该接口的元数据配置:
{
"api": "/v1/company/updates",
"effect": "QUERY",
"method": "GET",
"number": "serial_id",
"id": "company_id",
"name": "serial_id",
"request": [
{"field":"start_index","label":"第几页","type":"string","describe":"第几页,默认 = 1","value":"1"},
{"field":"count","label":"每页记录数","type":"string","describe":"每页记录数,默认 = 20","value":"20"},
{"field":"removed","label":"是否查询已删除数据","type":"string","describe":"默认值: 0,设置=1时查询已删除的数据列表"},
{"field":"all","label":"查询所有客户","type":"string","describe":"默认值: 1,设置=1查询所有客户,设置=0只查询私海客户"},
{"field":"group_id","label":"客户分组ID","type":"string","describe":"设置客户分组ID后,只查询对应分组的客户"},
{"field":"date","label":"日期","type":"date","describe":"查询从此日期到今天为止有更新的客户列表"},
{"field":"start_time","label":"开始日期","type":"datetime","describe":"开始日期","value":"{{LAST_SYNC_TIME|datetime}}"},
{"field":"end_time","label":"结束日期","type":"datetime","describe":"结束日期","value":"{{CURRENT_TIME|datetime}}"}
],
"otherRequest": [
{"field": "info_api", "label": "详情接口", "type": "string", "describe": "详情接口", "value": "/v1/company/info"},
{"field": "info_key", "label": "详情主键", "type": "string", "describe": "详情主键", "value": "company_id"}
],
"autoFillResponse": true,
"condition_bk":[[{"field": "管理信息客户阶段", "logic": "notin", "value": ["1-联系(开发,报价)", null]}]],
"condition":[[{"field": "基本信息是否同步", "logic": "eqv2", "value": ["是"]}]]
}
参数配置与请求构建
在实际操作中,我们需要根据业务需求配置请求参数,以确保获取到所需的数据。以下是一些关键参数及其用途:
start_index
和count
: 用于分页控制,分别表示起始页和每页记录数。removed
: 是否查询已删除的数据。all
: 是否查询所有客户。group_id
: 客户分组ID,用于筛选特定分组的客户。date
,start_time
,end_time
: 用于时间范围筛选。
例如,如果我们需要获取从上次同步时间到当前时间内更新的所有客户,可以配置如下:
{
"start_index": 1,
"count": 20,
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
![金蝶与SCM系统接口开发配置](https://pic.qeasy.cloud/S12.png~tplv-syqr462i7n-qeasy.image)
### 数据集成生命周期中的ETL转换:将源平台数据写入金蝶云星空API接口
在数据集成生命周期的第二步,ETL(Extract, Transform, Load)转换至关重要。本文将重点探讨如何利用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,转为目标平台金蝶云星空API接口所能够接收的格式,并最终写入目标平台。
#### API接口配置与调用
在本案例中,我们使用的是金蝶云星空的`batchSave` API接口。该接口通过POST请求实现批量保存客户信息。以下是具体的元数据配置:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field":"FCUSTID","label":"FCUSTID","type":"string","value":"_mongoQuery d4da8655-8013-32f8-badf-d6899c822e72 findField=content.FCUSTID where={\"content.FNumber\" : {\"$eq\":\"{serial_id}\"}}"},
{"field":"FNumber","label":"客户编码","type":"string","describe":"客户编码","value":"{serial_id}"},
{"field":"FName","label":"客户名称","type":"string","describe":"客户名称","value":"{name}"},
{"field":"FShortName","label":"简称","type":"string","describe":"简称"},
{"field":"FTEL","label":"联系电话","type":"string","describe":"联系电话"},
{"field":"FCreateOrgId","label":"创建组织","type":"string","describe":"创建组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"101"},
{"field":"FUseOrgId","label":"使用组织","type":"string","describe":"使用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"101"},
{"field":"FTRADINGCURRID","label":"结算币别","type":"string","describe":"结算币别","value":"_mongoQuery d187163c-a439-358b-bf58-848411b65f2a findField=content.FNumber where={\"content.FName\" : {\"$eq\":\"{{基本信息结算货币}}\"}}"},
{"field": "FADDRESS", "label": "地址", "type": "string", "describe": "地址"},
{"field": "FCOUNTRY", "label": "国家", "type": "string", "value": "{{特征信息国家地区}}", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}},
{"field": "FSALDEPTID", "label": "销售部门", "type": "string", "value": "{{基本信息业务部门}}", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}},
{"field": "FSELLER", "label": "销售员", "type": "string",
"value": "_mongoQuery c2d0239e-93b9-35ed-91e4-c270a3d4fc0a findField=content.FStaffId where={\"content.FName\" : {\"$eq\":\"{{基本信息关联销售员}}\"}, \"content.Fdept\": {\"$eq\":\"{{基本信息业务部门}}\"}}"
},
{"field": "F_PAEZ_Text",
"label" : "客户星级",
"type" : "string",
"value" : "{{基本信息客户编号(客户级别)}}"
}
],
...
}
元数据字段解析
- FCUSTID: 使用MongoDB查询获取对应的
FCUSTID
,根据条件{"content.FNumber" : {"$eq":"' + serial_id + '"}}
进行匹配。 - FNumber: 客户编码,直接从源数据中提取。
- FName: 客户名称,同样从源数据中提取。
- FTEL: 联系电话,从源数据中提取。
- FCreateOrgId和FUseOrgId: 创建组织和使用组织,固定值为
101
,并通过ConvertObjectParser
进行转换。 - FTRADINGCURRID: 结算币别,通过MongoDB查询获取对应的币别编号。
- FSALDEPTID和FSELLER: 销售部门和销售员,通过MongoDB查询获取对应的数据,并通过
ConvertObjectParser
进行转换。 - 其他字段: 如地址、国家、客户星级等,直接从源数据中提取或通过相应的解析器进行处理。
数据转换与写入
在完成上述字段解析后,我们需要将这些字段按照金蝶云星空API接口要求的格式进行封装,并通过POST请求发送到目标平台。以下是一个示例请求体:
{
...
{
FCUSTID: '123456',
FNumber: 'C001',
FName: '某某公司',
FShortName: '某某',
FTEL: '1234567890',
FCreateOrgId: '101',
FUseOrgId: '101',
FTRADINGCURRID: 'USD',
FADDRESS: '北京市朝阳区',
FCOUNTRY: '中国',
FSALDEPTID: 'D001',
FSELLER: 'S001',
F_PAEZ_Text: '五星'
}
}
该请求体将被发送到金蝶云星空API接口,实现数据的批量保存。
小结
通过以上步骤,我们成功地将源平台的数据进行了ETL转换,并将其写入了目标平台金蝶云星空。这一过程不仅确保了数据的一致性和完整性,还提高了系统间的数据交互效率,为企业的数据管理提供了有力支持。