【问题标题】:SmartSheet API - Delete rows from a specific indexSmartSheet API - 从特定索引中删除行
【发布时间】:2021-12-17 07:13:25
【问题描述】:

我正在处理通过 API 从另一个系统到 Smartsheet 的集成数据。我想要实现的结果是,每次运行 API 一张表时,都会从第 4 个索引行中删除数据。之后,将添加新数据。

我想知道是否有任何简单的方法可以实现从特定索引行中删除。 我在节点 JS 中尝试了以下功能

function resetSheet (sheetid) {
  // Get sheet
  smartsheet.sheets.getSheet({sheetid})
    .then(function(sheetInfo) {
      const rowIdList = sheetInfo.rows.map(item => item.id);
      return rowIdList;
    })
    .then(data => {
      const deleteIds = data.splice(3);
      deleteIds.forEach(rowId => {
        smartsheet.sheets.deleteRow({
          sheetId: sheetId,
          rowId: rowId
        })
          .then(function(results) {
            console.log(results);
          })
          .catch(function(error) {
            console.log(error);
          });
      })
    })
    .catch(function(error) {
      console.log(error);
    });
}

它可以工作,但有时 Nodejs 会通过以下错误提醒我,并且有些行没有被删除

errorCode=4004, message=Request failed because sheetId XXX is currently being updated by another request that uses the same access token.  Please retry your request once the previous request has completed., refId=16hz2dgyh47v0

上面的代码有什么遗漏吗? 希望在这种情况下我们可以有更好的解决方案。使用另一种语言(例如 C#)的解决方案将不胜感激。

非常感谢

【问题讨论】:

    标签: smartsheet-api


    【解决方案1】:

    Smartsheet,因为任何基于云的系统都需要一些时间来更新请求,如果您正在快速进行更新/删除,则在您发送新请求时,之前的请求可能尚未完成。

    您可以通过简单的睡眠添加一个简单的延迟来检查是否是原因,或者实现一个增量重试功能(对我有用)。

    此外,如果您使用相同的密钥运行其他脚本,并且其他脚本同时在同一张工作表上运行,您也会收到该错误(当我同时进行更新和备份时,它曾经发生在我身上时间在同一张纸上),您可以通过使用两个不同的键(用户)同时执行任务来避免这种情况,或者在不同的时间划分任务。

    【讨论】:

    • 非常感谢您提出这个有用的建议。除此之外,您是否有更简单的想法来实现从特定索引中删除行,而不是在 Smartsheet 中逐一循环获取行 ID?对 C# 有任何想法吗?谢谢
    【解决方案2】:

    正如 Alex Argumedo 所写,这可能是一个快速的问题。

    要解决这里的快速射击问题,您可以使用以下方法:

    • 生成一个存储字符串的空变量。
    • 将所有需要删除的 rowId 添加到此字符串中,...始终以“,”(“逗号”)分隔您可以为此重复使用“forEach”-Loop。
    • 生成此长字符串后,使用此长字符串删除单个 API-Call 中的所有行。

    如“Smartsheet - 官方 API 和 SDK 文档”中所述,该字符串应包含需要删除的行的所有 rowsId: Smartsheet - Official API and SDK Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多