使用轻易云平台进行ETL转换并写入旺店通·企业奇门API接口

  • 轻易云集成顾问-叶威宏

金蝶分布式调出单 => 旺店通委外出库单(3000组织内)(云仓)

在现代企业的信息化建设中,跨平台的数据集成是一项至关重要的工作。本文将分享一个实际案例,通过轻易云数据集成平台实现金蝶云星空与旺店通·企业奇门系统间的数据对接。本方案的关键目标是将金蝶分布式调出单高效、可靠地集成到旺店通委外出库单,实现不同业务系统之间无缝衔接和信息共享。

如何确保集成金蝶云星空数据不漏单

为了保证从金蝶云星空导出的数据完整性,我们采用了executeBillQuery API接口。这一接口允许我们精确而全面地抓取所需数据信息,同时运用轻易云提供的定时任务功能,可依据设定频率自动调用这一API,确保每次执行之后都不会遗漏任何新产生或修改过的数据。此外,为应对可能存在的数据丢失情况,还增设了错漏重试机制,一旦发现某个时间段内有未成功传输的记录,将触发二次尝试,从而杜绝“漏网之鱼”。

处理分页和限流问题

由于大规模数据请求容易导致服务器性能瓶颈甚至引发超载,因此需要合理处理分页及限流问题。在调用executeBillQuery API时,凭借轻易云平台支持的分批操作,我们能够针对大量订单进行分页,并在每页请求后设置适当延迟,以平衡查询频率与服务器负荷,防止网络拥堵及响应超时。

快速写入到旺店通·企业奇门

待数据安全无误地提取完毕,下一个挑战便是如何高效、高速地推送至目的端——旺店通·企业奇门。该过程中主要依赖wdt.vip.wms.stockinout.order.push API接口,由于其本身也具有一定并行能力,再结合轻易云多线程并发执行特性,仅需耗费极少时间即可完成上千条记录的数据写入工作。同时,也进行了针对性优化,包括批量提交减少HTTP连接次数等,大幅提升了整体效率。

通过以上方法,本方案不仅保障了各环节稳定运行,还确保两大系统间实现准确、及时、同步的信息交互,为业务协同带来前所未有的便利和效率提升。在后续章节中,将进一步详述具体技术细节及代码示例,帮助读者深入理解并实践此解决方案。 企业微信与ERP系统接口开发配置

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

在数据集成的生命周期中,第一步是从源系统获取数据并进行初步加工。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空接口executeBillQuery来实现这一过程。

接口配置与请求参数

首先,我们需要配置接口的元数据。根据提供的元数据配置,我们可以看到executeBillQuery接口采用POST方法进行调用,且支持分页查询。以下是关键的请求参数及其作用:

  • FormId: 业务对象表单Id,必须填写金蝶的表单ID,例如:STK_TRANSFEROUT
  • FieldKeys: 需查询的字段key集合,通过解析器将数组转换为字符串格式。
  • FilterString: 过滤条件,用于筛选符合条件的数据。
  • Limit: 最大行数,控制每次查询返回的数据量。
  • StartRow: 开始行索引,用于分页查询。

配置示例

以下是一个完整的请求配置示例:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FSTKTRSOUTENTRY_FEntryID",
  "pagination": {
    "pageSize": 500
  },
  "idCheck": true,
  "request": [
    {"field":"FSTKTRSOUTENTRY_FEntryID","label":"FEntryID","type":"string","value":"FSTKTRSOUTENTRY_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","label":"单据类型","type":"string","value":"FBillTypeID"},
    {"field":"FTransferDirect","label":"调拨方向","type":"string","value":"FTransferDirect"},
    {"field":"FNOTE","label":"备注","type":"string","value":"FNOTE"},
    {"field":"FCreateDate","label":"创建日期","type":"string","value":"FCreateDate"},
    {"field":"FApproveDate","label":"审核日期","type":"string","value":"FApproveDate"},
    {"field":"FTransferBizType","label":"调拨类型","type":"string","value":"FTransferBizType"},
    {"field":...}
  ],
  "otherRequest": [
    {"field": "Limit", "label": "最大行数", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_PAGE_SIZE}"},
    {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "金蝶的查询分页参数", "value": "{PAGINATION_START_ROW}"},
    {"field":...},
    {
      "field": "FilterString",
      "label": "过滤条件",
      "type": "string",
      "describe": "...",
      "value": "... and FSrcStockID.FNumber='1104'"
    },
    {
      ...
    }
  ]
}

数据请求与清洗

在实际操作中,我们需要根据业务需求设置过滤条件(FilterString),例如:

"FilterString" : 
"FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FTransferBizType = 'InnerOrgTransfer' and FOwnerID.FNumber = '3000' and FSrcStockID.FNumber='1104'"

该过滤条件确保我们只获取特定供应商、特定时间段内、特定业务类型和特定仓库的数据。

数据转换与写入

获取到数据后,需要对其进行初步清洗和转换,以便后续写入目标系统。在这个过程中,可以利用轻易云平台提供的数据处理工具,对字段进行映射、格式转换等操作。例如,将日期格式统一转换为目标系统所需的格式,或者对某些字段进行合并计算。

实时监控与日志记录

为了确保数据处理过程的透明性和可追溯性,轻易云平台提供了实时监控和日志记录功能。通过这些功能,可以随时查看数据流动情况、处理状态以及可能出现的问题,从而及时进行调整和优化。

综上所述,通过合理配置和调用金蝶云星空接口executeBillQuery,我们可以高效地获取并加工所需数据,为后续的数据集成奠定坚实基础。 如何对接企业微信API接口

使用轻易云数据集成平台进行ETL转换并写入旺店通·企业奇门API接口

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将金蝶分布式调出单的数据转换为旺店通委外出库单(3000组织内)的格式,并通过企业奇门API接口写入目标平台。

元数据配置解析

在进行ETL转换之前,我们需要理解元数据配置的各个部分。以下是关键配置项:

  • api: "wdt.vip.wms.stockinout.order.push" 表示调用的API接口。
  • method: "POST" 表示HTTP请求方法。
  • idCheck: true 用于检查唯一单据编号,避免重复推送。
  • operation: 定义了字段映射和合并策略,包括头部和明细字段。
  • request: 包含具体请求参数和映射关系。

请求参数配置

  1. 接口外部单号 (api_outer_no):

    • 字段:FBillNo
    • 类型:string
    • 描述:调用本接口时推送的唯一单据编号,避免重复推送数据。
  2. 仓库编号 (warehouse_no):

    • 字段:FSrcStockID_FNumber
    • 类型:string
    • 描述:代表仓库所有属性的唯一编码,用于区分仓库。
  3. 出入类型 (order_type):

    • 固定值:1
    • 类型:string
    • 描述:可选值为1(出库)。
  4. 自动审核 (auto_check):

    • 固定值:1
    • 类型:string
    • 描述:1表示自动审核,0表示不自动审核,默认值为1。
  5. 货品列表 (goods_list):

    • 类型:array
    • 描述:入库单货品列表节点,包含多个子字段,如商家编码、入库数量、价格、批次和备注等。

数据转换与写入

在实际操作中,我们需要将金蝶分布式调出单的数据按照上述配置进行转换,并通过API接口写入旺店通。以下是具体步骤:

  1. 提取并清洗源数据: 从金蝶系统中提取调出单数据,并进行必要的数据清洗和预处理。这一步确保了数据的一致性和准确性,为后续转换打下基础。

  2. 字段映射与转换: 根据元数据配置,将源数据字段映射到目标平台所需的字段。例如:

    {
        "api_outer_no": "{FBillNo}",
        "warehouse_no": "{FSrcStockID_FNumber}",
        "order_type": "1",
        "auto_check": "1",
        "goods_list": [
            {
                "spec_no": "{{detail_list.FMaterialID_FNumber}}",
                "num": "{{detail_list.F_UHZG_JJQty}}",
                "price": "{{detail_list.FPrice}}",
                "batch_no": "{{detail_list.FLOT}}",
                "remark": "{{detail_list.FEntryNote}}"
            }
        ]
    }
  3. 构建请求体: 将映射后的数据构建成符合API要求的请求体。例如:

    {
        "api_outer_no": "123456",
        "warehouse_no": "WH001",
        "order_type": "1",
        "auto_check": "1",
        "goods_list": [
            {
                "spec_no": "SKU12345",
                "num": "100",
                "price": "10.00",
                "batch_no": "BATCH001",
                "remark": ""
            }
        ]
    }
  4. 发送HTTP请求: 使用POST方法将构建好的请求体发送到目标API接口。确保处理响应结果,捕获可能出现的错误并进行相应处理。

示例代码

以下是一个简化的Python示例代码,用于演示上述步骤:

import requests
import json

# 构建请求体
data = {
    "api_outer_no": "123456",
    "warehouse_no": "WH001",
    "order_type": 1,
    "auto_check": 1,
    "goods_list": [
        {
            "spec_no": 'SKU12345',
            'num': '100',
            'price': '10.00',
            'batch_no': 'BATCH001',
            'remark': ''
        }
    ]
}

# 发送POST请求
response = requests.post(
    url='https://api.wangdian.cn/openapi2/wdt.vip.wms.stockinout.order.push',
    headers={'Content-Type': 'application/json'},
    data=json.dumps(data)
)

# 处理响应结果
if response.status_code == 200:
    print("Data successfully pushed to Wangdian API")
else:
    print(f"Failed to push data: {response.text}")

通过以上步骤,我们成功地完成了从金蝶分布式调出单到旺店通委外出库单的数据ETL转换,并通过企业奇门API接口将数据写入目标平台。这一过程不仅提高了业务流程的自动化程度,还确保了不同系统间的数据一致性和准确性。 打通金蝶云星空数据接口

更多系统对接方案