我必须做什么,通过复制工作区来复制工作表的工作流程?
What do I have to do, that the workflows of the sheets are copied by copying the workspace?
为了使我的一些工作自动化,我正在研究 javascript 和 smartsheet-api,...
我编写了一个脚本,通过使用新的工作空间名称复制整个工作空间来设置工作空间。与不同的人共享工作区,与其他人共享个人工作表,生成一些与新生成的工作表之间的链接,...
其中一些操作并不像我想的那么容易,......然而,在一天结束时它奏效了。
但是现在我发现,没有复制工作表的工作流程,...复制的工作表中没有工作流程。
我正在使用节点作为我的 javascript-运行时环境。
//-------------------------------------------------------------------------------------
// prepare copying the workspace
// ------------------------------
var body = { newName: workspaceName }; // store the workspaceName from the function-parameters in the body-object
var params = { include: "all, rules, ruleRecipients", skipRemap: "" }; // set parameters
var options = { workspaceId: sourceWorkspaceID, body: body, queryParameters: params }; // create the options-object with all the settings above
//--------------------------------------------------------------------------------------
try { // Try copying workspace
copiedWorkspace = await ss.workspaces.copyWorkspace(options); // ---------------------
console.log('setupTheWorkspace: Workspace wurde kopiert.');
} catch (e) {
console.log('setupTheWorkspace: Workspace konnte nicht kopiert werden.');
console.log(e);
上面的代码说明了方法,我是复制的。首先,我尝试仅将“all”作为包含参数,然后将“rules, ruleRecipients”添加到包含参数,但无济于事。
怎么办,工作表的工作流是通过复制工作区来复制的?
几点评论:
Copy Workspace 操作的 Smartsheet API 文档将 include
参数的 all
值描述为 弃用。通常建议避免使用任何标记为 'deprecated'.
的内容
include
参数的值不应包含任何 space。我怀疑这是您问题的根源——即 Smartsheet 无法识别包含前导 space 的值——例如,' rules'
或 ' ruleRecipients'
——因此忽略它们。
如果我对文档的理解正确,如果你想 NOT 重新映射某些引用,你只需要指定 skipRemap
参数新创作的作品space。用空值指定该参数没有意义——如果您不打算为其指定值,我建议您将其删除。
这是您的代码中反映这些建议的行:
var params = { include: "rules,ruleRecipients" };
注意:如果您希望将其他内容(除了工作流程)复制到新作品space,请务必向 include
参数添加其他值。文档包含所有有效值的列表。并且一定不要在 comma-delimited 值列表中包含任何 space。
下面是一些成功复制作品的示例代码space(并指定了 include
参数的所有值)。
// Specify new workspace name
var body = {
newName: 'My New Workspace'
};
// Set elements to copy
var params = {
include: 'attachments,cellLinks,data,discussions,filters,forms,rules,ruleRecipients,shares'
};
// Set options
var options = {
workspaceId: 6192537502279556,
body: body,
queryParameters: params
};
// Copy workspace
smartsheet.workspaces.copyWorkspace(options)
.then(function(copiedWorkspace) {
console.log(copiedWorkspace);
})
.catch(function(error) {
console.log(error);
});
为了使我的一些工作自动化,我正在研究 javascript 和 smartsheet-api,... 我编写了一个脚本,通过使用新的工作空间名称复制整个工作空间来设置工作空间。与不同的人共享工作区,与其他人共享个人工作表,生成一些与新生成的工作表之间的链接,...
其中一些操作并不像我想的那么容易,......然而,在一天结束时它奏效了。
但是现在我发现,没有复制工作表的工作流程,...复制的工作表中没有工作流程。
我正在使用节点作为我的 javascript-运行时环境。
//-------------------------------------------------------------------------------------
// prepare copying the workspace
// ------------------------------
var body = { newName: workspaceName }; // store the workspaceName from the function-parameters in the body-object
var params = { include: "all, rules, ruleRecipients", skipRemap: "" }; // set parameters
var options = { workspaceId: sourceWorkspaceID, body: body, queryParameters: params }; // create the options-object with all the settings above
//--------------------------------------------------------------------------------------
try { // Try copying workspace
copiedWorkspace = await ss.workspaces.copyWorkspace(options); // ---------------------
console.log('setupTheWorkspace: Workspace wurde kopiert.');
} catch (e) {
console.log('setupTheWorkspace: Workspace konnte nicht kopiert werden.');
console.log(e);
上面的代码说明了方法,我是复制的。首先,我尝试仅将“all”作为包含参数,然后将“rules, ruleRecipients”添加到包含参数,但无济于事。
怎么办,工作表的工作流是通过复制工作区来复制的?
几点评论:
Copy Workspace 操作的 Smartsheet API 文档将
的内容include
参数的all
值描述为 弃用。通常建议避免使用任何标记为 'deprecated'.include
参数的值不应包含任何 space。我怀疑这是您问题的根源——即 Smartsheet 无法识别包含前导 space 的值——例如,' rules'
或' ruleRecipients'
——因此忽略它们。如果我对文档的理解正确,如果你想 NOT 重新映射某些引用,你只需要指定
skipRemap
参数新创作的作品space。用空值指定该参数没有意义——如果您不打算为其指定值,我建议您将其删除。
这是您的代码中反映这些建议的行:
var params = { include: "rules,ruleRecipients" };
注意:如果您希望将其他内容(除了工作流程)复制到新作品space,请务必向 include
参数添加其他值。文档包含所有有效值的列表。并且一定不要在 comma-delimited 值列表中包含任何 space。
下面是一些成功复制作品的示例代码space(并指定了 include
参数的所有值)。
// Specify new workspace name
var body = {
newName: 'My New Workspace'
};
// Set elements to copy
var params = {
include: 'attachments,cellLinks,data,discussions,filters,forms,rules,ruleRecipients,shares'
};
// Set options
var options = {
workspaceId: 6192537502279556,
body: body,
queryParameters: params
};
// Copy workspace
smartsheet.workspaces.copyWorkspace(options)
.then(function(copiedWorkspace) {
console.log(copiedWorkspace);
})
.catch(function(error) {
console.log(error);
});