跨系统数据集成:泛微OA系统数据迁移至金蝶云星空

  • 轻易云集成顾问-贺强

案例分享:泛微OA-Http数据集成到金蝶云星空

在本技术案例中,我们将探讨如何实现从泛微OA系统到金蝶云星空的高效数据集成,实现自动化处理费用报销单据。具体方案命名为“FD004-对个费用报销 泛微=>金蝶其他应付单--写入配置待检查”。

通过轻易云数据集成平台,我们成功地构建了一条跨系统的数据流,支持批量抓取和快速写入,同时确保数据质量和一致性。在这个案例中,关键步骤包括:

  1. API接口调用与分页处理: 使用泛微OA-Http的获取数据API /api/workflow/paService/getWorkflowRequest 来抓取需要同步的费用报销单据。由于接口存在分页限制,我们设计了可靠的分页机制,以确保所有有效记录均被完整提取。

  2. 自定义转换逻辑: 为适配金蝶云星空的数据格式要求,本方案根据业务需求进行了特定的数据字段映射和转换。比如,将泛微中的表单字段转变为符合金蝶云“batchSave” API 的结构。

  3. 高吞吐量与实时监控: 采用轻易云平台提供的大容量、高吞吐能力,使得每次批量导出的数据能够稳定、快速地写入到金蝶云星空。同时,通过集中监控和告警功能,对每一个任务环节进行实时追踪,保障整个集成过程的透明可视。

  4. 异常处理和重试机制: 在实际操作中,不可避免会遇到网络波动或服务暂时不可用等情况。因此,我们引入了稳健的错误检测与重试机制。当出现问题时,会立即终止当前操作并记录日志,并在下一周期自动重新尝试,大大减少因偶发故障导致的数据遗漏风险。

综上所述,这一全流程自动化解决方案不仅提升了繁杂手工操作效率,还保证了数据传输过程中的准确性和及时响应,为企业财务管理注入新的动力。在后续内容中我们将详细描述各个实施步骤及技术细节。 数据集成平台可视化配置API接口

调用泛微OA-Http接口获取并加工数据

在数据集成生命周期的第一步,我们需要调用源系统泛微OA的Http接口/api/workflow/paService/getWorkflowRequest来获取数据,并对其进行初步加工。本文将详细探讨这一过程中的技术细节和元数据配置。

接口调用与元数据配置

首先,我们需要理解如何通过HTTP GET请求调用泛微OA的API接口。根据提供的元数据配置,接口路径为/api/workflow/paService/getWorkflowRequest,请求方法为GET。以下是关键的元数据字段:

  • api: /api/workflow/paService/getWorkflowRequest
  • method: GET
  • number: requestId
  • id: requestId
  • name: id
  • idCheck: true

这些字段定义了API调用的基本信息,其中requestId是我们需要获取的数据的唯一标识符。

请求参数配置

根据元数据配置,我们需要传递两个请求参数:

  1. workflowId: 固定值为391
  2. workflowIdList: 固定值为2356388e-8c49-35b3-bb7e-1eca1a8617d5

请求参数的配置如下所示:

"request": [
    {"field": "workflowId", "label": "e9流程id", "type": "string", "value": "391"},
    {"field": "workflowIdList", "label": "workflowIdList中间方案ID", "type": "string", "value": "2356388e-8c49-35b3-bb7e-1eca1a8617d5"}
]

这些参数将在HTTP GET请求中作为查询字符串传递。

条件过滤

为了确保我们只获取到符合条件的数据,需要设置条件过滤器。根据元数据配置,我们有两个条件:

  1. workflowMainTableInfo.bxlx 等于 实报实销
  2. workflowMainTableInfo.bxlx 等于 Actual Expense

条件过滤器的配置如下所示:

"condition": [
    [{"field": "workflowMainTableInfo.bxlx", "logic": "eqv2", "value": "实报实销"}],
    [{"field": "workflowMainTableInfo.bxlx", "logic": "eqv2", "value": "Actual Expense"}]
]

这些条件将用于筛选返回的数据,确保我们只处理符合要求的记录。

自动填充响应

在接收到API响应后,我们需要对数据进行初步加工。根据元数据配置,自动填充响应功能已启用:

"autoFillResponse": true

这意味着平台会自动解析API响应,并将其转换为内部可处理的数据格式。

实际操作步骤

  1. 构建HTTP GET请求:使用上述请求参数和条件过滤器构建GET请求。
  2. 发送请求并接收响应:向泛微OA API发送GET请求,并接收JSON格式的响应。
  3. 解析响应数据:利用自动填充功能,将响应中的数据解析并转换为内部格式。
  4. 初步加工数据:根据业务需求,对解析后的数据进行初步清洗和转换,为后续的数据写入阶段做好准备。

以下是一个简化的Python代码示例,展示了如何实现上述步骤:

import requests

# 构建查询字符串
params = {
    'workflowId': '391',
    'workflowIdList': '2356388e-8c49-35b3-bb7e-1eca1a8617d5'
}

# 发送HTTP GET请求
response = requests.get('https://example.com/api/workflow/paService/getWorkflowRequest', params=params)

# 检查响应状态码
if response.status_code == 200:
    data = response.json()

    # 过滤符合条件的数据
    filtered_data = [item for item in data if item['workflowMainTableInfo']['bxlx'] in ['实报实销', 'Actual Expense']]

    # 初步加工数据(示例)
    processed_data = []
    for item in filtered_data:
        processed_item = {
            'requestId': item['requestId'],
            'expenseType': item['workflowMainTableInfo']['bxlx'],
            # 添加其他必要字段
        }
        processed_data.append(processed_item)

    # 输出或进一步处理processed_data
else:
    print(f"Error: {response.status_code}")

通过以上步骤和代码示例,我们可以高效地从泛微OA系统中获取并加工所需的数据,为后续的数据转换与写入阶段打下坚实基础。 钉钉与WMS系统接口开发配置

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

在轻易云数据集成平台中,将源平台的数据转换为目标平台金蝶云星空API接口所能接收的格式是一个关键步骤。本文将详细探讨如何通过元数据配置实现这一过程,并确保数据准确无误地写入金蝶云星空。

元数据配置解析

元数据配置是ETL转换的核心,定义了如何将源数据映射到目标系统的字段中。以下是关键字段的配置解析:

  1. 单据类型 (FBillTypeID)

    • 类型:字符串
    • 描述:指定单据类型,例如“QTYFD01_SYS”表示其他应付单。
    • 解析器:ConvertObjectParser,参数为FNumber
  2. 单据编号 (FBillNo)

    • 类型:字符串
    • 描述:唯一标识单据的编号。
  3. 业务日期 (FDATE)

    • 类型:字符串
    • 描述:业务发生日期,取自workflowMainTableInfo.sqrq
  4. 往来单位类型 (FCONTACTUNITTYPE)

    • 类型:字符串
    • 描述:例如部门、员工等,默认值为“BD_Empinfo”。
  5. 往来单位 (FCONTACTUNIT)

    • 类型:字符串
    • 描述:通过工作代码查找对应的往来单位。
    • 解析器:ConvertObjectParser,参数为FNumber
  6. 币别 (FCURRENCYID)

    • 类型:字符串
    • 描述:货币类型,通过货币编码查找对应的币别。
    • 解析器:ConvertObjectParser,参数为FNumber
  7. 结算组织、采购组织、付款组织

    • 字段分别为 FSETTLEORGID, FPURCHASEORGID, FPAYORGID
    • 类型:字符串
    • 描述:通过申请公司字段映射到相应的组织编号。
    • 解析器:ConvertObjectParser,参数为FNumber
  8. 申请部门 (FDEPARTMENTID)采购部门 (FPURCHASEDEPTID)

    • 类型:字符串
    • 描述:通过申请部门字段映射到相应的部门编号。
    • 解析器:ConvertObjectParser,参数为FNumber
  9. 备注 (FRemarks)

    • 类型:字符串
    • 描述:备注信息,取自 workflowMainTableInfo.bzsm
  10. 本位币 (FMAINBOOKSTDCURRID)

    • 类型: 字符串
    • 描述: 本位币,通过申请公司字段映射。
    • 解析器: ConvertObjectParser, 参数为 FNumber
  11. 汇率类型 (FEXCHANGETYPE):

    • 类型: 字符串
    • 描述: 汇率类型, 默认值为 “HLTX01_SYS”
    • 解析器: ConvertObjectParser, 参数为 FNumber
  12. 到期日计算日期 (FACCNTTIMEJUDGETIME):

    • 类型: 字符串
    • 描述: 到期日计算日期, 取自 workflowMainTableInfo.sqrq
  13. 业务类型 (FBUSINESSTYPE):

    • 类型: 字符串
    • 描述: 默认值为 “OTHER”
  14. 自定义单号 (F_WDW_OANO):

    • 类型: 字符串
    • 描述: 自定义单号, 取自 workflowMainTableInfo.lcbh
  15. 预付款 (F_XDW_PAYMENT):

    • 类型: 字符串
    • 描述: 预付款金额, 取自 workflowMainTableInfo.cjzk
  16. 明细信息(数组)(FEntity): 明细信息包含多个子字段,每个子字段都需要进行详细配置和转换。例如:

    a) 费用项目编码 (FCOSTID)

    • 类型: 字符串
    • 描述: 通过费用项目名称查找对应编码。
    • 解析器: ConvertObjectParser, 参数为 FNumber

    b) 发票类型 (FINVOICETYPE)

    • 类型: 字符串
    • 描述: 根据发票类型名称进行条件转换。

    c) 不含税金额 (FNOTAXAMOUNTFOR)

    • 类型: 字符串
    • 描述: 根据公式计算不含税金额。

数据写入操作

在完成元数据配置后,需要将处理后的数据通过API接口写入金蝶云星空。以下是关键步骤:

  1. 定义请求体结构,根据元数据配置生成相应的数据格式。
  2. 使用POST方法调用金蝶云星空的batchSave API接口,将转换后的数据批量保存到目标系统中。
  3. 确保请求体中的每个字段都符合金蝶云星空API接口要求,包括正确的数据类型和格式。

示例代码片段

{
  "FormId": "AP_OtherPayable",
  "Operation": "BatchSave",
  "IsAutoSubmitAndAudit": false,
  "IsVerifyBaseDataField": true,
  "Model": {
      "FBillTypeID": {"FNumber": "QTYFD01_SYS"},
      "FBillNo": "{{workflowMainTableInfo.djb}}",
      "FDATE": "{{workflowMainTableInfo.sqrq}}",
      "FCONTACTUNITTYPE": "BD_Empinfo",
      "FCONTACTUNIT": {"_findCollection find workcode from c0198816-9822-38f3-b995-fc700a9925e7 where id={{workflowMainTableInfo.skmc_FV}}"},
      ...
      "FEntity": [
          {
              "FCOSTID": {"_findCollection find FNumber from a3c8a497-8be0-36b3-956c-94619b971636 where FName={{detail_0.fyxmzl}}"},
              ...
          }
      ]
  }
}

以上示例展示了如何根据元数据配置生成请求体,并调用金蝶云星空API接口进行数据写入。在实际应用中,需要根据具体业务需求调整和扩展此配置,以确保所有必要的数据都能正确传输和存储。 如何对接金蝶云星空API接口

更多系统对接方案