轻易云平台实现吉客云销售单对接金蝶云星空详解

  • 轻易云集成顾问-张妍琪

吉客云·奇门数据集成到金蝶云星空技术案例分享

在此次系统对接项目中,主要任务是实现吉客云销售单对接(金蝶流程代码8:售后退货-退货)同步至金蝶云星空。在整个过程中,我们使用了jackyun.tradenotsensitiveinfos.list.get接口从吉客云·奇门获取销售单数据,并通过batchSave API接口将这些数据批量写入到金蝶云星空。以下内容详细阐述了具体的实施步骤及技术要点。

首先,为保证所有销售单数据不漏单并实现定时、可靠的数据抓取,我们配置了一整套自动化调度机制,对接API调用和数据处理过程进行实时监控与日志记录。考虑到吉客云·奇门接口的分页和限流问题,我们采用了分段请求策略,以确保在高并发情况下依然能正确无误地获取全部所需信息。

其次,在大量销售单快速写入金蝶云星空时,我们特别关注了两者之间的数据格式差异,通过自定义的数据映射规则,实现精确且符合业务逻辑的字段转换。这不仅提升了导入效率,还简化了重复操作,减少人工干预。同时,为应对潜在的问题,如网络波动导致的接口调用异常,我们设计并实施了一套完善的错误重试机制,确保每一条记录都能成功传输并存储在目标系统中。

最后,需要特别提及的是,对接过程中我们使用轻易平台提供透明可视化界面,让项目团队成员可以清晰跟踪每个环节状态,及时发现和解决问题。这种方式不仅提高了工作效率,而且显著增强了整体项目执行的透明度和稳定性。

通过上述关键技术方案的应用,本次集成任务有效达成,为双方提供了一条稳健畅通的数据桥梁。 用友与外部系统接口集成开发

调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get获取并加工数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用吉客云·奇门接口jackyun.tradenotsensitiveinfos.list.get,并对获取的数据进行初步加工处理。

接口调用配置

首先,我们需要配置API请求的元数据,以确保能够正确地从吉客云获取所需的数据。以下是关键的元数据配置:

{
  "api": "jackyun.tradenotsensitiveinfos.list.get",
  "method": "POST",
  "number": "tradeNo",
  "id": "tradeId",
  "pagination": {
    "pageSize": 20
  },
  "beatFlat": ["goodsDetail"],
  "formatResponse": [
    {
      "old": "consignTime",
      "new": "consignTime_new",
      "format": "date"
    }
  ],
  "omissionRemedy": {
    "crontab": "2 1 * * *",
    "takeOverRequest": [
      {
        "field": "startConsignTime",
        "label": "发货时间(起始)",
        ...
      },
      ...
    ]
  },
  ...
}

请求参数设置

为了确保请求的准确性,我们需要设置多个请求参数。这些参数包括但不限于时间范围、订单状态和分页信息。以下是部分关键参数的配置示例:

{
  ...
  "request": [
    {
      "field": "modified_begin",
      ...
    },
    {
      "field": "modified_end",
      ...
    },
    {
      "field": "startModified",
      ...
    },
    {
      "field": "endModified",
      ...
    },
    {
      ...
    }
  ],
  ...
}

其中,startConsignTimeendConsignTime用于指定发货时间的起始和截止时间,这些参数可以通过模板变量动态生成,例如:

{
  ...
  {
    "field": "startConsignTime",
    ...
    "value": "{{LAST_SYNC_TIME|datetime}}"
  },
  {
    ...
    "field": "endConsignTime",
    ...
    "value": "{{CURRENT_TIME|datetime}}"
  }
}

数据格式化与处理

在获取到原始数据后,我们需要对数据进行一定的格式化处理。例如,将字段consignTime重命名为consignTime_new并转换为日期格式:

{
  ...
  {
    ...
    {
      "old": "consignTime",
      ...
      {"new":"consignTime_new","format":"date"}
     }
   }
}

此外,对于嵌套结构的数据,如商品详情列表,我们可以使用beatFlat参数将其扁平化处理:

{
   ...,
   {"beatFlat":["goodsDetail"]}
}

异常处理与补偿机制

为了确保数据的完整性和一致性,我们还需要设置异常处理和补偿机制。例如,通过定时任务(crontab)定期检查并补充遗漏的数据:

{
   ...,
   {"omissionRemedy":{"crontab":"2 1 * * *","takeOverRequest":[...]}
}

请求示例

综合以上配置,一个完整的API请求示例如下:

{
   ...,
   {"api":"jackyun.tradenotsensitiveinfos.list.get","method":"POST","request":[{"field":"modified_begin","value":"2023-01-01T00:00:00Z"},{"field":"modified_end","value":"2023-01-07T23:59:59Z"},{"field":"pageSize","value":"20"},{"field":"pageIndex","value":"0"}]}
}

通过上述步骤,我们能够高效地调用吉客云·奇门接口获取销售单数据,并对其进行初步加工,为后续的数据转换与写入奠定基础。 数据集成平台API接口配置

利用轻易云数据集成平台实现吉客云销售单对接金蝶云星空API接口

在数据集成过程中,将源平台的数据转换为目标平台所能接收的格式是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将吉客云销售单数据转换并写入金蝶云星空API接口。

元数据配置解析

元数据配置是ETL转换过程的核心,通过配置可以实现复杂的数据转换和映射。以下是我们需要关注的主要字段和配置:

  1. API接口与方法

    {"api":"batchSave","method":"POST"}

    这里指定了目标API接口为batchSave,请求方法为POST

  2. 操作配置

    {"rowsKey":"array","rows":1,"method":"batchArraySave"}

    配置表明数据以数组形式传递,并采用批量保存的方法。

  3. 分组计算

    "groupCalculate":{
       "headerGroup":["shopCodenew","warehouseCode","consignTime_new"],
       "bodyGroup":["goodsDetail_goodsNo"],
       "bodyName":"details",
       "targetBodyName":"FEntity",
       "bodyMaxLine":50,
       "calculate":{
           "goodsDetail_sellCount":"$sum",
           "goodsDetail_shareFavourableAfterFee":"$sum"
       }
    }

    分组计算用于聚合数据,例如按商品编号分组计算销售数量和优惠后费用总和。

  4. 请求字段映射 请求字段的映射定义了如何将源数据字段转换为目标平台字段:

    • 单据类型 FBillTypeID

      {"field":"FBillTypeID","label":"单据类型","type":"string","value":"_function case when '{shopCodenew}'='C010009' then 'XSTHD09_SYS' else 'XSTHD07_SYS' end"}

      通过条件判断设置不同店铺代码对应的单据类型。

    • 销售组织 FSaleOrgId

      {"field":"FSaleOrgId","label":"销售组织","type":"string","value":"_mongoQuery 52340fd1-2fe9-3976-95c1-edef8f0d788a findField=content.F_UseOrg where={\"content.FNumber\":{\"$eq\":\"{shopCodenew}\"}}"}

      使用MongoDB查询获取对应的销售组织ID。

  5. 明细信息映射 明细信息包含多个子字段,每个子字段都需要进行相应的转换:

    • 物料编码 FMaterialId

      {"field":"FMaterialId","label":"物料编码","type":"string","value":"{{details.goodsDetail_goodsNo}}"}

      将商品编号映射到物料编码。

    • 实退数量 FRealQty

      {"field":"FRealQty","label":"实退数量","type":"string","value":"_function {{details.goodsDetail_sellCount}}*(-1)"}

      将销售数量取负值作为实退数量。

    • 含税单价 FTaxPrice

      {"field":"FTaxPrice","label":"含税单价","type":"string","value":"_function {{details.goodsDetail_shareFavourableAfterFee}}/{{details.goodsDetail_sellCount}}"}

      计算含税单价。

  6. 其他请求参数 除了上述主要字段,还需要一些其他参数来完成请求:

    • 表单ID FormId

      {"field":"FormId","label":"业务对象表单Id","type":"string","value":"SAL_RETURNSTOCK"}
    • 执行操作 Operation

      {"field":"Operation","label":"执行的操作","type":"string","value":"Save"}

数据处理流程

  1. 数据请求与清洗 首先从吉客云获取原始销售单数据,进行必要的数据清洗和预处理。这一步确保数据格式统一,为后续的ETL转换做好准备。

  2. ETL转换与写入 根据上述元数据配置,进行ETL转换:

    • 对每个销售单进行分组计算,聚合相关字段。
    • 根据映射规则,将源平台字段转换为目标平台所需格式。
    • 构建最终的数据结构,调用金蝶云星空API接口进行批量保存。

技术要点

  • 条件判断与函数应用 在字段映射过程中,通过条件判断和函数应用,可以灵活处理不同情况。例如,根据店铺代码选择不同的单据类型,通过数学运算计算实退数量等。

  • MongoDB查询整合 使用MongoDB查询可以动态获取相关基础资料,例如销售组织、库存组织等。这种方式提高了系统的灵活性和扩展性。

  • 批量处理与性能优化 配置中的bodyMaxLine参数用于控制每次批量处理的数据行数,以避免因一次性处理过多数据导致性能问题。

通过上述技术手段,可以高效地将吉客云销售单数据转化为金蝶云星空API接口所能接收的格式,并顺利写入目标平台,实现系统间的数据无缝对接。 泛微OA与ERP系统接口开发配置

更多系统对接方案