利用轻易云的ETL功能高效写入金蝶云星空API

  • 轻易云集成顾问-杨嫦

聚水潭其他入库(线下退货)对接金蝶销售退货实战案例

在本技术案例中,我们重点解析如何通过轻易云数据集成平台,将聚水潭的其他入库(线下退货)数据无缝对接至金蝶云星空,具体场景为处理聚水潭中的other.inout.query接口获取的退货数据,并批量写入到金蝶云星空销售退货模块(batchSave)中。

首先,我们需要解决以下几个关键技术点:

1. 接口调用与数据抓取

为了确保从聚水潭系统中精准、及时地获取线下退货的数据,需要定期可靠地调用其提供的other.inout.query API。我们将设计一个调度任务,以固定时间间隔抓取最新的数据。同时,为了应对分页和限流问题,将实现多次请求组合完整返回结果集,防止数据遗漏。

2. 数据转换与映射

由于聚水潭与金蝶云星空的数据结构不同,在实际操作过程中必须进行自定义的数据转换。利用轻易云平台提供的可视化数据流设计工具,可以直观且高效地完成这一过程。在此步骤中,将把从聚水潭拉取到的原始JSON格式转为符合金蝶要求的数据结构,以便后续写入操作。

3. 高吞吐量写入能力

针对大量涌入的数据,为保证时效性和准确性,轻易云平台支持高吞吐量的批量写入功能。这种能力允许我们在短时间内将大批次数据一并导入到金蝶系统,有效提升整体流程效率。此外,通过实时监控和日志记录功能,可全程追踪每个节点上的性能状况及处理状态,一旦发生异常则自动告警。

4. 异常处理机制

在对接过程中,不可避免会出现网络波动、API限制等导致连接失败或部分数据未成功推送的问题。因此需要构建健壮的错误重试机制:当检测到某一次API调用失败时,会触发相应重试逻辑;同时也会记录详细日志以供进一步诊断分析,同时保持整个流程顺畅运作。

通过以上四个主要环节,从接口调用开始,到最终成功推送至目标系统,每一步都做到规范严谨,这样才能真正实现两大业务系统之间稳定、高效的信息传递。 企业微信与OA系统接口开发配置

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

在轻易云数据集成平台的生命周期中,第一步是调用源系统接口获取数据。本文将详细探讨如何通过调用聚水潭接口other.inout.query来获取并加工数据,以实现与金蝶销售退货系统的对接。

接口配置与请求参数

首先,我们需要配置接口的元数据。根据提供的元数据配置,other.inout.query接口使用POST方法进行调用,主要参数包括修改时间范围、单据类型、单据状态等。以下是具体的请求参数配置:

{
  "api": "other.inout.query",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "pagination": {
    "pageSize": 50
  },
  "idCheck": true,
  "request": [
    {
      "field": "modified_begin",
      "label": "修改起始时间",
      "type": "string",
      "value": "{{LAST_SYNC_TIME|datetime}}"
    },
    {
      "field": "modified_end",
      "label": "修改结束时间",
      "type": "string",
      "value": "{{CURRENT_TIME|datetime}}"
    },
    {
      "field": "so_ids",
      "label": "指定线上订单",
      "type": "string"
    },
    {
      "field": "types",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型 :其它退货,其它出库,其它进仓"
    },
    {
      "field": "status",
      "label": "单据状态",
      "type": "string",
      "describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Archive=归档,Cancelled=取消",
      “value”: “Confirmed”
    },
    {
      “field”: “page_index”,
      “label”: “开始页码”,
      “type”: “string”,
      “value”: “1”
    },
    {
       “field”: “page_size”,
       “label”: “每页行数”,
       “type”: “string”,
       “value”: "{PAGINATION_PAGE_SIZE}"
     }
   ],
   ...
}

数据请求与清洗

在调用接口时,我们需要特别注意时间范围和分页参数。modified_beginmodified_end分别表示数据的起始和结束时间,这两个参数通常使用上次同步时间和当前时间来动态生成。此外,分页参数page_indexpage_size确保我们能够逐页获取大批量的数据。

通过上述配置,我们可以发送一个POST请求到聚水潭API以获取符合条件的数据。以下是一个示例请求:

{
  “modified_begin”:“2023-01-01T00:00:00Z”,
  “modified_end”:“2023-01-31T23:59:59Z”,
  “types”:“其它退货”,
  “status”:“Confirmed”,
  “page_index”:“1”,
  “page_size”:“50”
}

数据转换与写入

在成功获取数据后,需要对数据进行清洗和转换,以便写入目标系统。在这个案例中,我们需要将聚水潭的其他入库(线下退货)数据转换为金蝶销售退货的数据格式。

例如,对于每一条记录,我们可能需要提取并转换以下字段:

  • io_id: 聚水潭中的唯一标识符,需要映射到金蝶系统中的相应字段。
  • so_id: 销售订单ID,需要进行格式化处理。
  • drop_co_name: 固定值为"销售退货",用于标识业务类型。

清洗和转换后的数据可以通过轻易云平台的内置工具进行处理,然后写入到金蝶系统中。

条件过滤

为了确保只处理符合特定条件的数据,可以使用元数据中的条件过滤配置。例如:

"condition":[
   [
     {"field":"drop_co_name","logic":"eq","value":"销售退货"},
     {"field":"type","logic":"eq","value":"其它退货"},
     {"field":"so_id","logic":"like","value":"THTZ"}
   ]
]

以上条件确保只处理业务类型为"销售退货"且单据类型为"其它退货"的数据,同时筛选出订单ID包含"THTZ"的记录。

通过以上步骤,我们能够高效地调用聚水潭接口获取所需数据,并进行必要的清洗和转换,以实现与金蝶销售退货系统的无缝对接。这不仅提高了数据处理效率,还确保了业务流程的透明度和准确性。 数据集成平台可视化配置API接口

轻易云数据集成平台:ETL转换与写入金蝶云星空API接口

在轻易云数据集成平台中,数据处理的第二步是将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨这一过程中的技术细节和实现方式。

API接口配置

在进行ETL转换时,首先需要配置好金蝶云星空的API接口。根据提供的元数据配置,我们使用batchSave接口,通过POST方法提交数据。以下是具体的配置细节:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 1,
    "method": "batchArraySave"
  },
  "request": [
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"单据类型","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"XSTHD01_SYS"},
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{io_id}"},
    {"field":"FSaleOrgId","label":"销售组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FSALEORGID_Fnumber from 9927cdb8-2b99-31f1-a379-964ddc5c777f where FBillNo={so_id}"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{modified}"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"100"},
    {"field":"FRetcustId","label":"退货客户","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"_findCollection find FRETCUSTID_Fnumber from 9927cdb8-2b99-31f1-a379-964ddc5c777f where FBillNo={so_id}"},
    {"field":"FHeadNote","label":"备注","type":null,"describe":null},
    {"field": ... }
  ],
  ...
}

数据转换与解析

在数据转换过程中,需确保每个字段的数据格式符合金蝶云星空API的要求。以下是几个关键字段及其解析方式:

  1. FBillTypeID(单据类型)

    • 使用ConvertObjectParser进行解析,将内部编码转换为金蝶系统识别的编码。
    • 配置示例:"parser":{"name": "ConvertObjectParser", "params": "FNumber"}, "value": "XSTHD01_SYS"
  2. FSaleOrgId(销售组织)

    • 从源系统中查找对应的销售组织编码,并通过_findCollection函数进行映射。
    • 配置示例:"value": "_findCollection find FSALEORGID_Fnumber from ... where FBillNo={so_id}"
  3. FRetcustId(退货客户)

    • 类似于销售组织,从源系统中查找对应的退货客户编码。
    • 配置示例:"value": "_findCollection find FRETCUSTID_Fnumber from ... where FBillNo={so_id}"
  4. FEntity(明细信息)

    • 明细信息是一个数组,其中每个元素代表一条具体的物料信息。
    • 配置示例:
      {
      "field": "FEntity",
      "label": "明细信息",
      "type": "array",
      ...
      "children":[
       {
         "field": "FMaterialId",
         ...
         "value": "{{items.sku_id}}"
       },
       ...
      ]
      }

数据写入

在完成数据转换后,将数据通过POST请求写入到金蝶云星空API接口中。以下是一个简化的请求示例:

{
  "FormId": "SAL_RETURNSTOCK",
  ...
  "Model":{
    ...
    // 主表信息
    ...
    // 明细表信息
    ...
  }
}

其中,FormId表示业务对象表单ID,例如销售退货单为SAL_RETURNSTOCK。主表和明细表的信息按照前述配置逐一填充。

自动提交与审核

为了提高效率,可以配置自动提交并审核功能:

{
  ...
  "IsAutoSubmitAndAudit": true,
  ...
}

这将确保在数据写入后,系统会自动提交并审核该单据,无需人工干预。

验证基础资料有效性

为了确保所有基础资料字段的数据有效性,可以启用验证功能:

{
  ...
  "IsVerifyBaseDataField": false,
  ...
}

设置为false表示不验证所有基础资料字段的数据有效性,根据实际需求可以调整此参数。

通过上述步骤和配置,可以实现从源平台到金蝶云星空API接口的数据无缝对接和写入。这不仅提高了数据处理效率,还确保了数据的一致性和准确性。 数据集成平台API接口配置

更多系统对接方案