如何通过 python SDK 创建项目 sheet
How to create a project sheet via the python SDK
我正在尝试在文件夹中创建新项目 sheets,但是我无法找到一种方法来确保 sheet 是一个项目 sheet。
到目前为止,这是我的代码:
def create_resource_sheet(name):
""" Create a new resource sheet.
:param name:
:return:
"""
folder_id = get_resource_folder_id()
# TODO: Find and delete existing sheet with this name
resource_sheet = SS.models.Sheet({
'name': name,
# 'gantt_enabled': True, # This was added as an attempt to force it to a project sheet, but error 1032
'columns': [{
'title': 'Task',
'type': 'TEXT_NUMBER',
'primary': True,
'width': 200
}, {
'title': 'Status',
'type': 'PICKLIST',
'options': ['wtg', 'hld', 'ip', 'rdy', 'rev', 'fin', 'omt'], # TODO: Update this list
'width': 180
}, {
'title': '% Complete',
'type': 'TEXT_NUMBER',
'tag': ['GANTT_PERCENT_COMPLETE'],
'width': 85
}, {
'title': 'Assigned To',
'type': 'CONTACT_LIST',
'tag': ['GANTT_ASSIGNED_RESOURCE', 'GANTT_DISPLAY_LABEL'],
'width': 150
}, {
'title': '% Use',
'type': 'TEXT_NUMBER',
'tag': ['GANTT_ALLOCATION'],
'width': 60
}, {
'title': 'Days',
'type': 'DURATION',
'tag': ['GANTT_DURATION'],
'width': 70
}, {
'title': 'Start',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_START_DATE', 'GANTT_START_DATE'],
'width': 80
}, {
'title': 'Start',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_START_DATE', 'GANTT_START_DATE'],
'width': 80
}, {
'title': 'Finish',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_END_DATE', 'GANTT_END_DATE'],
'width': 80
}, {
'title': 'Type',
'type': 'TEXT_NUMBER',
'width': 150
}, {
'title': 'Comments',
'type': 'TEXT_NUMBER',
'width': 700
}
]
})
response = SS.Folders.create_sheet_in_folder(folder_id, resource_sheet)
new_sheet = response.result
return new_sheet
我收到以下错误代码:
smartsheet.exceptions.ApiError: {"result": {"shouldRetry": false,
"code": 1142, "name": "ApiError", "errorCode": 1142, "recommendation":
"Do not retry without fixing the problem. ", "message": "Column type
DURATION is reserved for project sheets and may not be manually set on
a column.", "refId": "6gurrzzwhepe", "statusCode": 400}}
有什么方法可以让我从头开始创建项目 sheets 吗?
我曾尝试将 gantt_enabled 设置为 true,但这只是触发了一个不同的错误,设置 'project_settings'.
也是如此
我试过只用主列创建 sheet,然后 update_sheet 来设置项目设置,它告诉我:To set projectSettings, you must first enable dependencies on the sheet.
我已经尝试直接在 create_sheet 和 update_sheet 中设置依赖项,但是 return: The attribute(s) sheet.dependenciesEnabled are not allowed for this operation.
我会继续尝试,但我已经没有想法了。
从模板创建 sheet,如果要自定义,可以使用全局项目模板或用户定义的模板。
templates = SS.Templates.list_public_templates()
for template in templates.data:
if template.global_template ==
smartsheet.models.enums.GlobalTemplate.PROJECT_SHEET:
break
sheet = smartsheet.models.Sheet({
'name': name,
'from_id': template.id
})
resource_sheet = SS.Folders.create_sheet_in_folder(folder_id, sheet)
如果您想使用 Smartsheet 网络 UI 自定义创建项目 sheet,请进行更改,然后另存为模板。一旦你有了模板,如果你不想搜索它,就从属性中获取 ID,或者 SS.Templates.list_user_created_templates()
.
您无法通过 API 创建 new dependency-enabled sheet。您需要手动创建一个模板,然后使用 API 进行复制。
我正在尝试在文件夹中创建新项目 sheets,但是我无法找到一种方法来确保 sheet 是一个项目 sheet。
到目前为止,这是我的代码:
def create_resource_sheet(name):
""" Create a new resource sheet.
:param name:
:return:
"""
folder_id = get_resource_folder_id()
# TODO: Find and delete existing sheet with this name
resource_sheet = SS.models.Sheet({
'name': name,
# 'gantt_enabled': True, # This was added as an attempt to force it to a project sheet, but error 1032
'columns': [{
'title': 'Task',
'type': 'TEXT_NUMBER',
'primary': True,
'width': 200
}, {
'title': 'Status',
'type': 'PICKLIST',
'options': ['wtg', 'hld', 'ip', 'rdy', 'rev', 'fin', 'omt'], # TODO: Update this list
'width': 180
}, {
'title': '% Complete',
'type': 'TEXT_NUMBER',
'tag': ['GANTT_PERCENT_COMPLETE'],
'width': 85
}, {
'title': 'Assigned To',
'type': 'CONTACT_LIST',
'tag': ['GANTT_ASSIGNED_RESOURCE', 'GANTT_DISPLAY_LABEL'],
'width': 150
}, {
'title': '% Use',
'type': 'TEXT_NUMBER',
'tag': ['GANTT_ALLOCATION'],
'width': 60
}, {
'title': 'Days',
'type': 'DURATION',
'tag': ['GANTT_DURATION'],
'width': 70
}, {
'title': 'Start',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_START_DATE', 'GANTT_START_DATE'],
'width': 80
}, {
'title': 'Start',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_START_DATE', 'GANTT_START_DATE'],
'width': 80
}, {
'title': 'Finish',
'type': 'ABSTRACT_DATETIME',
'tag': ['CALENDAR_END_DATE', 'GANTT_END_DATE'],
'width': 80
}, {
'title': 'Type',
'type': 'TEXT_NUMBER',
'width': 150
}, {
'title': 'Comments',
'type': 'TEXT_NUMBER',
'width': 700
}
]
})
response = SS.Folders.create_sheet_in_folder(folder_id, resource_sheet)
new_sheet = response.result
return new_sheet
我收到以下错误代码:
smartsheet.exceptions.ApiError: {"result": {"shouldRetry": false, "code": 1142, "name": "ApiError", "errorCode": 1142, "recommendation": "Do not retry without fixing the problem. ", "message": "Column type DURATION is reserved for project sheets and may not be manually set on a column.", "refId": "6gurrzzwhepe", "statusCode": 400}}
有什么方法可以让我从头开始创建项目 sheets 吗?
我曾尝试将 gantt_enabled 设置为 true,但这只是触发了一个不同的错误,设置 'project_settings'.
也是如此我试过只用主列创建 sheet,然后 update_sheet 来设置项目设置,它告诉我:To set projectSettings, you must first enable dependencies on the sheet.
我已经尝试直接在 create_sheet 和 update_sheet 中设置依赖项,但是 return: The attribute(s) sheet.dependenciesEnabled are not allowed for this operation.
我会继续尝试,但我已经没有想法了。
从模板创建 sheet,如果要自定义,可以使用全局项目模板或用户定义的模板。
templates = SS.Templates.list_public_templates()
for template in templates.data:
if template.global_template ==
smartsheet.models.enums.GlobalTemplate.PROJECT_SHEET:
break
sheet = smartsheet.models.Sheet({
'name': name,
'from_id': template.id
})
resource_sheet = SS.Folders.create_sheet_in_folder(folder_id, sheet)
如果您想使用 Smartsheet 网络 UI 自定义创建项目 sheet,请进行更改,然后另存为模板。一旦你有了模板,如果你不想搜索它,就从属性中获取 ID,或者 SS.Templates.list_user_created_templates()
.
您无法通过 API 创建 new dependency-enabled sheet。您需要手动创建一个模板,然后使用 API 进行复制。