如何通过executeBillQuery接口实现金蝶云数据请求与处理

  • 轻易云集成顾问-孙传友

金蝶云星空数据集成案例分享——(销售退)对账导入对接金蝶应收单

在本次技术案例中,我们将详细探讨如何通过API接口实现金蝶云星空与金蝶云星空之间的数据集成。具体场景为:将“销售退”相关的对账数据导入到系统中的应收单模块。这一过程涉及多个关键步骤,包括数据抓取、格式转换、批量写入以及实时监控。

首先,对于数据获取,我们利用金蝶云星空提供的executeBillQuery API接口,定时并可靠地抓取需要进行对接的数据。确保不会遗漏任何记录是关键,为此我们设置了严格的数据校验和捕捉机制。在处理大量数据的情形下,高效、安全地进行大批量操作尤为重要,这是通过优化的API请求策略和分段分页限流来实现的,以避免服务器过载或者触发限流保护。

其次,在数据写入部分,我们采用了batchSave API接口,将预处理后的数据信息快速且稳定地写入目标系统。特别要注意的是,不同版本或厂商定义的数据结构可能存在差异,这要求我们在执行映射操作时准确无误,同时必要时定制化映射规则以确保兼容性。

为了保证整个流程顺利进行,异常处理与错误重试机制也是必不可少的一环。当出现网络波动或服务响应超时时,通过自动重试和故障转移策略能极大提高任务成功率。此外,结合轻易云实时监控功能,可以全面掌控每一步骤的执行状态,从而及时发现并解决潜在问题,大幅提升业务透明度和整体运行效率。

这一综合方案不仅展示了API接口灵活多变的应用场景,也体现出高效稳定的数据集成方式,为企业运营提供了强有力保障。在后续章节中,将进一步详细拆解各个技术步骤及其实现细节。 如何开发钉钉API接口

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

在轻易云数据集成平台的生命周期中,调用源系统接口是数据请求与清洗阶段的关键步骤。本文将详细探讨如何通过配置元数据,使用金蝶云星空接口executeBillQuery来获取并加工数据。

配置元数据

元数据配置是实现接口调用的基础。以下是一个典型的元数据配置示例:

{
  "api": "executeBillQuery",
  "effect": "QUERY",
  "method": "POST",
  "number": "FBillNo",
  "id": "FPOOrderEntry_FEntryId",
  "name": "FBillNo",
  "idCheck": true,
  "request": [
    {"field":"FID","label":"FID","type":"string","describe":"FID","value":"FID"},
    {"field":"FEntity_FEntryID","label":"FEntity_FEntryID","type":"string","describe":"FPOOrderEntry_FEntryId","value":"FEntity_FEntryID"},
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"FBillNo"},
    {"field":"FDocumentStatus","label":"单据状态","type":"string","describe":"单据状态 \n暂存:Z \n创建:A \n审核中:B \n已审核:C","value":"FDocumentStatus"},
    {"field":"F_PBLH_BillTypeID_qtr_FNumber","label":"单据类型","type":"string","describe":"标准采购订单:CGDD01_SYS\n标准委外订单:CGDD02_SYS\n直运采购订单:CGDD03_SYS\n资产采购订单:CGDD04_SYS\n费用采购订单:CGDD05_SYS\n补料采购订单:CGDD06_SYS\nVMI采购订单:CGDD07_SYS\n现购订单:CGDD08_SYS\n分销购销采购订单:CGDD09_SYS","value":"F_PBLH_BillTypeID_qtr.FNumber"},
    {"field":"F_PBLH_shop_no_FNumber","label":"店铺编码","type":"string","describe":"标准采购:CG\n标准委外:WW\n资产采购:ZCCG\n直运采购:ZYCG\n费用采购:FYCG\nVMI采购:VMICG\n测试采购:cscg\n分销购销:DRPCG","value":"F_PBLH_shop_no.FNumber"},
    {"field":"F_PBLH_shop_no_FName","label":"店铺名称","type":"string","describe":"供应商","value":"F_PBLH_shop_no.FName"},
    {"field":"F_PBLH_shop_no_F_PBLH_custno","label":"金蝶客户编码","type":"string","value":"F_PBLH_shop_no.F_PBLH_custno"},
    {"field":"F_PBLH_trade_no","label":"订单编号","type":"string","describe":"结算方式","value":"F_PBLH_trade_no"},
    {"field":...}
  ],
  "otherRequest": [
    {"field": "Limit", "label": "最大行数", "type": "string", "describe": "最大行数", "value": "2000"},
    {"field": "StartRow", "label": "开始行索引", "type": "string", "describe": "开始行索引"},
    {"field":...}
  ],
  ...
}

请求参数解析

在配置中,request字段定义了需要从源系统获取的数据字段,每个字段包含以下信息:

  • field: 字段名
  • label: 字段标签
  • type: 数据类型
  • describe: 字段描述
  • value: 字段值

例如,FBillNo表示单据编号,FID表示唯一标识符。

otherRequest字段则定义了其他请求参数,如最大行数、开始行索引、过滤条件等。

构建请求体

根据元数据配置,我们可以构建请求体以调用金蝶云星空接口。以下是一个示例请求体:

{
  "FormId": "PBLH_WDTDZJG",
  "FieldKeys": ["FID", ..., "..."],
  ...
}

在这个请求体中,FormId指定了业务对象表单Id,FieldKeys指定了需查询的字段集合。

调用API并处理响应

通过HTTP POST方法调用API,并处理返回的数据。示例代码如下:

import requests

url = 'https://api.kingdee.com/executeBillQuery'
headers = {'Content-Type': 'application/json'}
data = {
    'FormId': 'PBLH_WDTDZJG',
    'FieldKeys': ['FID', 'FBillNo', ...],
    'FilterString': "...",
    ...
}

response = requests.post(url, headers=headers, json=data)
if response.status_code == 200:
    result = response.json()
    # 数据处理逻辑
else:
    print(f"Error: {response.status_code}")

数据清洗与转换

获取到原始数据后,需要进行清洗与转换,以满足目标系统的需求。例如,可以根据业务逻辑对特定字段进行格式化或过滤无效数据。

def clean_data(data):
    cleaned_data = []
    for record in data:
        if record['status'] == 'C':
            cleaned_record = {
                'bill_no': record['FBillNo'],
                'amount': float(record['amount']),
                ...
            }
            cleaned_data.append(cleaned_record)
    return cleaned_data

cleaned_data = clean_data(result)

写入目标系统

最后,将清洗后的数据写入目标系统。可以使用轻易云平台提供的写入功能,确保数据无缝对接。

def write_to_target_system(data):
    # 假设有一个函数write_data实现写入逻辑
    write_data(data)

write_to_target_system(cleaned_data)

通过以上步骤,我们完成了从调用金蝶云星空接口获取数据,到清洗和转换,再到写入目标系统的全过程。这一过程不仅提高了数据处理效率,还确保了数据的一致性和准确性。 打通企业微信数据接口

使用轻易云数据集成平台将销售退货对账数据导入金蝶应收单的ETL转换与写入

在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台,将已经集成的源平台数据进行ETL转换,转为金蝶云星空API接口所能够接收的格式,并最终写入目标平台。

数据请求与清洗

首先,我们需要从源平台提取销售退货对账数据,并进行必要的清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的转换和写入奠定基础。

数据转换与写入

在完成数据清洗后,我们进入生命周期的第二步,即将清洗后的数据转换为金蝶云星空API接口能够接收的格式,并通过API接口将其写入目标平台。以下是具体操作步骤:

  1. 配置API接口元数据

    根据提供的元数据配置,我们需要设置API接口的相关参数,包括请求方法、字段映射、请求体结构等。

    {
       "api": "batchSave",
       "effect": "EXECUTE",
       "method": "POST",
       "idCheck": true,
       "operation": {
           "method": "merge",
           "field": "FDate,F_PBLH_shop_no_FNumber,F_PBLH_consign_time,F_PBLH_shop_no_F_PBLH_custno,F_PBLH_trade_no,KDStock",
           "bodyName": "list",
           "bodySum": ["F_PBLH_goods_count", "F_PBLH_single_allamount"],
           "header": ["FDate", "F_PBLH_shop_no_FNumber", "F_PBLH_consign_time", "F_PBLH_shop_no_F_PBLH_custno", "F_PBLH_trade_no", "KDStock"],
           "body": ["F_PBLH_spec_no_FNumber", "F_PBLH_goods_count", "F_PBLH_single_allamount"]
       },
       ...
    }
  2. 字段映射与转换

    在字段映射过程中,需要特别注意以下几个关键字段及其转换逻辑:

    • FBillTypeID:单据类型,固定值为YSD01_SYS
    • FBillNo:单据编号,由系统自动生成或根据业务需求指定。
    • FDATE:业务日期,直接映射自源数据中的FDate
    • FCUSTOMERID:客户,通过查询MongoDB获取对应客户ID。
    • FEntityDetail:明细部分,包括物料编码、计价数量、含税单价等信息。
  3. 构建请求体

    根据元数据配置和字段映射结果,构建最终的请求体结构。例如:

    {
       "FormId": "AR_receivable",
       "Operation": "BatchSave",
       ...
       "Model": {
           ...
           "FBillTypeID": {"FNumber":"YSD01_SYS"},
           ...
           "FCUSTOMERID": {"FNumber":"_mongoQuery ..."},
           ...
           "FEntityDetail":[
               {
                   ...
                   "FMaterialId":{"FNumber":"{{list.F_PBLH_spec_no_FNumber}}"},
                   ...
               }
           ],
           ...
       }
    }
  4. 发送请求并处理响应

    使用POST方法将构建好的请求体发送到金蝶云星空API接口。确保处理好响应结果,包括成功与失败情况的处理逻辑。

实际案例分析

假设我们有一条销售退货对账记录,其部分字段如下:

{
    "FDate": "2023-10-01",
    ...
    "list":[
        {
            ...
            "F_PBLH_spec_no_FNumber":"1001",
            ...
        }
    ],
    ...
}

通过上述步骤,我们可以将这条记录转换为符合金蝶云星空API要求的格式,并成功写入目标系统。具体操作如下:

  1. 提取并清洗原始数据
  2. 根据元数据配置进行字段映射
  3. 构建并发送API请求

最终,这条记录会被成功写入金蝶云星空系统中,实现不同系统间的数据无缝对接。

通过以上步骤,我们可以高效地完成从源平台到目标平台的数据ETL转换与写入,确保业务流程的顺畅运行。 打通用友BIP数据接口

更多系统对接方案