利用轻易云平台进行ETL转换并写入金蝶云星空的实践

  • 轻易云集成顾问-王敏

聚水潭数据集成到金蝶云星空的技术实现

在系统集成项目中,高效且准确地完成数据对接一直是业务成功的关键。本文将详细讨论如何实现聚水潭系统中的盘点单数据集成到金蝶云星空中其他出库单(类型:盘亏出库)的具体技术方案。此任务通过高吞吐量的数据写入能力、实时监控与告警系统以及自定义转换逻辑等功能,保证了整个过程流畅、高效。

首先需要明确的是,聚水潭获取库存盘点数据信息的API接口为/open/inventory/count/query,而金蝶云星空则使用batchSave API进行批量数据写入。在实际操作过程中,我们还需处理分页和限流问题,以确保大规模数据传输时不出现阻塞或超时错误。

我们针对以下几个关键环节进行了优化:

  1. 定时可靠的数据抓取:通过设置灵活的定时任务,从聚水潭接口定期抓取最新盘点单信息。这不仅提高了效率,还确保了及时性,防止漏单。
  2. 批量数据快速写入:利用轻易云平台支持的大容量、高吞吐特性,快速将大量盘点单信息上传至金蝶云星空,有助于提升整体处理速度。
  3. 自定义转换逻辑:由于两者之间的数据格式存在差异,我们设计并实施了一套自定义映射规则,以匹配不同字段及其对应关系。这一部分非常重要,因为它直接影响最终生成报表和存储结果的准确性。
  4. 实时监控与异常处理:整个过程中,通过集中式监控和告警系统,对每个步骤进行状态跟踪,并在发现异常情况时立即采取纠正措施,包括重试机制等设立,为项目稳定运行保驾护航。

接下来,将进一步深入探讨各个环节中的具体操作细节及技术要点,以提供一个全面、可复用的解决方案示范。 用友与WMS系统接口开发配置

调用聚水潭接口获取并加工数据的技术案例

在数据集成过程中,调用源系统接口是至关重要的一步。本文将详细探讨如何通过轻易云数据集成平台调用聚水潭接口 /open/inventory/count/query 获取盘点单数据,并进行初步加工处理。

接口调用配置

首先,我们需要配置元数据,以便正确调用聚水潭的API接口。以下是元数据配置的详细说明:

{
  "api": "/open/inventory/count/query",
  "effect": "QUERY",
  "method": "POST",
  "number": "io_id",
  "id": "io_id",
  "idCheck": true,
  "request": [
    {
      "field": "page_index",
      "label": "第几页",
      "type": "string",
      "describe": "第几页,从第一页开始,默认1",
      "value": "1"
    },
    {
      "field": "page_size",
      "label": "每页多少条",
      "type": "string",
      "describe": "每页多少条,默认30,最大50",
      "value": "10"
    },
    {
      "field": "modified_begin",
      "label": "修改起始时间",
      "type": "string",
      "describe": "修改起始时间,和结束时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空",
      "value": "{{DAYS_AGO_1|datetime}}"
    },
    {
      "field": "modified_end",
      "label": "修改结束时间",
      "type": "string",
      "describe": "修改结束时间,和起始时间必须同时存在,时间间隔不能超过七天,与线上单号不能同时为空",
      ``"value":"{{CURRENT_TIME|datetime}}"
    },
    {
      ``"field":"status","label":"单据状态","type":"string","describe":"单据状态,Confirmed=生效,WaitConfirm待审核,Creating=草拟,Archive=归档,Cancelled=作废","value":"Confirmed"}],"otherRequest":[{"field":"sku_id","label":"sku_id","type":"string"}],"autoFillResponse":true,"condition":[[{"field":"items.qty","logic":"lt","value":"0"}]]}

请求参数详解

  • page_indexpage_size:用于分页请求,每次请求的数据量控制在合理范围内。
  • modified_beginmodified_end:用于指定数据的时间范围,这两个参数必须同时存在且间隔不超过七天。
  • status:过滤出已生效的盘点单。

这些参数确保我们能够精准地获取到所需的数据,并避免因请求过多导致的性能问题。

数据请求与清洗

在完成元数据配置后,我们通过轻易云平台发起POST请求来获取盘点单数据。以下是一个示例请求体:

{
  ``"page_index":"1","page_size":"10","modified_begin":"2023-10-01T00:00:00Z","modified_end":"2023-10-02T00:00:00Z","status":"Confirmed"}

响应结果会包含多个盘点单记录,每个记录包含详细的库存信息。我们需要对这些数据进行初步清洗和过滤。例如,根据条件 [{"field":"items.qty","logic":"lt","value":"0"}] 筛选出库存数量小于零的记录。

数据转换与写入

经过清洗后的数据需要进一步转换,以便写入目标系统。在本案例中,我们将盘点单数据转换为金蝶系统的其他出库单(类型:盘亏出库)。这一步骤涉及字段映射和格式转换,例如:

  • 将聚水潭的 io_id 映射为金蝶系统中的 order_id
  • 将库存数量字段 qty 转换为金蝶系统所需的格式。

具体实现可以通过轻易云平台提供的数据转换工具完成,这些工具支持复杂的数据映射和格式转换规则。

实时监控与调试

在整个过程中,通过轻易云平台提供的实时监控功能,可以随时查看数据流动和处理状态。这有助于及时发现并解决潜在的问题,提高集成过程的透明度和可靠性。

总结来说,通过合理配置元数据并利用轻易云平台强大的集成功能,我们可以高效地从聚水潭获取并加工盘点单数据,为后续的数据处理打下坚实基础。 金蝶与外部系统打通接口

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

在数据集成过程中,ETL(提取、转换、加载)是关键步骤之一。本文将详细探讨如何使用轻易云数据集成平台将源平台(如聚水潭)的盘点单数据转换为金蝶云星空API接口所能接收的格式,并最终写入目标平台。

配置元数据

首先,我们需要配置元数据,以便正确地将源数据映射到目标系统的字段。以下是我们使用的元数据配置:

{
  "api": "batchSave",
  "effect": "EXECUTE",
  "method": "POST",
  "idCheck": true,
  "request": [
    {"field":"FBillNo","label":"单据编号","type":"string","describe":"单据编号","value":"{io_id}"},
    {"field":"FBillTypeID","label":"单据类型","type":"string","describe":"标准其他出库单:QTCKD01_SYS\n资产出库:QTCKD02_SYS\nVMI出库:QTCKD03_SYS\n费用物料出库:QTCKD04_SYS\n库存调整:QTCKD05_SYS","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"QTCKD01_SYS"},
    {"field":"FStockOrgId","label":"库存组织","type":"string","describe":"组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"101"},
    {"field":"FPickOrgId","label":"领用组织","type":"string","describe":"领用组织","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"101"},
    {"field":"FStockDirect","label":"库存方向","type":"string","describe":"库存方向","value":"GENERAL"},
    {"field":"FDate","label":"日期","type":"string","describe":"日期","value":"{io_date}"},
    {"field":"FDeptId","label":"领料部门","type":"string","describe":"基础资料","parser":{"name":"ConvertObjectParser","params":"FNumber"},"value":"10102"},
    {"field": "FOwnerTypeIdHead", "label": "货主类型", "type": "string", "describe": "多类别基础资料列表", "value": "BD_OwnerOrg"},
    {"field": "FOwnerIdHead", "label": "货主", "type": "string", "describe": "多类别基础资料", "parser": {"name": "ConvertObjectParser", "params": "FNumber"}, "value": "101"},
    {"field": "FNote", "label": "备注", "type": "string", "describe": "多行文本", "value": "{remark}"},
    {
      "field": "FEntity",
      "label": "明细信息",
      "type": "array",
      ...

数据请求与清洗

在这个阶段,我们从源平台提取盘点单的数据,并进行必要的清洗和预处理。假设我们已经完成了这一阶段,接下来进入数据转换与写入阶段。

数据转换与写入

  1. 字段映射

    • 将源平台的字段映射到目标平台的字段。例如,将 io_id 映射到 FBillNo,将 io_date 映射到 FDate
    • 使用 ConvertObjectParser 将特定值转换为金蝶云星空所需的格式。例如,将 FBillTypeID 的值转换为 QTCKD01_SYS
  2. 构建请求体: 根据元数据配置,构建请求体。以下是一个示例请求体:


{
  ...
  {
    ...
    {
      ...
      {
        ...
        {
          ...
          {
            ...
            {
              ...
              {
                ...
                {
                  ...
                  {
                    ...
                    {
                      ...
                      {
                        ...
                        {
                          ...
                          {
                            ...
                            {
                              ...
                              {
                                ...
                                {
                                  ...
                                  {
                                    ...
![用友与SCM系统接口开发配置](https://pic.qeasy.cloud/T15.png~tplv-syqr462i7n-qeasy.image)
更多系统对接方案