none
Workflow 2010 sur SP2013 - Approbation de tâches par code RRS feed

  • Question

  • Bonjour,

    Je suis actuellement en train de développer une appli console (utilisée en tâche planifiée) qui me permet de valider automatiquement une tâche dans mon workflow de demande de congés. Pour faire court, le workflow comprend 2 étapes: une étape pour la validation RH et une autre pour la validation du manager.

    Lorsque un utilisateur fait une demande, une tâche est créée par le biais du workflow et est assignée au service RH. Mon appli console tourne toutes les nuits et check si des tâches sont anciennes de 8 jours. Si c'est le cas, j'essaie de les valider par code:

    Hashtable ht = new Hashtable();
    ht[SPBuiltInFieldId.Completed] = true;
    ht["Completed"] = true;
    ht[SPBuiltInFieldId.PercentComplete] = 1.0f;
    ht["PercentComplete"] = 1.0f;
    ht["Status"] = "Terminé";
    ht[SPBuiltInFieldId.TaskStatus] = SPResource.GetString(new CultureInfo((int)task.Web.Language, false), Strings.WorkflowStatusCompleted, new object[0]);
    ht[SPBuiltInFieldId.WorkflowOutcome] = "Terminé";
    ht["FormData"] = SPWorkflowStatus.Completed;
    ht["Statut Validation RH"] = "Accepté";
    ht["Commentaires RH"] = "Validation automatique du service RH.";
    
    SPWorkflowTask.AlterTask(task, ht, true);

    La validation fonctionne bien, en revanche mon workflow ne va pas plus loin...

    J'ai remarqué que selon les personnes qui sont à l'origine de la demande, le workflow continue ou pas.

    Est-ce un problème de droits? Et où les paramétrer? Ou alors, il y a quelque chose qui cloche ou qui manque dans le code de la validation de la tâche?

    PS: L'autre tâche est créée et assignée au manager grâce à la condition du workflow:

    Si Tâches de flux de travail:Statut Validation RH est égal à Accepté

    Merci d'avance!


    Jay




    lundi 9 mai 2016 16:38

Réponses

  • Il s'agissait effectivement d'un problème de droit.

    Au départ, je pensais que l'utilisateur qui faisait tourner le workflow était le compte système mais en réalité il s'agit du compte de la personne à l'origine du démarrage du workflow. Or, ces personnes n'ont pas forcément les droits sur les listes dans lesquelles le workflow doit écrire ou mettre à jour.

    La solution a mon problème a été de passer mes étapes dans une Etape Emprunt d'identité qui permet d'emprunter l'identité de l'auteur du workflow (celui qui l'a modifié en dernier)!

    Mes validations fonctionnent parfaitement maintenant :)


    Jay

    mardi 10 mai 2016 10:23