简道云数据集成到金蝶云星空:仓库盘点单(月盘)=> 其他出库单(盘亏)
在实现企业内部各大系统的无缝衔接中,如何高效且准确地进行数据迁移和整合是关键。本技术案例将介绍如何通过轻易云数据集成平台,将简道云中的“仓库盘点单(月盘)”无缝对接到金蝶云星空,并形成对应的“其他出库单(盘亏)”。
首先,通过调用简道云提供的数据获取API /api/v2/app/{app_id}/entry/{entry_id}/data
实现精准的数据抓取。在处理过程中,必须注意分页和限流问题,以确保海量数据在传输过程中的稳定性。我们采用定时任务机制来可靠地抓取这些接口数据,实现了定期批量同步。
紧接着,我们面临的是两个系统间的数据格式不一致的问题。为了确保有效对接,需要进行详细的数据映射与转换。在这一过程中,我们自定义了一套映射规则,使得每一个字段都能正确匹配至金蝶云星空所要求的格式规范。同时,为了应对链接中偶发的异常情况,我们设计并实现了一套错误重试机制。
当所有准备工作完成后,就可以使用金蝶云星空提供的 batchSave
API 将整理好的信息快速写入目标数据库。这一步极大提升了整体操作效率,特别是在大量数据同步情况下表现尤为显著。此外,通过实时监控记录日志,我们能够掌握整个流程运行状态,一旦出现问题可以迅速定位并解决。
本案例展示了从源头获取,到中间处理,再到最终存储,每个环节均衡有序、条理清晰,有力保障了企业业务运营的一体化协同。这种严谨、高效的方法论,不仅提高了系统间互操作性的灵活度,同时也增强了实际应用中的实用性和稳定性。
调用简道云接口获取并加工数据的技术实现
在轻易云数据集成平台中,调用源系统简道云接口获取并加工数据是生命周期的第一步。本文将深入探讨如何通过配置元数据来实现这一过程。
接口配置与请求参数
首先,我们需要调用简道云提供的API接口/api/v2/app/{app_id}/entry/{entry_id}/data
。该接口支持POST请求,主要用于查询指定应用和表单的数据。以下是关键的元数据配置:
{
"api": "/api/v2/app/{app_id}/entry/{entry_id}/data",
"effect": "QUERY",
"method": "POST",
"number": "_widget_1688538649501",
"id": "_id",
"idCheck": true,
"request": [
{
"field": "appId",
"label": "应用ID",
"type": "string",
"describe": "应用ID",
"value": "642307c010703500087839ac"
},
{
"field": "entryId",
"label": "表单ID",
"type": "string",
"describe": "表单ID",
"value": "64a3bc03392c700008450082"
},
{
"field": "fields",
"label": "需要查询的字段",
"type": "string",
"describe": "多个字段以逗号隔开,默认不传入则输出所有字段",
"parser": {
"name": "StringToArray",
"params": ","
}
},
{
"field": "limit",
"label": "每页返回数量",
"type": "string",
"describe": "查询的数据条数,1~100,默认10",
"value": 100
},
{
...
}
],
...
}
数据过滤与条件设置
为了确保获取的数据符合业务需求,我们需要设置过滤参数。以下是一个典型的过滤参数配置示例:
{
...
{
...
{
...
},
{
...
},
{
...
},
{
...
},
{
field: 'filter',
label: '过滤参数',
type: 'object',
describe: '过滤参数',
children: [
{
field: 'rel',
label: '过滤参数逻辑',
type: 'string',
describe: '"rel":"and", // 或者"or"',
value: 'and'
},
{
field: 'cond_1',
label: '自定义字段过滤',
type: 'object',
describe: '自定义字段过滤',
children: [
{
field: 'field',
label: '过滤字段',
type: 'string',
describe: '过滤字段',
value: 'updateTime'
},
{
field: 'type',
label: '过滤类型',
type: 'string',
describe: 'text\\number\\flowstate',
value: 'datetime'
},
{
field: 'method',
label: '过滤方法',
type: 'string',
describe:
'"not_empty"(不为空),"empty"(为空),"eq"(等于),"in"(等于任意一个),"range"(在x与y之间,并且包含x和y本身),"nin"(不等于任意一个),"ne"(不等于), “like”(文本包含)',
value: 'range'
},
{
field: 'value',
label: '过滤值',
type: 'string',
describe:
'"{{LAST_SYNC_TIME|datetime}}" // 动态时间变量替换为实际值时使用模板语法。',
parser:{
name:"StringToArray",
params:","
}
}
]
},
...
]
}
]
}
请求示例
基于上述配置,我们可以构建一个完整的请求体,并通过HTTP POST方法发送请求:
{
appId:"642307c010703500087839ac",
entryId:"64a3bc03392c700008450082",
fields:["field1","field2"],
limit:"100",
filter:{
rel:"and",
cond_1:{
field:"updateTime",
type:"datetime",
method:"range",
value:["2023-01-01T00:00:00Z","2023-12-31T23:59:59Z"]
},
cond_2:{
field:"FlowState",
type:"FlowState",
method:"in",
value:["1"]
}
}
}
数据处理与转换
在获取到源系统的数据后,需要对数据进行清洗和转换,以便后续写入目标系统。在轻易云平台中,可以通过内置的转换工具或自定义脚本来完成这些操作。例如,将日期格式统一转换为目标系统所需的格式,或者对特定字段进行计算和合并。
自动填充响应
为了简化后续处理步骤,可以启用autoFillResponse
选项,使得响应结果自动填充到预定义的数据结构中。这有助于减少手动解析和映射数据的工作量,提高集成效率。
{
autoFillResponse:true,
condition_bk:[
[
{field:"_widget_1602228805384._widget_1682216483273", logic:"gt", value:"0"}
]
],
condition:[
[
{field:"_widget_1602228805384._widget_1682216483273", logic:"gt", value:"0"},
{field:"_widget_1602228805094", logic:"egt","value":"2024-04-01timestamp"}
]
]
}
通过以上步骤,我们可以高效地调用简道云接口获取并加工数据,为后续的数据集成奠定坚实基础。
使用轻易云数据集成平台将仓库盘点单转换为金蝶云星空API格式并写入目标平台
在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将仓库盘点单(月盘)的数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。
1. 数据请求与清洗
首先,我们需要从源系统中提取仓库盘点单的数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和加载打下基础。
2. 数据转换与写入
在完成数据清洗后,接下来是将这些数据转换为金蝶云星空API接口所能接受的格式。以下是具体的元数据配置及其解析:
{
"api": "batchSave",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "FBillTypeID",
"label": "单据类型",
"type": "string",
"describe": "标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS",
"parser": {"name": "ConvertObjectParser", "params": "FNumber"},
"value": "QTCKD14_SYS"
},
{
"field": "FStockOrgId",
"label": "库存组织",
"type": "string",
"describe": "组织",
"parser": {"name": "ConvertObjectParser", "params": "FNumber"},
"value": "{_widget_1706800675381}"
},
{
...
}
],
...
}
在这个配置中,我们定义了多个字段,每个字段都有特定的属性和解析方式。例如:
FBillTypeID
:这是单据类型字段,使用ConvertObjectParser
解析器,将值转换为金蝶云星空所需的格式。FStockOrgId
:库存组织字段,同样使用ConvertObjectParser
解析器。FPickOrgId
、FStockDirect
等字段也按照类似方式进行配置。
明细信息处理
对于明细信息,我们采用数组形式进行处理,每个子项都包含多个字段,例如:
{
...
{
"field": "FEntity",
"label": "明细信息",
"type": "array",
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{
...
{"field":"Flot","label":"批号","type":"string","value":"123","parser":{"name":"ConvertObjectParser","params":"FNumber"}}
}
}
}
}
}
}
}
}
}
}
},
...
}
每个明细项都包含物料编码、实发数量、发货仓库等信息,这些信息通过相应的解析器进行转换,以符合金蝶云星空API接口要求。
最终写入目标平台
所有字段配置完成后,通过POST方法调用金蝶云星空API接口,将转换后的数据批量保存到目标平台。以下是其他请求参数配置:
{
...
{"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"STK_MisDelivery"},
{"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"true"},
{"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"true"},
{"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"Save"},
{"field":"InterationFlags","label":"可以负库存","type":"string","describe":"可以负库存","value":"STK_InvCheckResult"}
}
这些参数确保了数据在写入目标平台时能够自动提交并审核,同时验证基础资料的有效性。
通过上述步骤,我们成功地将仓库盘点单的数据转换为金蝶云星空API接口所能接受的格式,并批量保存到目标平台。这一过程充分利用了轻易云数据集成平台提供的强大功能,实现了不同系统间的数据无缝对接。