使用轻易云平台实现采购退料单的ETL转换与写入

  • 轻易云集成顾问-黄宏棵

采购退料单对接其他出库单:金蝶云星空与旺店通·企业奇门的数据集成实践

在本案例中,针对企业在日常运营过程中频繁需要将金蝶云星空中的采购退料单数据快速、准确地集成到旺店通·企业奇门系统的需求,我们设计并实施了一套高效的数据集成方案。本文将详细介绍如何通过调用金蝶云星空API接口executeBillQuery获取所需数据,并利用旺店通·企业奇门API接口wdt.stockout.order.push实现数据的精准写入。

首先,为确保从金蝶云星空获取的每一条采购退料单不被遗漏,我们构建了一个定时抓取机制。该机制定期调用executeBillQuery接口,以捕捉新生成或修改的采购退料单。同时,通过处理分页和限流问题,保证了即使面对大量数据,也能稳定、高效地进行抓取。

其次,在对接过程中,不可避免会涉及到两大平台之间的数据格式差异。为了顺利完成这部分工作,我们创建了专属的数据映射规则,并根据业务需求进行了定制化处理。例如,将金蝶云星空中的字段结构转换为符合旺店通·企业奇门要求的字段,同时保留关键性元信息以便后续查询和审计使用。

然后,在将加工后的数据批量写入至旺店通·企业奇门系统之前,通过严格的数据校验流程确保每笔记录都无误。在实际操作中,这些记录通过调用wdt.stockout.order.push API依次推送至目标系统。一旦发现异常情况,如网络波动导致某条记录未成功传输,则触发重试机制,以最大程度保障数据准确性和完整性。

值得一提的是,该方案特别注重运行过程中的实时监控与日志记录。当执行每一步操作时,相关日志信息均会同步更新,无论是成功写入还是发生错误,都可以在第一时间追溯其原因,从而快速定位并解决问题。这不仅提升了运维效率,还为后续系统优化提供了宝贵依据。

综上所述,本次技术案例展示了一种高效、安全且稳定的方法,使得两个不同平台间的数据能够互联互通,实现实时动态协作。具体实施细节将在下文展开,更深入探讨各项技术环节及其实际应用效果。 钉钉与MES系统接口开发配置

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

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,以获取采购退料单的数据,并进行必要的加工处理。

接口配置与调用

首先,我们需要配置并调用金蝶云星空的executeBillQuery接口。根据提供的元数据配置,我们可以确定该接口的基本参数和请求方式。

{
  "api": "executeBillQuery",
  "effect": "QUERY",
  "method": "POST",
  "number": "FBillNo",
  "id": "FPURMRBENTRY_FEntryID",
  "name": "FBillNo",
  "idCheck": true,
  "request": [
    {"field":"FPURMRBENTRY_FEntryID","label":"明细信息ID","type":"string","describe":"明细信息ID","value":"FPURMRBENTRY_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_FNumber","label":"单据类型","type":"string","describe":"单据类型","value":"FBillTypeID.FNumber"},
    {"field":"FTAKEDELIVERYNO","label":"提货单号","type":"string","describe":"提货单号","value":"FTAKEDELIVERYNO"},
    {"field":...}
  ],
  ...
}

请求参数设置

在实际操作中,我们需要根据业务需求设置请求参数。以下是一个示例请求参数配置:

{
  "FormId": "PUR_MRB",
  "FieldKeys": [
    "FPURMRBENTRY_FEntryID", 
    "FID", 
    "FBillNo", 
    ...
  ],
  "FilterString": "FBillTypeID.FNumber='TLD01_SYS' and FDocumentStatus='C' and FStockId.FNumber='001' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'",
  "Limit": "{PAGINATION_PAGE_SIZE}",
  "StartRow": "{PAGINATION_START_ROW}"
}

数据清洗与加工

获取到原始数据后,需要对其进行清洗和加工,以便后续的数据转换与写入步骤。以下是一些常见的数据清洗与加工操作:

  1. 字段映射:将金蝶云星空返回的数据字段映射到目标系统所需的字段。例如,将FPURMRBENTRY_FEntryID映射为目标系统中的EntryID
  2. 数据格式转换:将日期、金额等字段转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD转换为MM/DD/YYYY
  3. 数据过滤:根据业务规则过滤掉不需要的数据。例如,只保留审核通过且未作废的记录。

以下是一个简单的数据清洗示例:

def clean_data(raw_data):
    cleaned_data = []
    for record in raw_data:
        if record['FDocumentStatus'] == 'C' and not record['FCancelStatus']:
            cleaned_record = {
                'EntryID': record['FPURMRBENTRY_FEntryID'],
                'BillNo': record['FBillNo'],
                'ReturnDate': convert_date_format(record['FDate']),
                ...
            }
            cleaned_data.append(cleaned_record)
    return cleaned_data

实时监控与日志记录

在整个数据集成过程中,实时监控和日志记录是确保数据处理透明度和可追溯性的关键。通过轻易云平台的实时监控功能,可以随时查看数据流动和处理状态,并在出现异常时及时报警。

{
  "monitoring": {
    "enabled": true,
    ...
  },
  ...
}

通过以上步骤,我们成功地调用了金蝶云星空的executeBillQuery接口,获取并清洗了采购退料单的数据,为后续的数据转换与写入奠定了基础。在实际项目中,根据具体业务需求调整参数和处理逻辑,可以进一步提升数据集成效率和准确性。 打通用友BIP数据接口

使用轻易云数据集成平台实现采购退料单对接旺店通·企业奇门API接口

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台所能够接收的格式。本文将详细探讨如何使用轻易云数据集成平台,将金蝶系统中的采购退料单数据转换并写入到旺店通·企业奇门API接口中。

1. 配置API接口元数据

首先,我们需要配置旺店通·企业奇门API接口的元数据。以下是具体配置:

{
  "api": "wdt.stockout.order.push",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "outer_no",
      "label": "外部单号",
      "type": "string",
      "describe": "外部系统的唯一单据编号,避免重复推送数据",
      "value": "{FBillNo}"
    },
    {
      "field": "warehouse_no",
      "label": "仓库编号",
      "type": "string",
      "describe": "代表仓库所有属性的唯一编码,用于仓库区分,ERP内支持自定义(ERP仓库界面设置)",
      "value": "{FSTOCKID_FNumber}"
    },
    {
      "field": "remark",
      "label": "备注",
      "type": "string",
      "describe": "其他出库单备注",
      "value": "采购退料"
    },
    {
      "field": "reason",
      "label": "其他出库原因",
      "type": "string",
      "describe":"其他出库原因"
    },
    {
      "field":"detail_list",
      "label":"货品列表节点",
      "type":"array",
      "describe":"请求参数的2级数据节点,包含其他出库单所有货品属性信息的数据节点,节点下数据字段详见下述“ detail_list”",
      ...
    },
    {
      ...
    }
  ],
  ...
}

2. 数据请求与清洗

在ETL过程中,我们首先需要从金蝶系统中请求采购退料单的数据,并进行必要的清洗和预处理。这一步确保我们获取的数据是完整且准确的。

例如,从金蝶系统中提取的数据字段包括FBillNo(外部单号)、FSTOCKID_FNumber(仓库编号)、FMATERIALID_FNumber(商家编码)、FRMREALQTY(出库数量)和FTAXPRICE(价格)等。这些字段将被映射到目标平台所需的格式。

3. 数据转换与写入

接下来,我们将清洗后的数据进行转换,以符合旺店通·企业奇门API接口的要求。具体步骤如下:

  1. 映射字段:根据元数据配置,将金蝶系统中的字段映射到目标API接口所需的字段。例如,将FBillNo映射到outer_no,将FSTOCKID_FNumber映射到warehouse_no

  2. 构建请求体:根据API接口文档,构建POST请求体。以下是一个示例请求体:

{
  “outer_no”: “123456”,
  “warehouse_no”: “WH001”,
  “remark”: “采购退料”,
  “reason”: “库存调整”,
  “detail_list”: [
    {
        “spec_no”: “SP001”,
        “num”: “10”,
        “price”: “100.00”
    }
  ],
  “is_check”: “1”
}
  1. 发送请求:使用轻易云平台提供的HTTP客户端功能,通过POST方法将构建好的请求体发送到旺店通·企业奇门API接口。

4. 实时监控与日志记录

为了确保整个ETL过程顺利进行,我们可以利用轻易云平台提供的实时监控功能,对每个环节进行监控。同时,通过日志记录功能,可以记录每次请求和响应的数据,以便在出现问题时进行排查和调试。

通过以上步骤,我们成功地将金蝶系统中的采购退料单数据转换并写入到旺店通·企业奇门API接口中,实现了不同系统间的数据无缝对接。这不仅提升了业务效率,还确保了数据的一致性和准确性。 金蝶云星空API接口配置

更多系统对接方案