轻松实现数据集成:将吉客云数据写入金蝶云星空API

  • 轻易云集成顾问-卢剑航

吉客云与金蝶云星空的无缝对接:实现JY-BDS其他入库单

在系统集成项目中,数据的精准流转和实时监控至关重要。本案例将重点介绍如何利用轻易云数据集成平台,实现吉客云中的“其他入库单”数据(通过API erp.storage.goodsdocin 获取),批量写入到金蝶云星空(使用API batchSave) 的技术方案。

为了确保高效的数据处理,我们采用了以下几项关键技术:

  1. 高吞吐量支持:吉客云的海量“其他入库单”数据能够快速被整合,保证了业务处理的时效性。这一能力尤为重要,因为它直接影响到企业库存管理和财务核算的效率。

  2. 集中监控与告警系统:在整个集成过程中,通过集中式监控和告警功能,可以实时跟踪任务状态、性能瓶颈及异常情况。这不仅提高了问题发现速度,还大幅度减少了意外停机时间,提高整体可靠性。

  3. 自定义转换逻辑:针对吉客云与金蝶云星空之间可能存在的数据格式差异,我们设计并实现了一套灵活且可定制化的数据转换逻辑,以适应不同业务需求。此举有效避免了因格式不匹配引起的数据错误。

  4. 批量操作与分页限流策略:为了充分利用API资源,在获取吉客云接口数据时,引入分页限流机制。同时,确保在调用金蝶云星空batchSave接口时,能顺利执行批量写入操作,从而优化整体性能表现。

  5. 完善的错误重试机制:鉴于网络或服务端的不确定因素,我们还设计了一套完整的异常处理及错误重试机制,以便在遇到问题时可以自动进行修复尝试,这样有助于最大限度地保障数据传输过程中的稳定性和完整性。 打通金蝶云星空数据接口

    调用吉客云接口获取并加工数据的技术案例

在数据集成过程中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用吉客云接口erp.storage.goodsdocin,获取并加工入库单数据。

接口概述

吉客云提供的erp.storage.goodsdocin接口用于获取入库单信息。该接口采用POST请求方式,支持分页查询,并允许根据多种条件进行筛选。以下是元数据配置的详细信息:

{
  "api": "erp.storage.goodsdocin",
  "method": "POST",
  "number": "goodsdocNo",
  "id": "recId",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {"field":"pageIndex","label":"分页页码","type":"string"},
    {"field":"pageSize","label":"分页页数","type":"string","value":"50"},
    {"field":"goodsDocNo","label":"入库单号","type":"string"},
    {"field":"startDate","label":"创建时间的起始时间","type":"string","value":"{{DAYS_AGO_2|datetime}}"},
    {"field":"endDate","label":"创建时间的结束时间","type":"string","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"inouttype","label":"入库类型","type":"string","describe":"入库类型(100-期初库存 101-采购入库 102-调拨入库 103-盘盈入库 104-其他入库 105-销售退货 106-完工入库 107-组装拆卸入库 108-翻新入库 109-报废入库 110-残次品入库111-成本调整 112-即采即入113-退料入库114-调拨退回115-维修返厂返还)","value":"104"},
    {"field":"warehouseCode","label":"仓库编号","type":"string"},
    {"field":"vendCode","label":"供应商编码","type":"string"},
    {"field":"billNo","label":"上游单据号(关联单号)","type":"string"},
    {"field":"userName","label":"创建人名称","type":"string"}
  ]
}

数据请求与清洗

在调用该接口时,需要构建请求体,并根据业务需求设置相应的参数。以下是一个典型的请求示例:

{
  "pageIndex": "1",
  "pageSize": "50",
  "startDate": "{{DAYS_AGO_2|datetime}}",
  "endDate": "{{CURRENT_TIME|datetime}}",
  "inouttype": "104"
}

在这个请求中,我们设置了分页参数pageIndexpageSize,以及时间范围参数startDateendDate。此外,我们指定了inouttype为"104",表示查询其他入库类型的数据。

数据转换与写入

获取到原始数据后,需要对其进行清洗和转换,以便后续处理。例如,可以对日期格式进行标准化处理,对字段名称进行映射等。以下是一个简单的数据转换示例:

def transform_data(raw_data):
    transformed_data = []
    for record in raw_data:
        transformed_record = {
            'record_id': record['recId'],
            'document_number': record['goodsdocNo'],
            'created_at': standardize_date(record['createTime']),
            'warehouse_code': record['warehouseCode'],
            'vendor_code': record['vendCode'],
            'creator_name': record['userName']
        }
        transformed_data.append(transformed_record)
    return transformed_data

在这个示例中,我们将原始记录中的字段进行了重命名,并对日期格式进行了标准化处理。

实际应用案例

假设我们需要集成吉客云的其他入库单数据到我们的系统中,可以按照以下步骤操作:

  1. 构建请求体:根据业务需求设置查询条件。
  2. 发送请求:通过轻易云平台发送POST请求到吉客云接口。
  3. 接收响应:获取返回的数据并进行初步验证。
  4. 数据清洗:对接收到的数据进行清洗和转换。
  5. 写入目标系统:将处理后的数据写入目标系统。

以下是一个实际应用中的代码片段:

import requests

def fetch_goodsdocin_data(page_index):
    url = 'https://api.jikecloud.com/erp.storage.goodsdocin'
    payload = {
        'pageIndex': str(page_index),
        'pageSize': '50',
        'startDate': '{{DAYS_AGO_2|datetime}}',
        'endDate': '{{CURRENT_TIME|datetime}}',
        'inouttype': '104'
    }

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

    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f"Failed to fetch data: {response.status_code}")

# 获取第一页的数据
raw_data = fetch_goodsdocin_data(1)

# 数据清洗和转换
cleaned_data = transform_data(raw_data)

# 将清洗后的数据写入目标系统(此处省略具体实现)
write_to_target_system(cleaned_data)

通过以上步骤,我们可以高效地从吉客云获取其他入库单数据,并将其集成到我们的系统中。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。 钉钉与WMS系统接口开发配置

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

在轻易云数据集成平台中,数据集成的第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。以下是详细的技术实现过程。

配置元数据

根据提供的元数据配置,我们需要将源数据转换为金蝶云星空API接口所需的数据格式。该配置文件定义了各个字段的映射关系、类型和必要的转换规则。

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {
      "field": "FBillNo",
      "label": "单据编号",
      "type": "string",
      "describe": "单据编号",
      "value": "{goodsdocNo}"
    },
    {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型",
      ...
    }
  ],
  ...
}

数据转换与写入

  1. 单据编号 (FBillNo):

    • 源字段:goodsdocNo
    • 转换:直接映射,无需额外处理。
  2. 单据类型 (FBillTypeID):

    • 固定值:QTRKD01_SYS
    • 转换:使用 ConvertObjectParser 将其转换为目标系统识别的格式。
  3. 库存组织 (FStockOrgId):

    • 源字段:warehouseCode
    • 转换:通过 _findCollection 方法从指定集合中查找匹配值,并使用 ConvertObjectParser 转换。
  4. 库存方向 (FStockDirect):

    • 固定值:GENERAL
    • 转换:直接映射,无需额外处理。
  5. 日期 (FDate):

    • 源字段:inOutDate
    • 转换:使用 _function FROM_UNIXTIME 将时间戳转换为标准日期格式。
  6. 部门 (FDEPTID):

    • 源字段:departCode
    • 转换:使用 ConvertObjectParser 将其转换为目标系统识别的格式。
  7. 货主 (FOwnerIdHead):

    • 源字段:companyCode
    • 转换:使用 ConvertObjectParser 将其转换为目标系统识别的格式。
  8. 备注 (FNOTE):

    • 源字段:comment
    • 转换:直接映射,无需额外处理。
  9. 吉客云单据编号 (F_JKBillNo):

    • 源字段:goodsdocNo
    • 转换:直接映射,无需额外处理。
  10. 其他入库原因 (F_QKZI_Assistant):

    • 源字段:inOutReason
    • 转换:通过 _findCollection 方法从指定集合中查找匹配值,并使用 ConvertObjectParser 转换。
  11. 明细信息 (FEntity): 明细信息包含多个子字段,每个子字段需要分别进行处理。

    a. 物料编码 (FMATERIALID)

    • 源字段:goodsDocDetailList.goodsNo
    • 转换:使用 ConvertObjectParser 将其转换为目标系统识别的格式。

    b. 收货仓库 (FSTOCKID)

    • 源字段:warehouseCode
    • 转换:使用 ConvertObjectParser 将其转换为目标系统识别的格式。

    c. 实收数量 (FQty)

    • 源字段:goodsDocDetailList.quantity
    • 转换:直接映射,无需额外处理。

    d. 备注 (FEntryNote)

    • 源字段:goodsDocDetailList.rowRemark
    • 转换:直接映射,无需额外处理。

API请求构建

根据上述配置和转换规则,构建最终的API请求:

{
  "FormId": "STK_MISCELLANEOUS",
  ...
  "Model": {
    ...
    {
      ...
      {
        ...
        {
          ...
        }
      }
    }
  }
}

提交与审核

最后,将构建好的请求通过POST方法提交至金蝶云星空API接口,并设置自动提交与审核参数:

{
  ...
  "IsAutoSubmitAndAudit": true
}

通过以上步骤,我们实现了将源平台的数据经过ETL转换后,成功写入到金蝶云星空API接口。 数据集成平台可视化配置API接口

更多系统对接方案