使用轻易云平台实现金蝶与聚水潭的ETL数据转换

  • 轻易云集成顾问-彭亮

金蝶云星空到聚水潭的数据集成技术案例

在这个技术案例中,我们将探讨如何利用轻易云数据集成平台,实现金蝶-其他入库单数据到聚水潭-其他入库单的无缝对接。本次集成方案旨在确保数据处理的高效性和准确性,重点解决了金蝶云星空与聚水潭之间的数据格式差异,以及接口调用过程中常见的问题。

首先,确保从金蝶云星空获取全部所需的数据是关键。我们使用executeBillQuery API来定时抓取金蝶云星空系统中的“其他入库单”数据。这一环节要求我们处理好分页读取和限流问题,以保证不会漏掉任何一条记录。同时,我们采取实时监控和日志记录机制,即使面对大量数据,也能快速定位并解决潜在问题。

其次,为了确保这些获取到的数据能够快速而准确地写入聚水潭,我们使用/open/jushuitan/otherinout/upload API进行批量操作。在这一过程中,一个重要要点是根据两者不同的字段和格式要求进行必要的数据映射及转换,以便适应双方系统的需求。此外,还对异常情况设置了错误重试机制,一旦出现失败,可以自动重试,有效保障了业务连续性。

通过这些措施,不仅可以实现稳定高效的数据传输,还满足了企业对实时性、可靠性的苛刻要求,为后续复杂业务场景下的大规模扩展打好了基础。 金蝶与MES系统接口开发配置

调用金蝶云星空接口executeBillQuery获取并加工数据

在数据集成的生命周期中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,并对获取的数据进行加工处理。

接口配置与请求参数

首先,我们需要配置接口的元数据,以确保能够正确调用金蝶云星空的API。以下是executeBillQuery接口的元数据配置:

{
  "api": "executeBillQuery",
  "effect": "QUERY",
  "method": "POST",
  "number": "FBillNo",
  "id": "{FEntity_FEntryID}{FBillNo}",
  "name": "FBillNo",
  "idCheck": true,
  "request": [
    {"field": "FEntity_FEntryID", "label": "FEntryID", "type": "string", "describe": "FEntryID", "value": "FEntity_FEntryID"},
    {"field": "FID", "label": "实体主键", "type": "string", "describe": "实体主键", "value": "FID"},
    {"field": "FBillNo", "label": "单据编号", "type": "string", "describe": "单据编号", "value": "FBillNo"},
    {"field": "FDocumentStatus", ...

该配置定义了请求参数和字段映射关系,包括单据编号、实体主键、库存组织、日期等关键字段。这些字段在实际调用时会被填充为具体的值。

构建请求体

为了调用executeBillQuery接口,我们需要构建一个包含所有必要参数的请求体。以下是一个示例请求体:

{
  ...
  {
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ... 
                              { 
                                ... 
                                { 
                                  ... 
                                  { 
                                    ... 
                                    { 
                                      ... 
                                      { 
                                        ... 
                                        { 
                                          ... 
                                          { 
                                            ... 
                                            { 
                                              ... 
                                              { 
                                                ... 
                                                { 
                                                  ...  
                                                  {  
                                                    ...  
                                                    {  
                                                      ...  
                                                      {  
                                                        ...  
                                                        {  
                                                          ...  
                                                          {  
                                                            ...  
                                                            {  
                                                              ...  
                                                              {  
                                                                ...  
                                                                {  
                                                                  ...   
                                                                  {   
                                                                    ...   
                                                                    {   
                                                                      ...   
                                                                      {   
                                                                        ...   
                                                                        {   
                                                                          ...   
                                                                          {   
                                                                            ...    
                                                                            {    
                                                                              FEntity_FEntryID: '12345',
                                                                              FID: '67890',
                                                                              FBillNo: 'PO2023001',
                                                                              FDocumentStatus: 'A',
                                                                              FStockOrgId_FNumber: 'ORG001',
                                                                              FDate: '2023-12-01',
                                                                              FBillTypeID: 'PURCHASE_ORDER',
                                                                              FSUPPLIERID_FNumber: 'SUP001',
                                                                              FNOTE: 'Test Note',
                                                                              FMATERIALID_FNumber: 'MAT001',
                                                                              FSTOCKID: 'STK001',
                                                                              FQty: '100',
                                                                              FPrice: '10.00',
                                                                              FAmount: '1000.00'
                                                                            }
                                                                          }
                                                                        }
                                                                      }
                                                                    }
                                                                  }
                                                                }
                                                              }
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }    
                                              }    
                                            }    
                                          }    
                                        }    
                                      }    
                                    }    
                                  }    
                                }    
                              }    
                            }    
                          }    
                        }    
                      }    
                    }    
                  }    
                }     
              }     
            }     
          }     
        }     
      }     
    },
    otherRequest: [
      {"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"100"},
      {"field":"StartRow","label":"开始行索引","type":"int","describe":"金蝶的查询分页参数","value":"0"},
      {"field":"FilterString","label":"过滤条件","type":"string","describe":"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=","value":"FApproveDate>='2023-01-01' and FSTOCKID.FNumber in ('CK007','CK011')"}
    ]
}

数据清洗与转换

在获取到原始数据后,需要对其进行清洗和转换,以便后续处理。以下是一些常见的数据清洗和转换操作:

  1. 字段重命名:将原始字段名转换为目标系统所需的字段名。
  2. 数据格式转换:例如,将日期格式从YYYY-MM-DD转换为目标系统所需的格式。
  3. 缺失值处理:对于缺失值,可以选择填充默认值或删除相关记录。

示例代码如下:

import pandas as pd

# 假设从API获取的数据存储在dataframe中
df = pd.DataFrame(api_response)

# 字段重命名
df.rename(columns={
    'FBillNo': 'OrderNumber',
    'FDate': 'OrderDate'
}, inplace=True)

# 日期格式转换
df['OrderDate'] = pd.to_datetime(df['OrderDate']).dt.strftime('%Y-%m-%d')

# 缺失值处理
df.fillna({'OrderNote': ''}, inplace=True)

数据写入目标系统

经过清洗和转换后的数据可以通过轻易云平台写入到目标系统。在这一过程中,确保数据的一致性和完整性是关键。

# 将清洗后的数据写入目标系统
write_to_target_system(df)

通过上述步骤,我们成功地完成了从金蝶云星空获取数据并进行加工处理的全过程。这一过程不仅提高了数据集成的效率,还确保了数据的一致性和准确性。 泛微OA与ERP系统接口开发配置

使用轻易云数据集成平台进行ETL转换并写入聚水潭API接口

在数据集成过程中,ETL(Extract, Transform, Load)是至关重要的步骤。本文将详细介绍如何使用轻易云数据集成平台,将金蝶系统的其他入库单数据转换为聚水潭API接口所能接收的格式,并最终写入目标平台。

1. 数据请求与清洗

首先,从金蝶系统中获取其他入库单的数据。这一步骤包括从源系统提取数据,并进行必要的清洗和预处理,以确保数据质量和一致性。在此过程中,我们需要确保所有字段都已正确映射,并且数据格式符合目标平台的要求。

2. 数据转换与写入

在完成数据请求与清洗后,接下来就是将这些数据进行转换,以适应聚水潭API接口的格式。以下是具体的元数据配置及其应用解析:

{
  "api": "/open/jushuitan/otherinout/upload",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "is_confirm", "label": "是否确认单据", "type": "string"},
    {"field": "excute_confirming", "label": "是否审核单据", "type": "string", "value": "false"},
    {"field": "wms_co_id", 
     "label": "仓库编号", 
     "type": "int", 
     "value": "{FSTOCKID}", 
     "mapping": {"target":"656fe37d5b320127d03778c2","direction":"positive"}},
    {"field": "type", 
     "label": "出入库类型", 
     "type": "string", 
     "value":"in"},
    {"field": "external_id", 
     "label":"外部单号", 
     "type":"string", 
     "value":"{FBillNo}"},
    {"field":"remark",
     "label":"备注",
     "type":"string",
     "value":"{FNOTE}"},
    {"field":"items",
     "label":"items",
     "type":"array",
     ...
核心字段解析:
  • is_confirmexcute_confirming:这两个字段用于控制单据是否确认和审核,分别映射为是否确认单据是否审核单据
  • wms_co_id:仓库编号,通过 {FSTOCKID} 映射到目标平台中的 656fe37d5b320127d03778c2
  • type:出入库类型,固定值为 in 表示入库。
  • external_id:外部单号,通过 {FBillNo} 映射。
  • remark:备注,通过 {FNOTE} 映射。
子项字段解析:

子项 items 包含多个子字段,每个字段对应一条商品明细记录:

  • sku_id:商品编码,通过 _findCollection find F_CNB_Text from 046c6ba0-144d-3f00-bde4-8532a52d4073 where FNumber={FMATERIALID_FNumber} 查询得到。
  • qty:入库数量,通过 {FQty} 映射。
  • remark:备注,通过 {FEntryNote} 映射。
  • sale_price:单价,通过 {FPrice} 映射。

这些配置确保了从金蝶系统提取的数据能够准确转换为聚水潭API所需的格式。

3. 数据写入

配置完成后,使用POST方法将转换后的数据通过 /open/jushuitan/otherinout/upload 接口写入聚水潭系统。此步骤需要确保所有必填字段均已正确填写,并且符合API接口规范。

小结

通过上述步骤,我们实现了从金蝶系统到聚水潭系统的数据无缝对接。轻易云数据集成平台提供了强大的可视化操作界面和实时监控功能,使得整个ETL过程更加透明和高效。 用友与CRM系统接口开发配置

更多系统对接方案