ETL转换与金蝶云星空API写入实战攻略

  • 轻易云集成顾问-陈洁琳

吉客云其他出库(电商直营仓退货)对接金蝶云星空采购退货

在本文中,我们将深入探讨如何通过轻易云数据集成平台,实现吉客云与金蝶云星空系统的无缝对接,具体案例为电商直营仓退货的数据流转。此方案旨在确保吉客云中的“其他出库”业务能够准确、高效地在金蝶云星空系统内完成采购退货处理。

数据获取及接口调用

首先,通过调用吉客云API erp.storage.goodsdocout,我们能够实时、定时并可靠地抓取电商直营仓的出库数据。这一步骤至关重要,因为它直接影响后续的数据转换和传输效果。在实现过程中,需要特别关注如何处理分页和限流问题,以保证大批量数据稳定、高效地被拉取到本地或临时存储。

{
  "method": "erp.storage.goodsdocout",
  "params": {
    // 请求参数细节,根据实际需求配置
  }
}

数据格式转换与自定义逻辑

由于吉客云与金蝶云星空之间存在数据格式差异,自定义数据转换逻辑成为必不可少的一环。例如需要将吉客云中的字段名称、类型及其值映射到金蝶云星空对应的结构上。这一过程可以通过可视化的数据流设计工具来实现,使得整个流程更加直观且便于调试和管理。

高吞吐量写入与异常处理机制

为了保证大量退货数据能快速且可靠地写入到金蝶云星空系统,我们使用了高吞吐量的数据写入功能,并借助其batchSave API进行操作。在这种情况下,不仅要考虑到单次请求的数据容量,还需要设立合理的重试机制以应对可能出现的网络故障或请求失败。同时,通过集中监控和告警系统,实时跟踪每个任务的状态和性能,可以及时发现并处理异常情况,提高整体集成效率。

{
  "method": "batchSave",
  "params": {
    // 转换后的目标数据
  }
}

实现透明化管理与质量监控

最后,为确保整个数据集成过程透明且高效运行,通过统一视图掌握API资产的使用情况是关键之一。特别是在业务复杂、多变环境下,这种全生命周期管理不仅提升了资源利用率,也为企业决策提供了更具参考价值的数据支持。此外,支持实时日志记录功能,更让操作人员能第一时间了解每个环节状况,大幅减少误判和延迟响应风险,从而进一步优化业务流程。 系统集成平台API接口配置

调用吉客云接口获取并加工数据的技术案例

在轻易云数据集成平台上,调用源系统吉客云接口erp.storage.goodsdocout是数据集成生命周期的第一步。本文将深入探讨如何通过该接口获取并加工数据,以实现电商直营仓退货对接采购退货的集成方案。

接口配置与请求参数

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

{
  "api": "erp.storage.goodsdocout",
  "method": "POST",
  "number": "goodsdocNo",
  "id": "recId",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "condition": [
    [{"field":"inOutReason","logic":"eqv2","value":"电商直营仓退货"}],
    [{"field":"inOutReason","logic":"eqv2","value":"总部样品代发"}]
  ],
  "request": [
    {"field":"pageIndex","label":"分页页码","type":"string"},
    {"field":"pageSize","label":"分页页数","type":"string","value":"50"},
    {"field":"goodsDocNo","label":"出库单号","type":"string"},
    {"field":"startDate","label":"创建时间的起始时间","type":"datetime"},
    {"field":"endDate","label":"创建时间的结束时间","type":"datetime"},
    {"field":"inouttype","label":"类型","type":"string", "describe": "...", "value": "204"},
    {"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": "gmtModifiedStart", "label": "主表更新时间起始", "type": "datetime", "value": "{{LAST_SYNC_TIME|datetime}}"},
    {"field": "gmtModifiedEnd", "label": "主表更新时间截至", "type": "datetime", "value": "{{CURRENT_TIME|datetime}}"}
  ]
}

数据请求与清洗

在调用API之前,需要设置分页参数和过滤条件。分页参数确保我们能够逐页获取大量数据,而过滤条件则用于筛选特定类型的数据。在这个案例中,我们关注的是“电商直营仓退货”和“总部样品代发”两种出库原因。

请求示例:

{
  "pageIndex": 1,
  "pageSize": 50,
  "inouttype": "204",
  "gmtModifiedStart": "{{LAST_SYNC_TIME|datetime}}",
  "gmtModifiedEnd": "{{CURRENT_TIME|datetime}}"
}

通过上述请求,我们可以获取符合条件的数据。为了确保数据质量和一致性,轻易云平台会自动进行ID检查(idCheck: true),避免重复处理相同记录。

数据转换与写入

在获取到原始数据后,需要对其进行必要的清洗和转换。例如,将日期格式统一、字段名称映射等操作。以下是一个简单的数据转换示例:

def transform_data(record):
    return {
        '出库单号': record['goodsDocNo'],
        '创建时间': record['startDate'],
        '类型': record['inouttype'],
        '来源单号': record['sourceBillNo'],
        '仓库编号': record['warehouseCode'],
        '供应商编号': record['vendCode'],
        '上游单据号': record['billNo'],
        '创建人名称': record['userName']
    }

转换后的数据可以直接写入目标系统,例如采购退货系统。这一步通常通过轻易云平台提供的数据写入功能完成,确保数据无缝流动到下游系统。

实时监控与日志记录

在整个过程中,轻易云平台提供了实时监控和日志记录功能。每个API调用、数据处理步骤都会被详细记录,方便后续审计和问题排查。这些日志不仅包括成功操作,还包括任何错误或异常情况,为技术团队提供了宝贵的信息。

通过以上步骤,我们实现了从吉客云获取并加工电商直营仓退货数据,并将其对接到采购退货系统的完整流程。这一过程充分利用了轻易云平台的数据集成功能,确保了高效、透明的数据处理。 电商OMS与ERP系统接口开发配置

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

在数据集成的生命周期中,ETL(Extract, Transform, Load)转换是至关重要的一步。本文将详细探讨如何利用轻易云数据集成平台将已经集成的源平台数据进行ETL转换,并最终写入目标平台——金蝶云星空API接口。

数据请求与清洗

在数据请求与清洗阶段,我们已经从吉客云其他出库(电商直营仓退货)获取了原始数据。接下来,我们需要将这些数据转化为金蝶云星空API接口所能接受的格式,并通过API进行写入。

数据转换与写入

为了实现这一目标,我们需要配置元数据并调用金蝶云星空的batchSave API接口。以下是关键的元数据配置及其解释:

  1. 基本配置

    {
       "api": "batchSave",
       "method": "POST",
       "idCheck": true,
       "operation": {
           "rowsKey": "array",
           "rows": 1,
           "method": "batchArraySave"
       }
    }

    这里我们指定了使用POST方法调用batchSave API,并启用了ID检查。

  2. 请求字段配置

    [
       {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据编号","value":"TLD01_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
       {"field":"FBusinessType","label":"业务类型","type":"string","describe":"业务类型","value":"CG"},
       {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{goodsdocNo}"},
       {"field":"FDate","label":"退料日期","type":"string","describe":"日期","value":"_function FROM_UNIXTIME(  ( {gmtModified} \/ 1000 )  ,'%Y-%m-%d %T' )"},
       {"field":"FStockOrgId","label":"退料组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"103"},
       {"field":"FPurchaseOrgId","label":"采购组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"103"},
       {"field":"FSupplierID","label":"供应商","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"20001080"},
       {"field":"FDESCRIPTION","label":"备注","type":"string","describe":"","value": "{memo}"}
    ]
    • FBillTypeID: 单据类型,固定值为TLD01_SYS
    • FBusinessType: 业务类型,固定值为CG
    • FBillNo: 单据编号,动态值取自源数据中的goodsdocNo
    • FDate: 退料日期,通过UNIX时间戳转换函数生成。
    • FStockOrgId, FPurchaseOrgId: 退料组织和采购组织,均为固定值103
    • FSupplierID: 供应商,固定值为20001080
    • FDESCRIPTION: 备注,动态值取自源数据中的memo
  3. 明细信息配置

    {
       "FPURMRBENTRY": [
           {"field": "FMATERIALID", "label": "物料编码", "type": "string", "describe": "", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "{{goodsDocDetailList.goodsNo}}"},
           {"field": "FUnitID", "label": "单位", "type": "string", "value": "_findCollection find FPurchaseUnitId_FNumber from 44da707b-4d02-3e20-ad97-fdd69ff7a37d where FNumber={{goodsDocDetailList.goodsNo}}", "parser":{"name": "ConvertObjectParser", "params": "FNumber"}},
           {"field": "FRMREALQTY", "label": "实退数量", "type": "", "", "", "{{goodsDocDetailList.quantity}}"}
           ...
       ]
    }

    明细信息部分包括多个字段,如物料编码、单位、实退数量等,这些字段根据源数据中的具体内容进行动态赋值。

  4. 其他请求参数

    [
        {"field" : “FormId”, “label” : “业务对象表单Id”, “type” : “string”, “describe” : “必须填写金蝶的表单ID如:PUR_PurchaseOrder”, “value” : “PUR_MRB”},
        {"field" : “Operation”, “label” : “执行的操作”, “type” : “string”, “value” : “batchSave”},
        {"field" : “IsAutoSubmitAndAudit”, “label” : “提交并审核”, “type” : “bool”,“value”:“true”},
        ...
    ]
    • FormId: 金蝶表单ID,这里为固定值PUR_MRB
    • Operation: 执行操作,固定值为batchSave
    • IsAutoSubmitAndAudit: 是否自动提交并审核,布尔值设为true。

通过以上配置,我们可以确保从吉客云获取的数据能够顺利地经过ETL转换,并最终通过金蝶云星空的API接口成功写入目标系统。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。 如何对接用友BIP接口

更多系统对接方案