轻易云助力金蝶云星空供应商数据清洗与转换

  • 轻易云集成顾问-黄宏棵

金蝶云星空与金蝶云星空供应商OK系统对接集成案例

在企业信息化管理过程中,如何高效、准确地实现不同系统之间的数据对接是一个关键问题。本文将分享一个典型的技术案例,即通过轻易云数据集成平台,将金蝶云星空的供应商数据无缝集成到另一金蝶云星空实例中。

在本案例中,我们主要依赖于以下几个核心API接口:

  • 获取数据:executeBillQuery
  • 写入数据:batchSave

为了确保整个数据整合过程中的效率和精准度,我们采用了自定义的数据转换逻辑,并对API资产进行了统一管理和监控。此外,通过集中式监控和告警系统,我们可以实时跟踪各个任务的状态,及时发现并处理潜在的问题。

具体实施方案包括以下几个步骤:

  1. 获取源端数据:使用executeBillQuery API从源金蝶云星空实例中定时抓取最新的供应商信息。
  2. 自定义转换逻辑:根据业务需求,对抓取的数据进行必要的数据格式转换,以保证目标系统能够正确解析。
  3. 批量写入目标端:利用batchSave API,将处理后的供应商信息批量写入目标金蝶云星空实例。
  4. 监控与日志记录:通过可视化工具,实现全流程监控,记录每次操作日志,以便后续分析及故障排查。

该平台支持高吞吐量的数据写入能力,使得我们能够快速将大量的供应商信息集成到目标系统,大大提升了整体业务运作的时效性。同时,它提供的数据质量监控功能,有助于及时检测并纠正可能出现的数据异常。这一特性进一步保证了最终结果的可靠性和完整性。

接下来,我们将详细探讨每一步骤中的技术要点及遇到的一些实际问题,如分页处理、限流策略等,以及相应解决方案。 金蝶与SCM系统接口开发配置

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

在数据集成的生命周期中,调用源系统接口获取数据是关键的第一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,获取供应商相关数据并进行初步加工。

接口配置与请求参数

首先,我们需要配置接口的元数据。根据提供的元数据配置,executeBillQuery接口使用POST方法,主要参数包括供应商ID(FSupplierId)、编码(FNumber)、名称(FName)等字段。以下是部分关键字段及其描述:

  • FSupplierId: 供应商ID
  • FNumber: 编码
  • FName: 名称
  • FCreateOrgId_FNumber: 创建组织
  • FUseOrgId_FNumber: 使用组织
  • FDescription: 描述

此外,还包括分页参数和过滤条件等:

  • Limit: 最大行数
  • StartRow: 开始行索引
  • FilterString: 过滤条件,例如 FAuditDate>='{{LAST_SYNC_TIME|date}}'
  • FieldKeys: 需查询的字段key集合

请求示例

以下是一个请求示例,用于获取供应商信息:

{
    "api": "executeBillQuery",
    "method": "POST",
    "number": "FName",
    "id": "FSupplierId",
    "pagination": {
        "pageSize": 100
    },
    "idCheck": true,
    "request": [
        {"field":"FSupplierId","label":"FSupplierId","type":"string","value":"FSupplierId"},
        {"field":"FNumber","label":"编码","type":"string","value":"FNumber"},
        {"field":"FName","label":"名称","type":"string","value":"FName"},
        {"field":"FCreateOrgId_FNumber","label":"创建组织","type":"string","value":"FCreateOrgId.FNumber"},
        {"field":"FUseOrgId_FNumber","label":"使用组织","type":"string","value":"FUseOrgId.FNumber"},
        {"field":"FDescription","label":"描述","type":"string","value":"FDescription"}
    ],
    "otherRequest": [
        {"field": "Limit", "label": "最大行数", "type": "string", "value": "{PAGINATION_PAGE_SIZE}"},
        {"field": "StartRow", "label": "开始行索引", "type": "string", "value": "{PAGINATION_START_ROW}"},
        {"field": "FilterString", "label": "过滤条件", "type": "string", 
         "value": "(FSupplierId.FNumber = 'VEN00010' and FApproveDate>='2023-01-01')"},
        {"field": "FieldKeys", 
         "label": "需查询的字段key集合", 
         "type": "array", 
         "parser":{"name":"ArrayToString","params": ","}, 
         "value":["FSupplierId", 
                  "FNumber", 
                  "FName",
                  ...
                 ]}
    ]
}

数据处理与清洗

在获取到原始数据后,需要对其进行清洗和初步加工。清洗过程包括去除无效或重复的数据、标准化字段格式等。例如,对于日期字段,可以统一转换为标准日期格式;对于数值字段,可以确保其精度和单位一致。

以下是一个简单的数据清洗示例:

import pandas as pd

# 假设我们已经通过API获取了原始数据,并将其存储在data变量中
data = [
    {"FSupplierId": 1,  ... },
    ...
]

# 将原始数据转换为DataFrame以便处理
df = pd.DataFrame(data)

# 清洗日期格式
df['FFreezeDate'] = pd.to_datetime(df['FFreezeDate'], format='%Y-%m-%d')

# 去除重复项
df.drop_duplicates(subset=['FSupplierId'], inplace=True)

# 标准化数值字段精度
df['FMinPOValue'] = df['FMinPOValue'].astype(float).round(2)

# 输出清洗后的数据
cleaned_data = df.to_dict(orient='records')

数据转换与写入

在完成初步清洗后,可以将数据转换为目标系统所需的格式,并写入目标数据库或系统。这一步通常涉及到字段映射、格式转换等操作。例如,将供应商ID映射为目标系统中的唯一标识符,将日期格式转换为目标系统支持的格式等。

# 假设目标系统需要的数据格式如下:
target_data = []
for record in cleaned_data:
    target_record = {
        'supplier_id': record['FSupplierId'],
        'name': record['FName'],
        'created_org': record['FCreateOrgId_FNumber'],
        ...
    }
    target_data.append(target_record)

# 将转换后的数据写入目标系统(例如,通过API或数据库连接)
write_to_target_system(target_data)

通过以上步骤,我们成功地从金蝶云星空获取了供应商相关的数据,并进行了必要的清洗和转换,为后续的数据处理奠定了基础。在实际应用中,根据具体业务需求,还可以进一步优化和扩展这些步骤,以实现更复杂的数据集成任务。 如何对接金蝶云星空API接口

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在数据集成生命周期的第二步,我们需要将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,最终写入目标平台。本文将详细探讨如何通过轻易云数据集成平台实现这一过程。

元数据配置解析

首先,我们需要理解元数据配置的内容,以便正确地进行ETL转换和数据写入。以下是关键配置项的解析:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "rowsKey": "array",
    "rows": 20,
    "method": "batchArraySave"
  },
  "request": [
    {"field": "FName", "label": "名称", "type": "string", "value": "{FName}"},
    {"field": "FUseOrgId", "label": "使用组织", "type": "string", 
     "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, 
     "value": "100"},
    {"field": "FCreateOrgId", "label": "创建组织", 
     "type": "string", 
     "parser": {"name":"ConvertObjectParser","params":"FNumber"}, 
     "value":"100"}
  ],
  ...
}
  1. API和方法

    • api: batchSave:指定调用金蝶云星空的批量保存接口。
    • method: POST:使用HTTP POST方法提交请求。
  2. ID检查

    • idCheck: true:启用ID检查,确保每条记录都有唯一标识。
  3. 操作配置

    • operation包含了批量操作的详细信息:
      • rowsKey: array:表示数据以数组形式传递。
      • rows: 20:每次批量处理20条记录。
      • method: batchArraySave:具体的批量保存方法。
  4. 请求字段

    • request数组定义了需要传递给API的字段及其类型和处理方式:
      • FName:名称字段,类型为字符串,直接从源数据映射过来。
      • FUseOrgIdFCreateOrgId:使用组织和创建组织字段,类型为字符串,通过ConvertObjectParser解析器将源数据中的编号(FNumber)转换为目标系统所需格式。

ETL转换过程

在理解元数据配置后,我们可以开始实际的ETL转换过程。以下是具体步骤:

  1. 提取源数据: 从源系统中提取所需的数据,例如供应商信息,包括名称、使用组织编号、创建组织编号等。

  2. 清洗与标准化: 对提取的数据进行清洗和标准化处理,确保数据质量。例如,去除重复记录、修正格式错误等。

  3. 字段映射与转换: 根据元数据配置,将源数据字段映射到目标系统所需的字段,并进行必要的转换。例如,将源系统中的组织编号通过ConvertObjectParser解析器转换为金蝶云星空所需格式。

  4. 组装请求体: 根据元数据配置组装HTTP请求体。以下是一个示例请求体:


{
  "FormId":"BD_Supplier",
  "Operation":"batchSave",
  ...
  {
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ...
                              {
                                ...
![轻易云数据集成平台金蝶集成接口配置](https://pic.qeasy.cloud/T25.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案