ETL转换与金蝶云星空API集成技术详解

  • 轻易云集成顾问-钟家寿

旺店通·企业奇门数据集成到金蝶云星空案例分享

在系统集成领域,如何高效、准确地实现不同平台间的数据对接一直是技术团队面临的重要挑战。本篇文章将聚焦于一个实战案例,具体探讨通过轻易云数据集成平台将旺店通·企业奇门的销售出库单同步到金蝶云星空的技术方案。

在本次项目中,我们需要确保从旺店通·企业奇门的API wdt.stockout.order.query.trade接口获取大量出库单数据,并通过定制化的数据映射写入到金蝶云星空。为此,我们部署了一系列关键技术措施:

首先,为了避免漏单问题,我们使用定时任务可靠地抓取旺店通·企业奇门接口中的最新出库单信息。这一过程中,通过分页与限流策略,有效处理海量数据,提高抓取效率并防止接口被封。此外,在处理数据格式差异方面,我们针对两者的数据结构进行了细致分析和转换,以确保数据能无缝兼容。

其次,在将批量集成数据快速写入到金蝶云星空的API batchSave时,我们设置了异常处理与错误重试机制,保证即便在出现意外情况下也能恢复正常操作。同时,为监控整个过程中的各环节状态变化及可能发生的问题,我们启用了实时日志记录功能和全流程监控,这不仅提升了透明度,还大大提高了排错效率。

最后,通过针对业务需求进行定制化的数据映射配置,使得每个字段都准确对应,实现真正意义上的无缝连接。整个方案不仅提高了业务流程自动化程度,也显著减少手动干预次数,降低了操作风险。在后续内容中,将详细阐述这一解决方案实施过程中的具体步骤和技术要点。 钉钉与MES系统接口开发配置

使用轻易云数据集成平台调用旺店通·企业奇门接口获取并加工数据

在数据集成生命周期的第一步,我们需要从源系统中获取数据并进行初步加工。本文将详细介绍如何使用轻易云数据集成平台调用旺店通·企业奇门接口 wdt.stockout.order.query.trade,并对获取的数据进行处理。

接口调用配置

首先,我们需要配置接口调用的元数据。根据提供的元数据配置,我们可以看到以下关键参数:

  • API名称wdt.stockout.order.query.trade
  • 请求方法POST
  • 请求参数
    • start_timeend_time:用于增量获取数据,分别表示开始时间和结束时间。
    • status:订单状态,支持多种状态值,如已取消、已审核、已发货等。
    • src_order_nosrc_tid:系统订单编号和原始单号。
    • stockout_no:出库单号。
    • shop_noswarehouse_no:店铺编号和仓库编号,用于区分不同的店铺和仓库。
    • is_by_modified:时间查询条件,定义是否用最后修改时间来查询。

此外,还有分页参数 page_sizepage_no 用于控制返回的数据条数和页码。

请求示例

以下是一个典型的请求示例:

{
    "start_time": "{{LAST_SYNC_TIME|datetime}}",
    "end_time": "{{CURRENT_TIME|datetime}}",
    "status": "95",
    "shop_nos": "JTSP004,JTSP002,JTSP001",
    "warehouse_no": "WH001",
    "is_by_modified": "1",
    "page_size": "10",
    "page_no": "0"
}

该请求将获取状态为95(已发货)的订单,指定店铺编号为JTSP004、JTSP002、JTSP001,仓库编号为WH001,并按最后修改时间进行查询,每页返回10条记录,从第0页开始。

数据处理与转换

在获取到原始数据后,我们需要对其进行初步加工。根据元数据配置中的 formatResponse 字段,我们需要将字段 consign_time 转换为 consign_date 并格式化为日期类型。

例如,原始响应中的部分数据可能如下:

{
    "order_no": "SO123456",
    "consign_time": "2023-10-01 12:34:56"
}

经过字段转换后,将变为:

{
    "order_no": "SO123456",
    "consign_date": "2023-10-01"
}

条件过滤与批量处理

根据元数据配置中的条件过滤规则,我们还需要对返回的数据进行进一步筛选。例如,仅保留品牌名称为“金添食品”的订单,并且状态值大于等于95。

此外,对于批量处理需求,可以使用 joinBatch 字段指定批次详情表,以便在后续步骤中进行批量操作。

自动填充与延迟设置

为了简化操作,轻易云平台支持自动填充响应字段(autoFillResponse),这意味着我们不需要手动映射每个字段。此外,还可以设置延迟(delay)参数,以确保在高并发情况下系统的稳定性。

综上所述,通过合理配置接口调用参数、处理和转换响应数据,以及应用条件过滤规则,我们可以高效地从旺店通·企业奇门接口获取所需的销售出库单数据,并为后续的数据集成步骤打下坚实基础。 轻易云数据集成平台金蝶集成接口配置

轻易云数据集成平台:ETL转换与金蝶云星空API接口集成技术案例

在数据集成生命周期的第二步,ETL(提取、转换、加载)过程至关重要。本文将深入探讨如何使用轻易云数据集成平台,将源平台旺店通的销售出库单数据,转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

数据请求与清洗

在开始ETL之前,我们首先需要从源系统(旺店通)提取销售出库单数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和加载奠定基础。

数据转换与写入

在本案例中,我们将重点关注如何配置元数据,将清洗后的数据转换为金蝶云星空API接口所需的格式,并通过API写入目标系统。

元数据配置解析

以下是用于配置元数据的详细内容:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "shop_no,consign_date,order_no",
    "bodyName": "list",
    "bodySum": ["details_list__batch_list_num", "details_list_total_amount", "details_list_num"],
    "header": ["order_no", "shop_no", "consign_date", "logistics_no", "src_tids"],
    "body": ["details_list__batch_list_num", "details_list_goods_no", "details_list_total_amount", 
             "details_list_num", "details_list__batch_list_batch", "paid"]
  },
  ...
}

上述配置中,api字段指定了调用金蝶云星空API的方法为batchSave,并通过POST方法发送请求。idCheck设置为true,表示需要检查ID的唯一性。operation字段定义了合并操作的方法和字段映射关系。

请求字段解析

请求字段部分定义了具体的数据映射规则:

{
  ...
  {
    "field": "FBillTypeID",
    "label": "单据类型",
    ...
    "value": "{order_no}"
  },
  {
    ...
    "field": "FDate",
    ...
    "value": "{consign_date}"
  },
  ...
}

这些字段将源系统中的订单编号、日期等信息映射到目标系统中的相应字段。例如,FBillTypeID表示单据类型,对应源系统中的订单编号;FDate表示日期,对应源系统中的发货日期。

明细信息配置

明细信息部分详细定义了每个商品条目的具体映射规则:

{
  ...
  {
    ...
    {
      ...
      {"field":"FMaterialID","label":"物料编码","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"{{list.details_list_goods_no}}","parent":"FEntity"},
      {"parent":"FEntity","label":"计价单位","field":"FPriceUnitId","type":"string","value":"_findCollection find FBaseUnitId_FNumber from ... where FNumber={{list.details_list_goods_no}}","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
      {"field":"FUnitID","label":"库存单位","type":"string","value":"_findCollection find FBaseUnitId_FNumber from ... where FNumber={{list.details_list_goods_no}}","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
      {"parent":"FEntity","label":"实发数量","field":"FRealQty","type":"string","value":"_function case '{{items.details_list__batch_list_num}}' when 'No result' then '{{items.details_list_num}}' else '{{items.details_list__batch_list_num}}' end"},
      {"field":"FPriceUnitQty","label":"计价数量","type":"string","value":"_function case '{{items.details_list__batch_list_num}}' when 'No result' then '{{items.details_list_num}}' else '{{items.details_list__batch_list_num}}' end"},
      {"parent":"FEntity","label":"是否赠品","field":"FIsFree","type":"string","value":"_function case '{{list.details_list_total_amount}}' when '0.0000' then 'true' else 'false' end"},
      {"field":"FTaxPrice","label":"含税单价","type":"string","describe":"单价","value":"_function round({{list.details_list_total_amount}}/{{list.details_list__batch_list_num}},6)"},
      {"parent":"FEntity","label":"","field":"","type":"","value":"","parser":{"name":"","params":""}},
      {"parent":"","label":"","field":"","type":"","value":"","parser":{"name":"","params":""}}
      ...
    }
  }
}

在这个部分,每个商品条目都包括物料编码、计价单位、库存单位、实发数量、是否赠品、含税单价等信息。这些字段通过特定的解析器(如ConvertObjectParser)和函数(如 _function case ... end)进行处理,以确保数据格式符合金蝶云星空API的要求。

API调用与写入

完成元数据配置后,通过调用金蝶云星空API,将处理后的数据写入目标系统。以下是一个示例请求:

{
  ...
  {
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ... 
              {
                ... 
                { 
                  ... 
                  { 
                    ... 
                    { 
                      ... 
                      { 
                        ... 
                        { 
                          ... 
                          { 
                            ... 
                            { 
                              ... 
                              { 
                                ... 
                                { 
                                  ... 
                                  { 
                                    ... 
                                    { 
                                      ...  
                                      {   
                                        ...  
                                        {   
                                          ...  
                                          {   
                                            ...  
                                            {   
                                              ...  
                                              {   
                                                ...  
                                                {   
                                                  ...

总结

本文详细介绍了如何使用轻易云数据集成平台,将旺店通销售出库单的数据转换为金蝶云星空API接口所能接收的格式,并成功写入目标系统。通过精确配置元数据和调用API,实现了不同系统间的数据无缝对接,提高了业务流程的自动化和效率。 如何开发金蝶云星空API接口

更多系统对接方案