【问题标题】:How can you create a Project Sheet in SmartSheets with the API如何使用 API 在 SmartSheets 中创建项目表
【发布时间】:2022-01-07 22:39:23
【问题描述】:

我是 SmartSheets API 的新用户,正在尝试创建集成。我有在外部系统中创建的项目,我希望在 SmartSheets 的项目表中表示这些项目,但到目前为止,在我使用 SmartSheets API 的尝试中,我只能创建一个简单的网格。是否有 API 可以让我在 SmartSheets 中创建项目表?

【问题讨论】:

    标签: smartsheet-api smartsheet-api-2.0


    【解决方案1】:

    项目工作表似乎是激活了 Gant 视图的常规工作表 Smarsheet Sheet object documentation

    创建工作表对象时,请确保将布尔选项“ganttEnabled”或“gant_enabled”激活为 True。

    # from documentation Sample 1: Create sheet in folder
    sheet_spec = smartsheet.models.Sheet({
      'name': 'newsheet',
      'columns': [{
      'title': 'Favorite',
      'type': 'CHECKBOX',
      'symbol': 'STAR'
      }, {
      'title': 'Primary Column',
      'primary': True,
      'gant_enabled': True,
      'type': 'TEXT_NUMBER'
      }
    ]
    })
    response = smartsheet_client.Folders.create_sheet_in_folder(3734419270854532,      
    sheet_spec)
    new_sheet = response.result
    

    测试此选项后,我发现对象具有属性,但 API 无法创建对象,因此另一种解决方案是,

    1. 手动创建项目

    2. 从项目中手动创建模板(另存为模板)

    3. 使用 API 使用模板创建工作表

      import smartsheet
      smart = smartsheet.Smartsheet()
      smart.errors_as_exceptions(True)
      
      fldr = <folder ID>
      temp = <Template ID>
      
      sht_spec = smart.models.Sheet({'name': 'sht_name', 'from_id': temp})
      
      response = smart.Folders.create_sheet_in_folder(fldr,sht_spec)
      new_sht = response.result
      

    【讨论】:

    • 嗯。这对我不起作用。我在smartsheet.redoc.ly/tag/sheets#operation/create-sheet-in-folder 看到的文档没有列出ganttEnabledgant_Enabled 或任何类似列数组中可接受的内容。当我尝试指定其中任何一个时出现的错误是 { "errorCode" : 1008, "message" : "Unable to parse request. The following error occurred: Unknown attribute \"gantt_enabled\" found at line 1, column 103" , "refId" : "1ma0w2gcii4iq" }
    • 我找到了一个替代解决方案,这次我测试了,如果你创建一个项目模板,然后使用该模板创建一个工作表,它将创建一个项目对象import smartsheet smart = smartsheet.Smartsheet() smart.errors_as_exceptions(True) fldr = 8107727340758916 temp = 345898388612996 sht_spec = smart.models.Sheet({ 'name': 'deleteme', 'from_id': temp }) 看起来像工作表创建虽然对象有选项,命令创建失败。
    • 是的,我也找到了这个解决方案。但对我来说问题是第 1 步和第 2 步都以“手动”开头。我的规范是使这 100% 自动化,并适用于任何 SmartSheets 安装。我认为没有 API 可以创建模板。我可以通过查看可用的“全局”模板并从中选择 id 来创建项目表,但这是一个糟糕的编程选项,因为它需要列出所有公共模板(其中 100 个)然后遍历它们为通用项目模板找到一个好的候选者。真的很乱!
    • 同意 100%,API 中有很多缺失的部分令人沮丧,事实上我认为这就是为什么很少有人使用它的原因,但就我而言,我没有选择并尽我所能,祝您发展顺利。
    【解决方案2】:

    您可以自动化整个过程:

    • 在某处为您拥有的系统帐户准备一份项目表。
    • 将工作表分享给所需的帐户(作为查看者)
    • 用那一秒复制表格(第二个帐户现在是表格的赢家)
    • 取消共享第一张工作表(不再需要)

    【讨论】:

    • 感谢您的参与。这看起来是完成任务的好方法,但我的特定规范是通过 API 来完成。可悲的是,这似乎是不可能的!
    • 除第一个任务外,所有这些都可以通过 API 完成。
    猜你喜欢
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2021-10-01
    • 2018-09-08
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    相关资源
    最近更新 更多