吉客云到金蝶云星空的数据集成实战案例
在实际的系统集成项目中,如何高效且准确地将吉客云的调拨单数据成功对接到金蝶云星空,是一项具有挑战但非常重要的任务。本文将分享一个具体案例,通过轻易云数据集成平台,实现吉客云(erp.storage.goodsdocin.v2)接口读取的数据,写入至金蝶云星空(batchSave)接口。
为了确保整个过程中的数据不漏单、实时监控及高效处理,我们使用了集中监控和告警系统,并结合自定义的数据转换逻辑。这些工具不仅帮助我们应对跨系统间不同的数据格式,还能及时发现和处理任何可能出现的异常情况。
首先,我们通过调用吉客云API erp.storage.goodsdocin.v2
定时可靠地抓取最新的调拨单数据。这一步需要特别注意的是分页和限流问题,以确保大批量数据能够被分段、有序地获取。同时,为了适应业务需求,配置了自定义转换规则,将获取的数据转换为符合金蝶云星空要求的格式。
在写入阶段,通过调用金蝶API batchSave
接口,将经过转换后的调拨单快速批量写入到金蝶云星空中。针对大量数据并发写入所带来的吞吐量挑战,我们采用了一系列优化措施,提高了整体效率。此外,还实现了详尽而细致的错误重试机制,当出现对接异常时,可以自动进行重试修正,从而最大程度保障数据的一致性与完整性。
另外,通过统一视图控制台,对整个API资产进行了有效管理,实现资源利用率最大化。在此过程中,由于使用可视化的数据流设计工具,大大简化了复杂流程,使得每个操作步骤更加直观易懂,也便于后期维护和迭代更新。
这个技术方案不仅提升了企业内部多系统协同工作的效率,更为其全生命周期管理提供有力支持。通过精准高效的数据集成,进一步巩固企业信息化建设成果,不断推动业务发展。
调用吉客云接口erp.storage.goodsdocin.v2获取并加工数据
在数据集成生命周期的第一步,我们需要从源系统吉客云中获取数据,并对其进行初步加工。本文将详细探讨如何通过调用吉客云的erp.storage.goodsdocin.v2
接口来实现这一过程。
接口调用配置
我们使用POST方法来调用erp.storage.goodsdocin.v2
接口,具体的元数据配置如下:
{
"api": "erp.storage.goodsdocin.v2",
"effect": "QUERY",
"method": "POST",
"number": "goodsdocNo",
"id": "recId",
"idCheck": true,
"request": [
{"field": "pageIndex", "label": "pageIndex", "type": "int", "describe": "111", "value": "{PAGINATION_START_ROW}"},
{"field": "pageSize", "label": "pageSize", "type": "int", "describe": "111", "value": "{PAGINATION_PAGE_SIZE}"},
{"field": "startDate", "label": "startDate", "type": "string", "describe": "111", "value": "{{LAST_SYNC_TIME|datetime}}"},
{"field": "endDate", "label": "endDate", "type": "string", "describe": "111", "value": "{{CURRENT_TIME|datetime}}"},
{"field": "inouttype",
"label":"出入库类型",
"type":"int",
"describe":"出入库类型(201-销售出库 202调拨出库 204-其他出库 205采购退货 206生产领料 207组装拆卸出库 208翻新出库 209报废出库 210残次品出库 211倒冲领料 212 包材出库 215维修还厂 299可用库存修正 231成本调整出库)",
"value":"102"
},
{"field":"selelctFields","label":"selelctFields","type":"string","value":"recId,goodsdocNo,billNo,inOutDate,gmtCreate,inouttype,inouttypeName,vendCustomerCode,vendCustomerName,currencyCode,currencyRate,userName,warehouseCode,warehouseName,comment,memo,logisticName,logisticNo,companyId,companyName,logisticType,logisticCode,inOutReason,sourceBillNo,channelId,channelCode,channelName,redStatus,field1,field2,field3,field4,field5,financeBillStatus,applyCompanyId,applyCompanyName,applyCompanyCode,applyDepartId,applyDepartName,departCode,applyUserId,applyUserName,outBillNo,gmtModified,companyCode,vendCustomerId,..."}
],
"autoFillResponse" : true
}
请求参数解析
-
分页参数:
pageIndex
: 当前页码,使用占位符{PAGINATION_START_ROW}
动态填充。pageSize
: 每页记录数,使用占位符{PAGINATION_PAGE_SIZE}
动态填充。
-
时间范围参数:
startDate
: 数据开始时间,使用占位符{{LAST_SYNC_TIME|datetime}}
动态填充。endDate
: 数据结束时间,使用占位符{{CURRENT_TIME|datetime}}
动态填充。
-
业务类型参数:
inouttype
: 出入库类型,这里固定为102(调拨入库)。
-
选择字段参数:
selelctFields
: 指定需要返回的字段列表,包括基础信息和详细信息字段。
调用示例
以下是一个具体的HTTP请求示例:
POST /api/erp.storage.goodsdocin.v2 HTTP/1.1
Host: api.jikexyun.com
Content-Type: application/json
{
![钉钉与CRM系统接口开发配置](https://pic.qeasy.cloud/S8.png~tplv-syqr462i7n-qeasy.image)
### 轻易云数据集成平台生命周期的第二步:ETL转换与写入金蝶云星空API接口
在轻易云数据集成平台中,数据处理过程的第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并将其转为目标平台——金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何通过元数据配置实现这一过程。
#### 数据请求与清洗
在ETL流程中,首先需要从源系统(吉客云)中提取调拨单数据。这些数据通常包括单据编号、日期、调入数量等字段。在提取过程中,我们需要对这些数据进行清洗,以确保其准确性和一致性。例如,对日期格式进行标准化处理,对字符串进行去重等。
#### 数据转换
接下来,我们需要将清洗后的数据按照金蝶云星空API接口的要求进行转换。以下是一个详细的元数据配置示例,用于将吉客云中的调拨单数据转换为金蝶云星空API接口所需的格式:
```json
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{"field": "FBillNo", "label": "单据编号", "type": "string", "value": "{billNo}"},
{"field": "FDate", "label": "日期", "type": "string", "value": "{inOutDate}"},
{"field": "FBillTypeID", "label": "单据类型", "type": "string", "value": "FBDR01_SYS",
"parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field": "FOwnerTypeIdHead", "label": "调入货主类型",
"type":"string","value":"BD_OwnerOrg"},
{"field":"FOwnerIdHead","label":"调入货主","type":"string","value":"100",
"parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field":"FTransferDirect","label":"调拨方向","type":"string","value":"GENERAL"},
{"field":"FNOTE","label":"备注","type":"string","value":"{inOutReason}"},
{"field":"FTransferMode","label":"调拨方式","type":"string","value":"DIRECT"},
{"field":"FVESTONWAY","label":"携带在途归属","type":"string","value":"A"},
{"field":"FOwnerTypeOutIdHead","label":"调出货主类型",
"type":"string","value":"BD_OwnerOrg"},
{"field":"FOwnerOutIdHead","label":"调出货主",
"type":"string","value":"100",
"parser":{"name":"ConvertObjectParser","params":"FNumber"}},
{"field": "FBizType", "label": "业务类型", "type": "string", "value": "NORMAL"}
],
...
}
上述配置定义了请求参数及其对应的数据字段和类型。例如,FBillNo
字段对应于源系统中的billNo
字段,FDate
字段对应于inOutDate
字段。此外,还可以通过解析器(如ConvertObjectParser
)对某些字段进行进一步处理。
数据写入
完成数据转换后,我们需要将这些数据通过金蝶云星空API接口写入目标系统。以下是继续上述元数据配置中的关键部分:
{
...
{
"field": "FSTKTRSINENTRY",
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
在这个部分,我们定义了如何将明细信息(如物料编码、调入仓库、调入数量等)写入目标系统。每个字段都进行了详细配置,包括其标签、类型和值来源。
例如:
FMaterialID
对应于goodsDocDetailList.goodsNo
FDestStockID
对应于warehouseCode
FQty
对应于goodsDocDetailList.quantity
此外,还可以通过解析器对某些复杂字段进行处理,如批号和生产日期等。
实际操作
在实际操作中,我们会调用金蝶云星空的 batchSave
API 接口,通过 POST 方法提交转换后的 JSON 数据。这一步骤通常包括以下几个关键点:
- 构建请求体:根据元数据配置生成符合 API 要求的 JSON 请求体。
- 发送请求:使用 HTTP 客户端(如 Postman 或编程语言内置的 HTTP 库)发送 POST 请求。
- 处理响应:解析 API 返回的响应,检查是否有错误或警告,并根据需要进行后续处理。
通过以上步骤,我们可以实现从吉客云到金蝶云星空的数据无缝对接,确保业务流程的顺畅运行。