轻易云数据集成平台ETL转换与写入金蝶云星辰V2

  • 轻易云集成顾问-吴伟

仓库调拨-杭州佰健盛吉:汤臣倍健营销云数据集成到金蝶云星辰V2技术案例分享

在本案例中,我们将详细解析如何通过轻易云数据集成平台,将汤臣倍健营销云的数据高效整合到金蝶云星辰V2系统中。具体操作涉及的API接口分别是:从汤臣倍健营销云获取数据的/erp/api/order/query/borrowOrder接口,以及向金蝶云星辰V2写入数据的/jdy/v2/scm/inv_tfmove接口。

数据抓取与高吞吐量处理

首先,通过定时任务可靠地抓取汤臣倍健营销云提供的数据。这些操作通过调用其API,确保每一次抓取都完整且无遗漏。在处理过程中,面对大量的数据流,采用支持高吞吐量的数据写入能力,以保证信息能够及时、高效地转移到目标系统。

数据转换和映射

对于不同系统间可能存在的数据格式差异问题,本方案特别注重自定义数据转换逻辑。这种灵活性使得我们能根据业务需求精细化编排和调整数据信息,使之符合目标系统金蝶云星辰V2的要求。同样,对于分页和限流等常见的问题,也有特定策略进行有效应对。

监控、告警与异常处理

为了保障整个集成过程顺利进行,我们利用集中化的监控和告警系统来实时跟踪每一个步骤。如果出现任何异常情况,该机制将立刻触发预设的错误重试流程,从而最大程度上降低潜在风险。此外,还可以实时查看日志记录,全面掌握各个操作环节的信息反馈,这为后期维护及优化提供了重要依据。

下一步,将详细介绍具体实施方案,包括调用各类API的方法、参数配置以及返回结果分析。 如何开发金蝶云星空API接口

调用源系统汤臣倍健营销云接口/erp/api/order/query/borrowOrder获取并加工数据

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过调用汤臣倍健营销云的接口/erp/api/order/query/borrowOrder来获取仓库调拨数据,并进行初步的数据加工。

接口调用配置

首先,我们需要配置API调用的元数据。根据提供的元数据配置,我们可以看到该接口使用POST方法进行请求,主要参数如下:

  • tenantId: 经销商id,必填项。
  • number: 系统订单号(调拨出库单),传此参数时其他时间状态等条件无效。
  • status: 订单状态,0表示未审核,1表示已审核(已出库)。
  • beginTime: 开始时间,基于更新时间查询。
  • endTime: 结束时间,基于更新时间查询。
  • pageNo: 页码,默认值为1。
  • pageSize: 每页条数,默认值为30。

请求参数设置

为了确保请求的有效性和准确性,我们需要设置必要的请求参数。以下是一个示例请求参数配置:

{
  "tenantId": "08e2fd9d074f4ef7b5e6416b74d006d6",
  "status": "1",
  "beginTime": "{{DAYS_AGO_1|datetime}}",
  "endTime": "{{CURRENT_TIME|datetime}}",
  "pageNo": "1",
  "pageSize": "30"
}

在这个配置中,我们指定了经销商ID、订单状态为已审核、开始时间为一天前、结束时间为当前时间,以及分页信息。

数据清洗与加工

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

  1. 字段映射:将源系统中的字段映射到目标系统中的字段。例如,将number映射到目标系统中的订单号字段。
  2. 数据过滤:根据业务需求过滤掉不需要的数据。例如,只保留订单状态为已审核的数据。
  3. 格式转换:将日期格式转换为目标系统所需的格式。

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

import datetime

def clean_data(raw_data):
    cleaned_data = []
    for record in raw_data:
        if record['status'] == '1':  # 只保留已审核的数据
            cleaned_record = {
                'order_id': record['number'],
                'dealer_id': record['tenantId'],
                'update_time': datetime.datetime.strptime(record['updateTime'], '%Y-%m-%d %H:%M:%S')
            }
            cleaned_data.append(cleaned_record)
    return cleaned_data

异常处理与补偿机制

在实际操作中,可能会遇到各种异常情况,例如网络故障、接口超时等。因此,需要设计异常处理与补偿机制,以确保数据集成过程的稳定性和可靠性。

元数据配置中提到了一个补偿机制omissionRemedy,其中包含了定时任务和接管请求的配置。例如,每两小时执行一次定时任务,以确保遗漏的数据能够被及时补偿。

"omissionRemedy": {
  "crontab": "2 */2 * * *",
  "takeOverRequest": [
    {
      "field": "beginTime",
      "label": "修改时间开始段",
      "type": "string",
      "is_required": true,
      "value": "{{HOURE_AGO_2|datetime}}"
    }
  ]
}

通过这种方式,可以定期检查并补偿遗漏的数据,从而提高数据集成过程的可靠性。

总结

通过调用汤臣倍健营销云接口/erp/api/order/query/borrowOrder获取仓库调拨数据,并进行初步的数据清洗与加工,可以有效地实现不同系统间的数据无缝对接。在实际操作中,需要注意请求参数的设置、数据清洗的方法以及异常处理与补偿机制,以确保整个过程的顺利进行。 金蝶云星空API接口配置

轻易云数据集成平台生命周期第二步:ETL转换与写入金蝶云星辰V2API接口

在数据集成过程中,ETL(Extract, Transform, Load)转换是关键的一环。本文将详细探讨如何使用轻易云数据集成平台,将源平台的数据经过ETL转换后,转为金蝶云星辰V2API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

首先,从源平台获取初始数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和写入打下基础。清洗后的数据需要符合目标平台的要求,特别是在字段类型和格式上。

数据转换与写入

在数据清洗完成后,进入数据转换阶段。根据提供的元数据配置,我们需要将源数据映射到金蝶云星辰V2API接口所需的格式。

以下是具体的元数据配置解析及其应用:

{
  "api": "/jdy/v2/scm/inv_tfmove",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "1",
  "autoCheck": "inv_tfmove_bill_order",
  "id": "1",
  "name": "1",
  "idCheck": true,
  "request": [
    {
      "field": "bill_date",
      "label": "出库日期",
      "type": "string",
      "describe": "出库日期,格式:2019-01-01",
      "value": "{created}"
    },
    {
      "field": "trans_type",
      "label": "业务类型",
      "type": "string",
      "describe": "1:同价调拨(默认),2:异价调拨",
      "value": "1"
    },
    {
      "field": "trans_fer_status",
      "label": "调拨状态",
      ...
    }
  ]
}
核心字段解析与映射
  1. bill_date(出库日期)

    • 类型:字符串
    • 描述:出库日期,格式为YYYY-MM-DD
    • 映射值:{created},从源数据中提取创建日期并格式化为目标格式。
  2. trans_type(业务类型)

    • 类型:字符串
    • 描述:1表示同价调拨(默认),2表示异价调拨
    • 固定值:1
  3. trans_fer_status(调拨状态)

    • 类型:字符串
    • 描述:0表示未出库(默认),1表示未入库,2表示部分入库,3表示全部入库
    • 固定值:3
  4. remark(单据备注)

    • 类型:字符串
    • 描述:单据备注信息
    • 映射值:来自营销云{number},将源系统中的编号信息嵌入备注中。
商品分录字段解析与映射

商品分录是一个数组,其中每个元素代表一个商品条目。以下是主要字段及其映射方式:

  1. material_id(商品)

    • 类型:字符串
    • 描述:商品编码
    • 映射值:通过_findCollection函数,根据商品编码从指定集合中查找对应ID。
  2. in_stock_id(调入仓库)

    • 类型:字符串
    • 描述:调入仓库编码
    • 映射值:通过_findCollection函数,根据仓库编码从指定集合中查找对应ID。
  3. out_stock_id(调出仓库)

    • 类型:字符串
    • 描述:调出仓库编码
    • 映射值:通过_findCollection函数,根据仓库编码从指定集合中查找对应ID。
  4. batch_no(批次号)、kf_date(生产日期)、valid_date(有效日期)、kf_period(保质期天数)、kf_type(保质期单位)、qty(数量)、unit_id(单位)

    • 各字段分别从源数据中的相应字段进行映射,如批次号、生产日期、有效日期等。
数据提交

完成所有字段的映射后,通过POST方法将转换后的数据提交至金蝶云星辰V2API接口:

POST /jdy/v2/scm/inv_tfmove HTTP/1.1
Host: api.kingdee.com
Content-Type: application/json

{
  ...
}

实践案例

假设我们有一条源系统的数据记录,其包含如下信息:

  • 创建日期 2023-10-01
  • 商品列表包含若干条目,每个条目包含商品编码、数量、仓库编码等信息。

我们将这些信息按照上述元数据配置进行ETL转换,并通过API接口提交至金蝶云星辰V2系统,实现跨系统的数据无缝对接。

通过轻易云数据集成平台,我们能够高效地完成这一过程,确保每个环节都透明可控,从而大幅提升业务效率和准确性。 用友与SCM系统接口开发配置

更多系统对接方案