标准-金蝶-其他入库单——>旺店通-自流转入(外仓调整)数据集成案例分析
在企业信息系统集成过程中,高效而准确的数据对接是关键。本技术案例将详细分享如何通过轻易云数据集成平台,实现金蝶云星空与旺店通·旗舰版之间的入库单数据无缝对接及自流转入(外仓调整)功能。
在该方案中,我们通过调用金蝶云星空API接口executeBillQuery
来获取相关的入库单数据,并利用轻易云平台特有的数据处理与监控能力,确保每一条记录均被精准捕获且不漏单。特别是在高并发场景下,有效解决了分页和限流问题,为后续批量写入旺店通·旗舰版提供了坚实基础。对于大量订单的快速写入,我们使用了旺店通·旗舰版的API wms.outer.OuterIn.createOrder
,结合定制化的数据映射,提高操作效率和可靠性。
同时,通过在轻易云平台配置实时监控和日志记录功能,可以全程跟踪每一条数据从抓取到写入的状态,并实现异常处理与错误重试机制,大幅提升整体系统的稳定性和可维护性。这些措施不仅保障了业务连续性,也为日后的运维工作带来了极大便利。
本案例所采用的方法论和技术手段,对于其他类似场景下的数据集成都具有较高参考价值,也是我们探索优化系统间互联互通的一次重要实践。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口来获取并加工数据。
接口配置与请求参数
首先,我们需要配置接口的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法进行调用,主要用于查询(effect为QUERY)。以下是请求参数的详细配置:
{
"api": "executeBillQuery",
"effect": "QUERY",
"method": "POST",
"number": "FBillNo",
"id": "FEntity_FEntryID",
"name": "FBillNo",
"idCheck": true,
"request": [
{"field": "FEntity_FEntryID", "label": "FEntryID", "type": "string", "describe": "FEntryID", "value": "FEntity_FEntryID"},
{"field": "FID", "label": "实体主键", "type": "string", "describe": "实体主键", "value": "FID"},
{"field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "FBillNo"},
{"field": "FDocumentStatus", "label": "单据状态", "type": "string", "describe": "单据状态",
"value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"库存组织","type":"string","describe":"库存组织","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","describe":"日期","value":"FDate"},
{"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID.FNumber"},
{"field":"FSUPPLIERID_FNumber","label":"供应商","type":"string","describe":"供应商","value":"FSUPPLIERID.FNumber"},
{"field":"FNOTE","label":"备注","type":"string","describe":"备注","value":"FNOTE"},
{"field":"FMATERIALID_FNumber","label":"物料编码","type":"string","describe":"物料编码","value":
"FMATERIALID.FNumber"},
{"field":"FSTOCKID","label":"收货仓库","type":"string","describe":
"收货仓库","value":
"FSTOCKID.FNumber"},
{"field":
"FQty","label":
"实收数量","type":
"string","describe":
"实收数量","value":
"FQty"},
{"field":
"FPrice","label":
"成本价","type":
"string","describe":
"成本价","value":
"FPrice"},
{"field":
"FAmount","label":
"总成本","type":
"string","describe":
总成本,""value:
FAmount},
{"field:
FBOMID,""label:
BOM版本,""type:
string,""describe:
BOM版本,""value:
FBOMID},
{"field:
生产日期,""label:
生产日期,""type:
字符串,""描述:
生产日期,""值:
生产日期},
{"字段:有效期至,
标签:有效期至,
类型:字符串,
描述:有效期至,
值:有效期至},
{"字段:FMTONO,
标签:计划跟踪号,
类型:字符串,
描述:计划跟踪号,
值:FMTONO},
{"字段:项目编号,
标签:项目编号,
类型:字符串,
描述:项目编号,
值:项目编号},
{"字段:库存状态,
标签:库存状态,
类型:字符串,
描述:库存状态,
值:库存状态},
请求示例
为了更好地理解如何调用该接口,我们来看一个具体的请求示例。假设我们需要查询特定条件下的数据,可以构造如下请求体:
{
"_FormId_ ": "_STK_MISCELLANEOUS_ ",
"_FieldKeys_ ": "_ FEntity_FEntryID, FBillNo, FDocumentStatus, FStockOrgId.FNumber, FDate, FBillTypeID.FNumber, FSUPPLIERID.FNumber, FNOTE, FMATERIALID.FNumber, FSTOCKID.FNumber, FQty, FPrice, FAmount _ ",
"_FilterString_ ": "_ FApproveDate>='2024-08-05 17:30:00' and FStockOrgId.FNumber='101' and FSTOCKID.F_TBIK_Assistant_qtr = '自流转仓' and FBillTypeID.FNUMBER in ('QTRKD01_SYS') _ ",
"_Limit_ ": "_100_ ",
"_StartRow_ ": "_0_ "
}
上述请求体中,我们指定了需要查询的字段、过滤条件以及分页参数。这样可以确保我们只获取到符合条件的数据,并且避免一次性返回过多数据导致性能问题。
数据处理与清洗
在获取到原始数据后,我们需要对其进行清洗和加工。这一步骤通常包括以下几个方面:
- 字段映射: 将源系统中的字段映射到目标系统所需的字段。例如,将
FBillNo
映射为目标系统中的订单编号。 - 数据转换: 根据业务需求对某些字段进行转换,例如将日期格式从
YYYY-MM-DD
转换为MM/DD/YYYY
。 - 过滤无效数据: 去除不符合业务规则的数据,例如状态为“已取消”的订单。
以下是一个简单的数据处理示例:
def process_data(raw_data):
processed_data = []
for entry in raw_data:
if entry['FDocumentStatus'] != 'C':
processed_entry = {
'order_no': entry['FBillNo'],
'date': convert_date_format(entry['FDate']),
'supplier': entry['FSUPPLIERID_FNumber'],
'total_cost': float(entry['FAmount']),
# 更多字段映射...
}
processed_data.append(processed_entry)
return processed_data
def convert_date_format(date_str):
from datetime import datetime
date_obj = datetime.strptime(date_str, '%Y-%m-%d')
return date_obj.strftime('%m/%d/%Y')
通过上述代码,我们可以将原始数据中的订单编号、日期、供应商和总成本等信息提取并转换为目标格式。
总结
通过轻易云数据集成平台调用金蝶云星空的executeBillQuery
接口,我们能够高效地获取源系统中的数据,并对其进行清洗和加工。这一步骤不仅确保了数据的一致性和准确性,还为后续的数据转换与写入奠定了坚实基础。在实际应用中,根据具体业务需求调整和优化这些步骤,将进一步提升整体集成效率。
轻易云数据集成平台:ETL转换与写入旺店通·旗舰版API接口
在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,并转为目标平台旺店通·旗舰版API接口所能够接收的格式,最终写入目标平台。
API接口配置与元数据解析
在本案例中,我们需要将标准-金蝶-其他入库单的数据转换并写入到旺店通·旗舰版。我们使用的API接口是wms.outer.OuterIn.createOrder
,其请求方法为POST
。以下是该API接口的元数据配置:
{
"api": "wms.outer.OuterIn.createOrder",
"effect": "EXECUTE",
"method": "POST",
"idCheck": true,
"request": [
{
"field": "order",
"label": "单据头",
"type": "object",
"children": [
{"field": "order_no", "label": "外部单号", "type": "string", "value": "{FBillNo}"},
{"field": "warehouse_no", "label": "仓库编号", "type": "string", "value": "{FSTOCKID}"},
{"field": "reason", "label": "出库原因", "type": "string", "value": "{F_TBIK_RKLX}"},
{"field": "remark", "label": "备注", "type": "string", "value": "{FNOTE}"}
]
},
{
"field": "order_details",
"label": "单据明细",
"type": "array",
...
},
{"field":"is_check","label":"是否审核","type":"bool","value":"true"}
],
...
}
数据清洗与转换
- 数据提取:从源系统(金蝶)中提取原始数据,包括单据头和单据明细部分。
- 数据清洗:确保提取的数据无误,并按照目标系统(旺店通)的要求进行必要的清洗。例如,确保所有字段都有值,且值符合预期格式。
- 数据转换:
- 单据头部分:
order_no
对应{FBillNo}
warehouse_no
对应{FSTOCKID}
reason
对应{F_TBIK_RKLX}
remark
对应{FNOTE}
- 单据明细部分:
spec_no
对应{FMATERIALID_FNumber}
num
对应{FQty}
remark
对应{FEntryNote}
- 单据头部分:
数据写入
在完成上述步骤后,我们将清洗和转换后的数据通过API接口写入到旺店通·旗舰版。以下是一个示例请求体:
{
"order": {
...
},
...
}
实际操作步骤
- 配置请求参数:根据元数据配置文件,设置请求参数。
- 调用API接口:使用HTTP POST方法,将请求体发送到目标API接口。
- 处理响应结果:检查响应结果,确保数据成功写入。如果出现错误,根据错误信息进行调试和修正。
通过上述步骤,我们可以实现从金蝶到旺店通的数据无缝对接。这不仅提升了业务效率,还确保了数据的一致性和准确性。