Archives mensuelles: Novembre 2007

Vous ne peut pas battre portée de SharePoint

Au cours des deux derniers jours, J'ai participé à deux réunions au cours desquelles nous avons présenté les résultats d'un projet SharePoint. Le CIO et son équipe s'est joint à la première réunion. C'est standard et pas particulièrement notable. Le service informatique est évidemment impliqué dans un déploiement de l'entreprise de n'importe quel projet de technologie. La deuxième réunion élargie pour inclure un Valentin. du marketing, plusieurs administrateurs représentant des ressources humaines, Logistique, Fabrication, Projets d'immobilisations, Qualité, Achat, Développement de l'entreprise et d'autres ministères (certains d'entre eux n'ont pas été directement impliqués dans la phase actuelle). C'est un puissant large public.

Dans ma vie antérieure, J'ai essentiellement travaillé sur des projets ERP et CRM. Ils ont tous deux un domaine assez large solution mais pas aussi large que SharePoint. Pour être pleinement réalisés, Les projets SharePoint légitimement et nécessairement atteint dans tous les coins et recoins d'une organisation. Comment de nombreuses autres solutions d'entreprise ont peu atteindre? Pas beaucoup.

SharePoint représente clairement une énorme opportunité pour ceux d'entre nous la chance d'être dans cet espace. Il offre une excellente occasion de technique (qui est en quelque sorte mis sur sa tête ici sous « Technologies vous devez maîtriser »). Mais encore mieux, SharePoint, nous expose à une gamme étendue et large des processus métiers par le biais de ces engagements. Combien de spécialistes CRM fonctionnent avec le côté de la fabrication de la société? Combien de consultants ERP fonctionne avec les ressources humaines sur l'acquisition de talents? SharePoint est supérieure à tous les deux.

Comme n'importe quoi, Il n'est pas parfait, mais c'est un maudit bon endroit pour être.

Pour l'amour de [Remplissez vos plus proches étant personne supérieur], ne changez pas le ' titre’ colonne de site.

Sur le Forums SharePoint, parfois, quelqu'un demande sur la « modification de l'étiquette de titre" ou sur « retirer titre listes ».

Ligne de fond: Ne le font pas!

Malheureusement, l'interface utilisateur autorise un changement à sens unique de l'étiquette de colonne comme le montre:

image

Titre est une colonne associée à l'élément »" type de contenu. De nombreux, de nombreux, beaucoup CT utilise cette colonne et si vous le changer ici, elle ondule sur partout. Il n'y a de bonnes chances que vous n'avez pas l'intention pour que cela se produise. Vous étiez probablement penser à vous-même, "J'ai une liste de recherche personnalisé et ' titre’ tout n'est pas sensé comme nom de colonne, donc je ne vais pas pour qu'elle prenne "Code d'État’ et d'ajouter une colonne de description." Mais si vous suivez à travers sur cette pensée et renommez "titre’ au « Code d'État », titre de chaque liste (y compris les bibliothèques de documents) modifications au Code d'État"" et vous probablement n'a pas l'intention pour que cela se produise.

Le vrai problème est qu'il s'agit d'un changement de sens unique. L'interface utilisateur "sait" ce titre"" est un mot réservé. Si, Si vous essayez et changez le Code d'État"" Retour à « Titre », il ne vous empêchera et maintenant vous avez vous-même peint dans un coin using paint that never dries 🙂

Que se passe-t-il si vous l'avez déjà changé? Je n'ai pas vu la réponse que nous souhaitons, qui est une méthode simple et facile de changer l'étiquette retour à « Title ». Tout de suite, le meilleur Conseil est de le changer pour quelque chose comme « Doc/Item Title ». C'est une étiquette assez générique qui n'est peut-être pas trop choquante pour vos utilisateurs.

J'ai quelques autres idées qui sont sur ma liste de choses à faire des choses pour la recherche:

  • Contacter Microsoft.
  • Faire quelque chose avec le modèle objet, peut-être en conjonction avec une fonction.
  • Comprendre le schéma de base de données et de mettre à jour manuellement SQL. (Vous devez contacter Microsoft avant de le faire bien; Il annulera probablement votre contrat de support).

Si quelqu'un sait comment résoudre ce problème, Veuillez poster un commentaire.

Mise à jour en fin d'après-midi, 11/15: J'ai trouvé ce lien qui décrit une méthode pour créer un type de liste qui ne possède pas de colonne titre: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF et votre ami, CDATA

J'ai remarqué que certains maladroit et inutile main-codage de RdbCommandText en quelques exemples (y compris la documentation MSDN).

Je voulais souligner pour les nouveaux arrivants à BDC que les commandes peuvent être enveloppés à l'intérieur d'une balise CDATA dans leur naturel »" formulaire. Si, Cette construction maladroite:

<Propriété Nom="RdbCommandText" Type="System.String">
Sélectionnez dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement from dbo.MCRS_SETTLEMENT
OÙ (ID &gt;= @MinId) ET (ID &lt;= @ MaxId)
</Propriété>

peut être mieux représentées de cette façon:

<Propriété Nom="RdbCommandText" Type="System.String">
<![CDATA[
Sélectionnez dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement from dbo.MCRS_SETTLEMENT
OÙ (ID >= @MinId) ET (ID <= @ MaxId)
]]>
</Propriété>

</fin>

ABC de la BDC

Intro à la BDC

Exemple fonctionnel: ADF BDC qui se connecte à la base de données SQL avec embedded user id et mot de passe

J'avais besoin de fil de mousse pour une base de données SQL via BDC. À des fins de test/POC, J'ai voulu intégrer SQL compte id d'utilisateur et mot de passe dans le fichier ADF. À partir de ce modèle (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), J'ai créé un ADF qui se connecte à une instance particulière de SQL server et qui ouvre une session avec un id utilisateur spécifique et un mot de passe et dans cet extrait de code:

  <LobSystemInstances>
    <LobSystemInstance Nom="ClaimsInstance">
      <Propriétés>
        <Propriété Nom="AuthenticationMode" Type="System.String">PassThrough</Propriété>
        <Propriété Nom="DatabaseAccessProvider" Type="System.String">SqlServer</Propriété>
        <Propriété Nom="RdbConnection Data Source" Type="System.String">instance de réelles serveractual</Propriété>
        <Propriété Nom="RdbConnection Initial Catalog" Type="System.String">catalogue initial réel</Propriété>
        <Propriété Nom="RdbConnection sécurité intégrée" Type="System.String">SSPI</Propriété>
        <Propriété Nom="Mise en commun des RdbConnection" Type="System.String">faux</Propriété>

        <!-- Ce sont les valeurs clés: -->
        <Propriété Nom="ID utilisateur RdbConnection" Type="System.String">unes ID utilisateur</Propriété>
        <Propriété Nom="Mot de passe RdbConnection" Type="System.String">mot de passe réel</Propriété>
        <Propriété Nom="RdbConnection Trusted_Connection" Type="System.String">faux</Propriété>

      </Propriétés>
    </LobSystemInstance>
  </LobSystemInstances>

Il n'est pas une bonne pratique, mais il est utile pour une configuration simple et rapide pour les tests. C'était étonnamment difficile à comprendre. J'ai jamais trouvé un exemple fonctionnel avec les mots clés de recherche:

  • ADF incorporé le nom d'utilisateur et mot de passe
  • incorporer les id utilisateur et mot de passe de l'adf
  • incorporer les id utilisateur et mot de passe dans l'adf bdc
  • ABC des bdc SharePoint
  • SharePoint incorporer des id utilisateur et mot de passe de l'adf

</fin>

S'abonner à mon blog.

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 »&" »&amp;"
  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!