Meilleur auteur de réponses
[WSS3.0][Dev EventHandler] Recuperer valeur d'un paramètre d'un workflow.

Question
-
Bonjour,
J'aurai voulu savoir si il etait possible de lire les parametres (d'association ou d'instanciation) d'un workflow lié a un item de liste.
une solution alternative serait evidemment de copier ses parametre dans les propriétés de l'item.
Mais peut on vi code les lire directement ?
Merci
Réponses
-
Bonjour,
sur chaque list item (SPListItem) il y a une propriété Workflows qui retourne la collection des workflows sur lequel est attaché l'item.
Dans cette collection il suffit de recupérer l'instance de son workflow et de lire la propriété ParentAssociation qui retourne un SPWorkflowAssociation.La propriété AssociationData retourne les informations de celui ci.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflow_members.aspx
Xavier VANNESTE
www.xvanneste.com
media.xvanneste.com
blog.xvanneste.com- Proposé comme réponse Philippe SentenacModerator lundi 18 octobre 2010 09:31
- Marqué comme réponse Tom 42 mardi 19 octobre 2010 22:22
-
Bonjour,
Je détaille la solution présentée par Xavier en vous montrant un exemple de code :
private void getAssociationFormData_ExecuteCode(object sender, EventArgs e) { AssociationData myAssociationData = null; // Represents the Association Form Data pased in XmlSerializer serializer; XmlTextReader reader; // Deserialize the Custom Workflow Form Data from a String, // back into the the appropriate Class Type so that we can use // the values in our workflow. serializer = new XmlSerializer(typeof(AssociationData)); reader = new XmlTextReader(new System.IO.StringReader(workflowProperties.AssociationData)); myAssociationData = (AssociationData)serializer.Deserialize(reader); // Store the user selected values this._destinationTitle = myAssociationData.DefaultDestinationDirectory; this._fileCopyOptions = myAssociationData.DefaultFileCopyChoice; }
La classe AssociationData ressemble à ça :
[Serializable] public class AssociationData { public string DefaultDestinationDirectory; public string DefaultFileCopyChoice; }
Ce bout de code est tiré du blog de Robert Shelton.Sinon en règle générale, ces deux liens sont très utiles quand on commence le développement de workflow :
http://rshelton.com/archive/2007/10/05/sharepoint-document-workflow-with-visual-studio-workshop-documents-download.aspx
http://sergeluca.wordpress.com/2007/07/12/step-by-step-tutorial-creating-workflows-for-windows-sharepoint-services-and-moss2007-part-120/
Bon courage.
Philippe Sentenac - MVP SharePoint - http://blogs.developpeur.org/phil
Merci de valider les réponses qui correspondent à votre problème afin qu'il apparaisse comme résolu.- Proposé comme réponse Philippe SentenacModerator lundi 18 octobre 2010 09:31
- Marqué comme réponse Tom 42 mardi 19 octobre 2010 22:22
Toutes les réponses
-
Bonjour,
sur chaque list item (SPListItem) il y a une propriété Workflows qui retourne la collection des workflows sur lequel est attaché l'item.
Dans cette collection il suffit de recupérer l'instance de son workflow et de lire la propriété ParentAssociation qui retourne un SPWorkflowAssociation.La propriété AssociationData retourne les informations de celui ci.
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkflow_members.aspx
Xavier VANNESTE
www.xvanneste.com
media.xvanneste.com
blog.xvanneste.com- Proposé comme réponse Philippe SentenacModerator lundi 18 octobre 2010 09:31
- Marqué comme réponse Tom 42 mardi 19 octobre 2010 22:22
-
Bonjour,
Je détaille la solution présentée par Xavier en vous montrant un exemple de code :
private void getAssociationFormData_ExecuteCode(object sender, EventArgs e) { AssociationData myAssociationData = null; // Represents the Association Form Data pased in XmlSerializer serializer; XmlTextReader reader; // Deserialize the Custom Workflow Form Data from a String, // back into the the appropriate Class Type so that we can use // the values in our workflow. serializer = new XmlSerializer(typeof(AssociationData)); reader = new XmlTextReader(new System.IO.StringReader(workflowProperties.AssociationData)); myAssociationData = (AssociationData)serializer.Deserialize(reader); // Store the user selected values this._destinationTitle = myAssociationData.DefaultDestinationDirectory; this._fileCopyOptions = myAssociationData.DefaultFileCopyChoice; }
La classe AssociationData ressemble à ça :
[Serializable] public class AssociationData { public string DefaultDestinationDirectory; public string DefaultFileCopyChoice; }
Ce bout de code est tiré du blog de Robert Shelton.Sinon en règle générale, ces deux liens sont très utiles quand on commence le développement de workflow :
http://rshelton.com/archive/2007/10/05/sharepoint-document-workflow-with-visual-studio-workshop-documents-download.aspx
http://sergeluca.wordpress.com/2007/07/12/step-by-step-tutorial-creating-workflows-for-windows-sharepoint-services-and-moss2007-part-120/
Bon courage.
Philippe Sentenac - MVP SharePoint - http://blogs.developpeur.org/phil
Merci de valider les réponses qui correspondent à votre problème afin qu'il apparaisse comme résolu.- Proposé comme réponse Philippe SentenacModerator lundi 18 octobre 2010 09:31
- Marqué comme réponse Tom 42 mardi 19 octobre 2010 22:22
-
Bonjour et merci à tous pour les réponses.
Tom42, si ces informations vous ont été utiles, je vous remercie de les marquer comme réponses.
Cordialement,
Alex
________________
Publiez un article sur une de ces technologies : Visual Basic, C#, C++, .NET, ASP.NET, SQL Server, Silverlight, SharePoint 2010, SharePoint 2007
Astuces pour Visual Studio 2010
XNA – Développement jeux vidéo
Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, WPF
Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.