轻易云平台ETL转换与数据写入最佳实践

  • 轻易云集成顾问-叶威宏

金蝶云星空数据集成到轻易云平台案例分享:金蝶收款单=>钉钉群消息

在企业信息化系统中,如何确保业务数据的顺畅流转和实时处理,是实现高效运营的关键。本文将详细介绍一个具体技术案例——通过轻易云数据集成平台,将金蝶云星空中的收款单数据及时推送至钉钉群,实现自动化通知和提醒。

1. 定时可靠抓取金蝶云星空接口数据

为了保证系统对接过程中不漏单,我们选择了定时触发机制,通过调用金蝶云星空提供的API executeBillQuery 来周期性地获取最新的收款单数据。这里必须注意接口调用限频问题,在配置调度任务时,需要合理设置间隔时间以避免影响系统性能。

2. 批量写入流程设计与处理方式

当大量收款单记录从金蝶云星空拉取出来后,如何快速高效地写入到轻易云平台是另一个挑战。在本方案中,通过使用批量处理功能,可以显著提高数据导入效率。同时,为了应对大规模的数据操作,对异常情况进行详细记录,并设立错误重试机制,以确保整个集成过程尽可能无误。

3. 数据格式差异管理与映射规则制定

由于金蝶云和轻易云两套系统的数据格式存在一定差异,因此在传输过程中需要进行适当的数据转换。本例中特别关注字段类型、日期格式等细节问题,通过定制化的数据映射规则,实现双方字段的一一对应,从而确保数据信息一致性。

4. 实现实时监控与日志记录功能

为了追踪每一次跨系统集成操作,我们在方案实施过程中加入了实时监控和日志记录功能。这不仅有助于了解每次执行的状态,还能及时发现并解决潜在的问题。通过GUI界面清晰展示各环节状态,让运维人员能够随时掌握当前进展,为整体透明度及安全性保驾护航。

以上就是这次技术集成项目开头部分所涉及到的重要步骤及其背后的技术考量。在接下来的部分中,我们会继续深入探讨具体配置方法以及遇到的问题和解决手段。如果你也面对类似需求,相信此文能为你的工作提供有效参考。 金蝶与MES系统接口开发配置

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

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

接口配置与调用

首先,我们需要配置元数据以便正确调用金蝶云星空的executeBillQuery接口。以下是元数据配置的关键字段:

  • api: executeBillQuery
  • method: POST
  • number: FBillNo
  • id: FBillNo
  • name: FBillNo

这些字段定义了我们将使用的API和请求方法。接下来,我们需要配置请求参数,这些参数将用于过滤和获取所需的数据。

请求参数配置

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

{
  "FormId": "AR_RECEIVEBILL",
  "FieldKeys": [
    "FID", "FBillNo", "FDOCUMENTSTATUS", "FCreateDate", 
    "FSETTLEORGID.FNumber", "FApproveDate", "FSALEORGID.FNumber",
    "FCURRENCYID.FNumber", "FDATE", "FModifyDate", 
    "FSALEERID.FNumber", "FBillTypeID.FNumber", 
    "FCONTACTUNITTYPE", "FCONTACTUNIT.FNumber",
    "FPAYUNITTYPE", "FPAYUNIT.FNumber",
    "FBUSINESSTYPE", "FPAYORGID.FNumber",
    "FSETTLECUR.FNumber", "FRECAMOUNTFOR",
    "FREMARK", "FSETTLETYPEID.FNumber",
    "FPURPOSEID.FNumber", "FHANDLINGCHARGEFOR",
    "FACCOUNTID.FNumber", "FAFTTAXTOTALAMOUNT",
    "FREALRECAMOUNTFOR", "FCOSTDEPARTMENTID.FNUMBER",
    "FCOSTID.FNUMBER", "FEXCHANGETYPE",
    "FEXCHANGERATE"
  ],
  ...
}

这些字段涵盖了收款单的各个方面,包括单据编号、状态、创建日期、审核日期、结算组织等信息。

数据请求与清洗

在发送请求时,我们可以利用分页参数和过滤条件来优化查询结果。例如:

{
  ...
  "Limit": "{PAGINATION_PAGE_SIZE}",
  "StartRow": "{PAGINATION_START_ROW}",
  ...
}

过滤条件可以设置为:

{
  ...
  "FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|dateTime}}'",
  ...
}

这样可以确保我们只获取到符合条件的数据,并且避免一次性获取过多数据导致性能问题。

数据转换与写入

一旦成功获取到数据,我们需要对其进行转换,以便后续写入钉钉群消息。在这个过程中,可以利用轻易云的数据转换功能,将原始数据映射到目标格式。例如,将收款单信息转化为钉钉群消息格式:

{
  ...
  // 转换后的钉钉消息格式
  {
      "@msgtype": {
          "@type": "@string"
      },
      "@text": {
          "@content": "@string"
      }
  }
}

通过这种方式,我们可以确保从金蝶云星空获取的数据能够无缝集成到钉钉群消息中,实现业务流程的自动化。

实践案例

假设我们需要获取所有已审核的收款单,并将其发送到指定的钉钉群。首先,配置请求参数以过滤出已审核状态(FDOCUMENTSTATUS = 'C')的收款单:

{
  ...
  "FilterString": "(FDOCUMENTSTATUS = 'C') and (FApproveDate>='{{LAST_SYNC_TIME|dateTime}}')"
}

然后,通过轻易云平台发送请求并处理返回的数据,将每条收款单信息转化为钉钉群消息格式,最终实现自动通知。

通过上述步骤,我们能够高效地调用金蝶云星空接口executeBillQuery,并对获取的数据进行清洗和转换,从而实现不同系统间的数据无缝对接。这不仅提升了业务透明度和效率,也为后续的数据处理和分析打下坚实基础。 金蝶与SCM系统接口开发配置

轻易云数据集成平台生命周期的第二步:ETL转换与数据写入

在轻易云数据集成平台中,完成数据请求与清洗后,下一步是将源平台的数据进行ETL(提取、转换、加载)处理,转为目标平台所能接收的格式,并最终写入目标平台。本文将以“金蝶收款单到钉钉群消息”的集成方案为例,详细探讨这一过程。

数据提取与转换

首先,我们需要从金蝶系统中提取收款单数据。假设我们已经通过轻易云数据集成平台完成了数据请求与清洗,接下来需要进行ETL转换。元数据配置如下:

{
  "api": "DingTalkRobotDetail",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field": "access_token", "label": "access_token", "type": "string", "describe": "111", "value": "01879799451db22bf99040e2104986af5a1f8274e790c1991a153c4d9e3446b9"},
    {"field": "name", "label": "name", "type": "string", "describe": "111", "value": "收款单审核通知"},
    {"field": "lessee_name", "label": "lessee_name", "type": "string", "describe": ""},
    {"field": "number", "label": "number", "type": "string", "describe": "", "value":"{FBillNo}"},
    {"field":"response_at","label":"response_at","type":"string","describe":"","value":"_function UNIX_TIMESTAMP('{{FDATE|datetime}}')"},
    {"field":"problem","label":"problem","type":"string","describe":"","value":"{FSALEERID_FName} {FCONTACTUNIT_FName} {FREALRECAMOUNTFOR} 已收款"},
    {"field":"solution","label":"solution","type":"string","describe":"","value":"{solution}"},
    {"field":"id","label":"id","type":"string","describe":"","value":""}
  ]
}

数据字段映射

在这个配置中,我们需要将金蝶系统中的字段映射到钉钉群消息API所需的字段:

  • access_token:用于验证API请求的令牌。
  • name:消息名称,这里固定为“收款单审核通知”。
  • lessee_name:租户名称,从金蝶系统中提取。
  • number:收款单编号,对应金蝶系统中的FBillNo
  • response_at:响应时间,使用UNIX时间戳格式化金蝶系统中的日期字段FDATE
  • problem:问题描述,包含销售员名称、客户单位名称和实际收款金额,分别对应金蝶系统中的FSALEERID_FName, FCONTACTUNIT_FName, 和 FREALRECAMOUNTFOR
  • solution:解决方案,从金蝶系统中提取。
  • id:唯一标识符,用于确保每条记录的唯一性。

API接口调用

完成字段映射后,我们需要通过POST方法将转换后的数据发送到钉钉群消息API。以下是一个示例代码片段:

import requests
import json

url = 'https://api.dingtalk.com/v1.0/robot/messages/send'
headers = {'Content-Type': 'application/json'}
payload = {
    'access_token': '01879799451db22bf99040e2104986af5a1f8274e790c1991a153c4d9e3446b9',
    'name': '收款单审核通知',
    'lessee_name': lessee_name, # 从金蝶系统提取
    'number': FBillNo, # 从金蝶系统提取
    'response_at': int(datetime.strptime(FDATE, '%Y-%m-%d').timestamp()), # 转换为UNIX时间戳
    'problem': f'{FSALEERID_FName} {FCONTACTUNIT_FName} {FREALRECAMOUNTFOR} 已收款', # 拼接字符串
    'solution': solution, # 从金蝶系统提取
    'id': unique_id # 确保唯一性
}

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

if response.status_code == 200:
    print('消息发送成功')
else:
    print('消息发送失败:', response.text)

数据写入目标平台

在上述步骤完成后,经过ETL处理的数据会被成功写入目标平台,即钉钉群消息API。通过这种方式,不同系统之间的数据能够实现无缝对接,提高了业务流程的自动化和效率。

以上就是利用轻易云数据集成平台进行ETL转换并写入目标平台的详细技术过程。希望这些技术干货能够帮助您更好地理解和应用该平台,实现高效的数据集成。 用友与MES系统接口开发配置

更多系统对接方案