Solution au problème: “FileNotFoundException” Avec mon récepteur de fonctionnalité.

Je travaillais sur une fonctionnalité la semaine dernière qui ajouterait des récepteurs d'événements à une instance de liste spécifique. (J'ai expliqué dans un blog un peu sur ce récepteur liste ici).

À l'aide de la ligne de commande, Je pourrais installer la fonctionnalité sans erreur (mais pour l'erreur cachée, voir ci-dessous). Quand j'ai essayé de déployer la fonctionnalité sur le site, MOUSSE s'est plaint d'une FileNotFoundException »" erreur. Ce blog décrit comment je l'ai résolu.

C'est l'erreur qui mousse qui m'a été montré dans le navigateur web:

Fonctionnalité ' b2cb42e3-4f0a-4380-boulette-1ef9cd526f20’ ne pourrait pas être installé car le chargement de l'assemblage de récepteur événement « xyzzyFeatureReceiver_0" n'a pas: System.IO.FileNotFoundException: N'a pas pu charger fichier ou l'assembly ' xyzzyFeatureReceiver_0’ ou une de ses dépendances. Le système ne peut pas trouver le fichier spécifié.
Nom de fichier: ' xyzzyFeatureReceiver_0’
à System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase, Preuve assemblySecurity, Assemblée locationHint, StackCrawlMark& stackMark, ThrowOnFileNotFound booléenne, ForIntrospection booléenne)
à System.Reflection.Assembly.InternalLoad(AssemblyRef AssemblyName, Preuve assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booléenne)
à System.Reflection.Assembly.InternalLoad(String assemblyString, Preuve assemblySecurity, StackCrawlMark& stackMark, ForIntrospection booléenne)
à System.Reflection.Assembly.Load(String assemblyString)
à Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
AVT: Assemblage liaison journalisation est activée OFF.
Pour activer l'Assemblée lier échec enregistrement, Définissez la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) À 1.
Note: Il y a quelque peine de performance associé avec un enregistrement d'échec lier l'Assemblée.
Pour désactiver cette caractéristique, Supprimez la valeur de Registre [HKLMSoftwareMicrosoftFusion!EnableLog].

Résoudre les problèmes avec Windows SharePoint Services.

Je sais pas comment pour délibérément provoquer cette erreur: ne pas installer l'assembly dans le GAC. Mais, C'est dans le GAC. J'ai normalement installer des assemblys dans le global assembly cache en les faisant glisser dans le c:\dossier de WINDOWSassembly à l'aide de l'Explorateur windows. Je n'ai jamais senti 100% confortable de faire cela parce que j'ai toujours pensé que gacutil existait pour une raison … alors j'ai essayé qui. Il ne faisait aucune différence.

J'ai cherché les Internets et trouvé ce post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

L'affiche est arrivé d'utiliser la même racine bit du code (extrait du livre à l'intérieur de WSS dans cette liste) donc ça a été un signe d'espoir. Cependant, la suggestion de décorer l'ensemble avec une [Assemblée: ] directive n'a pas de sens pour moi. J'ai essayé quand même et j'avais raison. Il ne faisait aucune différence.

Puis j'ai remarqué que ma définition de la classe n'était pas publique. J'ai rendue publique et qui ne faisait aucune différence.

Prochaine, Je suis allé à la peine de permettre à le "Assemblée lier échec Journal" (en suivant les instructions utiles et exactes fournies) et c'est où les choses ont commencé à devenir intéressant. Ce journal me montre que le runtime recherche dans le monde sur ce serveur pour mon montage. Il semble même être recherchant dans mon armoire à pharmacie. Mais … il ne sera pas chercher dans le GAC.

J'ai mis sur ma veste hiver et aller chercher les Internets à nouveau et de trouver que quelqu'un a eu ce problème aussi. La longue discussion dans cette signalisation peters au large en rien et je ne peux pas trouver une solution.

Je propose mon Assemblée dans un des endroits que le journal prétend c'est à la recherche et j'ai progresser un peu plus. Je suis récompensé avec une nouvelle erreur dans le navigateur lorsque j'essaie d'activer la fonction:

Impossible de créer l'objet récepteur feature d'assembly « xyzzyFeatureReceiver_0 », tapez "Conchango.xyzzyFeatureReceiver" pour la fonction b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Valeur ne peut pas être null.
Nom du paramètre: type
à System.Activator.CreateInstance(Type de type, NonPublic booléenne)
à System.Activator.CreateInstance(Type de type)
à Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Résoudre les problèmes avec Windows SharePoint Services.

Temps pour un dernier voyage à l'Internets!

Cette fois j'ai trouver, assez prévisible, que MOSS publie cette erreur parce que l'assembly n'est pas dans le GAC.

Je veux obtenir quelque chose de positif de cela et essayer de se sentir un peu fière que j'ai créé le Fugitif des assemblys MSIL, mais il ne fonctionne pas. Je suis tout simplement agacé. Je me surprends murmurant « œuf ou la poule" sous mon souffle.

Je décide finalement de botté de dégagement. Je crée un projet entièrement nouveau et copier/coller le code du projet de non-travail incredible-cloaked-from-the-GAC-assembly plus à ce nouveau projet. (Je cherche un drapeau de génération appelé quelque chose comme "cacher de si installé dans le GAC de liaison d'assembly" mais n'y parvient).

J'ai installer la fonctionnalité et l'activer et … Il fonctionne! Si, Après tout ça, J'ai dû fondamentalement ' redémarrer’ mon projet. Il s'agit d'une autre raison pourquoi je déteste les ordinateurs.

J'ai appris quelque chose d'utile de ce. J'avais été l'installation en utilisant la ligne de commande stsadm tout au long de la journée et utilise le «-force" option par habitude. Pour une raison quelconque, Je n'ai pas utilisé le - option de force quand j'ai installé le nouveau projet. Cette heure, Je l'ai fait en fait, vraiment oublier de copier l'assembly du projet de cette nouvelle dans le global assembly cache. Comme un résultat, J'ai reçu cette FielNotFoundException"" erreur. Cette heure, J'ai obtenu à partir de stsadm, pas quand j'ai essayé d'activer la fonctionnalité via le navigateur web. Si, -Force joue deux rôles. Il vous permet de ré-installer une fonctionnalité existante. Il vous permet également d'installer une fonctionnalité de buggy qui ne peuvent pas travailler à l'exécution par la suppression de l'erreur. Il dit probablement autant dans l'aide quelque part, mais j'ai jamais remarqué.

</fin>

Drôle de dimanche: Retour au début 10 Moyens de contrarier votre femme

  1. Acheter brocoli quand vous savez il y a déjà plus que suffisant dans le frigo.
  2. Aller courir. Se rafraîchir. Décoller la taie d'oreiller propre et remplacer par T-shirt. Couvrir avec la taie d'oreiller propre.
  3. Lors de la conduite, demander si nous devrions aller de l'envers vers le bas d'une rue à sens unique.
  4. Pour 15 ans, tous les dimanches, cette femme vous laisse entendre aller dans un musée, étonner que les musées sont ouvertes le dimanche.
  5. Pour 15 ans, suggèrent parfois aller à la librairie locale le dimanche. Étonner qu'ils ne sont pas ouverts le dimanche (Merci beaucoup Lois bleues!).
  6. Utilisation 20 points à faire une 3 point tournant.
  7. Sur un cool début après-midi d'automne, Entrez dans la pièce et allumez l'a/c. Se plaindre qu'il fait froid. Quelle femme dit :, "pourquoi vous rallumez qui, Silly" et se lève pour l'éteindre, Prenez la place au chaud qu'elle avait sur le canapé. Des points bonus si elle ne se rend pas compte vous l'avez fait que beaucoup plus tard.
  8. Ouvrir une boîte de thon germon blanc délicieux et le manger directement à partir de la boîte, dans le lit, La nuit.
  9. Aller dans la cuisine, tandis que la femme est en train de dîner, ouvrir le tiroir à couverts et pousse les ustensiles autour jusqu'à ce que des cris de femme, "ce que vous cherchez!"
  10. Sur réception de nouvelles cartes d'affaires, secrètement les placer tout autour de la maison: Sous le lit, dans les taies d'oreiller, à l'intérieur des tasses à café, dans son sac à main, dans les poches du manteau, voiture gant compartiments, le garde-manger — partout vous pouvez penser.
  11. Écrire des entrées de blog sur ta femme.
  12. Réveil.
  13. Lors de la marche dans les rues de New York City, être sur le qui-vive pour "croûté" objets sur le terrain. Gardant à l'esprit les craintes particulières de ta femme, atteindre vers le bas comme pour un pick up up et demander, "hmm, Je me demande ce que c'est?" (Soyez prêt pour femme au corps slam vous comme si elle était un agent des services secrets protégeant le Président d'un tireur d'élite ou vous vous retrouverez couché sur le dos sur le trottoir).
  14. Disque deux fois autour d'un parc de stationnement à la recherche d'espace. Vous savez que vous avez vraiment frappé payer la saleté quand ton fils sur le siège arrière hurle, "Oh non! Il le fait encore une fois!"
  15. Écrire « top 10" listes qui n'ont pas 10 articles.

===

Blague femme bonus:

Deux collègues masculins sortent pour déjeuner. L'un d'eux dit à l'autre, « Je lâche un lapsus embarrassant l'autre soir."

"Un lapsus? Qu'est-ce que c est?"

"Bien, Quand nous avons fini de manger, la serveuse est venu et a demandé comment nous avons aimé notre repas. Je voulais dire dire, "J'ai adoré les poitrines de poulet’ mais au lieu de cela, j'ai dit « J'ai aimé vos seins ». J'étais tellement gêné."

"Ah !," son collègue a répondu. "J'ai eu la même chose m'arriver ce week-end avec ma femme. Nous mangions le petit déjeuner, que je voulais dire pour lui demander de passer le beurre, mais au lieu de cela, j'ai crié à lui, ' Vous ruiné ma vie!’"

</fin>

Tags Technorati:

ID de l'événement 1023: “Windows ne peut pas charger le compteur extensible MSSCNTRS DLL”

MISE À JOUR (04/08/08): Il me semble avoir résolu ce problème. La ligne de commande, J'ai couru « c:\windowssystem32lodctr/r" Selon une entrée parle de InstallShield problèmes et qui semble il ont résolu pour moi.

J'ai remarqué que dernièrement, mon ventilateur de bureau/serveur jamais s'éteint. Je sais qu'il utilisé pour éteindre. J'ai pris un moment pour vérifier dehors remarqué que l'un processus VMware s'exécutait un uniforme 20% utilisation sur l'un de la CPU. J'ai vérifié le journal des événements et a vu ces erreurs dans le journal des applications qui passe des dizaines de fois par minute:

Windows ne peut pas charger le compteur extensible DLL UGatherer, le premier DWORD dans la section données est le code d'erreur Windows.

Windows ne peut pas charger le compteur extensible DLL UGTHRSVC, le premier DWORD dans la section données est le code d'erreur Windows.

Windows ne peut pas charger le compteur extensible MSSCNTRS DLL, le premier DWORD dans la section données est le code d'erreur Windows.

Si je percer les détails d'un de ces messages, J'obtiens ceci:

Source: Perflib

Type: Erreur

Catégorie: Aucun

ID de l'événement 1023

J'ai fait quelques recherches et il y avait une idée, ça pourrait être un problème d'autorisation en matière d'accès aux dll en question. J'ai joué un peu avec ce genre de choses, mais ne pouvait affecter les choses de manière positive, alors j'ai laissé tomber là-dessus.

VMware avait été me harceler à effectuer une mise à jour depuis un certain temps, donc je note la version que j'avais installé (apparemment « 1.0.1 construire 29996 ») et fait la mise à jour. Cela m'a surclassé à v1.04. Malheureusement, Il n'a pas fixé la question.

Je ne peux arrêter le nombre fou de messages adressés à mon journal de l'application si j'arrête un service appelé « Service d'autorisation de VMware ». Cela m'empêche d'utiliser le logiciel VMware, donc … pas cette option grande.

Le système d'exploitation est Windows XP 64 bit.

Je ne pense pas que c'est toujours arrivé, mais je ne me rappelle aucun événement particulier qui aurait pu conduire à elle.

C'est pourquoi je déteste les ordinateurs.

</fin>

Tags Technorati:

Rapide & Facile: Renommez le fichier téléchargé à l'aide du modèle objet de SharePoint Via un récepteur d'événements

MISE À JOUR: Cela fonctionne mais il y a des limites importantes qui sont décrites dans les commentaires. Cela peut toujours être utile dans certaines circonstances.

MISE À JOUR 2: Dans mon projet actuel, les utilisateurs toujours téléchargement les documents. Comme un résultat, Je ne cours pas dans un problème où MS Word est en cours d'exécution et pense que le fichier a été renommé à ce sujet. J'ai couru dans un problème, « le fichier a été modifié par quelqu'un d'autre" et résolu ce problème par un indicateur de type simple sémaphore. Besoin de l'utilisateur de modifier un champ de données méta de sa valeur par défaut à autre chose. L'itemupdated() récepteur examine une valeur valide il avant d'effectuer réellement la renommer et depuis, Je n'ai eu aucun problème. Votre kilométrage peut varier.

J'ai une exigence client de changer le nom des fichiers téléchargés vers une bibliothèque de documents spécifique conforme à une convention de nommage particulière. L'API ne prévoit pas un changement de nom"()" méthode. Au lieu de cela, Nous utilisons "MoveTo(…)". Ici est un peu un minimum de code pour y parvenir:

 public Substituez VOID ItemAdded(SPItemEventProperties propriétés)
        {
            SPFile f = propriétés.ListItem.File;

            f.MoveTo(propriétés.ListItem.ParentList.RootFolder.Url + « /xyzzy.doc");
            f.Update();

        }

Le bit seulement délicat est les "Propriétés. ListItem.ParentList.RootFolder.Url". Le MoveTo() méthode requiert une URL. Que purée points chaîne me dans le dossier racine de ma bibliothèque de document actuel. Cela me permet d'éviter n'importe quel codage dur dans mon récepteur d'événements.

Il s'agit d'une version plus utile qui fait la même chose, mais affecte le nom du fichier à « Titre »:

 public Substituez VOID ItemAdded(SPItemEventProperties propriétés)
        {
            DisableEventFiring();

            // Attribuer le titre de ce point le nom du fichier lui-même.
 // NOTE: Cette cession doit avoir lieu avant que nous modifions le fichier lui-même.
 // Mise à jour de l'appel() sur le SPFile semble invalider les propriétés dans
 // certains sens.  Mises à jour au titre de »" échoué jusqu'à ce que cela change (mise à jour et() appel)
 // ont été déplacés de la modification du nom de fichier.
            propriétés.ListItem[« Titre"] = propriétés.ListItem.File.Name;

            propriétés.ListItem.Update();

            SPFile f = propriétés.ListItem.File;

            // Obtenir l'extension du fichier.  Nous avons besoin que plus tard.
 chaîne spfileExt = Nouveau FileInfo(d.nom).Extension;

            // Renommez le fichier d'ID de l'élément de liste et utilisent l'extension de fichier pour garder
 // Cette partie intacte.
            f.MoveTo(propriétés.ListItem.ParentList.RootFolder.Url +
                "/" + propriétés.ListItem[« CARTE D'IDENTITÉ"] + spfileExt);

            // Commettre le déménagement.
            f.Update();

            EnableEventFiring();
        }

Forum Discussion: Meilleures pratiques respecter dans l'environnement de mousse Non négligeable

Fellow, « Mark », a commencé une discussion de groupe de discussion potentiellement intéressants mettant l'accent sur le "établissement d'excellente gouvernance SharePoint depuis le début" pour un 35,000 environnement de l'utilisateur.

La discussion est ici: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Sur plus de pop et de contribuer!

</fin>

URL de l'Action personnalisée ne s'affiche pas de nouvelle fonctionnalité

J'ai toujours l'habitude de mes fichiers XML de fonctionnalité d'artisanat à la main car il est tout à fait nouveau pour moi. Je ne veux pas compter sur un outil frontal ça fait que je ne comprends pas (Il a dit qu'il a écrit une entrée de blog à l'aide d'un outil, qu'il ne comprend pas).

Aujourd'hui, J'ai essayé d'ajouter une action personnalisée pour les paramètres de site, mais il ne serait pas juste apparaître. Je pourrais installer la fonctionnalité et le voir dans les fonctionnalités du site, mais quand j'ai activé il (sans erreur) il ne serait pas simplement apparaître dans le menu déroulant.

Enfin, j'ai réalisé que j'ai mal orthographié « SharePoint" dans l'attribut d'emplacement de la <CustomAction> nœud. C'est le fichier elements.xml mauvais:

<?XML Version="1.0" codage="UTF-8" ?>
<Éléments xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolbar"
 GroupId="SiteActions"
 Emplacement="Microsoft.Sharepoint.StandardMenu"
 Séquence="100"
 Titre="Salut!"
 Description="Action de menu personnalisé ajoutée via une fonctionnalité."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction URL="http://www.xyzzy.com"/>

  </CustomAction>
</Éléments>

Bon:

<?XML Version="1.0" codage="UTF-8" ?>
<Éléments xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 ID="SiteActionsToolBar"
 GroupId="SiteActions"
 Emplacement="Microsoft.SharePoint.StandardMenu"
 Séquence="100"
 Titre="Salut!"
 Description="Action de menu personnalisé ajoutée via une fonctionnalité."
    >
    <UrlAction URL="http://www.xyzzy.com"/>
  </CustomAction>
</Éléments>

That one took me a good two hours to figure out 🙂

Je prends réconfort dans le fait qu'un jour à l'avenir, Je serai en mesure de dire avec conviction, "retour dans la journée, J'ai dû marcher trois milles vers le haut de la colline dans la neige (pieds nus!) afin de déployer une fonctionnalité personnalisée à MOSS. Vous les enfants, vous ne savez pas combien il est facile vous l'avez! Descendre de ma pelouse!"

Ne peut pas attendre.

</fin>

Tags Technorati: ,

Blog Stats

J'ai pensé que certaines personnes pourraient être intéressés par les statistiques de mon blog. Vous pouvez utiliser mine comme point de repère pour comparer votre propre.

Je fais tourner mon blog sur windows live espaces. Ils recueillent des statistiques pour moi et je ne sais pas n'importe quel moyen de contrôler que. C'est bon comme il va, mais c'est assez limitée dans ce que je ne peux pas faire beaucoup analyse réelle avec elle. Je serais ravi, par exemple, pour être en mesure de générer une liste de mes plus fréquemment frappés messages mais j'ai ne peut que sans un processus manuel prohibitif. Si quelqu'un sait mieux, s'il vous plaît dites-moi.

Vivre les espaces statut me dire: succès totales pour la journée, succès totales pour les hits de la semaine et au total depuis le jour zéro. Il me dit aussi que des gens ont fait pour arriver à mon blog (e.g. Google, Lien forum MSDN, etc.).

À certains égards, un succès"" est évident. Si vous lisez cette phrase dès maintenant, vous avez presque certainement inscrit comme un hit single.

RSS est un peu déroutant. D'une part, Je vois des hits RSS individuels tout au long de la journée. Mais, Je vois aussi RSS « ratissages ». Un balayage est quand je vois 20 ou 30 Hits RSS dans une deuxième fenêtre d'un ou deux. Je suppose que ce sont des choses automatisés comme google archiver sur mon site, peut-être que les navigateurs d'autrui … Pas sûr. Ils sont sans aucun doute une sorte de processus automatisé. Je ne peux pas dire, Cependant, Combien de mes visites totales est automatisées et combien ont un réel de l'homme de l'autre côté. Je dirais au moins 100 visites par jour sont automatisées.

Vers les numéros!

J'ai écrit mon premier blog le 27 juillet, 2007.

J'ai écrit environ 60 Depuis lors, les entrées de blog, plus de 50 qui se rapportent directement à SharePoint.

J'ai commencé à garder une trace de mon succès dans une feuille de calcul sur une base quotidienne à la fin de septembre.

Mensuel commence:

Première semaine de: Totales Hits
Octobre 1,234
Novembre 2,162
Décembre 3,071
Janvier 2008 4,253

Total par mois

Mois Totales Hits
Octobre 6,620
Novembre 11,110
Décembre 13,138

Laisses de haute mer

Type Totales Hits
Meilleur jour 958
Meilleure semaine 4,253
Totales Hits depuis le jour zéro 42,438

Je suis intéressé par d'autres’ ses stats. Si vous tenez à partager les vôtres dans les commentaires, s'il vous plaît!

</fin>

Tags Technorati:

Drôle de dimanche matin: “Oui, Oui, Oui. Bla, bla, bla.”

Il y a environ six ans, mon fils de quatre ans et moi étions à l'étage je regarde un Canal de découverte "les attaques de requin" spécial (peut-être celui-ci). Il était très jeune au point et j'étais toujours inquiet qu'il pourrait voir un spectacle comme celui-ci et comment il pourrait considérer. Je ne voulais pas à développer, par exemple, n'importe quel craintes particulières de l'eau ou quelque chose d'inapproprié jaser à ses amis et éventuellement provoquer son réseau d'ami de bébé à venir s'écraser vers le bas.

Découverte gère ce genre de sujets très bien. Il n'est pas sur la création d'un peur de quelque chose, mais plutôt pour montrer comment inhabituel, c'est pour les requins attaquer les humains.

Si, Nous surveillons il et il n'y a cette attaque de particulièrement effrayante un concernant une petite fille. Comme découverte est la construction du drame de l'attaque, mon fils (qui a toujours été extrêmement nerveux quand même), devient très excité. Je fais quelques bruits sur comment inhabituel, c'est pour les requins à attaquer les gens, et comment le mauvais pauvre fille doit se sentir. J'essaie d'expliquer que les gens se remettre de ces événements et devient plus fortes pour elle. Cependant, J'avais mal interprété son excitation. Il n'était pas inquiet sur la jeune fille à tous les. Au lieu de cela, tout en frappant dans ses mains, Il m'a dit, « Les requins adorent ça! C'est fantastique. C'est merveilleux. Ses un rêve devenu réalité!"

J'ai pensé que c'était hilarant, mais aussi très inquiétant. D'une part, J'étais heureux — même un peu fier — qu'il puisse avoir des sentiments forts d'empathiques, hétérospécifique cependant, ils peuvent être. Comme les humains, Nous devons développer nos muscles empathiques »" donc parler ou vous finirez comme ce mec 🙂 On the other hand, Il se sentait hétérospécifique empathie envers une espèce qui montrait hostile à son propre comportement. J'ai été vraiment mal avec cela lorsque le narrateur a utilisé le mot « paradigme ». Mon fils qui a repris l'et m'a demandé ce que cela signifiait.

Ce n'est pas tel un mot facile à décrire pour un enfant de quatre ans, mais je lui ai donné un essai. Quand je pense que le mot « paradigme », Thomas Kuhn n'est jamais loin de mes pensées. J'ai lu La Structure des révolutions scientifiques de retour à Lafayette et pour le meilleur ou pour le pire, le mot "paradigme" est enceinte de plus de sens pour moi. (Un peu comme le mot "contact" Après avoir entendu une voix de film téléphone me dire où je pourrais voir ce film [Je pensais que le livre était mieux]; Je me dis toujours, « CONTACT!" chaque fois que je vois ou entends quelqu'un dire « contact »).

De toute façon, J'essaie de lui expliquer une définition Kuhn, qu'il est "un mouvement historique de la pensée" et que c'est un "mode de pensée avec un certain nombre d'hypothèses intégrés qui sont difficiles à échapper aux personnes vivant à l'époque." Bien sûr, vous ne pouvez pas parler comme à un quatre ans, alors je vais essayer de le définir successivement à plus petits morceaux et sentiment plutôt fière de moi comme je le fais. (J'ai juste savait que quelqu'un en dehors du Collège s'inquiéterait que j'avais lu Kuhn!).

Je suis juste réchauffement à la tâche quand il m'interrompt. En agitant sa main dans ma direction générale et ne prenant jamais ses yeux au large d'une autre attaque de requin brutal, il dit seulement :, "Oui, Oui, Oui. Bla, bla, bla. ».

So much for that 🙂

À ce moment-là, J'ai décidé de s'enfuir, rhétoriquement parlant, Asseyez-vous, et profitez de regarder les requins attaquent les humains avec mon fils.

</fin>

Tags Technorati:

Commutateur optique basé sur l'ID d'utilisateur dans un formulaire InfoPath

Nous avons eu a développé un formulaire InfoPath avec plusieurs vues pour soutenir une nouvelle location / processus d'intégration. Lorsque l'entreprise embauche une nouvelle personne, le département d'informatique et d'autres groupes ont besoin de prendre des mesures (mis en place sur la paie, permettre l'accès aux applications appropriées, localiser un bureau, etc.). Nous utilisons sur la forme, mais une vision différente de la forme pour chacune de ces fonctions.

Dans cette entreprise, la plupart des personnes impliquées dans le processus de l'entreprise sont doués en informatique, alors, quand ils accèdent à la forme, leur point de vue par défaut est un menu"" Découvre avec des boutons qui orientent vers leur fonction spécifique. Cependant, Nous avions besoin de simplifier les choses pour responsable direct de la nouvelle location. Cette personne ne devrait pas voir de l'IT choses relatives. En fait, elle devrait voir juste un point de vue de la forme et n'ont même pas une option pour voir les autres vues.

Dans notre cas, que les directes compte du gestionnaire est directement lié à la forme courtoisie d'un sélecteur de contact (qui je suis toujours désireux d'appeler un "sélecteur de personnes" pour une raison quelconque).

Les étapes sont les suivantes:

1. En mode création, allez dans outils-> Options de forme :> Ouvrir et enregistrer.

2. Sélectionnez « règles ».

3. Créer une nouvelle règle dont l'action est de "passer pour afficher" et dont l'État s'appuie sur le nom d'utilisateur() fonction.

nom d'utilisateur() retourne le simple"" nom d'utilisateur sans le nom de domaine. Si je me connecte à SharePoint avec informations d'identification de « domainpagalvin », nom d'utilisateur() retourne « pagalvin ».

Le sélecteur de contact fournit trois bits des informations d'un contact. L'ID de compte"" partie est très utile pour ce scénario. La seule chose qui rend ce même un peu de challenge, c'est que le sélecteur de contacts (dans mon environnement de toute façon) retourne l'ID de domaine et d'utilisateur, comme dans "domainpagalvin". Cela nous empêche de faire une condition d'égalité directe depuis AccountID (« domainpagalvin ») n'égalera jamais le nom d'utilisateur() (« pagalvin »).

Nous pouvons contourner cela en utilisant le "contient" opérateur: AccountID contient le nom d'utilisateur().

Nous pouvons prendre davantage et pré-pend un domaine codées en dur devant le nom d'utilisateur() fonction pour obtenir notre vérification de l'égalité et à éliminer le risque d'un faux positif sur le contient l'opérateur.

Nous aurions vraiment comme basculer automatiquement l'affichage pour les autres utilisateurs fondée sur leur appartenance à un groupe AD sécurité. Par exemple, Lorsqu'un membre de la "il Analytique" groupe accède à la forme, automatiquement à la vue IT Analytique. Nous n'avions pas le temps de mettre en œuvre, mais ma première pensée est de créer un service web qui aurait une méthode comme « IsMemberOfActiveDirectorySecurityGroup », passez-lui le nom d'utilisateur() et retour retour true ou false. Quelqu'un at-il un autre, plus d'idée astucieuse? Y a-t-il n'importe quelle fonction de SharePoint, que nous pouvons tirer parti de trancher cette question d'InfoPath?

</fin>

Tags Technorati:

Ajout de Code accidentellement à un formulaire InfoPath; Enlever délibérément

Lorsque vous travaillez avec des boutons dans un formulaire, Nous ajoutons souvent des règles. Vous accédez à l'éditeur de règles dans les propriétés du bouton.

Lorsque vous cliquez sur rapidement autour de, Il est facile d'accidentellement cliquer sur « Modifier Code de formulaire" au lieu de « règles …".

La première fois que je l'ai fait, J'ai annulé hors de l'éditeur de code. Cependant, Quand j'ai essayé de publier la forme un peu plus tard, Il a fallu que je publie comme un modèle de formulaire approuvé par l'administrateur » (avancé)". En fait je n'ai aucune programmation et je ne voulais absolument pas de passer par un processus d'approbation inutiles. J'étais dans un peu de panique à la fois en raison de contraintes de temps. D'aller au-delà de ce, J'ai simplement restauré une sauvegarde précédente et a continué. J'avais vu récemment certains messages de blog sur les gens qui vont à XML du formulaire pour régler les choses et j'avais peur que je dois faire quelque chose de similaire.

Aujourd'hui, Je l'ai fait encore une fois. Cette heure, J'ai eu un peu plus de temps sur mes mains et trouvé que vous pouvez facilement annuler cette.

Atteindre:

Outils-> Options de forme :> Programmation: « Supprimer le Code"

Il n'obtient pas beaucoup plus facile que celle.

</fin>

Tags Technorati: ,