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 :

WebPart : Récupération des workflows 2013


Sujet :

SharePoint .NET

  1. #1
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut WebPart : Récupération des workflows 2013
    Bonjour,

    J'ai créé un "SharePoint 2013 - Visual Web Part" en C# (depuis Visual Studio 2013, en mode "solution farm") sur le serveur SharePoint 2013 pour pouvoir lister tous les workflows (inclus les versions 2010 et 2013) d'une liste.

    Cependant, je n'arrive pas à lister les workflows version 2013 quand je me connecte sur un autre poste autre que le serveur.
    Si je suis sur le serveur et que j'affiche mon composant, je vois bien tous les workflows de ma liste (aussi bien les 2010 que les 2013) mais quand je le fait depuis un poste autre que le serveur, je ne vois que les workflows version 2010.

    Voici le code que j'utilise pour récupérer les workflows de 2010 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    string url = "url of site";
    SPContext ctx = SPContext.Current;
    SPWeb web = ctx.web;
    Guid listId = ctx.ListId;
    SPWorkflowAssociation workflows2010 = web.Lists
    [listId].WorkflowAssociations;
    Et pour obtenir les workflows version 2013, je suis obligé de faire ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ClientContext clientCtx = new ClientContext(url);
    // clientCtx.Credentials = new NetworkCredential("username", "password", "domain");
    Web clientWeb = clientCtx.Web;
     
    WorkflowServicesManager manager = new WorkflowServicesManager(clientCtx, clientWeb);
    WorkflowSubscriptionService subscription = manager.GetWorkflowSubscriptionService();
    WorkflowInstanceService instance = manager.GetWorkflowInstanceService();
     
    WorkflowSubscriptionCollection workflows2013 = subscription.EnumerateSubscriptionsByList(listId);
    clientCtx.Load(workflows2013);
    clientCtx.ExecuteQuery();
    Après quoi je merge ensemble les deux liste pour tout afficher.

    Question, pourquoi dois-je déjà faire une connexion différente (donc avec ClientContext) pour aller récupérer les workflows 2013.
    J'ai aussi essayé de me connecter avec un compte différent (avec un compte qui est administrateur de la collection de site) depuis le ClientContext mais cela ne change rien ! c'est pourquoi j'ai commenté la partie "Credentials".

    Je précise aussi que le compte avec lequel je fait tous mes tests aussi bien sur le serveur que sur un poste indépendant est administrateur de la collection de site, c'est toujours le même compte que j'utilise.

    Pouvez-vous m'aider ?
    Merci
    Pensez à mettre comme si c'est le cas !

  2. #2
    Membre actif
    Avatar de Micmaya
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 131
    Points : 202
    Points
    202
    Billets dans le blog
    3
    Par défaut
    Complément d'information, pour le moment j'ai englobé le code d'un "try catch" pour empêcher d'avoir des erreurs mais si je le désactive j'obtiens l'erreur suivante dans l'executeQuery() :

    The remote server returned an error: (403) Forbidden.
    Je suis bien d'accord qu'il s'agit d'un problème de permission mais quelle est celle qui me manque alors que je suis administrateur de la collection de site !!

    J'ai pu obtenir le "PermMask" d'un workflow 2013, qui est : 0x400001f07fff1bff (est-ce cette permission qui me manque ?? enfin, il faut encore que je la décode)
    Pensez à mettre comme si c'est le cas !

Discussions similaires

  1. [C#] Récupération des variables system...
    Par smyley dans le forum Windows Forms
    Réponses: 7
    Dernier message: 04/08/2005, 12h39
  2. Récupération des paramètres avec une procedure stockée
    Par samlerouge dans le forum Bases de données
    Réponses: 2
    Dernier message: 31/03/2004, 23h00
  3. Réponses: 2
    Dernier message: 20/02/2004, 09h47
  4. Récupération des noms de champs d'une table
    Par Battomura dans le forum SQL
    Réponses: 2
    Dernier message: 24/03/2003, 11h00
  5. Réponses: 13
    Dernier message: 20/03/2003, 09h11

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