使用轻易云将聚水潭其他入库单数据转入畅捷通T+的步骤

  • 轻易云集成顾问-黄宏棵

案例分享:聚水潭数据集成到畅捷通T+的技术实施

在本案例中,我们将详细探讨如何通过API接口实现将聚水潭的其他入库单数据无缝集成至畅捷通T+系统,确保数据信息准确无误,同时大幅提升处理效率。我们的方案名称为“聚水潭-其他入库单-->畅捷通-其他入库单”,其核心涉及多个关键步骤与技术细节。

首先,通过调用聚水潭提供的数据接口/open/other/inout/query,我们能够定时、可靠地抓取最新的其他入库单数据。为了应对可能存在的大量数据,我们设计了一套分页机制,确保在处理限流问题时不会遗漏任何订单。

抓取到原始数据后,需要解决的是两系统之间的数据格式差异。这一过程会用到轻易云提供的数据转换工具,将聚水潭的JSON格式调整适配为畅捷通T+要求的结构。在这个过程中,我们特别关注了字段映射和类型转换的问题,以确保写入环节顺利进行。

接下来,通过调用另一个API接口 /tplus/api/v2/otherReceive/Create ,我们实现了批量向畅捷通T+快速写入已整理好的数据,此操作不仅提高了整体效率,还减少了每次请求的开销。尽管如此,在实际运行中难免出现异常情况。因此我们加入了错误重试机制,如果某个输入失败,会自动记录日志并尝试重新提交。

实时监控与日志记录同样是不可或缺的一部分,它帮助开发人员迅速定位问题,并随时掌握整个流程中的各个环节状态。从而保障整个集成过程透明、高效且可追踪。

通过本文所述的方法与策略,为企业客户搭建更加智能化、自动化的数据桥梁,让不同信息系统间协作变得更简单高效。

打通钉钉数据接口

调用聚水潭接口/open/other/inout/query获取并加工数据

在数据集成生命周期的第一步中,调用源系统接口获取数据是至关重要的。本文将深入探讨如何通过轻易云数据集成平台调用聚水潭接口/open/other/inout/query,并对获取的数据进行初步加工。

接口配置与请求参数

首先,我们需要配置元数据以便正确调用聚水潭接口。以下是元数据配置的详细内容:

{
  "api": "/open/other/inout/query",
  "effect": "QUERY",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "idCheck": true,
  "request": [
    {"field":"modified_begin","label":"修改起始时间","type":"datetime","value":"{{MINUTE_AGO_20|datetime}}"},
    {"field":"modified_end","label":"修改结束时间","type":"datetime","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"status","label":"单据状态","type":"string","value":"Confirmed"},
    {"field":"page_index","label":"第几页","type":"string","value":"1"},
    {"field":"page_size","label":"每页多少条","type":"string","value":"30"},
    {"field":"date_type","label":"抓取时间类型","type":"string","describe":"0:修改时间,modified。 2:出入库时间 io_date,未传入时默认为0"}
  ],
  "autoFillResponse": true,
  "condition_bk": [
    [{"field": "type", "logic": "notin", "value": "其它出库"}]
  ],
  "condition": [
    [{"field": "type", "logic": "notin", "value": "其它出库"}, {"field": "wms_co_id", "logic": "neqv2", "value": "10406603"}]
  ],
  "omissionRemedy": {
    "crontab": "2 */3 * * *",
    "takeOverRequest":[
      {"field":"modified_begin","value":"_function FROM_UNIXTIME( unix_timestamp() -86400 , '%Y-%m-%d %H:%i:%s' )","type":"string","label":"接管字段"}
    ]
  }
}

请求参数详解

  1. modified_beginmodified_end:用于指定查询的时间范围。{{MINUTE_AGO_20|datetime}}表示从当前时间前20分钟开始,{{CURRENT_TIME|datetime}}表示当前时间。
  2. status:单据状态,这里固定为"Confirmed"。
  3. page_indexpage_size:分页参数,分别表示查询第几页和每页多少条记录。
  4. date_type:抓取时间类型,默认为0,即按修改时间查询。

条件过滤与自动填充

  • condition_bkcondition:用于过滤不需要的数据。例如,排除“其它出库”类型的单据,并且 wms_co_id 不等于 10406603
  • autoFillResponse:启用自动填充响应功能,可以简化后续的数据处理工作。

数据请求与清洗

通过上述配置,我们可以发起POST请求,从聚水潭系统中获取符合条件的数据。以下是一个示例请求体:

{
  "modified_begin": "{{MINUTE_AGO_20|datetime}}",
  "modified_end": "{{CURRENT_TIME|datetime}}",
  "status": "Confirmed",
  "page_index": 1,
  "page_size": 30,
  "date_type": 0
}

在接收到响应后,需要对数据进行初步清洗和验证。例如:

  • 确认所有必需字段是否存在且格式正确。
  • 根据业务逻辑进一步过滤不需要的数据。

异常处理与补救机制

为了确保数据的完整性和连续性,我们还配置了异常处理和补救机制:

  • omissionRemedy:设置了定时任务,每隔三小时执行一次,以防止遗漏数据。通过 FROM_UNIXTIME( unix_timestamp() -86400 , '%Y-%m-%d %H:%i:%s' ) 动态计算前一天的开始时间,以便重新抓取可能遗漏的数据。

通过以上步骤,我们可以高效地从聚水潭系统中获取并清洗所需的数据,为后续的数据转换与写入打下坚实基础。这一过程充分利用了轻易云数据集成平台的强大功能,实现了不同系统间的数据无缝对接。 如何开发企业微信API接口

使用轻易云数据集成平台将聚水潭其他入库单转换并写入畅捷通T+API接口

在数据集成的生命周期中,ETL(Extract, Transform, Load)过程是至关重要的一环。本文将详细探讨如何使用轻易云数据集成平台,将已经从源平台(如聚水潭)提取并清洗后的数据,转换为畅捷通T+ API接口所能接收的格式,并最终写入目标平台。

API接口配置

根据元数据配置,我们需要将聚水潭的其他入库单数据转换为畅捷通T+所需的格式,并通过/tplus/api/v2/otherReceive/Create接口进行提交。以下是具体的配置细节:

  • API路径: /tplus/api/v2/otherReceive/Create
  • 请求方法: POST
  • 执行效果: EXECUTE
  • ID检查: true

请求参数解析

  1. ExternalCode (外部单据号):

    • 类型:string
    • 描述:外部单据号,用于唯一性检查,防止重复提交。
    • 值:{io_id}
  2. VoucherType (单据类型):

    • 类型:string
    • 描述:单据类型,默认值为ST1004
    • 值:ST1004
    • 解析器:ConvertObjectParser,参数为Code
  3. VoucherDate (单据日期):

    • 类型:string
    • 描述:单据日期
    • 值:{modified}
  4. BusiType (业务类型):

    • 类型:string
    • 描述:业务类型编码,取值范围包括13(其他)和14(其他退库)。
    • 值:13
    • 解析器:ConvertObjectParser,参数为Code
  5. Warehouse (仓库信息):

    • 类型:string
    • 描述:仓库信息
    • 值:{wms_co_id}
    • 解析器:ConvertObjectParser, 参数为 Code
    • 映射关系:
      {
      "target": "66d687ab2f3fde34df428d6d",
      "direction": "positive"
      }
  6. Memo (表头备注):

    • 类型:string
    • 描述:备注信息
    • 值:{remark}
  7. DynamicPropertyKeys:

    • 类型:string
    • 值:pubuserdefnvc3,pubuserdefnvc4
    • 解析器: StringToArray, 参数为 ,
  8. DynamicPropertyValues:

    • 类型: string
    • 值: 13<{io_id}
    • 解析器: StringToArray, 参数为 <
  9. RdStyle (入库类别):

    • 类型: string
    • 值: 113
    • 解析器: ConvertObjectParser, 参数为 Code
  10. RDRecordDetails (单据明细信息): 包含以下子字段:

    [
      {
        "field": "Inventory",
        "label": "存货信息",
        "type": "string",
        "value": "{sku_id}",
        "parser": {
          "name": "ConvertObjectParser",
          "params": "Code"
        }
      },
      {
        "field": "BaseQuantity",
        "label": "主计量单位数量",
        "type": "string",
        "value": "{qty}"
      },
      {
        "field": "Price",
        "label": "成本单价",
        "type": "string",
        "value": "{sale_price}"
      },
      {
        "field": "Project",
        "label": "项目",
        "type": "string",
        "value": 807,
        {
          name: 'ConvertObjectParser',
          params: 'Code'
        }
      }
    ]
  11. OtherRequest:

    [
      {
        field: 'dataKey',
        label: 'dataKey',
        type: 'string',
        describe: '111',
        value: 'dto'
      }
    ]

数据转换与写入

在实际操作中,我们需要确保每个字段的数据都经过正确的转换和映射。例如:

  • 使用 {io_id} 来填充外部单据号 (ExternalCode) 字段,以确保唯一性。
  • {modified} 转换为标准日期格式以填充单据日期 (VoucherDate) 字段。
  • 利用 ConvertObjectParser 将业务类型编码 (BusiType) 转换为目标系统可识别的代码。

对于复杂的数据结构,如单据明细信息 (RDRecordDetails) ,我们需要逐一处理每个子字段,确保其值和格式符合目标平台的要求。

通过以上配置和处理步骤,我们可以高效地将聚水潭其他入库单的数据转换并写入畅捷通T+系统,实现不同系统间的数据无缝对接。这不仅提高了数据处理效率,也保证了数据的一致性和准确性。 如何对接企业微信API接口

更多系统对接方案