IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SharePoint .NET Discussion :

Workflow et Actions personnalisées [SP-2013]


Sujet :

SharePoint .NET

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut Workflow et Actions personnalisées
    Bonjour,

    J'arrive à créer une action personnalisée qui lance un workflow sur l'élément sélectionné de ma liste. Le problème, c'est que je suis amené à travailler avec une grosse volumétrie.

    J'aimerais donc créer une action personnalisée qui permettrait de lancer ce workflow sur tous les éléments de ma liste.
    Comment faire?

    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Tu fais une custom action qui récupère (en javascript) les id de ta liste sélectionnés et tu envoies tout ça à une page aspx qui te lance ton wf (WorkflowManager.StartWorkflow...) pour chaque élément de ta liste sélectionné.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci de ta réponse.

    A priori, je vais récupérer les éléments sélectionnés avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var value = SP.ListOperation.Selection.getSelectedItems();
    et pour chaque élément contenu dans "value", je vais lancer mon workflow grâce à la page aspx.

    Comment créer cette page aspx? En code? Ou il existe une manière de le faire simplement avec SharePoint ou SharePoint Designer?

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Par code via Visual studio.

    Depuis ta Custom Action tu passes la liste des éléments sélectionnés en paramètre à ta nouvelle page aspx, qui se charge de lancer le wf pour chaque élément.

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Je ne connais pas la syntaxe pour créer ce genre de page. Connais-tu un bon tutoriel sur internet?

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2006
    Messages
    857
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2006
    Messages : 857
    Points : 884
    Points
    884
    Par défaut
    Citation Envoyé par scheubb Voir le message
    Je ne connais pas la syntaxe pour créer ce genre de page. Connais-tu un bon tutoriel sur internet?
    Dans ton projet Visual studio, tu ajoutes une application page SharePoint, il te génère la trame.

  7. #7
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    J'ai oublié de préciser que je travaillais sur la plateforme en ligne, je ne peux donc pas créer d'application page.

  8. #8
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Bonjour,

    je reviens sur ton idée javascript ,

    var value = SP.ListOperation.Selection.getSelectedItems();
    je la complète avec la possibilité de démarrer un worfklow en javascript avec le CSOM

    A toi de trouver la bonne mécanique d'implémentation
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  9. #9
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Merci je vais suivre ça

  10. #10
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    J'ai suivi cet exemple :

    je la complète avec la possibilité de démarrer un worfklow en javascript avec le CSOM
    Mais à chaque fois ça bloque à cette ligne :
    var workflowServicesManager = SP.WorkflowServices.WorkflowServicesManager.newObject(context, context.get_web());

    J'ai fait des recherches, le code a l'air bon mais cela ne fonctionne pas.
    Vous avez une idée de la raison?

  11. #11
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Bonjour,

    quel est l'erreur? est ce que tu debug avec firebug ou l'outil internet explorer (F12)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ctx = SP.ClientContext.get_current();
    ==> Est ce que le context est bien récupérer?
    ==> Peux-tu tester la récupération d'un élément? (c'est plus simple que de démarrer un workflow, juste histoire de tester que le code est fonctionnel)
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  12. #12
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Voilà ce que j'obtiens :
    Uncaught TypeError: Cannot read property 'WorkflowServicesManager' of undefined
    J'ai inséré des messages dans mon code pour voir jusqu'où il allait. Il récupère le contexte mais ensuite il n'arrive pas à récupérer le WorkflowServicesManager..

    J'arrive à récupérer des infos sur un élément, comme son ID par exemple.

  13. #13
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Bonjour,

    Le namespace du Workflow ne m'est pas familier.
    J'en déduis qu'il faut surement rajouter une référence à une library .JS supplémentaire.

    Je ne trouve pas trop d'infos à ce sujet, as tu pu lire cet article?
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  14. #14
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Oui j'ai lu cet article (et bien d'autres..)

    Le problème, c'est qu'ils passent tous par le WorkflowServicesManager

    Pour ce qui est des références, j'ai ajouté :

    /// <reference path="~/_layouts/15/SP.js" />
    /// <reference path="~/_layouts/15/SP.Runtime.js" />
    /// <reference path="~/_layouts/15/SP.WorkflowServices.js" />

    Par contre j'avais répondu un peu vite à une de tes questions, j'arrive à récupérer les éléments sélectionnés et leur ID mais je n'arrive pas à récupérer la valeur de leurs colonnes.

    Merci pour toutes tes réponses

  15. #15
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Est ce que tu vois bien la référence .JS dans les fichiers dans ton navigateur?

    car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    /// <reference path="~/_layouts/15/SP.js" />
    /// <reference path="~/_layouts/15/SP.Runtime.js" />
    /// <reference path="~/_layouts/15/SP.WorkflowServices.js" />
    C'est uniquement pour visual studio pour l'intellisense.
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  16. #16
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    Où dois-je chercher?

  17. #17
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Dans ton navigateur internet explorer, tu fais F12, ensuite tu va dans l'onglet Scripts, et tu regarde si ton fichier .JS est bien référencé sur ta page.
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  18. #18
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    En effet il ne semble pas référencé, comment fais-je pour l'ajouter?

  19. #19
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Bonjour,

    Par javascript, tu peux référencé un autre fichier javascript
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    <script type="text/javascript">
      ExecuteOrDelayUntilScriptLoaded(Master_Default, "sp.js");
     
      function Master_Default() {
     
        var head;
        var script;
        head = document.getElementsByTagName('head')[0];
        script = document.createElement('script');
        script.type = 'text/javascript';
     
     
          script.src = WPSC.WebPartPage.WebURL   + "/_layouts/15/SP.WorkflowServices.js";
     
        head.appendChild(script);
      }
    </script>
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  20. #20
    Candidat au Club
    Inscrit en
    Novembre 2013
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2013
    Messages : 13
    Points : 3
    Points
    3
    Par défaut
    merci, j'essaie !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/06/2008, 18h12
  2. Réponses: 7
    Dernier message: 25/05/2008, 17h06
  3. Creer [VS2005]une action personnalisée lors de l'installation
    Par chris81 dans le forum Visual Studio
    Réponses: 2
    Dernier message: 03/07/2007, 09h38
  4. Réponses: 1
    Dernier message: 22/08/2006, 13h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo