金蝶云星空到泛微OA-Http的供应商数据集成案例
在本技术案例中,我们探讨了将金蝶云星空系统中的供应商数据集成到泛微OA-Http平台的方法。这一过程通过逐单查询和批量写入,确保每个环节都顺畅无误。下面我们将详细介绍如何利用轻易云的数据集成平台,实现这一目标。
首先,我们需要从金蝶云星空系统获取供应商数据,这一步骤使用的是ExecuteBillQuery接口。为了确保数据的完整性和及时性,我们设计了一套定时可靠的抓取机制,通过处理分页和限流问题来高效获取大规模数据。在这一过程中,支持高吞吐量的数据写入能力显得尤为重要,它使得大量数据能够快速被提取并写入下一流程。
具体而言,为了解决不同系统之间的数据格式差异,我们自定义了专门的数据转换逻辑。这些转换规则不仅涵盖了字段映射,还包括复杂业务逻辑的适配。例如,将金蝶云星空中的某些特定字段转化为泛微OA-Http可识别且符合其业务要求的格式。同时,通过轻易云提供的可视化数据流设计工具,使整个配置过程变得直观且易于管理。
接下来是实现实际的数据提交操作。我们调用了泛微OA-Http接口/api/cube/new/card/doSubmit来进行逐单记录插入。在整个对接过程中,一系列监控与告警系统随时跟踪任务状态及性能参数,以便实时发现并解决潜在问题。
此外,在异常处理方面,如果出现任何意料之外的问题,会自动触发错误重试机制,从而保障整体流程的稳定性。因此,无论是网络波动还是暂时无法访问API,都不会影响最终的数据一致性和平稳运行。
通过这种全生命周期管理方式,不仅提高了业务透明度,也极大地提升了工作效率和准确率。在后续文章中,我们将进一步深入探讨各个步骤及细节,包括如何具体实施这些接口调用、如何优化性能以及怎样处理异常情况等。
调用金蝶云星空接口ExecuteBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的ExecuteBillQuery接口来获取供应商数据,并进行初步的数据加工。
接口配置与请求参数
在轻易云平台上,我们需要配置元数据以便正确调用金蝶云星空的API接口。以下是我们需要配置的元数据:
{
"api": "ExecuteBillQuery",
"effect": "QUERY",
"method": "POST",
"number": "FNumber",
"id": "FId",
"request": [
{
"field": "Limit",
"label": "Limit",
"type": "string",
"describe": "金蝶的查询分页参数",
"value": "500"
},
{
"field": "StartRow",
"label": "StartRow",
"type": "string",
"describe": "金蝶的查询分页参数"
},
{
"field": "TopRowCount",
"label": "TopRowCount",
"type": "int",
"describe": "金蝶的查询分页参数"
},
{
"field": "FilterString",
"label": "FilterString",
"type": "string",
"describe":
`示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=`,
`value":"FAuditDate>='{{LAST_SYNC_TIME|dateTime}}' and FUseOrgId.FNumber='000' and FForbidStatus='A'"
},
{
``field``: ``FieldKeys``,
``label``: ``FieldKeys``,
``type``: ``array``,
``describe``:
`金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber`,
`value":"{MAIN_REQUEST}"
},
{
``field``: ``FormId``,
``label``: ``FormId``,
``type``: ``string``,
``describe``:
`必须填写金蝶的表单ID如:PUR_PurchaseOrder`,
`value":"BD_Supplier"
}
],
autoFillResponse: true
}
请求参数详解
- Limit:用于设置每次查询返回的数据条数,本文设置为500。
- StartRow:用于设置查询起始行,通常用于分页。
- TopRowCount:用于限制返回结果的最大行数。
- FilterString:用于设置过滤条件。例如,
FAuditDate>='{{LAST_SYNC_TIME|dateTime}}' and FUseOrgId.FNumber='000' and FForbidStatus='A'
表示只查询审核日期在上次同步时间之后、使用组织编号为‘000’且未禁用的记录。 - FieldKeys:指定需要返回的字段,例如主键ID等。
- FormId:指定要查询的表单ID,这里为供应商表单
BD_Supplier
。
调用API并处理响应
通过上述配置,我们可以使用POST方法调用ExecuteBillQuery接口。以下是一个示例请求体:
{
“FormId”: “BD_Supplier”,
“FieldKeys”: “FNumber,FName,FCreateDate”,
“FilterString”: “FAuditDate>='2023-01-01' and FUseOrgId.FNumber='000' and FForbidStatus='A'”,
“Limit”: “500”
}
该请求将返回符合条件的供应商信息,包括供应商编号、名称和创建日期。
数据清洗与转换
获取到原始数据后,需要对其进行清洗和转换,以便后续写入目标系统。常见的数据清洗操作包括:
- 字段映射:将源系统字段映射到目标系统字段。例如,将金蝶中的
FNumber
映射到目标系统中的供应商编号字段。 - 数据格式转换:例如,将日期格式从YYYY-MM-DD转换为目标系统所需的格式。
- 数据过滤:根据业务规则过滤掉不需要的数据。
自动填充响应
轻易云平台支持自动填充响应功能,可以简化部分开发工作。例如,通过配置autoFillResponse: true
,平台会自动处理API响应并填充到预定义的数据结构中。
通过以上步骤,我们实现了从金蝶云星空获取供应商数据并进行初步加工,为后续的数据写入和进一步处理奠定了基础。这一过程不仅提高了数据集成效率,也确保了数据的一致性和准确性。
使用轻易云数据集成平台实现供应商数据转换与写入泛微OA-HttpAPI接口
在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将详细探讨如何利用轻易云数据集成平台,将来自供应商金蝶的数据转换为泛微OA-HttpAPI接口所能接收的格式,并最终写入目标平台。
1. 数据请求与清洗
首先,我们需要从源系统(金蝶)获取供应商相关的数据。假设我们已经完成了数据的提取和初步清洗,接下来就是对这些数据进行转换,以适应目标系统(泛微OA)的要求。
2. 数据转换与写入
在这一阶段,我们将使用轻易云提供的元数据配置来实现数据的转换和写入。以下是具体的元数据配置:
{
"api": "/api/cube/new/card/doSubmit",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "billid",
"label": "参数ID",
"type": "string",
"describe": "打开泛微表单后可以在URL中获取该参数",
"value": "{F_WMMX_OAId}"
},
{
"field": "type",
"label": "类型",
"type": "string",
"describe": "类型",
"value": "_function case '{F_WMMX_OAId}' when '' then 1 else 2 end"
},
{
"field": "modeId",
"label": "modeId",
"type": "string",
"describe": "//0 正常,1重要,2紧急",
"value": "32"
},
{
"field": "formId",
...
3. 配置解析与应用
API接口配置
api
字段指定了目标系统的API路径,即/api/cube/new/card/doSubmit
。该路径用于提交新的卡片信息。
请求方法
method
字段定义了请求方法为POST
,表示我们将以POST请求方式提交数据。
参数配置
每个参数的配置如下:
billid
: 从URL中获取的表单参数ID。type
: 类型字段,根据条件判断设置为1或2。modeId
: 固定值32,表示正常模式。formId
: 固定值-179,对应特定表单ID。JSONStr
: 包含多个子字段,用于传递具体的供应商信息。
JSONStr子字段解析
以下是部分关键子字段及其对应关系:
field11628
(银行账号): 对应金蝶中的SupplierBank.0.BankCode
。field11626
(使用组织): 对应金蝶中的UseOrgId_Name
。field11627
(收款银行): 对应金蝶中的SupplierBank.0.OpenBankName_new
。field11625
(供应商编码): 对应金蝶中的Number
。field11257
(供应商名字): 对应金蝶中的chinese_name
。
通过这些配置,我们可以将从金蝶提取的数据映射到泛微OA所需的格式。
4. 特殊处理逻辑
在某些情况下,需要对特定字段进行特殊处理。例如:
{
...
{
"field":"iscreate","label":"iscreate","type":"string","value":"_function case '{F_WMMX_OAId}' when '' then 1 else 0 end"
}
}
上述配置表示,如果参数ID为空,则设置为1,否则设置为0。这种条件判断可以确保在不同情况下正确处理数据。
5. 提交与监控
最后,通过轻易云的数据集成平台,我们可以实时监控数据流动和处理状态,确保每个环节都清晰可见。当所有配置完成后,执行POST请求,将转换后的数据提交到泛微OA系统,实现无缝对接。
以上就是利用轻易云数据集成平台实现供应商数据转换与写入泛微OA-HttpAPI接口的详细过程。通过灵活运用元数据配置,可以高效地完成不同系统间的数据集成任务。