使用轻易云平台实现金蝶到聚水潭的数据上传

  • 轻易云集成顾问-贺强

金蝶云星空数据集成到聚水潭案例分享

在企业系统对接与数据集成的过程中,如何高效且准确地完成跨平台的数据同步是一个关键挑战。本文将介绍金蝶云星空与聚水潭之间“其他入库单”数据集成的实际实施方案,通过详细解析实现步骤和技术要点,为类似需求提供参考。

此次项目主要任务包括从金蝶云星空获取“其他入库单”数据,并将其快速、高效地写入至聚水潭中。在这一过程中,我们采用了一系列技术手段来确保数据不漏单,同时处理了接口调用、分页限流及异常重试等常见问题。

首先,通过调用金蝶云星空的API executeBillQuery 实现定时可靠的数据抓取,该接口支持自定义条件查询,可以根据业务需求设置特定时间范围内的所有"其他入库单"记录。为了避免一次性抓取过多导致性能瓶颈或超时错误,我们对于大批量数据进行了分批处理,并使用分页机制逐步获取必要的信息。此外,考虑到API每分钟请求次数有限制,还实现了合理的限流控制策略,以保障系统稳定运行。

在抓取并整理好待上传的数据后,下一步是通过聚水潭提供的API /open/jushuitan/otherinout/upload 完成批量写入操作。值得注意的是,由于两个系统间存在一定格式差异,为了确保平滑对接,我们设计了一套灵活且易于维护的数据转换逻辑。这不仅涵盖基本字段映射,还包含一些业务规则和条件计算,从而使得目标系统能够正确识别并利用这些新导入的数据记录。

此外,在整个实施过程中的监控和告警机制同样不可或缺。我们引入了集中监控功能,对每个集成任务进行实时追踪。当发生任何异常情况,例如网络连接断开、接口响应延迟或者失败率上升时,将立即触发告警通知相关负责人进行介入处理。同时,也尽可能细致地记录日志,为后续问题诊断与优化改进提供依据。

通过上述方法,本次金蝶-其他入库单——> 聚水潭-其他入库单 的集成工作顺利展开,不仅提升了跨平台协作效率,而且确保了数据信息的一致性和完整性。在下文中,将进一步详述具体配置步骤以及遇到的问题解决方案,以期为读者带来更多实战经验借鉴。

金蝶与MES系统接口开发配置

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成过程中,调用源系统的API接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,获取并加工数据。

接口配置与调用

首先,我们需要配置金蝶云星空的executeBillQuery接口。根据提供的元数据配置,以下是具体的配置细节:

  • API名称: executeBillQuery
  • 请求方法: POST
  • 主要字段:
    • FBillNo: 单据编号
    • FEntity_FEntryID: 分录主键ID
    • FID: 实体主键
    • FDocumentStatus: 单据状态
    • FStockOrgId_FNumber: 库存组织
    • FDate: 日期
    • FBillTypeID: 单据类型
    • FSUPPLIERID_FNumber: 供应商
    • FNOTE: 备注
    • FMATERIALID_FNumber: 物料编码
    • FSTOCKID: 收货仓库
    • FQty: 实收数量
    • FPrice: 成本价
    • FAmount: 总成本

这些字段将用于构建请求体,以便从金蝶云星空中获取所需的数据。

请求体构建

在构建请求体时,需要特别注意分页参数和过滤条件。以下是一个示例请求体:

{
    "FormId": "STK_MISCELLANEOUS",
    "FieldKeys": "FBillNo,FEntity_FEntryID,FID,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber,FSUPPLIERID.FNumber,FNOTE,FMATERIALID.FNumber,FSTOCKID.FNumber,FQty,FPrice,FAmount",
    "FilterString": "FModifyDate>='{{LAST_SYNC_TIME|datetime}}' and FSTOCKID in ('285633','327726') and FDocumentStatus='C'",
    "Limit": "2000",
    "StartRow": "{PAGINATION_START_ROW}",
    "TopRowCount": true
}

在这个请求体中:

  • FormId: 表单ID,指定为STK_MISCELLANEOUS
  • FieldKeys: 查询字段集合,通过逗号分隔。
  • FilterString: 过滤条件,用于筛选符合条件的数据。
  • Limit: 最大行数,设置为2000。
  • StartRow: 开始行索引,用于分页。
  • TopRowCount: 是否返回总行数。

数据清洗与转换

获取到数据后,需要对其进行清洗和转换,以便后续处理。以下是一些常见的数据清洗和转换操作:

  1. 字段映射与重命名: 将金蝶云星空返回的数据字段映射到目标系统所需的字段。例如,将FBillNo映射为目标系统中的单据编号。

  2. 数据类型转换: 根据目标系统的要求,将数据类型进行转换。例如,将日期字符串转换为标准日期格式。

  3. 数据过滤与去重: 对获取的数据进行进一步过滤,去除重复或无效的数据。

示例代码

以下是一个简单的Python示例代码,用于调用金蝶云星空的executeBillQuery接口,并对返回的数据进行初步处理:

import requests

def fetch_data():
    url = 'https://api.kingdee.com/executeBillQuery'
    headers = {'Content-Type': 'application/json'}
    payload = {
        "FormId": "STK_MISCELLANEOUS",
        "FieldKeys": "FBillNo,FEntity_FEntryID,FID,FDocumentStatus,FStockOrgId.FNumber,FDate,FBillTypeID.FNumber,FSUPPLIERID.FNumber,FNOTE,FMATERIALID.FNumber,FSTOCKID.FNumber,FQty,FPrice,FAmount",
        "FilterString": "FModifyDate>='2023-01-01' and FSTOCKID in ('285633','327726') and FDocumentStatus='C'",
        "Limit": "2000",
        "StartRow": "0",
        "TopRowCount": True
    }

    response = requests.post(url, json=payload, headers=headers)

    if response.status_code == 200:
        data = response.json()
        # 数据清洗与转换操作...
        return data
    else:
        raise Exception(f"Failed to fetch data: {response.status_code}")

data = fetch_data()
print(data)

在这个示例中,我们使用Python的requests库发送POST请求,并获取返回的数据。接下来,可以根据业务需求对数据进行进一步处理。

通过以上步骤,我们实现了从金蝶云星空获取并加工数据,为后续的数据写入和集成奠定了基础。这一步骤不仅确保了数据的一致性和准确性,还为整个数据集成过程提供了可靠的数据源。 如何开发用友BIP接口

使用轻易云数据集成平台进行金蝶其他入库单至聚水潭API接口的数据转换与写入

在数据集成的生命周期中,将源平台的数据转换为目标平台可接受的格式并写入是一个关键步骤。本文将详细探讨如何使用轻易云数据集成平台将金蝶的其他入库单数据转换并写入到聚水潭API接口。

元数据配置解析

首先,我们需要理解元数据配置的各个字段及其含义。以下是我们要处理的元数据配置:


{
  "api": "/open/jushuitan/otherinout/upload",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "is_confirm", "label": "是否确认单据", "type": "bool", "describe": "是否确认单据;默认false", "value": "1"},
    {"field": "excute_confirming", "label": "是否审核单据", "type": "string", "describe": "是否审核单据;默认false", "value": "true"},
    {"field": "wms_co_id", "label": "分仓编号", "type": "int", "describe": "分仓编号", 
        "value":"{FSTOCKID}", 
        "mapping":{"target":"66b46c57aa8cd574f847540a","direction":"reverse"}
    },
    {"field": "warehouse", 
        "label":"仓库类型","type":"int","describe":"默认1 ,主仓=1,销退仓=2,进货仓=3,次品仓=4,自定义1仓=6,自定义2仓=7,自定义3仓=8(对应ERP仓库资料设定页面)","value":"1"
    },
    {"field":"type","label":"出入库类型","type":"string","describe":"出入库类型:in是入库(其它退货)out是出库(其它出库)","value":"in"},
    {"field":"external_id","label":"外部单号(单据上传成功之后对应页面线上单号)","type":"string","describe":"外部单号(单据上传成功之后对应页面线上单号)","value":"{FBillNo}"},
    {"field":"remark","label":"备注","type":"string","describe":"备注,不能传空值","value":"{FNOTE}"},
    {"field":"drp_co_name","label":"出库类型","type":"string","describe":"出库类型"},
    {"field":"items","label":"商品列表","type":"array","describe":"商品列表",
        "value":"list",
        "children":[
            {"field":"sku_id","label":"商品编码","type":"string","describe":"商品编码",
                "value":{"FMATERIALID_FNumber"}
            },
            {"field":"sale_price","label":"商品单价","type":"int",
                "describe":
                "商品单价"
            },
            {"field":
                "remark",
                "label":
                "备注",
                "type":
                "string",
                "describe":
                "备注"
            },
            {"field":
                "qty",
                "label":
                "数量",
                "type":
                "int",
                "describe":
                "数量",
                "value":
                 "{FQty}"
           },
            {"field":
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    {FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"field":{"FMATERIALID_FNumber}"},{"fi
![如何对接企业微信API接口](https://pic.qeasy.cloud/T8.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案