使用轻易云平台实现金蝶云星空API数据集成

  • 轻易云集成顾问-吴伟

标准应付单-采购入库单(虚拟组织)OK:金蝶云星空间的数据集成技术案例

在本文中,我们将直接探讨如何利用轻易云数据集成平台,将金蝶云星空中的标准应付单与采购入库单(虚拟组织)的数据进行高效对接。本次案例重点关注的是,如何通过API接口—executeBillQuerybatchSave实现这一过程,同时解决批量集成、分页限制以及异常处理等问题。

该方案的核心是使用轻易云的集中监控和告警系统,实时跟踪每一个数据集成任务的状态和性能,以确保整个流程稳定可靠。具体步骤包括:

  1. 执行查询与抓取:首先,通过调用金蝶云星空提供的API接口 executeBillQuery 定时且可靠地获取标准应付单的数据。这一步骤必须考虑到分页和限流策略,以防止由于大量请求导致服务器负载过高或响应超时等问题。

  2. 自定义转换与映射:为了适应特定业务需求,我们需要针对不同的数据结构进行自定义转换。在这个过程中,使用可视化的数据流设计工具可以极大简化配置工作,使得复杂的逻辑变得直观明了。

  3. 快速写入目标系统:经过转换后的数据将被批量写入到目标系统,即另一端的金蝶云星空。这里我们主要依赖于 batchSave 接口,该接口支持高吞吐量的数据写入能力,从而保证了整个过程的数据处理时效性。

  4. 质量监控与错误重试:在实际操作中,不可避免会遇到各种异常情况。因此,在每个关键节点上均设置了严格的数据质量监控机制。一旦检测到任何异常情况,如网络延迟或格式错误,将立即启动错误重试机制来补救可能出现的问题,确保数据不遗漏、不重复。

  5. 优化资源管理:通过统一视图和控制台全面掌握API资产利用情况,可以实现资源优化配置。从而进一步提升整体效率,并降低运营成本。

通过上述步骤,我们不仅成功实现了两个金蝶云星空系统之间的大规模、高效、安全的数据交换,还显著提升了企业内部各项业务流程的信息透明度及自动化水平。在后续部分内容里,我们将细致分享每一个技术环节中的详细配置及注意事项。 金蝶与CRM系统接口开发配置

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

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

接口配置与调用

首先,我们需要配置元数据以便正确调用金蝶云星空的API。以下是元数据配置的关键部分:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FEntityDetail_FEntryID",
  "pagination": {"pageSize": 500},
  "idCheck": true,
  ...
}

这些配置项定义了API的基本信息,包括请求方法、分页设置和主键字段等。

请求参数构建

为了成功调用executeBillQuery接口,我们需要构建请求参数。以下是一个示例请求参数:

{
  "FormId": "AP_Payable",
  "FieldKeys": [
    "FID", 
    "FBillNo", 
    ...
  ],
  "FilterString": "FApproveDate>='{{LAST_SYNC_TIME|date}}' and FBillTypeID.FNumber = 'YFD01_SYS' and FSUPPLIERID.FName like '%虚拟%' and FSetAccountType='2' and FBillNo not like '%-%' and FPriceQty >'0' and FDATE >='2024-07-01 00:00:00'",
  "Limit": "{PAGINATION_PAGE_SIZE}",
  "StartRow": "{PAGINATION_START_ROW}"
}
  • FormId: 表单ID,必须填写金蝶的表单ID,如AP_Payable
  • FieldKeys: 查询字段集合,包含所有需要获取的数据字段。
  • FilterString: 数据过滤条件,用于筛选符合条件的数据。
  • LimitStartRow: 分页参数,控制每次查询的数据量和起始行。

数据处理与清洗

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

  1. 字段映射:将原始字段映射到目标系统所需的字段。例如,将FBillNo映射为目标系统中的单据编号。
  2. 数据格式转换:将日期、金额等字段转换为目标系统所需的格式。例如,将日期格式从YYYY-MM-DD HH:mm:ss转换为YYYYMMDD
  3. 数据过滤:进一步过滤不符合业务规则的数据。例如,剔除已作废或状态不正确的单据。

示例代码

以下是一个Python示例代码,用于调用接口并处理返回的数据:

import requests
import json

# 配置请求参数
url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
payload = {
    'FormId': 'AP_Payable',
    'FieldKeys': 'FID,FBillNo,...',
    'FilterString': ("FApproveDate>='2023-01-01' and FBillTypeID.FNumber = 'YFD01_SYS' "
                     "and FSUPPLIERID.FName like '%虚拟%' and FSetAccountType='2' "
                     "and FBillNo not like '%-%' and FPriceQty >'0' and FDATE >='2024-07-01 00:00:00'"),
    'Limit': 500,
    'StartRow': 0
}

# 调用API
response = requests.post(url, headers=headers, data=json.dumps(payload))
data = response.json()

# 数据处理与清洗
processed_data = []
for record in data:
    processed_record = {
        '单据编号': record['FBillNo'],
        '业务日期': record['FDATE'],
        # 更多字段映射...
    }
    processed_data.append(processed_record)

# 输出处理后的数据
print(json.dumps(processed_data, indent=2, ensure_ascii=False))

总结

通过以上步骤,我们可以成功调用金蝶云星空接口executeBillQuery获取并加工数据。这一过程包括元数据配置、请求参数构建、数据处理与清洗等关键环节。通过合理使用这些技术手段,可以确保数据集成过程高效、准确地完成。 用友与SCM系统接口开发配置

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

在数据集成的生命周期中,第二步是将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台。在本文中,我们将深入探讨如何通过轻易云数据集成平台,将标准应付单-采购入库单(虚拟组织)的数据转换为金蝶云星空API接口所能接收的格式,并成功写入目标平台。

1. 配置元数据

首先,我们需要配置元数据以适应金蝶云星空API接口的要求。以下是我们使用的元数据配置:

{
  "api": "batchSave",
  "method": "POST",
  "idCheck": true,
  "operation": {
    "method": "merge",
    "field": "FBillNo,FDate,FSupplierId_FName,FSettleCurrId_FNumber,FPurchaseOrgId_FNumber",
    "bodyName": "details",
    "header": ["FBillNo", "FDATE", "FSupplierId_FName", "FSettleCurrId_FNumber", "FPurchaseOrgId_FNumber", "FExchangeRate"],
    "body": ["FMATERIALID_FNumber", "FPriceQty", "FTaxPrice", "FALLAMOUNTFOR_D", "FDISCOUNTAMOUNTFOR", "FPurchaseOrgId_FNumber"]
  },
  ...
}

2. 数据请求与清洗

在ETL过程中,首先需要从源系统请求数据并进行清洗。这一步通常包括过滤无效数据、处理缺失值以及标准化字段名称等操作。由于本文重点在于转换和写入阶段,这里不做详细展开。

3. 数据转换

接下来是数据转换阶段,根据金蝶云星空API接口的要求,我们需要将源系统的数据字段映射到目标系统的字段。以下是一些关键字段的映射和转换规则:

  • 单据类型 (FBillTypeID): 固定值 "RKD01_SYS"
  • 业务类型 (FBusinessType): 固定值 "CG"
  • 单据编号 (FBillNo): 映射自源系统的 FBillNo
  • 入库日期 (FDate): 映射自源系统的 FDATE
  • 收料组织 (FStockOrgId): 固定值 "125"
  • 采购组织 (FPurchaseOrgId): 固定值 "125"
  • 供应商 (FSupplierId): 固定值 "虚拟组织"
  • 币别 (FSettleCurrId): 映射自源系统的 FSettleCurrId_FNumber
  • 汇率 (FExchangeRate): 固定值 "1"

对于明细信息(details),我们需要进一步细化每个字段:

{
  ...
  {
    "field": "FInStockEntry",
    ...
    "children": [
      {"field": "FMaterialId", ... , "value":"{{details.FMATERIALID_FNumber}}"},
      {"field": "FRealQty", ... , "value":"{FPriceQty}"},
      {"field": "FTaxPrice", ... , "value":"{{details.FTaxPrice}}"},
      {"field": "FGiveAway", ... , "value":"{FIsFree}"},
      {"field": "FTaxPrice", ... , "value":"{{details.FTaxPrice}}"},
      {"field": "FAllAmount", ... , "value":"{{details.FALLAMOUNTFOR_D}}"},
      {"field": "FDiscount", ... , "value":"{{details.FDISCOUNTAMOUNTFOR}}"}
    ]
  }
}

4. 数据写入

完成数据转换后,我们使用配置好的元数据,通过轻易云的数据集成平台,将处理后的数据发送到金蝶云星空API接口。这里使用的是 batchSave 接口,方法为 POST

{
  ...
  {
    field: 'FormId',
    value: 'STK_InStock'
  },
  {
    field: 'IsAutoSubmitAndAudit',
    value: false
  },
  {
    field: 'Operation',
    value: 'Save'
  },
  {
    field: 'IsVerifyBaseDataField',
    value: true
  },
  {
    field: 'SubSystemId',
    value: '21'
  }
}

通过上述配置和步骤,我们可以确保源系统的数据经过ETL处理后,能够准确无误地写入到金蝶云星空中,实现不同系统间的数据无缝对接。

在实际操作中,实时监控和日志记录也是非常重要的一环,可以帮助我们及时发现和解决问题,确保整个流程顺利进行。 金蝶与MES系统接口开发配置

更多系统对接方案