金蝶云星空数据集成到吉客云:金蝶直接调拨单对接吉客云其他入库案例
在企业的信息化管理过程中,实现不同系统间的数据高效流通是提升业务效率的关键。本技术案例将重点展示如何利用轻易云数据集成平台,将金蝶云星空的直接调拨单无缝对接至吉客云的其他入库模块。
首先,从金蝶云星空获取相关业务数据。我们使用其API接口executeBillQuery
,该接口能够支持定时可靠地抓取监控任务所需的数据。为了确保数据完整性和及时性,我们采用分页查询和限流机制,以应对大规模数据处理中的挑战。在实际应用中,这不仅能防止漏单,还能有效减少因网络波动或请求超时导致的异常情况。
其次,为了实现大量数据快速写入到吉客云,我们调用了其提供的API erp.stock.createandstockin
。通过灵活配置批量操作流程,可以显著提高写入效率。此外,在整合过程中,还需要解决两个平台之间的数据格式差异。这可以通过在导出端设置适用的字段映射规则来完成,并在轻易云内置的数据转换工具上进行实时调整。
在执行过程中,监控与日志记录功能尤为重要。每次操作都会有详细日志记录,通过可视化界面实时查看和分析处理状态,方便快速定位并解决可能出现的问题。同时,对接阶段具备完善的异常处理与错误重试机制,一旦发生意外终止情况可自动重新发起任务,确保最终结果可靠一致。
总之,本方案运用了多种技术手段,不仅保障了从金蝶云星空到吉客云的数据顺利传输,也极大提升了整体业务透明度与执行效率。在后续章节中,我们将深入探讨各个具体步骤及代码实现细节。
调用金蝶云星空接口executeBillQuery获取并加工数据
在数据集成的生命周期中,第一步是从源系统获取数据。本文将详细介绍如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery
,并对获取的数据进行加工处理。
接口调用配置
首先,我们需要配置调用金蝶云星空接口的元数据。以下是一个典型的元数据配置示例:
{
"api": "executeBillQuery",
"method": "POST",
"number": "FBillNo",
"id": "FBillEntry_FEntryID",
"pagination": {
"pageSize": 100
},
"idCheck": true,
"request": [
{"field":"FBillEntry_FEntryID","label":"FEntryID","type":"string","value":"FBillEntry_FEntryID"},
{"field":"FID","label":"实体主键","type":"string","value":"FID"},
{"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
{"field":"FDocumentStatus","label":"单据状态","type":"string","value":"FDocumentStatus"},
{"field":"FStockOrgId_FNumber","label":"调入库存组织","type":"string","value":"FStockOrgId.FNumber"},
{"field":"FDate","label":"日期","type":"string","value":"FDate"},
{"field":"FBillTypeID_FNumber","label":"单据类型","type":"string","value":"FBillTypeID.FNumber"},
{"field":"FTransferBizType","label":"调拨类型","type":"string","value":"FTransferBizType"},
{"field":"FStockOutOrgId_FNumber","label":"调出库存组织","type":"string","value":"FStockOutOrgId.FNumber"},
{"field":"FTransferDirect","label":"调拨方向","type":"string","value":"FTransferDirect"},
{"field":"FNote","label":"备注","type":"string","value":"FNote"},
{"field":"FBizType","label":"业务类型","type":"string","value":"FBizType"},
{"field": "FSaleOrgId_FNumber", "label": "销售组织", "type": "string", "value": "FSaleOrgId.FNumber"}
],
"otherRequest": [
{
"field": "Limit",
"label": "最大行数",
"type": "string",
"describe": "金蝶的查询分页参数",
"value": "{PAGINATION_PAGE_SIZE}"
},
{
"field": "FieldKeys",
"label": "需查询的字段key集合",
"type": "array",
"describe": "金蝶分录主键ID格式:FPOOrderEntry_FEntryId,其它格式 FPurchaseOrgId.FNumber",
"parser":{
"name": "ArrayToString",
"params": ","
}
},
{
"field": "TopRowCount",
"label": "返回总行数",
"type": int,
'describe': '金蝶的查询分页参数'
},
{
'field': 'FilterString',
'label': '过滤条件',
'type': 'string',
'describe': '示例写法 FSupplierId.FNumber = \'VEN00010\' and FApproveDate>=',
'value': 'FApproveDate>=\'{{LAST_SYNC_TIME|dateTime}}\' and FDestStockId.FNumber =\'01DS\' and FSrcStockId.FNumber=\'24DS\' and FCreatorId.fname <> \'GYERP管易对接账号\''
},
{
'field': 'FormId',
'label': '业务对象表单Id',
'type': 'string',
'describe': '必须填写金蝶的表单ID如:PUR_PurchaseOrder',
'value':'STK_TransferDirect'
},
{
'field':'StartRow',
'label':'开始行索引',
'type':'string',
'describe':'金蝶的查询分页参数',
'value':'{PAGINATION_START_ROW}'
}
]
}
数据请求与清洗
在配置好元数据后,我们通过POST方法调用executeBillQuery
接口,从金蝶云星空系统中获取直接调拨单的数据。以下是一个请求示例:
{
"_FormId_":"",
"_FieldKeys_":"",
"_FilterString_":"",
"_Limit_":"",
"_StartRow_":"",
}
在请求中,我们需要传递表单ID(FormId)、字段key集合(FieldKeys)、过滤条件(FilterString)、最大行数(Limit)和开始行索引(StartRow)等参数。
示例代码
import requests
url = "<轻易云API地址>"
headers = {
# 根据实际情况设置头部信息
}
payload = {
"_FormId_":"",
"_FieldKeys_":"",
"_FilterString_":"",
"_Limit_":"",
"_StartRow_":"",
}
response = requests.post(url, headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
# 对数据进行清洗和处理
else:
print("Error:", response.status_code)
数据转换与写入
在获取并清洗了原始数据后,下一步是将其转换为目标系统所需的数据格式,并写入目标系统。在这个过程中,可以利用轻易云平台提供的丰富功能进行数据转换,例如字段映射、格式转换等。
示例代码
def transform_data(data):
transformed_data = []
for item in data:
transformed_item = {
# 根据目标系统要求进行字段映射和转换
# 示例:
# target_field: item["source_field"]
}
transformed_data.append(transformed_item)
return transformed_data
# 获取到的数据
data = response.json()
# 转换数据
transformed_data = transform_data(data)
# 写入目标系统
write_to_target_system(transformed_data)
通过上述步骤,我们完成了从源系统获取数据、清洗处理、转换并写入目标系统的全过程。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。
使用轻易云数据集成平台实现金蝶直接调拨单对接吉客云其他入库
在数据集成生命周期的第二步中,我们需要将已经集成的源平台数据进行ETL转换,转为目标平台吉客云API接口所能够接收的格式,最终写入目标平台。以下是详细的技术实现步骤和元数据配置解析。
API接口配置
我们使用的API接口为erp.stock.createandstockin
,请求方法为POST
。在此过程中,需要注意以下几个关键点:
- ID校验:
idCheck
设置为true
,确保数据唯一性。 - 操作方法:使用
merge
方法,将字段FBillNo
作为合并依据。 - 请求体结构:请求体包含头部信息(header)和明细信息(body)。
元数据配置解析
元数据配置如下:
{
"api": "erp.stock.createandstockin",
"method": "POST",
"idCheck": true,
"operation": {
"method": "merge",
"field": "FBillNo",
"bodyName": "details",
"bodySum": ["FRemainInStockQty"],
"header": ["FID", "FBillNo", "FDocumentStatus", "FDestStockId_FNumber", "FDate"],
"body": ["FMaterialId_FNumber", "FRemainInStockQty", "FDestLot", "FProduceDate", "FExpiryDate", "FMaterialId_FExpPeriod"]
},
"request": [
{"field":"vendCode","label":"供应商编码","type":"string"},
{"field":"applyDepartCode","label":"部门编码","type":"string","describe":"部门编号和公司编号 要同时填否则部门信息会有偏差","value":"H04"},
{"field":"applyCompanyCode","label":"入库公司编码","type":"string","describe":"公司编号和部门编号 要同时填否则公司信息会有偏差","value":"103"},
{"field":"inWarehouseCode","label":"仓库编码","type":"string","value":"{FDestStockId_FNumber}"},
{"field":"inType","label":"入库类型","type":"string","describe":"入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库","value":"101"},
{"field":"relDataId","label":"关联单据编号","type":"string","describe":"可随机,保证不重复即可","value":"{FBillNo}"},
{"field":"applyUserId","label":"申请人","type":"string","value":"1"},
{"field":"applyUserName","label":"申请人姓名","type":"string","describe":"超级用户","value":"吕修远"},
{"field":"applyDate","label":"申请时间","type":"string","value":"{FDate}"},
{"field":"memo","label":"备注","type":"string","value":"{FNOTE}"},
{"field":"operator","label":"制单人","type":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","value":"","type":{"skuBarcode"}}
数据转换与写入
-
数据请求与清洗:
- 从金蝶系统中获取调拨单的数据,包括单据编号(FBillNo)、物料编号(FMaterialId_FNumber)、数量(FRemainInStockQty)等。
- 清洗数据,确保字段格式和内容符合目标平台要求。
-
数据转换:
- 将清洗后的数据按照元数据配置进行映射。例如,将金蝶系统中的仓库编码(FDestStockId_FNumber)映射到吉客云的仓库编码字段(inWarehouseCode)。
- 对于复杂字段,如批号明细(batchList),需要逐一映射子字段,包括批号、数量、生产日期、到期日期等。
-
构建请求体:
- 根据元数据配置构建请求体。头部信息包括FID、FBillNo、FDocumentStatus等;明细信息包括物料编号、数量、批号等。
- 特别注意数组类型字段,如stockInDetailViews,需要将每个明细条目逐一添加到数组中。
-
发送请求:
- 使用HTTP POST方法将构建好的请求体发送到吉客云API接口。
- 确保请求成功,并处理返回结果,如记录日志或更新状态。
以下是一个示例请求体:
{
"vendCode": "",
"applyDepartCode": "H04",
"applyCompanyCode": "103",
...
...
}
技术要点
- 异步处理:确保整个过程为全异步处理,提高效率和响应速度。
- 错误处理:对每一步骤进行错误捕获和处理,确保系统稳定性。
- 实时监控:通过轻易云平台提供的实时监控功能,随时掌握数据流动和处理状态。
通过以上步骤,我们可以高效地将金蝶直接调拨单的数据转换并写入到吉客云,实现两个异构系统之间的数据无缝对接。