简道云与金蝶云星空采购退货单数据集成案例
在本篇技术案例中,我们将深入探讨如何通过轻易云数据集成平台,实现简道云的采购退货单数据高效无缝地对接到金蝶云星空。这一流程包含了从简道云接口的数据抓取、处理及转换,到最后批量写入金蝶云星空的全周期操作。
首先,集成方案需要确保简道云的数据不漏单,并能够定时可靠地抓取简道云接口提供的数据。为此,我们使用了/api/v2/app/{app_id}/entry/{entry_id}/data
接口,设置合理的分页和限流策略以防止请求频率过高导致的问题。同时,通过实时监控和日志记录来维护全程可追溯性,一旦出现异常能够迅速进行错误重试。
另一方面,在将大量数据快速写入到金蝶云星空过程中,同样需要考虑多方面因素,包括数据格式差异、批量操作性能以及对接异常处理等。我们使用了金蝶提供的batchSave
API 接口不仅能实现大规模并发写入,还能够灵活配置定制化的数据映射,以应对不同字段结构之间的不一致性。
如下图所示,即是一个典型的数据从简道云端获取并转移至金蝶系统中的过程:
-
Step 1: 简道云API调用
调用/api/v2/app/{app_id}/entry/{entry_id}/data
获取最新的采购退货单数据。 -
Step 2: 数据转换与处理
将获取到的数据进行必要的格式调整和验证,例如日期格式校准、不符合规范字符过滤等。 -
Step 3: 批量写入金蝶
使用batchSave
接口一次性将整理后的综合数据信息存储到金蝶数据库,并开启错误重试机制。 -
Step 4: 日志记录与监控
实时监控每个步骤状态,并详细记录日志,以便后续分析与问题排查。
这样一种统一而清晰的方法带来了极大的效率提升和准确度保证。不但解决了两个系统之间复杂繁琐的信息传递问题,同时也为企业运行运营提供了一种稳定可靠的信息手段。
调用简道云接口获取并加工数据
在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用简道云接口/api/v2/app/{app_id}/entry/{entry_id}/data
来获取并加工数据。
接口配置与请求参数
首先,我们需要了解该接口的基本配置和请求参数。以下是元数据配置的详细说明:
- API路径:
/api/v2/app/{app_id}/entry/{entry_id}/data
- 请求方法:
POST
- 主要字段:
appId
: 应用ID,固定值为642307c010703500087839ac
entryId
: 表单ID,固定值为64a3bbf547e99400094a8c66
fields
: 需要查询的字段,多个字段以逗号隔开,默认不传入则输出所有字段limit
: 每页返回数量,范围1~100,默认值为10filter
: 过滤参数,包括逻辑关系(如and
或or
)和自定义字段过滤条件
请求示例
根据上述配置,我们可以构建一个具体的请求示例:
{
"appId": "642307c010703500087839ac",
"entryId": "64a3bbf547e99400094a8c66",
"fields": "_widget_1688538495090,_id",
"limit": "100",
"filter": {
"rel": "and",
"cond_1": {
"field": "updateTime",
"type": "datetime",
"method": "range",
"value": "{{LAST_SYNC_TIME|datetime}},{{CURRENT_TIME|datetime}}"
}
}
}
数据清洗与转换
获取到数据后,我们需要对其进行清洗和转换,以便后续写入目标系统。在这个过程中,可以利用轻易云平台提供的各种工具和功能。
-
数据清洗:
- 确保所有必需字段都存在且格式正确。
- 去除重复记录或无效数据。
- 转换日期格式、数值单位等。
-
数据转换:
- 将简道云的数据结构转换为金蝶系统所需的数据结构。
- 映射字段名称,例如将简道云中的
_widget_1688538495090
映射为金蝶中的相应字段。
自动填充响应
在元数据配置中,有一个重要属性是autoFillResponse
,设置为true
。这意味着轻易云平台会自动处理响应数据,并将其填充到相应的目标系统中。这一步骤极大地简化了开发工作量,使得整个集成过程更加高效。
实时监控与调试
在实际操作中,通过轻易云平台的实时监控功能,可以随时查看数据流动和处理状态。一旦出现问题,可以快速定位并解决。例如,如果发现某些记录未能成功写入金蝶系统,可以通过日志和监控界面查找原因,并进行相应调整。
总结
通过调用简道云接口获取并加工数据,是轻易云数据集成平台生命周期中的关键步骤之一。本文详细介绍了如何配置和使用该接口,以及如何进行数据清洗与转换。利用轻易云平台强大的功能,可以显著提升数据集成的效率和可靠性。
轻易云数据集成平台ETL转换与金蝶云星空API接口对接技术案例
在数据集成过程中,ETL(Extract, Transform, Load)转换是关键的一环。本文将详细介绍如何使用轻易云数据集成平台,将简道云的采购退货单数据进行ETL转换,最终通过金蝶云星空的API接口写入目标平台。
数据请求与清洗
在本案例中,我们首先从简道云获取采购退货单的数据。这些数据包括单据编号、退料日期、退料组织、供应商、结算组织、结算币别、付款组织、货主类型和货主等信息。同时,还包含了物料编码、实退数量、仓库、批号、货主类型和含税单价等明细信息。
数据转换与写入
接下来,我们将这些数据进行必要的转换,以符合金蝶云星空API接口所需的格式。以下是具体的元数据配置及其解析:
-
基本字段配置
- FBillNo(单据编号):直接映射为简道云中的
{_widget_1688538495090}
。 - FDate(退料日期):使用
{{updateTime|datetime}}
进行日期格式转换。 - FStockOrgId(退料组织):通过
ConvertObjectParser
解析为金蝶需要的格式,映射为{_widget_1704936392418}
。 - FSupplierID(供应商):通过MongoDB查询语句获取对应的供应商编号,并使用
ConvertObjectParser
进行解析。 - FSettleOrgId(结算组织):同样使用
ConvertObjectParser
解析为金蝶需要的格式,映射为{_widget_1704936392418}
。 - FSettleCurrId(结算币别):直接设置为固定值
PRE001
。 - FPayOrgId(付款组织):使用相同的解析方法,映射为
{_widget_1704936392418}
。 - FOwnerTypeIdHead(货主类型):设置为固定值
BD_OwnerOrg
。 - FOwnerIdHead(货主):同样通过解析器映射为对应值。
- FBillNo(单据编号):直接映射为简道云中的
-
明细信息配置 明细信息是一个数组,每个元素包含以下字段:
- FMATERIALID(物料编码):通过解析器映射为简道云中的物料编码字段
{_widget_1682144495853}
。 - FRMREALQTY(实退数量):直接映射为简道云中的实退数量字段
{_widget_1689121484431}
。 - FSTOCKID(仓库):固定映射为仓库编码
MD000
。 - FLot(批号):固定映射为批次号
123
,并通过解析器进行处理。 - FOWNERTYPEID(货主类型):设置为固定值
BD_OwnerOrg
。 - FOWNERID(货主):通过解析器映射为对应值。
- FTAXPRICE(含税单价):直接映射为简道云中的含税单价字段
{_widget_1689379240653}
。
- FMATERIALID(物料编码):通过解析器映射为简道云中的物料编码字段
-
其他请求参数 这些参数用于控制API调用行为:
FormId
: 设置业务对象表单ID,如采购退货单的IDPUR_MRB
Operation
: 设置执行操作类型batchSave
IsAutoSubmitAndAudit
: 设置是否自动提交并审核,布尔值true
IsVerifyBaseDataField
: 设置是否验证基础资料有效性,布尔值true
SubSystemId
: 设置系统模块 ID 为21
InterationFlags
: 设置允许负库存标识STK_InvCheckResult
实际操作步骤
-
配置请求参数和元数据:
{ "api": "batchSave", "effect": "EXECUTE", "method": "POST", "idCheck": true, "request": [ {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{_widget_1688538495090}"}, {"field":"FDate","label":"退料日期","type":"string","describe":"日期","value":"{{updateTime|datetime}}"}, {"field":"FStockOrgId","label":"退料组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{_widget_1704936392418}"}, {"field":"FSupplierID","label":"供应商","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_mongoQuery 209a5c25-4dbf-3123-9a2b-47396a1c52fd findField=content.FNumber where={\"content.FName\":{\"$eq\":\"{_widget_1602489532994}\"},\"content.FUseOrgId_FNumber\":{\"$eq\":\"{_widget_1704936392418}\"}}"}, {"field":"FSettleOrgId","label":"结算组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{_widget_1704936392418}"}, {"field":"FSettleCurrId","label":"结算币别","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"PRE001"}, {"field":"FPayOrgId","label":"付款组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value\":\"{_widget_1704936392418}"}, {"field\":\"FOwnerTypeIdHead\",\"label\":\"货主类型\",\"type\":\"string\",\"describe\":\"多类别基础资料列表\",\"value\":\"BD_OwnerOrg\"}, {"field\":\"FOwnerIdHead\",\"label\":\"货主\",\"type\":\"string\",\"describe\":\"多类别基础资料\",\"parser\":{\"name\":\"ConvertObjectParser\",\"params\":\"FNumber\"},\"value\":\"{_widget_1704936392418}\"}, {"field\":\"FPURMRBENTRY\",\"label\":\"明细信息\",\"type\":\"array\",\"describe\":\"明细信息\",\"value\":\"{ _widget:1602213743268 }\", \"children\":[ {\"field\": \"FMATERIALID\", \"label\": \"物料编码\", \"type\": \"string\", \"describe\": \"基础资料\", \"parser\": {\"name\": \"ConvertObjectParser\", \"params\": \"FNumber\"}, \"value\": \"{ _widget:1682144495853 }\"}, {\"field\": \"FRMREALQTY\", \"label\": \"实退数量\", \"type\": \"float\", \"describe\": \"数量\", \"value\": \"{ _widget:1689121484431 }\"}, {\"field\": \"FSTOCKID\", \"label\": \"仓库\", \"type\": \"string\", \"describe\": \"基础资料\", parser: { name: ConvertObjectParser, params: FNumber }, value: MD000 }, { field: FLot, label: 批号, type: string, describe: 批次, value: 123, parser: { name: ConvertObjectParser, params: FNumber } }, { field: FOWNERTYPEID, label: 货主类型, type: string, describe: 多类别基础资料列表, value: BD_OwnerOrg }, { field: FOWNERID, label: 货主, type: string, describe: 多类别基础资料, parser:{ name : ConvertObjectParser , params : FNumber }, value : {_ widget : 1704936392418 }}, { field : FTAXPRICE , label : 含税单价 , type : float , describe : 单价 , value : {_ widget : 1689379240653 }} ]} ], otherRequest:[ { field : FormId , label : 业务对象表单 Id , type : string , describe : 必须填写金蝶的表单 ID 如:PUR_PurchaseOrder , value : PUR_MRB }, { field : Operation , label : 执行的操作 , type : string , describe : 执行的操作 , value : batchSave }, { field : IsAutoSubmitAndAudit , label : 提交并审核 , type : bool , describe : 提交并审核 , value:true}, { field:IsVerifyBaseDataField,label:"验证基础资料",type:"bool",describe:"是否验证所有的基础资料有效性,布尔类,默认false(非必录)",value:true}, { field:"SubSystemId",label:"系统模块",type:"string",describe:"默认仓库模块",value:"21"}, { field:"InterationFlags",label:"允许负库存",type:"string",describe:"允许负库存",value:"STK_INVCheckResult"} ], operation:{ rowsKey:'array', rows:'1', method:'batchArraySave' } }
-
调用API接口: 使用上述配置,通过HTTP POST方法调用金蝶云星空的API接口,实现数据写入。确保每个字段都经过正确转换,并符合目标平台的数据格式要求。
总结
本文详细介绍了如何利用轻易云数据集成平台,将简道云中的采购退货单数据经过ETL转换后,通过金蝶云星空API接口写入目标平台。在实际操作中,需要特别注意各个字段的数据格式和转换规则,以确保数据能够正确无误地传输到目标系统。