Actions de flux de travail personnalisé SPD — améliorations de la manipulation de chaîne

Environ une semaine il y a, J'ai commencé un projet codeplex qui fournit une méthode simple et raisonnablement générique permettant d'ajouter des fonctions personnalisées au workflow SharePoit Designer. Elle est décrite ici: http://www.codeplex.com/spdwfextensions. Au-delà de simplement fournir un cadre, Il vise également à fournir un ensemble de fonctions utiles qui rendront le SPD plus utile/souple/puissant.

Voici les caractéristiques actuelles et prévues pour la version 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Si quelqu'un a tout intérêt à ce projet, Veuillez laisser un commentaire ou démarrer/ajouter à une discussion ici: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Voici l'ensemble des fonctions qui ont été codés (Bien que pas entièrement testé comme de 11/08/07):

Fonction Description (Si pas identique.Fonction nette)
Num-entrées() Renvoie les numéros "entrées" dans une chaîne comme un délimiteur spécifié.

Par exemple: Num-entrées en une chaîne « un,b,c" avec délimiteur »," = 3.

Entrée() Renvoie le nième jeton dans une chaîne comme un délimiteur spécifié.
Longueur String.Length
Remplacer() String.Replace()
Contient() String.Contains()
Renvoie le mot « vrai" ou le mot « faux ».
Sous-chaîne(début) String.Substring(début)
Sous-chaîne(début,fin) String.Substring(début,fin)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Renvoie le mot « vrai" ou le mot « faux ».
EndsWith() String.EndsWith()
Renvoie le mot « vrai" ou le mot « faux ».

Rapide & url facile codage utilitaire de bureau

J'ai été besoin d'url-coder certaines chaînes de cette semaine et giflée ensemble un un petit utilitaire que j'ai pensé que je mettrais SkyDrive pour la communauté.

Obtenir le binaire ici: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Obtenez ici la solution visual studio: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Voici une capture d'écran:

image

Facile et rapide: Incorporer un lien hypertexte dans WebPart Affichage de données XSLT

MISE À JOUR (01/17/08): Cette entrée de blog parle plus de lien hypertexte bonté XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Présentation et objectif: J'avais créé un graphique à barres simple pour servir de composant sur un tableau de bord. Je vais enregistrer les détails sur la création de graphiques pour un autre poste, mais je n'a pas inventé cette technique (ni le point d'interrogation, d'ailleurs). Il s'est avéré il y avait un bug dans le tableau, et alors que je fixe, J'en ai profité pour convertir quelques étiquettes converties en liens hypertexte qui pointait à la liste sous-jacente derrière le graphique. Par exemple, Il y a une étiquette avec la valeur « Hold ». Je voulais tourner l'étiquette en lien hypertexte afin que l'utilisateur puisse cliquer dessus et forer vers le bas pour les entrées spécifiques dans la liste dont valeur d'État est « Hold ».

Étapes:

  1. Studio visuel d'utilisation pour intellisense SharePoint-conscient.
  2. Copier XSLT du DVWP dans visual studio (créer un projet vide, Ajoutez au projet un fichier XSL).
  3. Copier le lien que vous souhaitez utiliser dans le presse-papiers.
  4. Coller dans le bon emplacement dans le XSL.
  5. Convertir des séparateurs d'argument URL sur la chaîne de requête de »&" »&"
  6. URL-encode les arguments individuels.
  7. Envelopper l'intérieur un <a href…> </un>

Exemple:

J'ai une URL:

http://[serveur]/[site]/Lists/Open Positions/AllItems.aspx?Point de vue ={84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}&FilterField1 = recruteur&FilterValue1 = attente

Convertir en:

     <un href="Lists/Open Positions/AllItems.aspx?Vue = % 7b84EEA2F5-121 b-40B7-946F-
0FA704A1DAA1 7 % d&amp;FilterField1 = recruteur&amp;FilterValue1 = attente"> Cale: </un>

J'ai transformé manuellement le premier argument de:

{84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}

À:

%7b84EEA2F5-121 b-40B7-946F-0FA704A1DAA1 7 % d

(Dans cette, les transformations de l'accolade ouverte à 7 % et la fermeture préparer se transforme à 7 % d)

Les deuxième et troisième arguments’ paramètres (« FilterField1 =Recruteur" et « FilterValue1 =Cale" respectivement) ne devez pas être codée en url parce qu'ils ne contiennent pas tous les caractères non sécuritaires.

Notes:

Cette technique devrait généralement travailler n'importe où que vous souhaitez intégrer un lien hypertexte dans XSLT où le lien hypertexte inclut les paramètres de l'URL comme:

http://[serveur]/[site]/Lists/Open Positions/AllItems.aspx?Point de vue ={84EEA2F5-121 B-40B7-946F-0FA704A1DAA1}&FilterField1 = recruteur&FilterValue1 = attente

J'ai obtenu l'URL elle-même en accédant à la liste personnalisée et de filtrer manuellement sur la colonne de statut (étiquetée « recruteur" au-dessus de).

Simple et rapide: Activer le flux de travail SharePoint Designer mettre à jour un formulaire InfoPath

Scénario: J'ai un formulaire InfoPath frontaux un processus mis en œuvre à l'aide de SharePoint Designer. À un moment donné, un gestionnaire doit approuver le formulaire. Depuis je ne peux pas compter sur l'histoire de flux de travail pour répondre à mes exigences d'audit, Je décide de stocker me propres audit message directement sur le formulaire lui-même.

Vue d'ensemble:

Concevoir le formulaire et de le publier comme une type de contenu et le formulaire lui-même dans une bibliothèque de documents. Mark désiré des champs de formulaire comme étant modifiable de MOSS. Le formulaire est lié au type de contenu et le type de contenu est "attaché" pour une bibliothèque de formulaires (ou plusieurs, Si tu veux). Écrire un flux de travail qui met à jour le champ.

Mesures spécifiques:

  1. Créer une bibliothèque de documents. Cela va tenir votre modèle InfoPath.
  2. Créer une bibliothèque de formulaires.
  3. Créer le formulaire InfoPath. Inclure un champ de texte, « Message de vérification ».
  4. Publier le formulaire comme un type de contenu (PAS un document).
  5. Tout en remplissant les boîtes de dialogue d'éditions:
    un) Enregistrez le fichier .xsn dans la bibliothèque de documents (étape #1).
    b) Publier le Message de vérification »" sur le terrain et marquer le vrai: « Permettre aux utilisateurs de modifier des données dans ce domaine à l'aide d'une feuille de données ou les propriétés de page ».
    c) Créer un nouveau type de contenu et de lui donner un nom approprié.
  6. Accéder à la bibliothèque de formulaires.
    un) Aller à ses paramètres avancés et de permettre à la bibliothèque de formulaires gérer les types de contenu.
    b) Sélectionnez le type de contenu nouvellement créé (5c ci-dessus). Il est regroupé sous "Microsoft InfoPath" (ou similaire).
    c) Supprimer la valeur par défaut de forme »" type de contenu de la bibliothèque.
    d) Marque de la bibliothèque "afficher comme une page web" pour que la forme va lancer de SharePoint et pas le client de station de travail d'InfoPath.
  7. Retournez à la bibliothèque de formes appropriée et cliquez sur « nouveau" pour vérifier simplement que la forme est correctement affichée et agissant comme vous voulez.
  8. Incendie de SharePoint Designer et de naviguer sur le site qui héberge votre bibliothèque de formulaires (de l'étape 2).
  9. Créer un nouveau flux de travail attaché à la bibliothèque de formulaires.
  10. Ajouter une seule action « Champ défini dans élément actuel ». Vous devriez compter liste SharePoint Designer vous êtes votre champ, « Message de vérification ». Attribuez-lui une valeur.
  11. Cliquez sur Terminer et revenir à la bibliothèque de formulaires.
  12. Créez un nouveau formulaire et mettre une valeur de test dans le Message de vérification »" champ.
  13. Enregistrer et revenir à la bibliothèque de formulaires.
  14. Faites un clic droit, Sélectionnez Workflow"" et démarrer votre flux de production.
  15. Il doit exécuter presque immédiatement. Tirez vers le haut de la forme (de l'étape 12) et si tout est passé au plan, « Message de vérification" a été attribué à quelque valeur que vous avez fourni à l'étape 10.

Notes:

Pas tous les contrôles peuvent configuré pour cette communication bidirectionnelle. Par exemple, il ne semble pas implémenter un flux de travail SPD qui modifie les champs de texte encapsulées à l'intérieur des sections extensibles.

Un de la clé take-away ici est que nous avons vraiment créé un type de contenu avec un template associé. Cela nous permet également de stocker plusieurs modèles de formulaires InfoPath dans la même bibliothèque de formulaires.

Pour cela, serveur de formulaires. Il ne va certainement pas à travailler dans un WSS 3.0 environnement et probablement même exige un environnement d'entreprise SharePoint.

Le Beagle a atterri (Octobre 2007 question)

(C'est en fait un peu vieille nouvelle, mais comme le proclame Ma devise favorite de pompiers, « Mieux tard que jamais »).

Check it out ici: http://www.sharepointbeagle.com/

Si vous ne l'avez pas déjà, n'oubliez pas de Inscrivez-vous.

Bien sûr, n'oubliez pas de lire mon article sur un projet de SharePoint réelle (y compris la définition des besoins, IPC, types de contenu, tableaux de bord et bien plus encore) ainsi que mon collègue article sur le composant WebPart requête de contenu.

Il y a aussi beaucoup d'autres bonnes choses.

Comment faire pour supprimer “Afficher tout contenu du site” lien

Je suis posé cette question presque chaque semaine, normalement dans le contexte d'une discussion de sécurité. Un créateur de site/administrateur a mis en service un site, sécurité configurée, web arrangé des pièces et personnalisé le lancement rapide pour fournir ce jeu oh-sorte-parfait d'options à l'utilisateur final. Mais, Out of the box, vous ne pouvez pas supprimer le "Afficher tout le contenu site" lien.

Mark Wagner donne la réponse ici (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Son écriture est formidable sur deux niveaux. Il apporte une réponse à la question, « Comment supprimer le contenu du Site tous les avis" lien? Puis, il répond à la question de suivi immédiate: Comment activer facilement le contenu du site tous les lien sur une base site par site afficher?

En prime: Son approche fonctionne pour WSS, pas seulement de MOSS.

</fin>

S'abonner à mon blog!

Mon projet CodePlex très propre: Workflow extensions pour SharePoint Designer

MISE À JOUR: Voir ici (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) pour les dernières sur ce projet.

J'ai créé un CodePlex projet aujourd'hui à la maison de l'interface générique SPD code que j'ai blogué sur ici (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

Jetez un oeil sur ici (http://www.codeplex.com/spdwfextensions) Voir le projet CodePlex et botter les pneus.

Si vous êtes intéressé à travailler là-dessus avec moi, déclencher un email à mailto:galvin.paul@gmail.com

SharePoint Designer — Activité personnalisée pour exécuter des fonctions définies par l'utilisateur c#

MISE À JOUR: Il a été libéré de CodePlex ici: http://www.codeplex.com/spdwfextensions

MISE À JOUR: Voir ici pour les dernières notes de version: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

MISE À JOUR: Voir ici pour mes pensées sur la commercialisation de ce projet: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Ce projet prévoit une activité personnalisée dans SharePoint Designer. Utilisez cette activité personnalisée pour appeler (expédition) n'importe quelle fonction c# vous incorporé dans l'assembly lié.

De fin octobre, 2007, Il s'agit simplement d'une version initiale du projet. J'ai l'intention de l'étendre avec un certain nombre de fonctions supplémentaires, y compris la sous-chaîne, index, remplacer, appel de services web et tout ce qui semble utile ou intéressant. J'ai également l'intention de ce post de codeplex une fois que j'ai mon agir ensemble sur ce front. Ce sera également déployée comme une solution à un certain moment.

Si vous avez des commentaires, questions ou suggestions, Veuillez laisser dans les commentaires ou Ecrivez-moi.

Avis de non-responsabilité:

Je ne fais absolument aucune réclamation quant à la pertinence de ceci pour n'importe quel but. Utiliser à vos risques et périls.

Étapes d'installation (à suivre pour chaque EPPE dans la ferme):

1. Télécharger le .zip et extraire.

2. Installer le fichier .dll dans le global assembly cache. J'ai ouvert habituellement c:\windowsassembly à l'aide de l'Explorateur windows et copie il y.

3. Modifiez web.config pour ajouter l'assembly pour les contrôles de sécurité:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<authorizedType Assembly = "SpdGenericInterface, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = abe076fd8125f3c4" Namespace = "Nivlag" TypeName = "*" Autorisée = "True" />

4. Copie « SpdGenericInterface.actions" c:\Program FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATE1033Workflow

Notez que l'emplacement ci-dessus est spécifique aux installations de langue anglais.

5. Près de SharePoint Designer (Si ce n'est déjà).

6. iisreset

7. Ouvrez le SPD et créer un nouveau flux de travail.

Si tout va bien, vous devez être récompensé avec une nouvelle catégorie d'action:

image

Notes:

Voir ici (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) pour un formidable aperçu du processus de création, installation et configuration d'une solution comme ceci.

Le .zip est conçu pour extraire directement à vous c:\ en voiture. Si vous faites cela, vous pouvez ouvrir le projet et tous les chemins seront conformes.

Pour l'utiliser dans visual studio, vous devrez probablement installer des « Extensions pour Windows WF ».

Le téléchargement initial contient une « fonction de répartiteur », ToLower »()". Pour ajouter plus de fonctionnalités, ajouter à la méthode Execute, comme le montre:

 protégé Substituez ActivityExecutionStatus
          Exécuter(ActivityExecutionContext executionContext)
        {

            chaîne functionToDispatch;
            functionToDispatch = ce.DispatchFunction.ToLower();

            commutateur (functionToDispatch)
            {
                affaire tolower »()":
                    {
                        ce.OutResult1 = ce.InParam1.ToLower();
                        Pause;
                    }

                par défaut:
                    {
                        ce.OutResult1 = « Fonction inconnue: [" + ce.DispatchFunction + "].";
                        Pause;
                    }
            }

            retour ActivityExecutionStatus.Fermé;
        } // ActivityExecutionStatus

    }

Puis, re-générer le projet et copiez l'assembly dans le GAC. Je m'attends à qu'un iisreset serait nécessaire.

Action personnalisée SPD Workflow – obtenir la <WorkflowInfo> droit de l'étiquette pour éviter la frustration

Partie du processus de création d'une action personnalisée pour SharePoint Designer implique de créer une » .actions" fichier.

J'ai trouvé et essayé d'utiliser un modèle d'échantillon qui commence comme:

<?XML Version="1.0" codage="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.Microsoft.com/SharePoint/">
<
Actions Séquentiel="puis" Parallèle="et">

Cependant, Cet attribut xmlns empêche mon environnement de travail. Mes actions n'apparaissent pas dans le SPD.

La solution consiste à dépouiller par l'attribut xmlns., faire un iisreset et fermeture/ré-ouvertes SPD.

Simple et rapide: Configurer MOSS à la recherche d'une bibliothèque de documents spécifique

Voir mise à jour (JE) ci-dessous (11/24/07) sur Comment faire pour configurer Microsoft Office SharePoint Server 2007 aux Index et aux dossiers de réseau sanitaire pour la recherche

Objectif: Je veux exécuter une recherche limitée à une bibliothèque de documents spécifique. Dans ce cas, la bibliothèque de documents contient des documents de formation.

Étapes:

1. Enregistrer l'URL de la bibliothèque de documents.

2. Créer un champ d'application:

Aller à l'administration centrale.

Accéder à la PPU.

Allez à « Search Settings ».

Faites défiler jusqu'à la section champ d'application et sélectionnez « Affichage étendues ».

Créez une nouvelle étendue. Donnez-lui un nom et une description utile.

3. Définir des règles de portée sanitaire:

Ajouter une règle qui définit la bibliothèque de documents pour cette portée.

Sélectionnez « adresse web" pour le « Type de règle de portée ».

Entrez le nom de votre dossier (voir #1 au-dessus de).

Acceptez la valeur par défaut de « Include ».

Attendez que le champ d'application de mise à jour (ou démarrer manuellement).

4. Activer le champ d'application dans une collection de sites.

Aller à la collection de sites où vous souhaitez utiliser ce champ d'application.

Ajouter votre nouvelle portée à l'écran approprié ou les groupes.

5. Recherche!

À ce point, vous avez terminé. En supposant que le champ d'application est défini correctement, Il sera disponible dans les downs de goutte scopes de recherche simple et avancée, et lors de la recherche à l'aide de cette portée, vous obtiendrez seulement les résultats que vous attendez.

Notes:

J'ai écrit ce billet parce que mes recherches pour une configuration simple portée relevée à sec à l'aide de phrases comme:

  • configurer les étendues dans la mousse
  • configurer la recherche étendue mousse
  • étendues dans sharepoint 2007
  • étendues dans sharepoint
  • rechercher une mousse de bibliothèque de documents
  • mousse d'apprêt étendues

Vous pouvez créer un champ de recherche sur un dossier, non seulement la bibliothèque du document entier.

Une portée peut être partagée par plusieurs collections de sites (C'est pourquoi, un « service partagé »).

Vous pouvez créer la portée au niveau de la collection de site lui-même. Cependant, Je préfère aller à central admin parce que je peux commencer l'analyse de là. Impossible de démarrer l'analyse de la collection de sites.

MISE À JOUR (JE) comme des 11/24/07:

Kai Shang mis sur pied qu'un grand poteau droit Comment faire pour configurer Microsoft Office SharePoint Server 2007 aux Index et aux dossiers de réseau sanitaire pour la recherche @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry