ETL实战:将T+系统出库单数据高效写入吉客云

  • 轻易云集成顾问-李国敏

T+材料出库单【红字】集成到吉客云-入库单创建案例分享

在本篇文章中,我们将详细探讨如何利用轻易云数据集成平台,将畅捷通T+的材料出库单(红字)成功同步至吉客云,并生成相应的入库单。这个技术案例展示了从API接口调用、数据处理与转换,到最终写入目标系统全过程中的关键步骤和技巧。

首先,任务开始于从畅捷通T+系统中获取材料出库单数据。通过调用其API接口 /tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList 来实现高效的数据抓取。在这个过程中,需要特别注意接口的分页和限流问题,以确保稳定的数据传输。同时,在实际操作中,为保障不漏单,还必须设计可靠的数据捕获机制。

接着,对获取到的数据进行必要的过滤和转换。这一步不可或缺,因为两套系统在数据结构上存在差异。这里应用了自定义数据转换逻辑,并结合异常检测功能,确保所有的数据都符合目的系统要求。在此基础上,通过实时监控及日志记录功能,可以及时发现并解决任何潜在问题,提高整体操作透明度。

最后,将处理好的数据批量、高速地写入到吉客云系统,使用其提供的 erp.storage.stockincreate API 接口完成目标任务。这一过程需要重点关注的是对接时可能出现的各种异常情况,以及准确实施错误重试机制,提高整个流程的稳健性。此外,通过集中监控与告警体系,有效跟踪每个工作环节状态,实现对整体性能的一站式掌控。

此次集成案例不仅展现了跨平台复杂场景下如何灵活运用API,更强调了精细化管理和技术能力的重要性。从拿数、转数到落数,每一步均有条不紊,使得业务过程更加顺畅无忧。 打通钉钉数据接口

调用源系统畅捷通T+接口获取并加工数据

在轻易云数据集成平台的生命周期中,第一步是调用源系统接口获取数据。本文将深入探讨如何通过调用畅捷通T+接口/tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList来获取材料出库单【红字】的数据,并进行初步加工。

接口配置与请求参数

首先,我们需要配置API接口的元数据,以便在轻易云平台上进行调用。以下是元数据配置的关键部分:

{
  "api": "/tplus/api/v2/MaterialDispatchOpenApi/FindVoucherList",
  "effect": "QUERY",
  "method": "POST",
  "number": "Code",
  "id": "Code",
  "idCheck": true,
  "request": [
    {
      "field": "selectFields",
      "label": "查询字段",
      "type": "string",
      "describe": "部门编码",
      "value": "VoucherCode,CustomerCode,WarehouseCode,Inventory,InventoryCode,Specification,Unit,Quantity"
    },
    {
      "field": "pageIndex",
      "label": "pageIndex",
      "type": "string",
      "describe": "部门名称"
    },
    {
      "field": "pageSize",
      "label": "pageSize",
      "type": "string",
      "describe": "指定返回字段",
      "value": "10"
    },
    {
      ...
    }
  ],
  ...
}

在这个配置中,我们定义了多个请求参数:

  • selectFields: 指定要查询的字段,包括VoucherCode, CustomerCode, WarehouseCode, Inventory, InventoryCode, Specification, Unit, 和Quantity
  • pageIndexpageSize: 用于分页查询,确保每次请求返回的数据量适中。
  • paramDic_1paramDic_2: 用于传递额外的过滤条件,例如时间范围和仓库ID。

请求示例

根据上述配置,我们可以构建一个POST请求来获取所需的数据。以下是一个示例请求体:

{
  "selectFields": ["VoucherCode", ...],
  ...
}

这个请求将返回符合条件的材料出库单【红字】记录。

数据清洗与转换

获取到原始数据后,需要对其进行清洗和转换,以便后续处理。假设我们获取到的数据如下:

[
  {
    ...
  }
]

我们需要对这些数据进行以下处理:

  1. 过滤负数数量:根据元数据中的条件配置,只保留数量为负数的记录。
  2. 字段映射:将原始字段映射到目标系统所需的字段格式。

例如,将原始记录中的VoucherCode映射为目标系统中的voucher_code,并确保所有字段符合目标系统的要求。

数据写入准备

清洗和转换后的数据需要准备好以便写入目标系统。在这个过程中,可以使用轻易云平台提供的自动填充响应功能(autoFillResponse),简化数据处理流程。

{
  ...
}

通过这种方式,可以确保每个步骤都高效且准确地完成,为后续的数据写入打下坚实基础。

总结来说,通过调用畅捷通T+接口并进行初步的数据清洗与转换,可以有效地获取并准备好材料出库单【红字】的数据,为后续的数据集成奠定基础。 泛微OA与ERP系统接口开发配置

使用轻易云数据集成平台实现T+材料出库单【红字】到吉客云入库单的ETL转换与写入

在数据集成过程中,ETL(Extract, Transform, Load)是关键步骤之一。本文将详细探讨如何通过轻易云数据集成平台,将T+系统中的材料出库单【红字】数据转换为吉客云API接口所能接收的格式,并最终写入吉客云平台。

数据转换与写入目标平台

在本案例中,我们需要将T+系统的材料出库单【红字】数据转换为吉客云的入库单格式,并通过API接口进行写入。以下是具体的元数据配置和技术细节。

API接口配置

我们使用吉客云提供的erp.storage.stockincreate API接口,该接口支持POST方法,用于创建入库单。以下是元数据配置:

{
  "api": "erp.storage.stockincreate",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "inWarehouseCode",
      "label": "仓库编码",
      "type": "string",
      "describe": "仓库编码",
      "value": "{{Warehouse.Code}}"
    },
    {
      "field": "inType",
      "label": "出库类型",
      "type": "string",
      "describe": "入库类型 101=采购入库 102=调拨入库 103=盘盈入库 104=其他入库",
      "value": "104"
    },
    {
      "field": "relDataId",
      "label": "关联单据编号",
      "type": "string",
      "describe": "可随机,保证不重复即可",
      "value": "{Code}"
    },
    {
      "field": "applyDate",
      "label": "申请出库时间",
      "type": "string",
      "describe": ":申请时间",
      ,"value":"{AuditedDate}"
    },
    {
      ,"field":"memo"
     ,"label":"申请单的备注信息"
     ,"type":"string"
     ,"describe":"备注"
     ,"value":"材料出库单红字-{Code}"
    },
    {
     ,"field":"source"
     ,"label":"source"
     ,"type":"string"
     ,"describe":"写死:OPEN"
     ,"value":"OPEN"
   },
   {
     ,"field":"stockInDetailViews"
     ,"label":"入库申请单明细"
     ,"type":"array"
     ,"describe":"入库申请单明细"
     ,"value":"RDRecordDetails"
     ,children":[
       {
         ,field:"goodsNo"
         ,label:"货品编号"
         ,type:"string"
         ,value:"{{RDRecordDetails.InventoryCode}}"
       },
       {
         ,field:"skuBarcode"
         ,label:"条形码"
         ,type:"string"
         ,describe:"匹配货品信息的外部货品编号(按skuId>outSkuCode>skuBarcode匹配顺序,必传一个)"
         ,value:"{{RDRecordDetails.InventoryCode}}{{RDRecordDetails.freeitem0}}{{RDRecordDetails.freeitem1}}"

       },
       {
        field:"relDetailId" 
        label:"关联实际业务明细表的id" 
        type:"string" 
        describe:"关联实际业务明细表的id"

       },
       {
        field:"skuCount" 
        label:"出库数量" 
        type:"string" 
        describe:"入库数量" 
        value:"{{RDRecordDetails.Quantity}}"

       },
       {
        field: isCertified
        label: 是否正品
        type: string
        describe: 是否正品,1是0否
        value: 1
       }
       ,
       {
          field: skuPrice
          label: 入库价格
          type: string
          describe: 入库价格

       }
       ,
       {
          field: batchList
          label: 批次信息集合
          type: object
          children:[
            {  
              field: batchNo
              label: 货品批号
              type: string
              value: {{RDRecordDetails.Batch}}
            }
            ,
            {  
              field: productionDate
              label: 生产日期
              type: string
              value : {{RDRecordDetails.ProductionDate}}
            }
            ,
            {  
               field : shelfLife 
               label :质保期 
               type : string 

            }
            ,
            {  
               field : shelfLiftUnit 
               label :质保期单位支持:年、月、天 
               type : string 
               describe :质保期单位支持:年、月、天 
               value : {{RDRecordDetails.InventoryExpiredUnit}}
             }
             ,
             {  
                field : expirationDate 
                label :到期时间 
                type : string 
                value : {{items.ExpiryDate}}
             }

           ]

   }
]
}
]
}
数据字段映射
  1. 仓库编码 (inWarehouseCode):从源数据中的Warehouse.Code字段获取。
  2. 入库类型 (inType):固定值为104,表示其他入库。
  3. 关联单据编号 (relDataId):从源数据中的Code字段获取,确保唯一性。
  4. 申请出库时间 (applyDate):从源数据中的AuditedDate字段获取。
  5. 备注信息 (memo):结合固定文本和源数据中的Code字段生成,如“材料出库单红字-{Code}”。
  6. 来源 (source):固定值为“OPEN”。
  7. 入库申请单明细 (stockInDetailViews):
    • 货品编号 (goodsNo):从源数据中的RDRecordDetails.InventoryCode字段获取。
    • 条形码 (skuBarcode):组合多个字段生成,包括InventoryCode, freeitem0, freeitem1
    • 关联实际业务明细表ID (relDetailId):根据业务逻辑生成。
    • 出库数量 (skuCount):从源数据中的Quantity字段获取。
    • 是否正品 (isCertified):固定值为“1”,表示正品。
    • 批次信息集合 (batchList):
      • 货品批号 (batchNo):从源数据中的Batch字段获取。
      • 生产日期 (productionDate):从源数据中的ProductionDate字段获取。
      • 质保期单位支持 (shelfLiftUnit):从源数据中的InventoryExpiredUnit字段获取。
      • 到期时间 (expirationDate):从子项中提取。
数据处理逻辑
  1. 从T+系统中提取原始材料出库单【红字】的数据。
  2. 根据上述元数据配置,将提取的数据进行转换,确保符合吉客云API接口要求的格式。
  3. 利用轻易云平台提供的全异步处理能力,将转换后的数据通过POST请求发送至吉客云API接口,实现数据写入。

通过以上步骤,我们能够高效地完成T+系统到吉客云平台的数据集成,实现不同系统间的数据无缝对接。这不仅提升了业务透明度和效率,也确保了数据处理过程的准确性和一致性。 企业微信与OA系统接口开发配置

更多系统对接方案