我必须做什么,通过复制工作区来复制工作表的工作流程?

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);
  });