使用轻易云平台进行ETL转换并写入金蝶云星空

  • 轻易云集成顾问-林峰

SD001-生产订单审批 泛微=>金蝶采购订单--432 案例分享

在此次项目中,我们面临的挑战是将泛微OA系统中的生产订单审批数据高效集成到金蝶云星空的采购订单模块。为实现这一目标,选择使用轻易云数据集成平台,并通过其支持的数据处理能力和丰富的API接口管理功能,来确保对接过程顺利进行。

为了获取泛微OA系统中的生产订单审批数据,我们调用了/api/workflow/paService/getWorkflowRequest API接口,该接口能够提供精准的数据捕获。而在数据写入方面,则利用了金蝶云星空的batchSave API,以实现批量数据写入,从而满足高吞吐量需求。

首先,需要解决的是如何确保从泛微OA抓取的数据不漏单。通过定时任务可靠地调用上述API,结合分页和限流策略,可以持续稳定地获取最新审批结果。同时,为适应两套系统之间的数据格式差异,我们设计并实施了一整套自定义转换逻辑,将泛微OA返回的数据字段映射为金蝶云星空所需格式。

在监控与告警环节上,通过集中化控制台实时跟踪每一次数据传输状态,一旦出现异常状况即刻触发告警,并记录详细日志以便后续分析与重试。这些措施有效提高了整个流程的可视性和可靠性,也使得潜在问题得以及早发现并处理。

此外,通过轻易云提供的可视化设计工具,对于整个集成过程进行了明确规划,使各步骤直观明了、易于管理。在实际运行过程中,这一方案表现出了极高效率,不但显著提升了业务操作便利度,同时也保证了数据准确且无遗漏传递到目标系统。 泛微OA与ERP系统接口开发配置

调用泛微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": "432"},
    {"field": "workflowIdList", "label": "workflowIdList中间方案ID", "type": "string", "value": "8183a586-bdfb-3e93-8573-d5e81803c5ff"}
  ],
  "autoFillResponse": true,
  "condition_bk": [
    [{"field": "currentNodeName", "logic": "like", "value": "归档"}, {"field":"detail_0.xm","logic":"like","value":"1.wafer"}]
  ],
  "condition":[
    [{"field":"detail_0.xm","logic":"like","value":"wafer"}]
  ]
}

配置解析

  1. API路径和请求方法

    • api: /api/workflow/paService/getWorkflowRequest
    • method: GET

    我们使用GET方法来请求泛微OA系统中的工作流信息。

  2. 请求参数

    • workflowId: 固定值为432,表示特定的工作流ID。
    • workflowIdList: 固定值为8183a586-bdfb-3e93-8573-d5e81803c5ff,表示中间方案ID。
  3. 条件过滤

    • condition_bk: 用于备选条件过滤,例如当前节点名称包含“归档”且细节字段xm包含“1.wafer”。
    • condition: 主条件过滤,例如细节字段xm包含“wafer”。
  4. 自动填充响应

    • autoFillResponse: 设置为true,表示自动填充响应数据。

实际调用与处理

在实际操作中,我们通过轻易云平台配置上述元数据后,可以进行如下步骤:

  1. 发送请求: 平台根据配置自动生成并发送HTTP GET请求到指定API路径,并附带必要的查询参数。

  2. 接收响应: 平台接收到泛微OA系统返回的数据后,会根据配置进行初步处理。例如,自动填充响应内容到相应的数据结构中。

  3. 数据清洗与转换: 根据条件过滤器(如condition_bkcondition),对接收到的数据进行清洗和筛选。确保仅保留符合业务逻辑的数据记录。

  4. 后续处理: 清洗后的数据可以进一步转换或直接写入目标系统,如金蝶采购订单系统。这一步通常涉及到映射字段、格式转换等操作。

技术要点

  • 异步处理:轻易云平台支持全异步处理,确保在高并发情况下依然能够高效地完成数据集成任务。
  • 多系统兼容性:平台能够无缝对接不同类型的异构系统,实现跨平台的数据集成。
  • 实时监控与透明化操作:整个过程具有实时监控功能,每个环节都可视化展示,提升了业务透明度和效率。

通过上述步骤和技术要点,我们可以高效地实现从泛微OA系统获取工作流数据,并进行必要的清洗和加工,为后续的数据转换与写入奠定基础。 电商OMS与ERP系统接口开发配置

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

在数据集成的生命周期中,将已经集成的源平台数据进行ETL转换,并转为目标平台金蝶云星空API接口所能够接收的格式,是至关重要的一步。本文将详细探讨这一过程,重点关注API接口的技术实现。

1. 数据请求与清洗

首先,我们需要从源平台(如泛微)获取数据。这些数据通常包含生产订单审批的信息。通过轻易云的数据请求功能,我们可以获取到这些信息,并进行初步清洗,以确保数据的准确性和一致性。

2. 数据转换与写入

在完成数据请求与清洗后,接下来就是将这些数据转换为金蝶云星空API能够接受的格式,并最终写入目标平台。以下是具体步骤和技术细节:

配置元数据

根据提供的元数据配置,我们需要将各字段映射到金蝶云星空API所需的格式。以下是一些关键字段及其配置方式:

  • 单据类型(FBillTypeID):

    {
    "field": "FBillTypeID",
    "label": "单据类型",
    "type": "string",
    "value": "CGDD01_SYS"
    }

    此字段表示标准采购订单,值为CGDD01_SYS

  • 单据编号(FBillNo):

    {
    "field": "FBillNo",
    "label": "单据编号",
    "type": "string",
    "value": "{{workflowMainTableInfo.lcbh}}"
    }

    此字段从源平台的数据中提取,使用{{workflowMainTableInfo.lcbh}}作为动态变量。

  • 采购日期(FDate):

    {
    "field": "FDate",
    "label": "采购日期",
    "type": "string",
    "value": "{{workflowMainTableInfo.sqrq}}"
    }

    此字段同样从源平台的数据中提取,使用{{workflowMainTableInfo.sqrq}}作为动态变量。

  • 采购组织(FPurchaseOrgId):

    {
    "field": "FPurchaseOrgId",
    "label": "采购组织",
    "type": "string",
    "parser": {"name":"ConvertObjectParser","params":"FNumber"},
    "value":"{{workflowMainTableInfo.wszt}}"
    }

    此字段需要通过ConvertObjectParser解析器,将采购组织编码转换为目标平台所需的格式。

  • 供应商(FSupplierId):

    {
    "field": "FSupplierId",
    "label": "供应商",
    "type": "string",
    "parser":{"name":"ConvertObjectParser","params":"FNumber"},
    "value":"{{workflowMainTableInfo.gysbh}}"
    }

    同样,通过解析器将供应商编码转换为目标平台所需格式。

明细信息配置

对于明细信息(FPOOrderEntry),我们需要处理多个子字段,如物料编码、采购数量、单价等:

{
  "field":"FPOOrderEntry",
  ...
}

每个子字段都需要从源平台的数据中提取并进行相应的转换。例如:

  • 物料编码(FMaterialId):

    {
    "field":"FMaterialId",
    ...
    "value":"{{detail_0.wlbh}}"
    }
  • 采购数量(FQty):

    {
      ...
        "value":"{{detail_0.sl}}"
    }
财务信息配置

财务信息(FPOOrderFinance)的配置同样重要,需要处理结算币别、定价时点、汇率类型等字段:

{
    "field":"FPOOrderFinance",
    ...
}

例如:

  • 结算币别(FSettleCurrId):
    {
      ...
        "value":"_findCollection find FNumber from ... where FCODE={{detail_0.0.bzerp}}"
      ...
    }
批量保存操作

最后,我们通过批量保存操作将所有配置好的数据写入金蝶云星空:

{
    "api":"batchSave",
    "method":"POST",
    ...
}

其中,关键参数包括业务对象表单ID(FormId)、执行操作(Operation)、是否提交并审核(IsAutoSubmitAndAudit)等:

{
    "field":"FormId", 
    "value":"PUR_PurchaseOrder"
},
{
    "field":"Operation", 
    "value":"BatchSave"
},
{
    "field":"IsAutoSubmitAndAudit", 
    "value":"true"
}

总结

通过上述步骤,我们成功地将源平台的数据经过ETL转换,转化为金蝶云星空API能够接受的格式,并最终写入目标平台。这一过程不仅提高了数据处理效率,还保证了数据的一致性和准确性。在实际应用中,根据具体需求调整元数据配置,可以灵活应对各种复杂的数据集成场景。 电商OMS与ERP系统接口开发配置

更多系统对接方案