Para automatizar algunos de mis trabajos, me estoy sumergiendo en javascript y smartsheet-api... Escribí un script que configura un espacio de trabajo copiando todo el espacio de trabajo con un nuevo nombre de espacio de trabajo. Compartir el espacio de trabajo con diferentes personas, compartir hojas individuales con otras personas, generar algunos enlaces hacia y desde las hojas recién generadas,...
Algunas de estas acciones no fueron tan fáciles, como pensaba, ... Sin embargo, al final del día funcionó.
Pero ahora descubrí que los flujos de trabajo de las hojas no se copiaron, ... no hay flujos de trabajo en las hojas copiadas.
Estoy usando el nodo como mi javascript-runtime-environment.
//------------------------------------------------------------------------------------- // 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);El código anterior muestra la forma en que hago la copia. Primero lo probé con solo "todos" como parámetro de inclusión, luego agregué "reglas, ruleRecipients" al parámetro de inclusión, pero fue en vano.
¿Qué tengo que hacer, que se copien los flujos de trabajo de las hojas copiando el espacio de trabajo?
Algunos comentarios:
Los documentos de la API de Smartsheet para la operación Copiar espacio de trabajo describen el valor all del parámetro de include como obsoleto . En general, se recomienda evitar el uso de cualquier cosa que esté marcada como "obsoleta".
El valor del parámetro include no debe contener espacios. Sospecho que esta es la fuente de su problema, es decir, Smartsheet no reconoce valores que contienen un espacio inicial, por ejemplo, ' rules' o ' ruleRecipients' , y por lo tanto los ignora.
Si entiendo los documentos correctamente, solo necesita especificar el parámetro skipRemap si desea NO reasignar ciertas referencias en el espacio de trabajo recién creado. Especificar ese parámetro con un valor vacío no tiene sentido; le sugiero que lo elimine si no va a especificar un valor para él.
Aquí está la línea de su código que refleja estas recomendaciones:
var params = { include: "rules,ruleRecipients" };
Nota: asegúrese de agregar valores adicionales al parámetro de include si desea que se copien otras cosas (además de los flujos de trabajo) en el nuevo espacio de trabajo. Los documentos contienen una lista de todos los valores válidos. Y asegúrese de NO incluir ningún espacio en la lista de valores delimitados por comas.
Aquí hay un código de muestra que copia con éxito un espacio de trabajo (y especifica todos los valores del parámetro de 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); });