轻易云平台实现金蝶云星空接口的数据转换与写入技巧

  • 轻易云集成顾问-吕修远

吉客云数据集成到金蝶云星空案例分享:销售出库被冲蓝字对接

在企业日常运营中,销售出库的精确记录和实时共享至关重要。为了提升业务透明度和管理效率,本案例采用了吉客云与金蝶云星空之间的数据集成解决方案,以应对「销售出库被冲蓝字」的处理需求。

数据获取与转换逻辑

我们首先通过吉客云提供的API erp.storage.goodsdocout.v2 进行数据抓取,该接口支持高吞吐量的数据访问能力,有效确保大量数据能够快速捕获并传递。为了保证任务执行可靠性,我们引入了定时调度机制,定期抓取最新的出库记录,这样不仅提高了实时性的要求,还避免了漏单现象。

从吉客云获取原始数据后,需要处理分页与限流问题。这一过程基于轻易云平台自定义的数据转换功能,通过编写特定的脚本来适配分页请求,并将结果合并为统一格式。此外,为了解决两套系统间的数据结构差异,我们通过灵活的数据映射工具,将吉客云原始数据转化为金蝶云所需格式,保障每条记录准确无误地进行传输。

数据写入及监控

经过预处理后的数据信息可直接调用金蝶云星空的批量写入API batchSave 接口完成存储操作。这一环节利用平台内建的大吞吐量支持,使得海量数据可迅速、安全、稳定地进入目标系统。同时,为进一步优化性能,还引入了一些必要的异常检测机制。如果在接口调用过程中遇到任何错误或不正常反馈,系统会自动触发重试策略,以确保任务最终成功完成,而不会丢失任何关键信息。

此外,全流程实现集中监控和告警功能,对各个节点状态、性能情况进行了全面跟踪。当发生异常或质量偏差时能及时提醒运维人员,从而有效预防问题扩散,提高整体业务运行稳定性和安全性。 金蝶与SCM系统接口开发配置

调用源系统吉客云接口erp.storage.goodsdocout.v2获取并加工数据

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

接口调用配置

首先,我们需要配置元数据以便正确调用吉客云的接口。以下是元数据配置的详细说明:

{
  "api": "erp.storage.goodsdocout.v2",
  "effect": "QUERY",
  "method": "POST",
  "number": "goodsdocNo",
  "id": "goodsdocNo",
  "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":"{{LAST_SYNC_TIME|datetime}}"},
    {"field":"endDate","label":"创建时间的结束时间","type":"string","value":"{{CURRENT_TIME|datetime}}"},
    {"field":"inouttype","label":"类型","type":"string","describe":"201-销售出库 202调拨出库 ...", "value": "201"},
    {"field":"sourceBillNo","label":"来源单号","type":"string"},
    {"field":"warehouseCode","label":"仓库编号","type":"string"},
    {"field":"vendCode","label":"供应商编号(往来单位)","type":"string"},
    {"field":"billNo","label":"上游单据号(关联单号)","type":"string"},
    {"field":"userName","label":"创建人名称","type":"string"},
    {"field":"outBillNo","label":"外部单号(全模糊匹配)", "type": "string"},
    {"field": "gmtModifiedStart", "label": "主表更新时间起始", "type": "string"},
    {"field": "gmtModifiedEnd", "label": "主表更新时间截至", "type": "string"},
    {
      "field": "selelctFields",
      "label": "返回参数",
      "type": "string",
      "value": 
        [
          'goodsdocNo', 'billNo', 'inOutDate', 'gmtCreate', 'inouttype',
          'vendCustomerCode', 'warehouseCode', 'channelCode', 'channelName',
          'warehouseName', 'inOutReason', 'redStatus', 'financeBillStatus',
          'goodsDocDetailList.goodsNo', 'goodsDocDetailList.goodsName',
          'goodsDocDetailList.quantity', 'goodsDocDetailList'
        ]
    }
  ],
  ...
}

请求参数解析

  1. 分页参数

    • pageIndex:分页页码,用于控制请求的数据页数。
    • pageSize:分页页数,默认值为50。
  2. 时间参数

    • startDateendDate:分别表示创建时间的起始和结束时间,使用模板变量动态填充。
  3. 过滤条件

    • inouttype:固定值为201,表示销售出库。
    • redStatus:过滤红字状态为2的数据。
  4. 返回字段

    • selelctFields:指定需要返回的字段列表,包括出库单号、上游单据号、创建时间等详细信息。

数据清洗与转换

在获取到原始数据后,需要进行清洗和转换,以确保数据符合目标系统的要求。以下是一些关键步骤:

  1. 字段映射: 将吉客云返回的数据字段映射到目标系统所需的字段。例如,将goodsDocDetailList.goodsNo映射到目标系统中的商品编号字段。

  2. 数据过滤: 根据业务需求过滤掉不必要的数据。例如,只保留数量大于0的记录。

  3. 格式转换: 将日期格式从吉客云的格式转换为目标系统所需的格式。

  4. 批量处理: 对于大批量数据,可以分批次处理,以提高效率和稳定性。

实时监控与错误处理

为了确保数据集成过程顺利进行,实时监控和错误处理机制必不可少。可以通过以下方式实现:

  1. 日志记录: 对每次API调用和数据处理过程进行详细日志记录,以便后续排查问题。

  2. 异常捕获: 在代码中添加异常捕获机制,对于可能出现的网络错误、数据格式错误等进行及时处理,并记录相关信息。

  3. 重试机制: 对于临时性错误,可以设置重试机制,在一定次数内自动重试API调用或数据处理操作。

通过以上步骤,我们可以高效地调用吉客云接口获取并加工销售出库数据,为后续的数据集成打下坚实基础。 如何开发金蝶云星空API接口

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

在轻易云数据集成平台中,将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,是一个关键步骤。本文将详细探讨如何配置和实现这一过程。

数据转换与写入配置

为了将数据成功写入金蝶云星空,我们需要通过API接口进行配置。以下是具体的元数据配置:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "number": "FBillNo",
  "id": "FBillNo",
  "name": "FBillNo",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "goodsDocDetailList_ownerName,goodsdocNo",
    "bodyName": "items",
    "header": ["inOutDate", "goodsdocNo", "channelCode", "goodsDocDetailList_ownerName"],
    "body": ["goodsDocDetailList_goodsNo", "goodsDocDetailList_quantity", 
             "goodsDocDetailList_ownerName", "warehouseCode"]
  },
  ...
}

请求参数解析

在请求参数中,我们需要对各个字段进行解析和映射,以确保数据格式符合金蝶云星空API的要求。

  1. 单据类型(FBillTypeID)

    {
     "field": "FBillTypeID",
     "label": "单据类型",
     ...
     "value": "XSCKD01_SYS"
    }

    单据类型固定为"XSCKD01_SYS"。

  2. 吉客云单号(FJKYNo)

    {
     ...
     "value": "{goodsdocNo}"
    }

    使用{goodsdocNo}作为单据编号。

  3. 日期(FDate)

    {
     ...
     "value": "{inOutDate}"
    }

    日期字段映射为{inOutDate}

  4. 销售组织(FSaleOrgId)

    {
     ...
     "_mongoQuery ... findField=content.FBelongOrgId where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
    }

    销售组织通过MongoDB查询获取,基于{channelCode}进行匹配。

  5. 客户(FCustomerID)

    {
     ...
     "_mongoQuery ... findField=content.FCUSTNUMBER where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
    }

    客户字段同样通过MongoDB查询获取,基于{channelCode}进行匹配。

  6. 发货组织(FStockOrgId)

    {
     ...
     "_mongoQuery ... findField=content.FBelongOrgId where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
    }

    发货组织通过MongoDB查询获取,并映射到{goodsDocDetailList_ownerName}

  7. 备注(FNote)

    {
      ...
      "_mongoQuery ... findField=content.FBelongOrgId where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
    }

    {channelCode}作为备注信息。

子实体和明细信息配置

对于子实体和明细信息,需要特别注意其嵌套结构和字段映射:

  1. 财务信息(SubHeadEntity)

    • 结算组织(FSettleOrgID)

      {
      ...
      "_mongoQuery ... findField=content.FBelongOrgId where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
      }

      基于{channelCode}进行匹配。

    • 结算币别(FSETTLECURRID)

      {
      ...
      "_mongoQuery ... findField=content.FBelongOrgId where={\"content.FJKYCustId\":{\"$eq\":\"{channelCode}\"}}"
      }

      固定值为"PRE001"。

  2. 明细信息(FEntity)

    • 物料编码(FMaterialID)

      {
      ...
      "{{items.goodsDocDetailList_goodsNo}}"
      }
    • 实发数量(FRealQty)

      {
      ...
      "{{items.goodsDocDetailList_quantity}}"
      }
    • 仓库(FStockID)

      {
      ...
      "{warehouseCode}"
      }

执行操作

最后,我们需要设置执行操作的相关参数:

{
  ...
  {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"业务对象表单Id","value":"SAL_OUTSTOCK"},
  {"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"BatchSave"},
  {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"true"},
  {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"验证基础资料","value":"true"},
  {"field":"SubSystemId","label":"系统模块","type":"string","describe":"系统模块","value":"21"},
  {"field":"InterationFlags","label":"允许负库存","type":"string","describe":"允许负库存","value":"STK_InvCheckResult"}
}

这些参数确保了在批量保存时,自动提交并审核,同时验证基础资料,并允许负库存操作。

通过上述配置,我们可以实现从源平台到金蝶云星空的数据转换与写入。每个字段的详细解析和映射确保了数据格式的一致性和准确性,从而保证了集成过程的顺利进行。 钉钉与CRM系统接口开发配置

更多系统对接方案