使用轻易云实现数据入金蝶云星空详细过程

  • 轻易云集成顾问-曾平安

旺店通销售出库单&金蝶应收单---货品类型为1,销售价格为0-配置ok--集成案例解析

在处理企业数据对接过程中,高效、准确地实现不同系统间的数据同步是关键。本篇文章将聚焦于旺店通·企业奇门与金蝶云星空的系统对接,通过一个实际运行的方案:旺店通销售出库单&金蝶应收单---货品类型为1,销售价格为0-配置ok--,展示如何利用高吞吐量的数据写入能力和实时监控功能,实现无缝数据集成。

数据获取和接口调用

首先,我们需要从旺店通·企业奇门中抓取相关订单数据。通过调用API wdt.stockout.order.query.trade 来获取所有满足条件的销售出库单信息。为了确保不漏掉任何订单,我们设置了定时任务以可靠地抓取接口数据,同时处理分页和限流问题,以保证大批量数据能够顺利取得。

def fetch_data_from_wangdiantong(api_endpoint, params):
    """
    从旺店通·企业奇门API获取销售信息,并处理分页。
    """
    all_records = []
    has_more = True
    while has_more:
        response = requests.get(api_endpoint, params=params)
        data = response.json()
        all_records.extend(data['orders'])

        # 更新分页参数,如果没有更多记录则跳出循环
        if not data['has_next']:
            has_more = False 
        else:
            params['page_no'] += 1

    return all_records

这个函数应用了分页机制,从而确保能够完整拉取到所有目标数据信息。

数据转换与映射策略

接下来,需要将从旺店通·企业奇门获取到的数据进行适当的转换,以匹配金蝶云星空要求的数据结构。在这一步,通过自定义的数据转换逻辑,可以灵活调整字段格式和内容,为后续批量保存操作做好准备。

def transform_data(records):
   transformed_records = []
   for record in records:
       transformed_record = {
           "GoodsType": record["goods_type"],
           "SalesPrice": record["sale_price"],
           # 更多字段对应关系...
       }
       transformed_records.append(transformed_record)
   return transformed_records

数据批量写入及错误重试机制

对于已经转换好的数据,将其通过batchSave API 批量写入到金蝶云星空系统中。在此过程中,为保障每条记录都能正确保存,引入了错误重试机制并结合集中式监控告警系统,实时跟踪任务状态与性能指标。一旦发生任何异常情况,例如网络故障或API超 金蝶与SCM系统接口开发配置

使用轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query.trade获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·企业奇门接口wdt.stockout.order.query.trade,并对获取的数据进行加工处理。

接口配置与调用

首先,我们需要配置接口的元数据,以便正确地请求和处理数据。以下是接口wdt.stockout.order.query.trade的元数据配置:

{
  "api": "wdt.stockout.order.query.trade",
  "effect": "QUERY",
  "method": "POST",
  "number": "order_no",
  "id": "stockout_id",
  "name": "order_no",
  "idCheck": true,
  "formatResponse": [
    {
      "old": "consign_time",
      "new": "consign_time_new",
      "format": "date"
    }
  ],
  "joinBatch": "wdt.stockout.batch.detail",
  "request": [
    {
      "field": "start_time",
      "label": "开始时间",
      "type": "datetime",
      "describe": "增量获取数据,start_time作为开始时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "end_time",
      "label": "结束时间",
      "type": "datetime",
      "describe": "增量获取数据,end_time作为结束时间,格式:yyyy-MM-dd HH:mm:ss",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "status",
      ...

请求参数设置

在请求参数中,我们设置了多个字段来确保我们能够准确地获取所需的数据:

  • start_timeend_time 用于定义数据获取的时间范围。
  • status 设置为 110,表示只获取已完成的订单。
  • shop_noswarehouse_no 分别用于指定店铺和仓库编号。

这些参数确保我们能够精确地控制请求范围,从而提高数据处理效率。

数据清洗与转换

在获取到原始数据后,我们需要对其进行清洗和转换。以下是一些关键步骤:

  1. 字段重命名:将原始字段 consign_time 重命名为 consign_time_new 并格式化为日期类型。
  2. 条件过滤:根据条件过滤掉不符合要求的数据。例如,只保留货品类型为1且销售价格为0的记录。
  3. 批次合并:使用 joinBatch 参数,将出库单与批次详情进行合并,以便后续处理。
{
  ...
  'formatResponse': [
    {
      'old': 'consign_time',
      'new': 'consign_time_new',
      'format': 'date'
    }
  ],
  ...
}

自动填充与分页处理

为了确保所有请求都能顺利执行,我们还设置了自动填充响应和分页处理:

  • 自动填充响应:通过设置 autoFillResponse: true,平台会自动填充缺失的响应字段。
  • 分页处理:通过设置 page_sizepage_no 参数,我们可以控制每页返回的数据条数,并逐页获取完整的数据集。
{
  ...
  'autoFillResponse': true,
  'otherRequest': [
    {
      'field': 'page_size',
      'label': '分页大小',
      'type': 'string',
      'describe': '每页返回的数据条数,输入值范围1~100,不传本参数,输入值默认为40',
      'value': '30'
    },
    {
      'field': 'page_no',
      'label': '页号',
      'type': 'string',
      ...
}

延迟与条件配置

为了避免过多的API调用导致系统负载过高,我们可以设置适当的延迟:

{
  ...
  delay: 70,
}

同时,通过条件配置可以进一步细化我们的查询逻辑:

{
  ...
  condition: [
    [
        { field: 'details_list.goods_type', logic: 'eqv2', value: '1' },
        { field: 'details_list.sell_price', logic: 'eqv2', value: '0' },
        { field: 'consign_time', logic: 'egt', value: '2023-12-28timestamp' }
    ]
]
}

以上步骤展示了如何通过轻易云数据集成平台调用旺店通·企业奇门接口,并对获取的数据进行清洗和转换。这些技术细节确保了我们能够高效、准确地完成数据集成任务。 打通企业微信数据接口

使用轻易云数据集成平台将源平台数据转换并写入金蝶云星空API接口

在数据集成的生命周期中,数据转换与写入是至关重要的一环。本文将详细介绍如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,转为金蝶云星空API接口所能够接收的格式,并最终写入目标平台。

1. 数据请求与清洗

在开始数据转换之前,首先需要从源系统中请求并清洗数据。假设我们已经完成了这一步,并且获得了如下结构的源数据:

{
  "shop_no": "005",
  "consign_time_new": "2023-10-01",
  "modified": "2023-10-02",
  "details_list": [
    {
      "goods_no": "P001",
      "goods_count": 100,
      "remark": "",
      "batch_list": [
        {
          "batch": "B001",
          "product_date": "2023-09-01",
          "expire_date": "2024-09-01",
          "num": 50
        }
      ],
      "warehouse_no": "W001"
    }
  ]
}

2. 数据转换与写入

接下来,我们将使用轻易云数据集成平台提供的元数据配置,将上述源数据转换为金蝶云星空API接口所需的格式。

配置API接口信息

根据提供的元数据配置,我们需要调用金蝶云星空的batchSave API接口。该接口采用POST方法,主要字段如下:

{
  "api": "batchSave",
  "method": "POST",
  ...
}
配置请求头部和主体

在请求头部和主体中,我们需要根据业务逻辑填充相应的数据字段。以下是关键字段及其配置方式:

  1. 单据类型(FBillTypeID):

    {
     "field": "FBillTypeID",
     ...
     "value": "YSD01_SYS"
    }
  2. 单据编号(FBillNo):

    {
     "field": "FBillNo",
     ...
    }
  3. 业务日期(FDATE):

    {
     "field": "FDATE",
     ...
     "value": "{modified}"
    }
  4. 结算组织(FSETTLEORGID):

    {
     ...
     "_function case when '{shop_no}' in ('005', '006', '007','0081', '0091') then 'DZ' when '{shop_no}' in ('002', '003', '004','0072') then 'BZ' end"
    }
  5. 客户(FCUSTOMERID):

    {
     ...
     "_function case when '{shop_no}'='002' then 'CUST0018' when '{shop_no}'='003' then 'CUST0677' ... end"
    }
  6. 销售部门(FSALEDEPTID):

    {
     ...
     "_function case when '{shop_no}' in ('007', '006') then '3002' ... end"
    }
  7. 明细(FEntityDetail):

    • 物料编码(FMATERIALID):
      {
      ...
      "{{list.details_list_goods_no}}"
      }
    • 计价数量(FPriceQty):
      {
      ...
      "{{list.details_list__batch_list_num}}"
      }
    • 批号(FLot):
      {
      ...
      "_mongoQuery ... findField=content.FLot_FNumber ..."
      }
完整请求示例

基于上述配置,生成的完整请求示例如下:

{
  "FormId": "AR_receivable",
  "Operation": "BatchSave",
  ...
  {
    ...
    {
      ...
      "_function case when '{shop_no}' in ('005', '006', '007','0081', '0091') then 'DZ' ... end"
    },
    ...
    [
      {
        ...
        "{{list.details_list_goods_no}}"
        "{{list.details_list__batch_list_num}}"
        "_mongoQuery ... findField=content.FLot_FNumber ..."
        ...
        [
          {
            ...
            "_mongoQuery ... findField=content.FBillNo ..."
            "_mongoQuery ... findField=content.FEntity_FENTRYID ..."
          }
        ]
      }
    ]
  }
}

通过以上步骤,我们成功地将源平台的数据转换为金蝶云星空API接口所需的格式,并准备好进行写入操作。此过程不仅确保了数据的一致性和准确性,还提升了整体业务流程的自动化程度和效率。 用友与SCM系统接口开发配置

更多系统对接方案