ETL转换与写入:使用轻易云对接金蝶云星空

  • 轻易云集成顾问-林峰

案例分享:旺店通·跨境版数据集成到金蝶云星空

在企业构建高效的数据处理流程中,系统对接与数据集成是至关重要的一环。本案例将聚焦于“二期-旺店通跨境销售退货单&星空销售退货单(订单接口)11”项目,通过轻易云数据集成平台实现旺店通·跨境版的数据顺利转移和实时写入至金蝶云星空系统。

本次项目的核心任务包括从旺店通·跨境版获取销售退货单明细,并批量写入到金蝶云星空系统。以下详细解析技术方案中的关键步骤与挑战解决:

  1. API接口设计与对接
    旺店通·跨境版提供了一个专门用于获取销售退货单明细的API接口/api/openservices/trade/v1/getSalesRefundList。我们需要定时抓取这些数据,并且确保在过程中不漏单。此外,这些数据还会被转换并写入到金蝶云星空的API batchSave 中。

  2. 高吞吐量支持与优化
    由于业务场景下存在大量的数据交互需求,我们必须保障高吞吐量的数据写入能力。这不仅能够提高处理速度,还能提升整体效率。在此过程中,考虑分页和限流现象尤为重要,以避免服务过载或请求丢失的问题。

  3. 自定义数据转换逻辑
    在实际开发中,需要对两种不同结构的数据格式进行映射和转换。例如,将旺店通·跨境版中的某些字段准确无误地对应到金蝶云星空所需的格式。同时,我们利用轻易云平台可视化的数据流设计工具,使得整个转化过程直观且便于管理。

  4. 异常处理机制及监控告警体系
    数据传输过程难免遇到各种异常情况,例如网络延迟、权限问题等。因此,我们提前设定了一套完善的异常处理机制,包括重试策略以及错误日志记录。此外,搭建集中式的监控和告警系统,通过统一视图及时跟踪每个步骤中的状态变化,一旦发现问题即可迅速响应和修正。

  5. 保证数据质量
    支持自动化的数据质量监控功能,在源头上就能检测并排除错误或不一致性,从而保证最终导入金蝶云数据库中的每条记录都是准确可靠的。这一措施大幅减少了后续人工纠错成本,提高了整体执行效率。

通过以上几个关键点,本案例成功打破了两个系统间的信息隔阂,不仅提高了运营效率,也为今后的业务扩展 用友与CRM系统接口开发配置

调用旺店通·跨境版接口获取并加工销售退货单数据

在数据集成的生命周期中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用旺店通·跨境版的/api/openservices/trade/v1/getSalesRefundList接口来获取销售退货单数据,并进行初步的数据加工。

接口调用配置

首先,我们需要配置元数据,以便正确调用接口并获取所需的数据。以下是该接口的元数据配置:

{
  "api": "/api/openservices/trade/v1/getSalesRefundList",
  "effect": "QUERY",
  "method": "POST",
  "number": "{returnNo}",
  "id": "{returnNo}",
  "name": "{stockinNo}",
  "idCheck": true,
  "request": [
    {
      "field": "createTimeBegin",
      "label": "开始创建时间",
      "type": "datetime",
      "describe": "开始创建时间",
      "value": "{{DAYS_AGO_3|datetime}}"
    },
    {
      "field": "createTimeEnd",
      "label": "结束创建时间",
      "type": "datetime",
      "describe": "结束创建时间",
      "value": "{{CURRENT_TIME|datetime}}"
    }
  ],
  "otherRequest": [
    {
      "field": "pageNo",
      "label": "当前页码",
      "type": "string",
      "describe": "当前页码",
      "value": "_function {PAGINATION_START_PAGE}+1"
    },
    {
      "field": "pageSize",
      "label": "分页大小",
      "type": "string",
      "describe": "分页大小",
      "value": "{PAGINATION_PAGE_SIZE}"
    }
  ],

请求参数设置

在请求参数中,我们需要设置查询时间范围和分页信息:

  • createTimeBegincreateTimeEnd 分别表示查询的起始和结束时间,使用动态变量 {{DAYS_AGO_3|datetime}}{{CURRENT_TIME|datetime}} 来自动填充。
  • pageNopageSize 用于分页控制,确保我们能够逐页获取所有数据。

数据过滤条件

为了确保获取的数据符合业务需求,我们还需要设置一些过滤条件:

"condition_bk":[
  [
    {
      "field":"shopName",
      ...

这些条件可以帮助我们排除不必要的数据,例如特定店铺的订单。

数据请求与清洗

一旦配置完成,我们可以发送请求并接收响应。响应中的数据可能包含多个字段,但我们只关注以下几个关键字段:

  • returnNo: 销售退货单号
  • stockinNo: 入库单号
  • confirmInStockTime: 确认入库时间

在接收到响应后,我们需要对数据进行清洗和转换。例如,确认入库时间不能为空:

"condition":[
  [
    {
      ...

通过这种方式,我们可以确保只有有效的数据被进一步处理。

数据转换与写入

在清洗完数据后,我们可以将其转换为目标格式,并写入到目标系统中。这一步通常包括字段映射、格式转换等操作。

例如,将返回的 JSON 数据转换为数据库表格记录,或者将其导出为 CSV 文件供其他系统使用。

实时监控与调试

为了确保整个过程顺利进行,我们可以利用平台提供的实时监控功能,查看每个环节的数据流动和处理状态。如果出现问题,可以及时调试和修正。

通过以上步骤,我们实现了从旺店通·跨境版获取销售退货单数据,并进行了初步加工,为后续的数据处理打下了坚实基础。 如何对接金蝶云星空API接口

使用轻易云数据集成平台实现金蝶云星空销售退货单的ETL转换与写入

在数据集成生命周期的第二步中,关键任务是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将深入探讨如何利用轻易云数据集成平台完成这一过程。

1. API接口配置

首先,我们需要了解金蝶云星空API接口的配置要求。根据提供的元数据配置,目标API为batchSave,请求方法为POST,并且需要验证基础资料有效性。

以下是主要字段及其配置:

  • FBillTypeID:单据类型,例如标准销售退货单(XSTHD07_SYS)。
  • FBillNo:单据编号,对应源数据中的{returnNo}
  • FStockOrgIdFSaleOrgId:库存组织和销售组织,对应源数据中的{shopName}
  • FDate:日期,对应源数据中的{confirmInStockTime}
  • FRetcustId:退货客户,对应源数据中的{shopName}
  • FSettleCurrId:结算币别,例如人民币(PRE001),对应源数据中的{shopName}
  • FHeadNote:备注。
  • FOwnerIdHead:货主,对应源数据中的{shopName}

2. 数据转换与映射

在进行ETL转换时,需要特别注意字段的映射和转换逻辑。例如:

{
  "field": "FBillTypeID",
  "label": "单据类型",
  "type": "string",
  "describe": "标准销售退货单:XSTHD01_SYS\n寄售退货单:XSTHD02_SYS\n零售退货单:XSTHD03_SYS\n分销购销销售退货单:XSTHD04_SYS\nVMI销售退货单:XSTHD05_SYS\n现销退货单:XSTHD06_SYS\nB2C销售退货单:XSTHD07_SYS\nBBC销售退货单:XSTHD08_SYS\n直运销售退货单:XSTHD09_SYS",
  "parser": {
    "name": "ConvertObjectParser",
    "params": "FNumber"
  },
  "value": "XSTHD07_SYS"
}

在上述配置中,使用了ConvertObjectParser解析器,将值转换为金蝶云星空所需的格式。

3. 明细信息处理

对于明细信息(FEntity),需要处理多个SKU信息,每个SKU包含多个字段,如物料编码、实退数量、含税单价等:

{
  "field": "FEntity",
  "label": "明细信息",
  "type": "array",
  "describe": "明细信息",
  "value": "skuSpuInfoList",
  "children": [
    {
      "field": "FMaterialId",
      "label": "物料编码",
      "type": "string",
      "describe": "物料编码",
      "parser": {
        "name": "ConvertObjectParser",
        "params": "FNumber"
      },
      "value": "{{skuSpuInfoList.specNo}}"
    },
    {
      ...
    }
  ]
}

这里使用了嵌套结构来处理数组类型的数据,每个子字段都需要进行相应的解析和映射。

4. 财务信息处理

财务信息(SubHeadEntity)包括结算组织、结算币别和汇率类型等字段:

{
  ...
  {
    "field": "SubHeadEntity",
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ...
                              {
                                ...
                                {
                                  ...
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    ...
}

这些字段同样需要通过解析器进行值的转换和映射,以确保符合金蝶云星空的API要求。

5. 提交与审核

最后,在提交请求时,需要设置一些额外参数,如业务对象表单ID(FormId)、执行操作(Operation)、是否自动提交并审核(IsAutoSubmitAndAudit)等:

{
  ...
  {"field":"FormId","label":"业务对象表单Id","type":"string","describe":"必须填写金蝶的表单ID如:PUR_PurchaseOrder","value":"SAL_RETURNSTOCK"},
  {"field":"Operation","label":"执行的操作","type":"string","describe":"执行的操作","value":"BatchSave"},
  {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","describe":"提交并审核","value":"true"},
  {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","describe":"是否验证所有的基础资料有效性,布尔类,默认false(非必录)","value":"true"}
}

这些参数确保了请求能够正确地被金蝶云星空系统接收和处理。

通过上述步骤,我们可以利用轻易云数据集成平台,将源平台的数据经过ETL转换后,无缝对接到金蝶云星空系统,实现高效的数据集成。 数据集成平台可视化配置API接口

更多系统对接方案