ETL数据转换:从金蝶云星空到钉钉的完整操作流程

  • 轻易云集成顾问-彭亮

金蝶云星空与钉钉的数据集成——实现精准高效的信息流动

在企业管理软件中,金蝶云星空和钉钉各自扮演着重要角色,一个提供了强大的财务管理功能,而另一个则是高效的协同办公平台。为了更好地将这两者结合,通过轻易云数据集成平台,我们成功实现了【资料】金蝶&钉钉—【付款单位】客户项目中的系统对接。本案例将主要展示如何利用API接口,确保数据的准确传输、高效处理以及异常情况的应对。

首先,要确保从金蝶云星空读取的数据完整无遗漏,我们调用executeBillQuery接口进行定时可靠的数据抓取。通过灵活配置分页及限流策略,有效解决了API使用中的限制问题。同时,为了解决数据格式差异,在传输过程中进行了必要的数据转换,以符合钉钉的要求。

我们采用topapi/processinstance/create API来快速写入大量数据至钉钉。在这个过程中,不仅需要处理不同系统间的数据映射,还要保证每一条记录都能被正确创建。对于可能出现异常情况,如网络不稳定或服务器响应超时,则设计并实施了一套完善的错误重试机制,以最大程度减少数据丢失或重复提交的问题。

此外,通过实时监控和日志记录,实现了整个数据处理过程的可视化追踪,从而能够及时发现和修正潜在问题。这不仅提升了业务运作效率,更为维护工作带来了极大便利。综合上述步骤,使得整个金蝶云星空到钉钉的数据集成方案行之有效且高度可靠,为企业信息流动提供坚实保障。 用友与外部系统接口集成开发

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

在数据集成过程中,调用源系统接口获取数据是至关重要的一步。本文将深入探讨如何使用轻易云数据集成平台调用金蝶云星空的executeBillQuery接口,以获取并加工客户信息数据。

接口配置与请求参数

首先,我们需要理解executeBillQuery接口的元数据配置。该接口采用POST方法进行调用,主要用于查询客户信息。以下是关键的请求参数及其含义:

  • FCUSTID: 客户ID
  • FNumber: 编码
  • FName: 名称
  • FCreateOrgId_FNumber: 创建组织
  • FUseOrgId_FNumber: 使用组织
  • FDescription: 描述
  • FCustTypeId_FNumber: 客户类别
  • FGroup_FNumber: 客户分组
  • FSALDEPTID_FNumber: 销售部门
  • FSELLER_FNumber: 销售员
  • FSETTLETYPEID_FNumber: 结算方式
  • FRECCONDITIONID_FNumber: 收款条件
  • FShortName: 简称
  • FADDRESS: 地址
  • FTEL: 电话
  • FFAX: 传真
  • FCompanyClassify_FNumber: 公司类别
  • FINVOICETITLE: 发票抬头
  • FINVOICEBANKACCOUNT: 银行账号
  • FCURRENCYID_FNumber: 币别
  • FTRADINGCURRID: 结算币别

此外,还有一些分页和过滤参数:

  • Limit: 最大行数,用于分页控制。
  • StartRow: 开始行索引,用于分页控制。
  • TopRowCount: 返回总行数。
  • FilterString: 过滤条件,例如:FSupplierId.FNumber = 'VEN00010' and FApproveDate>='{{LAST_SYNC_TIME|datetime}}' and FDocumentStatus='C'

这些参数确保我们能够精准地获取所需的数据,并进行有效的分页处理。

数据请求与清洗

在实际操作中,我们需要构建一个完整的请求体来调用executeBillQuery接口。以下是一个示例请求体:

{
  "FormId": "BD_Customer",
  "FieldKeys": [
    "FCUSTID", "FNumber", "FName", "FCreateOrgId.FNumber", 
    "FUseOrgId.FNumber", "FDescription", "FCustTypeId.FNumber",
    "FGroup.FNumber", "FSALDEPTID.FNumber", "FSELLER.FNumber",
    "FSETTLETYPEID.FNumber", "FRECCONDITIONID.FNumber", 
    "FShortName", "FADDRESS", "FTEL", "FFAX",
    "FCompanyClassify.FNumber", "FINVOICETITLE",
    "FINVOICEBANKACCOUNT", "FCURRENCYID.FNumber",
    "FTRADINGCURRID"
  ],
  "FilterString": "FSupplierId.FNumber = 'VEN00010' and FApproveDate>='2023-01-01' and FDocumentStatus='C'",
  "Limit": 100,
  "StartRow": 0,
  "TopRowCount": true
}

通过上述请求体,我们可以向金蝶云星空发起查询请求,并获取符合条件的客户信息。

数据转换与写入

在成功获取数据后,需要对数据进行必要的清洗和转换,以便后续写入目标系统。在轻易云平台上,可以利用其内置的数据转换工具,对字段进行映射和格式转换。例如,将金蝶返回的数据字段映射到目标系统所需的字段格式。

以下是一个简单的数据转换示例:

{
  "sourceField": {
    "FCUSTID": "{{data.FCUSTID}}",
    "编码": "{{data.FNumber}}",
    ...
  },
  "targetField": {
    ...
  }
}

通过这种方式,我们可以确保数据在不同系统之间无缝对接,保持一致性和准确性。

实时监控与调试

在整个数据集成过程中,实时监控和调试是确保数据准确性的关键。轻易云平台提供了全透明可视化的操作界面,可以实时监控每个环节的数据流动和处理状态。如果出现问题,可以及时进行调试和修正,确保数据集成过程顺利进行。

综上所述,通过合理配置和调用金蝶云星空的executeBillQuery接口,我们可以高效地获取并加工客户信息,为后续的数据处理和写入奠定坚实基础。这一步骤不仅提升了业务透明度,还极大地提高了工作效率。 如何对接金蝶云星空API接口

使用轻易云数据集成平台将金蝶数据转换并写入钉钉API接口

在数据集成生命周期的第二步,我们需要将从源平台(金蝶)获取的数据进行ETL转换,并将其写入目标平台(钉钉)的API接口。本文将详细探讨如何通过轻易云数据集成平台实现这一过程,重点介绍元数据配置和API接口的技术细节。

数据请求与清洗

首先,从金蝶系统中提取所需的客户信息,包括客户名称(FName)和客户编码(FNumber)。这些信息将作为后续ETL转换的基础数据。在轻易云平台上,可以通过配置数据请求任务来实现这一操作。假设我们已经成功提取了以下样例数据:

{
  "FName": "上海某某公司",
  "FNumber": "CUST001"
}

数据转换与写入

接下来,我们需要将上述提取的数据转换为钉钉API接口所能接收的格式,并最终写入钉钉。根据提供的元数据配置,钉钉API接口要求的数据格式如下:

{
  "api": "topapi/processinstance/create",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {
      "field": "process_code",
      "label": "钉钉表单id",
      "type": "string",
      "describe": "process_code在审批流程编辑页面的URL网址中获取。",
      "value": "PROC-AE0D3C3B-470C-4F22-A662-C3EA039429A1"
    },
    {
      "field": "originator_user_id",
      "label": "发起人userid",
      "type": "string",
      "describe": "审批实例发起人的userid。",
      "value": "0911101641848981"
    },
    {
      "field": "dept_id",
      "label": "发起人所属部门id",
      "type": "string",
      "describe": "发起人所在的部门,如果发起人属于根部门,传-1。",
      "value": "-1"
    },
    {
      "field": "form_component_values",
      "label": "表单控件",
      "type": "object",
      ...
    }
  ]
}

在ETL过程中,我们需要将金蝶系统中的客户名称和客户编码映射到上述JSON结构中的form_component_values字段内。具体步骤如下:

  1. 定义映射关系:根据元数据配置,将金蝶系统中的FName映射到form_component_values中的客户名称字段,将FNumber映射到form_component_values中的客户编码字段。

  2. 生成目标JSON:利用轻易云平台提供的ETL工具,将源数据转换为目标JSON结构。例如:

{
  ...
  {
    field: 'form_component_values',
    label: '表单控件',
    type: 'object',
    children: [
        { field: '客户名称', label: '客户名称', type: 'string', describe: '控件1', value: '上海某某公司' },
        { field: '客户编码', label: '客户编码', type: 'string', describe: '控件2', value: 'CUST001' }
    ]
  }
}
  1. 调用钉钉API:使用HTTP POST方法,将生成的JSON发送到钉钉API接口。确保所有必需字段都已正确填充,并且符合API规范。

以下是一个示例代码片段,用于通过HTTP请求库(如axios)发送POST请求:

const axios = require('axios');

const data = {
  process_code: 'PROC-AE0D3C3B-470C-4F22-A662-C3EA039429A1',
  originator_user_id: '0911101641848981',
  dept_id: '-1',
  form_component_values: [
    { name: '客户名称', value: '上海某某公司' },
    { name: '客户编码', value: 'CUST001' }
  ]
};

axios.post('https://oapi.dingtalk.com/topapi/processinstance/create', data)
     .then(response => {
       console.log('Data successfully sent to DingTalk:', response.data);
     })
     .catch(error => {
       console.error('Error sending data to DingTalk:', error);
     });

通过以上步骤,我们成功地将金蝶系统中的数据经过ETL转换后写入了钉钉API接口。这一过程不仅保证了数据的一致性和完整性,还提升了业务流程的自动化程度。 打通钉钉数据接口

更多系统对接方案