如何处理并集成聚水潭奇门和金蝶云星空数据

  • 轻易云集成顾问-彭亮

聚水潭·奇门数据集成到金蝶云星空的实践案例:发货单对接销售出库-V

在本次技术分享中,我们将探讨如何通过轻易云数据集成平台,实现聚水潭·奇门数据与金蝶云星空的数据无缝对接,具体方案为“发货单对接销售出库-V”。在该案例中,系统需要高效、可靠地从聚水潭·奇门获取并处理大量发货单数据,并批量写入到金蝶云星空进行管理。

API接口调用及分页处理

首先,通过调用聚水潭·奇门提供的API接口jushuitan.saleout.list.query抓取发货单数据。为了确保不遗漏任何订单,我们必须设计一个定时任务来周期性地请求此接口。同时,为了应对大规模的数据量和避免接口限流问题,需要特别处理分页机制。在请求参数中指定页码和每页条数,多次请求后合并结果以获取完整的订单列表。

# 伪代码示例
page = 1
while True:
    response = call_jushuitan_api("jushuitan.saleout.list.query", page=page, limit=100)
    if not response['data']:
        break 
    process_data(response['data'])
    page += 1

数据格式转换及写入逻辑

在接收到完整的订单列表后,需要将这些数据按照金蝶云星空所需的格式进行转换。例如,聚水潭中的字段名与金蝶中的字段名可能有所不同,这就需要我们设计一套映射规则,将源系统中的字段正确配置至目标系统。完成格式转换后,通过调用金蝶云星空提供的batchSave API实现批量写入操作。

// 示例映射规则(假想)
{
   "shipOrderNo": "order_id",
   "deliveryTime": "date_shipped",
   ...
}
// 假设已完成装换后的结构体示意图:
[
    {
       "order_id": "1234567890",
       "date_shipped": "2023-10-07T14:00:00Z",
       ...
    }
]

异常处理与错误重试机制

在实际运行过程中难免会遇到网络故障或服务异常等情况,因此针对失败的数据传输需要有完善的错误重试机制,以提高整体可靠性。当某个API调用失败时,可以记录相关日志并加入重试队列,在一定时间间隔后再次尝试发送。此外,实时监控整个流程状态也是不可或缺的一部分,通过详细且及时的日志记录,有助于快速定位和解决问题。

综上,本案例展示了一个复杂 如何开发金蝶云星空API接口

调用聚水潭·奇门接口获取并加工数据

在数据集成生命周期的第一步中,调用源系统接口以获取原始数据是至关重要的一环。本文将深入探讨如何通过轻易云数据集成平台调用聚水潭·奇门接口jushuitan.saleout.list.query,并对获取的数据进行初步加工。

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,可以看到以下关键参数:

  • API名称jushuitan.saleout.list.query
  • 请求方法POST
  • 分页参数page_index(页码)和page_size(页数)
  • 时间参数start_time(开始时间)和 end_time(结束时间)
  • 状态参数:固定值为 Confirmed

具体的请求参数配置如下:

{
  "api": "jushuitan.saleout.list.query",
  "method": "POST",
  "request": [
    {"field": "page_index", "label": "页码", "type": "int"},
    {"field": "page_size", "label": "页数", "type": "string", "value": "20"},
    {"field": "start_time", "label": "开始时间", "type": "string", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "end_time", "label": "结束时间", "type": "string", "value": "{{CURRENT_TIME|datetime}}"},
    {"label": "status", "field": "status", "type": "string", "value":"Confirmed"}
  ]
}

数据过滤条件

为了确保获取的数据符合业务需求,我们还需要设置过滤条件。在本案例中,过滤条件为店铺名称不包含“红梦”:

"condition_bk":[[{"field":"shop_name","logic":"notlike","value":"红梦"}]],
"condition":[[{"field":"shop_name","logic":"notlike","value":"红梦"}]]

数据格式化与字段映射

在获取到原始数据后,需要对其进行初步加工。根据元数据配置,我们需要将字段 io_id 重命名为 io_id_1 并将其格式化为字符串:

"formatResponse":[{"format":"string","old":"io_id","new":"io_id_1"}]

这种字段映射和格式转换有助于后续的数据处理和存储。

数据请求与清洗流程

  1. 初始化请求参数

    • 设置分页参数 page_indexpage_size
    • 设置时间范围 start_timeend_time
    • 固定状态参数为 Confirmed
  2. 发送请求并获取响应

    • 使用 POST 方法调用 API
    • 获取响应数据并检查其完整性和有效性
  3. 应用过滤条件

    • 过滤掉店铺名称包含“红梦”的记录
  4. 格式化响应数据

    • 将字段 io_id 重命名为 io_id_1
    • 确保字段类型符合预期(例如,将 io_id_1 转换为字符串)
  5. 输出处理后的数据

    • 将处理后的数据传递给下一个生命周期阶段进行进一步处理或存储

实际案例示例

假设我们已经成功调用了接口,并获得了以下原始响应数据:

[
  {"io_id": 12345, "shop_name": "蓝天商店"},
  {"io_id": 67890, "shop_name": "红梦商店"}
]

经过上述步骤处理后,最终得到的数据应如下所示:

[
  {"io_id_1": "12345", "shop_name": "蓝天商店"}
]

可以看到,第二条记录由于店铺名称包含“红梦”被过滤掉,而第一条记录中的 io_id 字段被重命名并转换为字符串。

通过上述步骤,我们成功地完成了从聚水潭·奇门接口获取、清洗和初步加工数据的全过程。这不仅确保了数据的准确性和一致性,也为后续的数据转换与写入奠定了坚实基础。 如何对接金蝶云星空API接口

利用轻易云数据集成平台实现金蝶云星空API接口的数据写入

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台能够接收的格式。本文将深入探讨如何利用轻易云数据集成平台,将发货单数据转换并写入到金蝶云星空API接口。

元数据配置解析

元数据配置是ETL过程中至关重要的一部分,它定义了如何将源数据映射到目标系统所需的格式。以下是我们使用的元数据配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillTypeID","label":"单据类型","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"XSCKD01_SYS"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"{io_id}"},
    {"field":"FDate","label":"日期","type":"string","value":"{io_date}"},
    {"field":"FSaleOrgId","label":"销售组织","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find F_PSEH_OrgId from 255f7565-c782-3985-9020-59aa6a647e61 where FName={shop_name}"},
    {"field":"FCustomerID","label":"客户","type":"string","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_mongoQuery 255f7565-c782-3985-9020-59aa6a647e61 findField=content.FNumber where={\"content.FName\":{\"$eq\":\"{shop_name}\"}}"},
    {"field":"FSalesManID","label":"销售员","type":"string","value":"{order_staff_name}","parser":{"name":"ConvertObjectParser","params":"FName"}},
    {"field":"FSaleDeptID","label":"销售部门","type":"string","parser":{"name":"ConvertObjectParser","params":""}},
    {"field":"FStockOrgId","label":"发货组织","type":"string","parser":{"name":"ConvertObjectParser","params":""},"value":""},
    {"field":"","label":"","type":"","value":""},
    ...
  ],
  "otherRequest":[
    {"field":"","label":"","type":"","value":""},
    ...
  ]
}

数据字段解析与转换

  1. 单据类型 (FBillTypeID):

    • 类型: string
    • 值: 固定值 XSCKD01_SYS
    • 转换器: ConvertObjectParser,参数为 FNumber
  2. 单据编号 (FBillNo):

    • 类型: string
    • 值: {io_id},直接从源数据中获取
  3. 日期 (FDate):

    • 类型: string
    • 值: {io_date},直接从源数据中获取
  4. 销售组织 (FSaleOrgId):

    • 类型: string
    • 值: _findCollection find F_PSEH_OrgId from ... where FName={shop_name}
    • 转换器: ConvertObjectParser,参数为 FNumber
  5. 客户 (FCustomerID):

    • 类型: string
    • 值: _mongoQuery ... findField=content.FNumber where={"content.FName":{"$eq":{shop_name}}}
    • 转换器: ConvertObjectParser,参数为 FNumber
  6. 销售员 (FSalesManID):

    • 类型: string
    • 值: {order_staff_name}
    • 转换器: ConvertObjectParser,参数为 FName
  7. 明细信息 (FEntity): 明细信息是一个数组,每个元素包含多个字段,如物料编码、实发数量、批号等。这些字段通过不同的转换规则和查找逻辑进行处理。

API调用与写入

在完成所有字段的解析和转换后,我们需要通过API调用将这些数据写入到金蝶云星空系统。以下是关键步骤:

  1. API Endpoint: 使用POST方法调用batchSave API。

  2. 请求体构建: 根据元数据配置构建请求体。请求体包含了所有需要传递的数据字段及其对应的值。

  3. 提交并审核: 配置项中包含IsAutoSubmitAndAudit字段,设置为true表示在保存后自动提交并审核。

  4. 验证基础资料: 配置项中包含IsVerifyBaseDataField字段,设置为true表示在写入前验证基础资料的正确性。

实际案例应用

假设我们有一条发货单记录,需要将其写入金蝶云星空系统。以下是具体操作步骤:

  1. 从源系统获取发货单记录,包括单据编号、日期、销售组织等信息。
  2. 根据元数据配置,对每个字段进行解析和转换。例如,将销售组织名称转换为对应的编码。
  3. 构建API请求体,将所有解析后的字段填充到请求体中。
  4. 调用金蝶云星空API,将构建好的请求体发送到目标系统。
  5. 检查返回结果,确保数据成功写入。如果失败,根据错误信息进行调试和修正。

通过上述步骤,我们可以高效地将源系统的数据转换并写入到金蝶云星空系统,实现不同系统间的数据无缝对接。这不仅提升了业务处理效率,还确保了数据的一致性和准确性。 金蝶与CRM系统接口开发配置

更多系统对接方案