用友BIP接口调用与轻易云数据加工:从配置到实现

  • 轻易云集成顾问-曹润

2C-YS销售单查询-成功案例分享:用友BIP数据集成到轻易云集成平台的实现

在本技术案例中,我们将重点介绍一个实际运行的解决方案—“2C-YS销售单查询”,展示如何高效地将用友BIP系统的数据集成到轻易云数据集成平台。该方案成功地实现了从用友BIP接口(/buly7upu/commonProductCls/commonProduct/saleOrderList)获取销售单数据,并通过轻易云API写入操作,确保了业务数据流的完整性和准确性。

首先,我们需要解决的数据对接挑战包括:

  1. 高吞吐量的数据写入能力:由于业务需求,每天需处理大量销售订单数据,因此要求我们的系统具备快速的数据处理和写入能力。
  2. 分段抓取与分页问题:用友BIP提供的接口存在分页限制,需要我们设计合理的数据抓取机制,确保所有记录都能无遗漏地被检索。
  3. 自定义数据转换逻辑:两套系统的数据结构有所不同,为此需要进行相应的映射和转换,以适配各自的业务需求。
  4. 集中监控与告警系统:为了保证数据传输过程中的透明度和实时监控,我们使用了集中监控工具来跟踪每一笔交易状态,并及时触发告警通知。
  5. 异常处理与错误重试机制:网络波动或其他外部因素可能导致短暂性的错误发生,健壮的重试机制能够有效保障任务的一致性。

针对以上挑战,通过以下几个步骤具体实施了解决方案:

  1. 定时可靠抓取

    • 定义定时任务调度器,根据预设时间周期自动调用用友BIP API接口以批量方式获取最新销售单列表。在这个过程中要特别注意分页参数设置,以避免出现漏单情况。
  2. 动态转换与映射

    • 利用轻易云平台强大的可视化数据流设计工具,对获取到的大量原始字段进行清洗、加工以及自定义逻辑转化,从而形成符合目标系统要求的新格式。同时,将这些规则模板化,使得后续类似场景配置更加简便快捷。
  3. 大规模响应与性能优化

    • 针对API请求限流策略,在客户端架构层面做出调整,如采用请求队列、缓存等技术手段提升并发访问效率,同时结合数据库连接池等优化方法,提高整体吞吐性能。
  4. 实时监控反馈

    • 借助轻易云提供的集中式监控模块,管理员可以随时查看当前正在执行及历史完成情况,包括关键指标如响应延迟、丢 企业微信与OA系统接口开发配置

      用友BIP接口调用与数据加工技术案例

在数据集成的生命周期中,调用源系统API接口是至关重要的一步。本文将详细介绍如何通过轻易云数据集成平台调用用友BIP接口/buly7upu/commonProductCls/commonProduct/saleOrderList,并对获取的数据进行加工处理。

调用接口配置

首先,我们需要配置API请求的元数据。以下是关键的配置项:

  • API路径: /buly7upu/commonProductCls/commonProduct/saleOrderList
  • 请求方法: POST
  • 请求参数:
    • pageIndex: 页码,默认值为1
    • pageSize: 每页行数,默认值为100
    • code: 单据编码
    • nextStatusName: 订单状态,默认值为DELIVERGOODS
    • open_orderDate_begin: 制单日期开始时间
    • open_orderDate_end: 制单结束时间
    • open_hopeReceiveDate_begin: 期望收货开始时间
    • open_hopeReceiveDate_end: 期望收货截止
    • open_vouchdate_begin: 单据开始时间,默认值为10天前
    • open_vouchdate_end: 单据截止时间,默认值为当前时间
    • isSum: 查询表头,默认值为false
    • simpleVOs: 查询条件,包括两个过滤条件:
    • 条件1:字段auditTime在10天前到当前时间之间
    • 条件2:字段transactionTypeId等于1871512475364491266
    • queryOrders: 排序字段,按auditTime降序排列

请求参数示例

{
    "pageIndex": "1",
    "pageSize": "100",
    "code": "UO-20220513000001",
    "nextStatusName": "DELIVERGOODS",
    "open_orderDate_begin": "2022-05-13 00:00:00",
    "open_orderDate_end": "2022-05-13 23:59:59",
    "open_hopeReceiveDate_begin": "2022-05-13 00:00:00",
    "open_hopeReceiveDate_end": "2022-05-13 23:59:59",
    "open_vouchdate_begin": "{{DAYS_AGO_s10|date}}",
    "open_vouchdate_end": "{{CURRENT_TIME|date}}",
    "isSum": "false",
    "simpleVOs": [
        {
            "field1": {
                "field": "auditTime",
                "op": "between",
                "value1": "{{DAYS_AGO_s10|datetime}}",
                "value2": "{{CURRENT_TIME|datetime}}"
            }
        },
        {
            "field2": {
                "field": "transactionTypeId",
                "op": "eq",
                "value1": "1871512475364491266"
            }
        }
    ],
    "queryOrders": [
        {
            "field": "auditTime",
            "order": "desc"
        }
    ]
}

数据格式化与转换

在获取到数据后,需要对数据进行格式化和转换。根据元数据配置中的formatResponse部分,我们需要将以下字段进行重命名和类型转换:

  • 将字段id重命名为new_id
  • 将字段orderDetailId重命名为new_orderDetailId
  • 将字段oriTaxUnitPrice重命名为new_oriTaxUnitPrice

所有这些字段都需要转换为字符串类型。

格式化代码示例

def format_response(data):
    formatted_data = []

    for item in data:
        formatted_item = {
            'new_id': str(item.get('id', '')),
            'new_orderDetailId': str(item.get('orderDetailId', '')),
            'new_oriTaxUnitPrice': str(item.get('oriTaxUnitPrice', ''))
        }
        formatted_data.append(formatted_item)

    return formatted_data

# 假设response_data是从API获取的原始数据列表
response_data = [
    {"id":"123", ...},
    {"id":"456", ...}
]

formatted_data = format_response(response_data)

实时监控与调试

在实际操作中,通过轻易云平台提供的全透明可视化界面,可以实时监控数据流动和处理状态。这不仅有助于快速定位问题,还能确保每个环节都清晰可见,提高业务透明度和效率。

通过上述步骤,我们可以高效地调用用友BIP接口并对返回的数据进行必要的加工处理,为后续的数据写入和使用打下坚实基础。 企业微信与OA系统接口开发配置

数据转换与写入:轻易云数据集成平台API接口技术案例

在轻易云数据集成平台的生命周期中,数据转换与写入是至关重要的一步。本文将详细探讨如何将已经集成的源平台数据进行ETL转换,转为目标平台轻易云集成平台API接口所能够接收的格式,并最终写入目标平台。

API接口元数据配置解析

根据提供的元数据配置,我们需要使用以下参数来进行数据写入操作:

{
  "api": "写入空操作",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true
}

这些配置参数定义了我们需要调用的API接口以及其具体操作方式。下面我们将逐一解析这些参数,并展示如何在实际操作中应用。

数据转换步骤

  1. 数据请求与清洗:这一步骤已经在生命周期的第一阶段完成,我们假设此时已经获得了清洗后的源平台数据。

  2. 数据转换:为了使源平台的数据符合目标平台API接口的要求,我们需要进行必要的数据转换。具体步骤如下:

    • 字段映射:首先,需要确定源数据中的字段与目标API接口所需字段之间的映射关系。例如,源数据中的“销售单号”可能需要映射到目标API中的“order_id”字段。
    • 格式转换:确保源数据中的日期、数值等字段格式符合目标API接口的要求。例如,将日期格式从“YYYY-MM-DD”转换为“YYYYMMDD”。
  3. 生成请求体:根据API接口要求,构建HTTP POST请求体。假设我们有以下源数据:

    {
     "sales_order_no": "SO123456",
     "order_date": "2023-10-01",
     "customer_id": "CUST7890"
    }

    转换后的请求体应符合目标API接口需求,例如:

    {
     "order_id": "SO123456",
     "date": "20231001",
     "customer_id": "CUST7890"
    }

数据写入操作

根据元数据配置,我们需要使用HTTP POST方法将转换后的数据写入目标平台。具体步骤如下:

  1. 构建HTTP请求:利用编程语言(如Python)构建HTTP POST请求。例如:

    import requests
    
    url = 'https://api.qingyiyun.com/write'
    headers = {'Content-Type': 'application/json'}
    
    payload = {
       'order_id': 'SO123456',
       'date': '20231001',
       'customer_id': 'CUST7890'
    }
    
    response = requests.post(url, json=payload, headers=headers)
    
    if response.status_code == 200:
       print("Data written successfully")
    else:
       print(f"Failed to write data: {response.status_code}")
  2. 执行ID检查:根据元数据配置中的idCheck: true,在发送请求前需要确保每条记录的唯一性。如果存在重复ID,则需要进行处理(如更新或跳过)。

  3. 处理响应:检查响应状态码和返回信息,以确认数据是否成功写入。如果失败,需要记录错误信息并采取相应措施。

实际案例分析

假设我们正在处理一个2C-YS销售单查询项目,成功获取并清洗了销售单相关的数据。接下来,我们按照上述步骤进行ETL转换和写入操作:

  1. 字段映射与格式转换

    • 源字段 sales_order_no 映射到目标字段 order_id
    • 源字段 order_date 格式从 YYYY-MM-DD 转换为 YYYYMMDD
    • 源字段 customer_id 保持不变
  2. 构建并发送HTTP POST请求

    import requests
    
    url = 'https://api.qingyiyun.com/write'
    headers = {'Content-Type': 'application/json'}
    
    payload = {
        'order_id': 'SO123456',
        'date': '20231001',
        'customer_id': 'CUST7890'
    }
    
    response = requests.post(url, json=payload, headers=headers)
    
    if response.status_code == 200:
        print("Data written successfully")
    else:
        print(f"Failed to write data: {response.status_code}")

通过以上步骤,我们成功地将源平台的数据经过ETL转换后,写入到目标平台轻易云集成平台中。这一过程不仅保证了数据的一致性和准确性,还提升了系统间的数据交互效率。

总之,通过合理利用轻易云提供的API接口和元数据配置,可以高效地实现不同系统间的数据集成,为企业的数据管理和业务决策提供坚实的基础。 打通用友BIP数据接口

更多系统对接方案