0

我有一个进程可以读取存储在 smartsheet 中的映射配置。这是流程管理员可以控制数据流的地方。最终,这将存储在雪花表中以供其他 Talend 流使用。

我已经把它带到了这一点,其中包括获取更新的名称格式化列和工作表。

我现在的目标是创建 JSON 以将新行添加到 Smartsheet 并更新现有行。这两个调用的唯一区别是在 Smartsheet 中包含行 ID。

对于此示例,我将重点放在新行上。我相信我可以调整任何解决新行以更新现有行的解决方案,因为它只涉及一个 JSON 属性。

我很难理解 Smartsheet 在 JSON 响应中存储行和列的独特方式。

每行都是单元格的集合。每个单元格都是属性的集合,其中包括单元格所属的列 ID。

这是我目前所拥有的

从缓存读取的表中要转换为 JSON 的数据(tHashOutput 和 tHashInput 通过几个步骤解决其他要求)

LOADED_DATE_TIME_STR SSHEET_NAME SSHEET_ID SSHEET_ROW_ID SSHEET_COL_ID SSHEET_COL_NAME DB_TBL_NAME DB_COL_NAME
20220221232059 sheet_name_1_str sheet_id_1_int 无效的 xxxxxxxxxxxxxxx1 sheet_1_col_name_a_str 无效的 无效的
20220221232059 sheet_name_2_str sheet_id_2_int 无效的 xxxxxxxxxxxxxxx2 sheet_2_col_name_b_str 无效的 无效的
20220221232059 sheet_name_2_str sheet_id_2_int 无效的 xxxxxxxxxxxxxxx3 sheet_2_col_name_c_str 无效的 无效的

映射配置表有 5 个重要的列,我尚未将它们的映射和 ID 合并到流程中。一旦我知道这部分流程的去向,我就会这样做

  • LOADED_DATE_TIME_STR = col_id_1_int
  • SSHEET_NAME = col_id_2_int
  • SSHEET_ID = col_id_3_int
  • SSHEET_COL_ID = col_id_4_int
  • SSHEET_COL_NAME = col_id_6_int

输出 json 格式:(这将是较大 JSON 树的子元素)。具体来说,每个单元格数组定义一行,并将成为 Smartsheet API 结构中该行的子元素

  {
    "cells": [
      {
        "columnId": col_id_1_int,
        "value": "20220221232059"
      },
      {
        "columnId": col_id_2_int,
        "value": "sheet_name_1_str"
      },
      {
        "columnId": col_id_3_int,
        "value": "sheet_id_1_int"
      }
      {
        "columnId": col_id_4_int,
        "value": "xxxxxxxxxxxxxxx1"
      }
      {
        "columnId": col_id_6_int,
        "value": "sheet_1_col_name_a_str"
      }
    ]
  },
  {
    "cells": [
      {
        "columnId": col_id_1_int,
        "value": "20220221232059"
      },
      {
        "columnId": col_id_2_int,
        "value": "sheet_name_2_str"
      },
      {
        "columnId": col_id_3_int,
        "value": "sheet_id_2_int"
      }
      {
        "columnId": col_id_4_int,
        "value": "xxxxxxxxxxxxxxx2"
      }
      {
        "columnId": col_id_6_int,
        "value": "sheet_2_col_name_b_str"
      }
    ]
  },
  ...
4

0 回答 0