使用轻易云平台将星辰采购入库单转换并导入聚水潭系统

  • 轻易云集成顾问-胡秀丛

从金蝶云星辰V2到聚水潭的采购入库单数据集成技术实现

在这一系统对接案例中,实现了从金蝶云星辰V2获取采购入库单数据并高效地写入至聚水潭系统。本文将详细解析如何利用金蝶云星辰V2提供的API接口(/jdy/v2/scm/pur_inbound)抓取数据,并通过轻易云平台进行处理后,调用聚水潭的API接口(/open/jushuitan/purchasein/upload)完成数据上传。

首先,我们面临的一大关键技术点是确保集成过程中的数据不漏单。为此,我们采用定时可靠的数据抓取机制,通过配置定期任务定时获取最新的采购入库单信息。此外,为解决接口分页和限流的问题,我们设计了一套灵活的分页抓取策略,能够自适应调整每次请求的数据条数和间隔时间,从而避免超出API使用限制。

其次,在大量采购入库单数据需要快速写入到聚水潭时,高效率的数据处理成为重中之重。在这里,批量操作起到了关键作用。我们将从金蝶云星辰V2获取到的大量订单先进行清洗和格式转换,再批量推送至聚水潭。这不仅提升了传输速度,还确保了两端系统之间的数据一致性。

最后,关于对接异常处理与错误重试机制也是不可忽视的一环。当出现网络问题或API调用失败时,我们配置了智能监控与日志记录功能,不仅实时捕捉异常事件,还能自动触发错误重试逻辑,从而保证集成工作的稳定性和连续性。同时,对不同类型的异常做出相应级别的告警,以便运维人员及时排查故障。

通过以上几个核心步骤,本方案不仅成功实现了从金蝶云星辰V2到聚水潭采购入库单的数据无缝对接,更在实际运行过程中展现出了极高的可靠性与效率。以下部分内容将进一步剖析具体实施方案与代码实例细节... 用友BIP接口开发配置

调用金蝶云星辰V2接口/jdy/v2/scm/pur_inbound获取并加工数据的技术案例

在数据集成过程中,调用源系统接口获取数据是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用金蝶云星辰V2接口/jdy/v2/scm/pur_inbound,获取采购入库单数据并进行初步加工。

接口基本信息

接口路径:/jdy/v2/scm/pur_inbound

请求方法:GET

主要功能:查询采购入库单信息

请求参数配置

根据元数据配置,我们需要设置以下请求参数:

  • enable: 可用状态,1表示可用。
  • search: 模糊搜索字段,可以根据名称、编码、规格、条形码进行搜索。
  • parent_id: 商品类别ID。
  • isdataperm: 数据权限校验,默认值为false。
  • create_start_time: 创建开始时间戳,-1表示不过滤。
  • create_end_time: 创建结束时间戳,-1表示不过滤。
  • modify_start_time: 修改开始时间戳,使用函数_function {LAST_SYNC_TIME}*1000自动填充。
  • modify_end_time: 修改结束时间戳,使用函数_function {CURRENT_TIME}*1000自动填充。
  • page: 当前页,默认值为1。
  • page_size: 每页显示条数,默认值为10,最大值为100。
  • bill_status: 单据状态,默认值为C。

示例请求参数配置如下:

{
  "enable": "1",
  "search": "",
  "parent_id": "",
  "isdataperm": "false",
  "create_start_time": "-1",
  "create_end_time": "-1",
  "modify_start_time": "_function {LAST_SYNC_TIME}*1000",
  "modify_end_time": "_function {CURRENT_TIME}*1000",
  "page": "1",
  "page_size": "10",
  "bill_status": "C"
}

数据过滤条件

为了确保传输的数据符合业务需求,我们可以设置过滤条件。例如,不传输备注字段包含“不传输”的记录。过滤条件配置如下:

{
  "field": "remark",
  "logic": "neqv2",
  "value": "不传输"
}

调用接口获取数据

通过上述配置,我们可以调用金蝶云星辰V2接口获取采购入库单数据。以下是一个示例API调用代码片段:

import requests

url = 'https://api.kingdee.com/jdy/v2/scm/pur_inbound'
params = {
    'enable': '1',
    'search': '',
    'parent_id': '',
    'isdataperm': 'false',
    'create_start_time': '-1',
    'create_end_time': '-1',
    'modify_start_time': int(time.time()) - 86400, # 假设上次同步时间为24小时前
    'modify_end_time': int(time.time()),
    'page': '1',
    'page_size': '10',
    'bill_status': 'C'
}

response = requests.get(url, params=params)
data = response.json()

# 数据过滤
filtered_data = [item for item in data if item['remark'] != '不传输']

数据加工与处理

在获取到原始数据后,我们需要对其进行初步加工,以便后续的数据转换与写入操作。常见的数据加工操作包括:

  1. 字段映射:将源系统的字段名映射到目标系统的字段名。例如,将bill_no映射为目标系统中的订单编号字段。
  2. 数据清洗:去除无效或重复的数据,例如删除空值或格式错误的记录。
  3. 格式转换:将日期、金额等字段转换为目标系统所需的格式。

示例代码如下:

def process_data(raw_data):
    processed_data = []

    for item in raw_data:
        processed_item = {
            'order_number': item['bill_no'],
            # 添加其他必要的字段映射和转换
        }
        processed_data.append(processed_item)

    return processed_data

processed_data = process_data(filtered_data)

通过上述步骤,我们完成了从金蝶云星辰V2接口获取采购入库单数据并进行初步加工的全过程。这些处理后的数据将作为后续生命周期阶段的数据输入,实现最终的数据集成目标。 用友与外部系统接口集成开发

使用轻易云数据集成平台将星辰采购入库单转换并写入聚水潭API接口

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

元数据配置解析

以下是我们需要配置的元数据,以便将星辰系统的采购入库单数据正确映射到聚水潭API接口:

{
  "api": "/open/jushuitan/purchasein/upload",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "is_confirm", "label": "是否自动确认单据", "type": "string", "value": "false"},
    {"field": "excute_confirming", "label": "是否自动审核", "type": "string", "value": "false"},
    {"field": "wms_co_id", "label": "分仓编号", "type": "int", "value": "{{material_entity.stock_number}}"},
    {"field": "supplier_id", "label": "供应商id", "type": "int", "value": "{supplier_number}"},
    {"field": "external_id", "label": "外部采购单号", "type": "string", 
        "describe":"单据上传成功之后对应页面外部单号","value":"{bill_no}"},
    {"field":"remark","label":"备注","type":"string","value":"{remark}"},
    {
        "field":"items","label":"明细列表","type":"array","value":"material_entity",
        "children":[
            {"field":"sku_id","label":"商品编码","type":"string","value":"{{material_entity.material_number}}"},
            {"field":"qty","label":"数量","type":"int","value":"{{material_entity.qty}}"},
            {"field":"price","label":"单价","type":"float","value":"{{material_entity.tax_price}}"},
            {"field":"remark","label":"明细备注","type":"string","value":"{{material_entity.comment}}"}
        ]
    }
  ],
  "buildModel": true
}

数据请求与清洗

在ETL流程中,首先要从源系统(星辰)请求数据并进行清洗。清洗后的数据需要符合目标系统(聚水潭)的格式要求。以下是一个示例:

{
  "_id" : ObjectId("5f6a9e3e2f8b9c0017d7a1c1"),
  "_class" : “com.xingchen.purchase.PurchaseOrder”,
  “bill_no” : “PO20200923”,
  “supplier_number” : “1001”,
  “remark” : “紧急订单”,
  “material_entity” : [
    {
      “stock_number” : “2001”,
      “material_number” : “A1001”,
      “qty” : 100,
      “tax_price” : 10.5,
      “comment” : “优先处理”
    },
    {
      “stock_number” : “2001”,
      “material_number” : “A1002”,
      “qty” : 200,
      “tax_price” : 20.0,
      “comment” : null
    }
  ]
}

数据转换与写入

在完成数据清洗后,我们需要按照聚水潭API接口的要求进行转换,并通过POST方法将其写入目标平台。以下是具体的转换步骤:

  1. 字段映射:将星辰系统中的字段映射到聚水潭API所需的字段。例如,将bill_no映射到external_id,将supplier_number映射到supplier_id等。

  2. 数组处理:处理包含多个物料明细的数组字段material_entity,并将其转换为聚水潭API所需的格式。

  3. 构建请求体:根据元数据配置构建最终的请求体。

以下是构建后的请求体示例:

{
    "is_confirm" : false,
    "excute_confirming" : false,
    "wms_co_id" : 2001,
    "supplier_id" : 1001,
    "external_id" : PO20200923,
    "remark" :"紧急订单",
    "items":[
        {
            "sku_id" :"A1001",
            "qty" :100,
            "price" :10.5,
            "remark" :"优先处理"
        },
        {
            "sku_id" :"A1002",
            "qty" :200,
            "price" :20.0
        }
   ]
}

API调用

最后,通过HTTP POST方法将上述构建好的请求体发送到聚水潭API接口:

POST /open/jushuitan/purchasein/upload HTTP/1.1
Host: api.jushuitan.com
Content-Type: application/json

{
   ... // 请求体内容
}

通过这种方式,我们实现了从星辰系统到聚水潭系统的数据无缝对接,确保了采购入库单信息的准确传递和及时处理。这一过程极大地提高了业务流程的自动化程度和效率。 用友与MES系统接口开发配置

更多系统对接方案