Archives mensuelles: Octobre 2007

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

Aucune soupe pour vous! Est Cisco produits Nazi de la soupe de NLB?

Aujourd'hui, J'ai essayé d'accéder à une bibliothèque de documents via l'Explorateur windows. Cette lib doc est vivant à l'intérieur d'un système qui se compose de la charge de deux WFE est équilibrée par une sorte de solution d'équilibrage de charge réseau Cisco. (Lorsque les assistants réseau me dire ce que c'est, Je vais mettre à jour ce post).

L'Explorateur Windows n'a pas pu se connecter. J'ai fait quelques recherches et éventuellement, les assistants du réseau dit que WebDAV est désactivé par / pas pris en charge par / sous la dignité de l'équilibrage de charge réseau.

Si, en supposant que les assistants de réseau ne sont pas juste me dire l'équivalent d'Assistant réseau de « prendre une longue marche un pont court », Il faut se demander — Does NLB, par nature, désactiver WebDAV? Perdons-nous notre interface de l'Explorateur de fichiers windows SharePoint? Est Cisco le Nazi de la soupe?

Gestion de mousse / Environnements de WSS — suivre avec la base de connaissances de Microsoft

Microsoft crée jour articles base de connaissances en et jour dehors et certaines d'entre-elles sont sacrément important à connaître si vous vivez dans le monde de SharePoint.

I keep up to speed avec eux via un service fournir par les bonnes gens de www.kbalertz.com. KBAlertz vous permet de vous inscrire pour votre technologie préférée de MS et ils envoient que vous digérer les versions de Microsoft KB articles par e-mail.

Politique d'Application Web, Sites de la sécurité et l'ajustement de la sécurité — Connaître votre configuration

(MISE À JOUR 11/29 pour expliquer comment accéder aux paramètres de stratégie de demande web via l'interface utilisateur)

J'ai eu un de ceux qui « pourquoi MOSS fait cela me????" aujourd'hui des moments. En fin de compte, C'est tout de ma faute.

Nous avons un projet d'entreprise MOSS passe et nous voulons sécuriser « place holder" sites de sorte qu'aucun utilisateur ne peut y accéder ou le voir. C'est facile:

  1. Allez sur le site.
  2. Rompre l'héritage de la sécurité.
  3. Retirer les autorisations de site de chaque utilisateur ou groupe.

Ce qui précède devrait laisser juste l'administrateur de collection de site avec la permission de voir le site.

Si quelqu'un d'autre se connecte, ils devraient ne plus voir le site et il devrait être rogné à la sécurité de tous les lieux habituels.

Mais … Il n'était pas. En même temps, Je me rends compte soudain que mon utilisateur Joe »" compte de test utilisateur standard avec aucun autre que l'accès en lecture restreint du priv a un "Site Actions" choix partout où qu'il va. Je double vérifier une chose et vérifier quelque chose d'autre. J'ai décrocher le téléphone pour appeler un collègue, mais mettez-le vers le bas et vérifier quelque chose d'autre. Je vais pour une promenade et recommencez tout partout. J'ai appeler un collègue et laissez un message. Et puis, Enfin, Je trouve qu'au Blog de Ethan, son ouverture graphique rend tout à fait simple:

MOUSSE 2007 a une nouvelle fonctionnalité appelée stratégies d'Application Web. Ce sont les autorisations de sécurité qui est liée à une Application Web. Ces paramètres de sécurité de remplacer tout paramètre de sécurité qui est définie dans la Collection de sites ou sur Site (Web) niveau de l'utilisateur.

Une visite rapide sur web application politiques indique que « les utilisateurs de NT Authorityauthenticated" avait obtenu lecture totale. Je leur ai retiré de la liste et tout enfin commencé à travailler comme prévu. Je crois qu'ils ont été ajoutés en premier lieu par une personne avec l'impression erronée que c'est la meilleure méthode pour accorder un accès en lecture à tout le monde dans l'entreprise. Pour cela, mais, pour un devis de la souche, « Cela ne signifie pas ce que vous pensez que cela signifie."

Stratégies d'accès web application cette façon:

  1. Aller à l'Administration centrale
  2. Sélectionnez gestion des applications
  3. Sélectionnez "Policy for Web Application"
  4. Sur cet écran, Assurez-vous que vous sélectionnez l'application web correcte. Pour moi, la valeur par défaut de l'application web d'administration centrale qui peut ne pas être celui que vous voulez.

Quand j'ai eu ce problème, Je cherché les phrases suivantes et a étonnamment peu en termes d'aide directe sur cette question:

Actions visibles pour tous les utilisateurs du site

Actions visibles à tous les utilisateurs du site

actions du site ne sont pas parée de sécurité

sécuriser un site MOSS

Introduction à la sécurité de mousses

Tags Technorati:

Simple et rapide: Utiliser une requête de mot clé fixe dans les résultats de base de recherche

Rapide et les Instructions simples:

Modifier une page et ajouter un composant WebPart de résultats de base de recherche.

Modifier la partie web et élargir la « Requête de mot clé fixe ».

Ajouter à la requête de mot clé fixe (e.g. ContentType:« Facture de formation" TrainingInvoiceNumber:1111)

Élargir les Options de requête de résultats et de changer le "Cross-Web partie requête ID" une valeur autre que "requête de l'utilisateur" (e.g. « Requête 2 »).

Notes:

À l'aide de résultats de recherche de base de cette manière m'a permis de créer une page qui affiche des informations d'une autre collection de sites. Le client a deux collections de sites majeurs: Produits et services.

Contient la collection de sites produit, assez naturellement, information produit. Chaque produit de la collection de site regroupe les données provenant de sources multiples.

Un des départements, codes et tests, est sur telle source. Lorsque les utilisateurs accèdent produit XYZ, ils devraient voir codes et données d'essais directement sur la page principale de XYZ. Depuis les codes et l'essai sont hébergés dans une autre collection de sites, C'est un peu maladroit. Nous avons décidé d'utiliser le composant WebPart résultats principaux de recherche étant donné que la recherche s'étend sur les collections de sites. Codes et contrôle gère les données de produit via une liste personnalisée qui est contraint par un type de contenu spécifique. Requête de mot clé AA qui utilise d'abord le type de contenu, puis le numéro du produit étroit vers le bas la recherche à une seule ligne dans la liste personnalisée.

La requête de mot clé ci-dessus est une AND. Elle retourne les documents de contenu de type "formation facture" et où le numéro de facture est égal à « 1111 ».

Un belle avantage de cette approche: Nous pouvons modifier le XSL depuis le composant WebPart résultats principaux de recherche et générer n'importe quel format que nous voulons.

Voir ici (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) pour la discussion d'un autre blogueur sur ce thème.

</fin>S'abonner à mon blog.

Me parler de votre blog!

Si vous gérez un blog qui est au moins de façon minimale relié à SharePoint, s'il vous plaît faites le moi savoir dans les commentaires. Je serais ravi de vous ajouter à mon Liste de blog.

Si vous gérez un blog qui n'est pas relié à SharePoint, mais souhaitez moi de toute façon l'ajouter, faites le moi savoir. Je vais peut créer une liste de blogs distincts.

Veuillez donner:

  • URL de votre blog (de toute évidence)
  • Une courte description de votre blog.

Je veux garder le lien de « active" blogs, qui je suis à peu près définissant comme un post par semaine et minimum trois mois. Si vous ne remplissez pas cette exigence"" Ajouter votre nom à commentaires en tout cas. Il a * mon * donc je peux casser ma propre règle si je veux la liste.

Merci!

Calendrier de formation des employés et du modèle de matériaux — Bug décrément dans le modèle

Le client a remarqué un bug aujourd'hui avec le modèle mentionné ci-dessus.

Créer des gestionnaires de cours cours. Lors de la création d'un cours, le gestionnaire spécifie le nombre maximal de sièges disponibles.

Le modèle prévoit l'inscription libre service. M'inscrire et un flux de travail rattaché à la décrémente de liste d'inscription les places disponibles"" associé à ce cours.

Individus peuvent également annuler l'inscription à un cours. Le bug se trouve ici. Annulation de l'inscription à un cours n'incrémente pas le compteur des places disponibles. Comme un résultat, places disponibles n'est pas exact. Ce bug est aggravé par le fait que quand décrémente de sièges disponibles à zéro, Enregistrement libre-service n'est autorisé..

Heureusement, Microsoft fournit le flux de travail pour ce processus. Encore mieux, C'est un workflow simple créé via SharePoint Designer.

Suivez ces étapes de haut niveau pour le corriger:

  1. Incendie de PDS.
  2. Accès au site basé sur le modèle de formation.
  3. Accès « participant d'annulation d'inscription" flux de travail.
  4. Insérer ces étapes (J'ai fait les deux premières étapes):
    1. Calculer Cours:Sièges remplis moins 1 (Sortie à Variable:Calc)
    2. (puis) Point de mise à jour en Cours

Cliquez sur Finish et vous avez terminé..

Captures d'écran:


SharePoint Designer:

image

Flux de travail terminé:

image

Calculer le forage:

image

Point de mise à jour en cours:

image

Donne souvent des bonnes nouvelles; donner des mauvaises nouvelles au début

Avez été consultant pour de nombreuses années maintenant et de tout consultant expérimenté sait, une bonne communication est un des piliers essentiels à la réussite d'un projet. Il est donc évident, C'est vraiment presque ennuyeux parler. Ce n'est pas un post sur la communication générique. Au lieu de cela, J'écris sur le côté sombre de la communication — communiquer les mauvaises nouvelles.

Il va sans dire que donner de bonnes nouvelles au client se fait tout le temps, aussi souvent que possible. Qui ne veut pas donner de bonnes nouvelles? Qui n'aime pas à entendre de bonnes nouvelles?

Sur le revers, mauvaises nouvelles n'est pas amusant du tout. J'ai toujours eu du mal avec ce. Dans les premiers jours de ma carrière, Je saurais que quelque chose a mal tourné avec un projet et au lieu de dire au client, Je travaillerais plus longues heures pour tenter de résoudre le problème. J'ai serait interdire mon équipe à travailler plus dur. C'est une impulsion assez naturelle de penser qu'un effort surhumain peut sauver la journée. Parfois cela fonctionne, quelques fois ce n'est pas. Même quand il "fonctionne" C'est souvent un sac mélangé. Est la qualité du livrable vraiment jusqu'à pièces spec quand clés sont l'aboutissement de plusieurs 60 À 80 semaines de l'heure?

Quelle est la meilleure façon de gérer les mauvaises nouvelles? La réponse est: lui dire au début. Ne pas attendre une semaine avant que le budget du projet sera consommé. Si vous connaissez des six semaines qu'il n'est pas simplement assez de temps pour livrer quelques peu de fonctionnalités promises, dire au client juste là et. Le client peut se fâcher (sera probablement), Il peut y avoir des incriminations et des accusations et préjudice moral. Mais, Quand les émotions refroidir, Il reste encore six semaines sur le projet. Six semaines est une bonne partie du temps. Il est temps de modifier les plans, modifier les horaires de, obtenir le bal sur les extensions de budget (Bonne Chance!) et vient généralement s'attaquer aux « faits sur le terrain" et mettre au point un nouveau plan qui génère toujours un projet réussi.

Exemple: Je travaille sur un projet caractérisé par:

  • T&E budget avec un cappé « de ne pas dépasser" montant en dollars.
  • Un « meilleurs efforts seront déployés" promesse de x, Y et z de la fin du projet.
  • Manque de ressources essentielles promises sur le côté client. Ces ressources n'étaient pas retenus sur le but, ni pour toute mauvaise »" raison, mais ils ont été retenus.
  • Une réalisation naissant que le projet a passé le point de moitié que nous n'allions pas être en mesure de livrer « Z" (principalement parce que les ressources promises n'étaient pas réellement disponibles).
  • Rapports d'étape réguliers et CYA »" documentation qui nous soutenus (l'équipe d'experts-conseil) vers le haut.
  • Équipe de mise en œuvre de tricot étroitement avec les membres de l'organisation de la consultation (mon entreprise) et le client.
  • Équipe de gestion éloignés, à la fois physique et métaphorique. L'équipe de gestion se concentrait sur un autre projet de grande entreprise et en raison de contraintes d'espace, l'équipe de mise en œuvre a été logé dans un bâtiment séparé sur le campus, une colline et de façon relativement loin de la « civilisation ».

Avec environ six semaines, à gauche sur le budget du projet, Nous avons (l'équipe de mise en œuvre) savait que nous étions mal. Le contrat dit qu'il fallait livrer « Z ». Même si le projet est fois & matériaux et même si nous avons ne promis que « meilleurs efforts" pour livrer des z et même si nous avions grande justification de manquant à la livraison … l'essentiel est qu'il n'était pas la recherche bonne — Nous n'allions pas à livrer z dans une forme, une qualité qui ferait n'importe qui est fier.

Reconnaissant cette, On est allé à la gestion et leur a dit que le budget du projet devrait être consommé avant une certaine date, et que nous étions en difficulté avec z.

Une mini tempête a éclaté dans les prochains jours.

Journée 1: Équipe de gestion appelle dans son personnel pour une réunion spéciale (Nous avons, les consultants ne sont pas invités). Contrats sont imprimées et distribuées à tout le monde et il s'ensuit un examen ligne par ligne. Gestion met les membres du personnel sur la défensive. Je ne pense pas que l'expression "Syndrome de Stockholm" est * vraiment * utilisé, mais vous obtenez l'image. Nous sommes un groupe soudé, Après tout, et le personnel a travaillé avec nous conseillers jour et depuis plusieurs mois maintenant.

Journée 2: Gestion appelle une autre réunion du personnel. Ils se sentent un peu mieux. Ils veulent des options et des idées pour aller de l'avant. Ils se rendent compte, il y a encore six semaines restant dans le budget actuel du projet, qui est encore une vie décente peu de temps. Un des éléments action: planifier une réunion avec l'équipe de mise en œuvre complète (y compris les conseillers).

Journée 5: Rencontre de l'équipe complète, Il s'ensuit une réunion constructive et mise en place d'un nouveau plan réalisable. Encore mieux, Nous avons déjà commencé à discuter de la deuxième phase et le client nous invite à préparer des propositions pour que la phase immédiatement.

Si nous avions attendu est resté trois semaines seulement, ou encore pire, une ou deux semaines, il aurait été très différente. Au lieu d'une réunion constructive en vue de réaligner le projet, nous aurait été tirant les rapports d'État, l'analyse du contrat et l'examen des anciens courriels afin de justifier ce ou cette décision. Nous aurions "gagné" mais est il vraiment de « gagner" dans ce cas?

Si, Si vous avez de donner de mauvaises nouvelles, Donnez-le au début. Mauvaises nouvelles faite tardivement n'est pas seulement une mauvaise, C'est horrible.