ETL数据转换与金蝶云星空API写入技术详解

  • 轻易云集成顾问-姚缘

泛微OA-Http数据集成到金蝶云星空的案例分享:FD003-非生产性付款申请

在本案例中,我们探讨如何通过轻易云数据集成平台,实现泛微OA-Http与金蝶云星空系统的数据无缝对接。具体方案编号为FD003,旨在将非生产性付款申请从泛微传输至金蝶的其他应付单模块。

接口设计及数据抓取

首先,通过调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest获取支付申请相关的数据。为了确保不遗漏任何记录,定时抓取机制被部署,每小时自动请求一次API接口。针对API分页和限流问题,采用批量处理技术,将大规模数据拆分为多个小批次进行并行处理,以提高吞吐量。

{
  "request": {
    "pageNumber": 1,
    "pageSize": 100
  }
}

这种方式不仅解决了分页问题,同时也避免了因接口限流导致的数据丢失风险。此外,为保障数据的一致性,还设置了异常检测与重试机制,当请求失败或超时时,会自动重新尝试多次直到成功为止。

数据转换及写入操作

获取到原始数据后,需要依据业务需求进行自定义转换。例如,在某些字段的格式需要调整,以匹配金蝶云星空的要求。这一过程可以借助轻易云平台提供的数据映射工具,通过可视化操作界面轻松完成字段之间的转换和映射配置。

<mapping>
  <sourceField>applicantName</sourceField>
  <targetField>payeeName</targetField>
</mapping>

最后,将处理后的数据通过金蝶云星空API batchSave 方法批量写入系统中。同样,为应对可能出现的数据冲突或写入错误,设计了一套完善的日志记录及告警通知功能。一旦发生错误,即时向运维团队发送告警邮件,并详细记录错误日志以便事后审查。

实时监控与性能优化

整个流程均纳入平台集中监控管理,包括实时跟踪每个任务执行状态、性能表现以及潜在问题。在遇到性能瓶颈时,可以通过调整任务调度策略、多线程并发等优化手段提升整体效率。同时,对于关键业务指标,如成功率、延迟等,也设有相应阈值,一旦超过预警范围即触发告警机制,使得运维人员可以快速响应并采取措施修复故障点。

以上内容展示了如何利用先进的平台特性有效整合不同系统间的数据,不仅确保高效可靠地完成集成任务,更实现了全流程透明 打通钉钉数据接口

调用泛微OA-Http接口获取并加工数据的技术案例

在数据集成过程中,调用源系统接口是至关重要的一步。本文将深入探讨如何通过轻易云数据集成平台调用泛微OA-Http接口/api/workflow/paService/getWorkflowRequest,并对获取的数据进行加工处理。

接口调用配置

首先,我们需要配置元数据以便正确调用泛微OA的API接口。以下是元数据配置的详细信息:

{
  "api": "/api/workflow/paService/getWorkflowRequest",
  "effect": "QUERY",
  "method": "GET",
  "number": "requestId",
  "id": "requestId",
  "name": "id",
  "idCheck": true,
  "request": [
    {
      "field": "workflowId",
      "label": "e9流程id",
      "type": "string",
      "value": "484"
    },
    {
      "field": "workflowIdList",
      "label": "workflowIdList中间方案ID",
      "type": "string",
      "value": "2356388e-8c49-35b3-bb7e-1eca1a8617d5"
    }
  ],
  "autoFillResponse": true,
  "condition": [
    [
      {
        "field": "workflowMainTableInfo.fklx",
        "logic": "eqv2",
        "value": "应付款"
      }
    ],
    [
      {
        "field": "workflowMainTableInfo.fklx",
        "logic": "eqv2",
        "value": "Account Payable"
      }
    ]
  ]
}

数据请求与清洗

在配置好元数据后,我们可以开始进行数据请求。通过GET方法调用/api/workflow/paService/getWorkflowRequest接口,传递必要的参数如workflowIdworkflowIdList,以获取指定流程的数据。

GET /api/workflow/paService/getWorkflowRequest?workflowId=484&workflowIdList=2356388e-8c49-35b3-bb7e-1eca1a8617d5

响应的数据将包含我们所需的各种字段。在此步骤中,我们需要对返回的数据进行清洗,以确保其符合后续处理的要求。例如,过滤掉无效或冗余的信息,只保留关键字段。

数据转换与写入

在完成数据清洗后,下一步是将数据转换为目标系统所需的格式,并写入到目标系统中。在本案例中,我们需要将数据从泛微OA转换为金蝶其他应付单格式。

假设我们从泛微OA获取到如下JSON响应:

{
  "requestId": 12345,
  ...
}

我们需要将其转换为金蝶系统所需的格式,例如:

{
  ...
}

在这个过程中,需要特别注意字段映射和数据类型转换。例如,将泛微OA中的requestId映射到金蝶系统中的相应字段,并确保所有数值类型、日期类型等符合目标系统的要求。

条件过滤与自动填充

根据元数据配置中的条件过滤,我们可以进一步筛选出符合特定条件的数据。例如,仅保留fklx字段值为“应付款”或“Account Payable”的记录。这一步骤可以通过编写相应的过滤逻辑来实现:

def filter_data(data):
    return data['workflowMainTableInfo']['fklx'] in ['应付款', 'Account Payable']

此外,自动填充响应功能(autoFillResponse)可以帮助我们简化部分操作,使得某些字段能够自动匹配和填充,无需手动干预。

实时监控与调试

在整个过程中,通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态。这有助于快速发现和解决问题,提高整体效率。

总结来说,通过合理配置元数据并利用轻易云平台强大的功能,我们可以高效地调用泛微OA接口,获取并加工所需的数据,为后续的数据集成奠定坚实基础。 用友与外部系统接口集成开发

使用轻易云数据集成平台进行ETL转换并写入金蝶云星空API接口

在企业信息化过程中,数据的高效处理和流转至关重要。本文将深入探讨如何使用轻易云数据集成平台,将集成的源平台数据进行ETL转换,并转为金蝶云星空API接口所能接收的格式,最终写入目标平台。

数据请求与清洗

首先,我们需要从源系统(如泛微)中提取原始数据,并对其进行清洗和预处理。这一步骤确保了数据的准确性和一致性,为后续的ETL转换奠定基础。

数据转换与写入

在轻易云数据集成平台中,元数据配置是实现数据转换和写入的核心。以下是详细的配置步骤:

  1. 定义API接口参数

    我们使用batchSave API接口,通过POST方法将数据批量保存到金蝶云星空。以下是主要参数配置:

    {
     "api": "batchSave",
     "effect": "EXECUTE",
     "method": "POST",
     "idCheck": true,
     "operation": {
       "rowsKey": "array",
       "rows": 1,
       "method": "batchArraySave"
     }
    }
  2. 字段映射与转换

    通过元数据配置文件,将源系统的数据字段映射到目标系统所需的字段格式。例如:

    • 单据类型 (FBillTypeID):

      {
      "field": "FBillTypeID",
      "label": "单据类型",
      "type": "string",
      "describe": "单据类型\n其他应付单-QTYFD01_SYS\n费用报销其他应付单-QTYFD02 SYS",
      "parser": {"name":"ConvertObjectParser","params":"FNumber"},
      "value":"QTYFD01_SYS"
      }
    • 业务日期 (FDATE):

      {
      "field": "FDATE",
      "label": "业务日期",
      "type": "string",
      "describe": "业务日期",
      "value":"{{workflowMainTableInfo.sqrq}}"
      }
    • 往来单位类型 (FCONTACTUNITTYPE):

      {
      "field": "FCONTACTUNITTYPE",
      "label": "往来单位类型",
      "type": "string",
      "describe":"往来单位类型\n部门-BD_Department\n员工-BD_Empinfo\n其他往来单位-FIN-OTHERS\n供应商-BD-Supplier\n客户-BD-Customer",
      ...
      }
  3. 复杂字段处理

    对于复杂字段,如数组或嵌套对象,需要特别处理。例如,明细信息(FEntity)字段包含多个子字段:

    {
     ...
     {
       "field":"FEntity",
       ...
       ,"children":[
         {"field":"FCOSTID","label":"费用项目编码","type":"string","value":"_findCollection find FNumber from a3c8a497-8be0-36b3-956c-94619b971636 where FName={{detail_0.fyxmzl}}","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
         {"field":"FCOSTDEPARTMENTID","label":"费用承担部门","type":"string","value":"{{detail_0.fycdbm_FV}}","parser":{"name":"ConvertObjectParser","params":"FNumber"}},
         ...
         {"field":"FTAXAMOUNTFOR","label":"税额","type":"string","value":"_function round('{{detail_0.tbje}}'-('{{detail_0.tbje}}'\/(1+(REPLACE('{{detail_0.sl}}','%','')*0.01))),2)"}
         ...
      ]
    }
    ...
  4. 提交与审核

    最后,通过设置IsAutoSubmitAndAudit参数,实现自动提交并审核:

    {
     ...
     {"field":"IsAutoSubmitAndAudit","label":"提交并审核","type":"bool","value":"false"},
     {"field":"IsVerifyBaseDataField","label":"验证基础资料","type":"bool","value":"true"}
    }
    ...

实际应用案例

假设我们需要将泛微中的非生产性付款申请数据转化为金蝶云星空中的其他应付单。通过上述元数据配置,我们能够精准地将各个字段进行映射和转换,确保数据在两个系统间无缝对接。

例如,在泛微中提取到的申请部门(sqbm_FV)可以直接映射到金蝶中的申请部门(FDEPARTMENTID):

{
  ...
  {"field":"FDEPARTMENTID","label":"申请部门","type":"string","value":"{{workflowMainTableInfo.sqbm_FV}}",...}
  ...
}

通过以上步骤,我们可以高效地完成从源系统到目标系统的数据转换和写入,确保业务流程顺畅运行。

总之,利用轻易云数据集成平台提供的全生命周期管理和可视化操作界面,我们能够轻松实现复杂的数据集成任务,大幅提升企业信息化效率。 如何对接金蝶云星空API接口

更多系统对接方案