数据集成最佳实践:轻易云平台在金蝶与钉钉中的应用

  • 轻易云集成顾问-李国敏

金蝶云星空数据集成到钉钉案例分享:传给金蝶后,回传钉钉提示(已审核)④

在企业信息化建设中,实现不同系统间的数据无缝对接是提高业务效率和透明度的关键。本文将详细分享一个成功的系统对接集成案例,即如何将金蝶云星空中的数据集成至钉钉,并确保整个流程高效、可靠。

本次方案命名为“传给金蝶后,回传钉钉提示(已审核)④”,我们利用轻易云数据集成平台,对来自金蝶云星空的数据进行精准抓取,处理,并最终批量写入到钉钉,实现了从财务管理到办公协同的全链路打通。在此过程中,我们重点解决了如下技术难题:

  1. 保证数据不漏单:通过调用executeBillQuery接口定时抓取金蝶云星空中的最新审批单据,并实施分页处理和限流措施,确保每一条记录都被准确捕捞。
  2. 快速大规模数据写入:采用轻易云提供的批量操作功能,高效地将大量审批结果推送至钉ding API:topapi/process/instance/comment/add,从而避免人工手动录入环节,提高工作效率。
  3. 异常处理与错误重试机制:在网络波动或者服务端响应异常情况下,通过开发自定义重试逻辑,以最大程度上减少因临时故障导致的数据丢失或重复提交问题。
  4. 实时监控与日志记录:搭建完善的数据处理过程监控体系,通过轻易云提供的可视化界面及日志功能,实现对各个步骤以及整体进程的实时追踪和审计。

例如,在调用金蝶API获取审批单据时,我们使用了executeBillQuery接口来进行高效查询,并根据页码参数实现逐页获取,以应对海量数据。而在推送至顶顶消息提醒方面,则使用了topapi/process/instance/comment/add API,将每次同步结果作为评论附加到相应任务或流程实例中,从而实现及时通知相关人员执行下一步操作。

通过这种方式,我们不仅保障了业务流程的一致性,还极大提升了跨系统协作的便捷性,为企业日常运营带来了显著帮助。以下内容将具体展示此次集成方案中的技术细节及要点分析。 企业微信与ERP系统接口开发配置

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

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

接口配置与调用

首先,我们需要配置和调用金蝶云星空的executeBillQuery接口。以下是元数据配置的关键部分:

{
  "api": "executeBillQuery",
  "method": "POST",
  "number": "FBillNo",
  "id": "FPAYBILLENTRY_FEntryID",
  "pagination": {
    "pageSize": 500
  },
  "idCheck": true,
  "condition": [
    [
      {
        "field": "FPAYORGID",
        "logic": "eq",
        "value": "9.01"
      }
    ]
  ],
  ...
}

该配置指定了API名称、请求方法、分页设置以及查询条件。特别需要注意的是分页设置和查询条件,这些参数确保了我们能够高效地获取所需的数据。

请求字段与响应处理

在请求中,我们需要指定一系列字段,以确保获取到完整且准确的数据。以下是部分请求字段配置:

{
  "request": [
    {"field":"FPAYBILLENTRY_FEntryID","label":"FPAYBILLENTRY_FEntryID","type":"string","value":"FPAYBILLENTRY_FEntryID"},
    {"field":"FID","label":"实体主键","type":"string","value":"FID"},
    {"field":"FBillNo","label":"单据编号","type":"string","value":"FBillNo"},
    {"field":"FDOCUMENTSTATUS","label":"单据状态","type":"string","value":"FDOCUMENTSTATUS"},
    {"field":"FCreatorId","label":"创建人","type":"string","value":"FCreatorId"},
    ...
  ]
}

这些字段涵盖了单据编号、单据状态、创建人等关键信息。在实际调用API时,这些字段将作为查询参数发送给金蝶云星空系统。

分页与过滤条件

为了处理大量数据,我们使用分页机制。以下是分页相关的配置:

{
  "otherRequest": [
    {"field":"Limit","label":"最大行数","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_PAGE_SIZE}"},
    {"field":"StartRow","label":"开始行索引","type":"string","describe":"金蝶的查询分页参数","value":"{PAGINATION_START_ROW}"},
    ...
  ]
}

通过设置LimitStartRow,我们可以控制每次请求返回的数据量,从而避免一次性获取过多数据导致性能问题。此外,我们还可以通过过滤条件来精确筛选所需数据:

{
  "otherRequest": [
    ...
    {"field":"FilterString","label":"过滤条件","type":"string","describe":"示例写法 FSupplierId.FNumber = 'VEN00010' and FApproveDate>=","value":"FApproveDate>='{{LAST_SYNC_TIME|dateTime}}' and FDOCUMENTSTATUS='C'"}
  ]
}

上述过滤条件示例中,筛选了审批日期大于上次同步时间且单据状态为已审核的数据。

数据清洗与转换

在获取到原始数据后,需要进行清洗和转换,以满足目标系统的要求。例如,可以根据业务需求对日期格式进行转换,对金额字段进行单位换算等操作。这一步骤通常在轻易云平台内通过可视化操作界面完成,确保每个环节都透明可见。

实际案例

假设我们需要从金蝶云星空系统中获取所有已审核且付款组织为"9.01"的付款单,并将这些数据传输到钉钉系统进行提示。具体步骤如下:

  1. 配置API请求:按照上述元数据配置,设置API请求参数,包括分页、过滤条件等。
  2. 调用API:通过轻易云平台发起HTTP POST请求,调用executeBillQuery接口。
  3. 处理响应:解析返回的数据,根据业务需求进行清洗和转换。
  4. 传输到钉钉:将处理后的数据传输到钉钉系统,并触发相应的提示功能。

通过以上步骤,我们实现了从金蝶云星空系统获取并加工数据,并将其无缝集成到钉钉系统中。这不仅提高了数据处理效率,还增强了业务流程的透明度和可控性。 泛微OA与ERP系统接口开发配置

数据集成生命周期第二步:ETL转换与写入钉钉API接口

在数据集成的生命周期中,将已经集成的源平台数据进行ETL(提取、转换、加载)转换,并最终写入目标平台是至关重要的一环。本文将深入探讨如何利用轻易云数据集成平台,将源数据转换为钉钉API接口能够接收的格式,并成功写入目标平台。

钉钉API接口配置

为了将数据写入钉钉,我们需要配置相应的API接口。在本案例中,我们使用的是topapi/process/instance/comment/add接口,该接口用于向指定的审批实例添加评论。以下是具体的元数据配置:

{
  "api": "topapi/process/instance/comment/add",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "request",
      "label": "请求对象",
      "type": "object",
      "children": [
        {
          "field": "process_instance_id",
          "label": "审批实例ID",
          "type": "string",
          "describe": "可通过调用获取审批实例ID列表接口获取。",
          "value": "_findCollection find id from eee23ce9-d281-35dd-a699-5844e3317ac7 where business_id={FBillNo}",
          "parent": "request"
        },
        {
          "field": "text",
          "label": "评论的内容",
          "type": "string",
          "value": "已审核",
          "parent": "request"
        },
        {
          "field": "comment_userid",
          "label": "评论人的userid",
          "type": "string",
          "value": "112018120420563028",
          "parent": "request"
        }
      ]
    }
  ]
}

数据提取与转换

在ETL过程中,首先需要从源平台提取数据。假设我们从金蝶系统中获取业务单据编号(FBillNo),然后根据该编号查找对应的审批实例ID。

  1. 提取审批实例ID

    _findCollection find id from eee23ce9-d281-35dd-a699-5844e3317ac7 where business_id={FBillNo}

    这段SQL查询语句用于从金蝶系统中查找对应业务单据编号的审批实例ID。

  2. 构建请求对象: 根据提取到的数据,构建符合钉钉API要求的请求对象。请求对象包含三个字段:

    • process_instance_id: 审批实例ID。
    • text: 评论内容,这里固定为"已审核"。
    • comment_userid: 评论人的用户ID,这里固定为"112018120420563028"。

数据写入目标平台

完成数据转换后,下一步是将构建好的请求对象通过POST方法发送到钉钉API接口。以下是具体操作步骤:

  1. 构建HTTP请求: 使用轻易云提供的HTTP模块,设置请求URL为https://oapi.dingtalk.com/topapi/process/instance/comment/add,并选择POST方法。

  2. 设置请求头和参数: 请求头部需要包含必要的认证信息,如Access Token等。参数部分则根据元数据配置中的字段进行填充。

  3. 发送请求并处理响应: 发送HTTP请求后,需要处理响应结果,确保评论成功添加到指定审批实例。如果出现错误,则需要记录日志并进行相应处理。

以下是一个示例代码片段,用于演示如何发送HTTP请求:

import requests

url = 'https://oapi.dingtalk.com/topapi/process/instance/comment/add'
headers = {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
}
data = {
    'request': {
        'process_instance_id': 'EXAMPLE_INSTANCE_ID',
        'text': '已审核',
        'comment_userid': '112018120420563028'
    }
}

response = requests.post(url, headers=headers, json=data)

if response.status_code == 200:
    print('评论成功添加')
else:
    print(f'添加评论失败: {response.text}')

通过上述步骤,我们实现了将源平台的数据经过ETL转换后,成功写入到目标平台——钉钉。在整个过程中,轻易云数据集成平台提供了强大的支持,使得复杂的数据处理和系统集成变得更加高效和透明。 金蝶与SCM系统接口开发配置

更多系统对接方案