17 mai 2014

SHAREPOINT 2013 : Workflow dans sous-site

Lors de l'utilisation de SharePoint 2013 et des workflow, vous pouvez être amené à rencontrer quelques difficultés : pour certains sites, les Workflow SharePoint de type 2013 ne sont pas disponibles sur les sous-sites (O365 et On-Premise).
 
Cela provient de la fonctionnalité "WorkflowServiceStore" qui est masquée et non activée.
Pour l'activer sur un serveur on premise, une simple commande PowerShell suffira:
Enable-SPFeature -Identity WorkflowServiceStore –Url $yourUrl

Pour l'activer sur un O365, on peut choisir plusieurs méthodes. Afin de changer un peu, aujourd'hui on va utiliser de l'ECMAScript.
Pour se faire, créer une page sur votre sous-site. Ensuite, sélectionner « Insérer » puis « Code incorporé ». Ensuite copier le texte suivant dans une balise script de type "text/ecmascript":
clientContext = SP.ClientContext.get_current();
currentweb = clientContext.get_web();
//Guid du feature WorkflowServiceStore 
guid = new SP.Guid("{2c63df2b-ceab-42c6-aeff-b3968162d4b1}");  
featDef = currentweb.get_features().add(guid, false, SP.FeatureDefinitionScope.none);
// Résultat de l'exécution
clientContext.executeQueryAsync(Function.createDelegate(this, this.OnSuccess), Function.createDelegate(this, this.OnFail));
function OnSuccess(sender, args) {  alert("La fonctionnalité WorkflowServiceStore est activée!");  }
function OnFail(sender, args) {  alert("Erreur: " + args.get_message() + "\n" + args.get_stackTrace());  }
 
Si vous utilisez des définitions de sites personnalisées, le plus simple reste d'activer les fonctionnalités "Workflow task et workflow service store dans la déclaration de votre fichier "ONET". 

Aucun commentaire:

Enregistrer un commentaire