Rapide & Facile: Créez un dossier et d'affecter un Type de contenu (Ou, A vos indicateurs de performance clés et les manger trop)

Afin de contourner un problème d'indicateur de performance clé J'ai écrit ici, J'ai fait quelques essais et découvert le travail de cet indicateur de performance clé contre les dossiers avec des métadonnées de la même manière qu'ils travaillent contre les documents ou les éléments de la liste. J'ai prouvé en créant un nouveau type de contenu basé sur le type de contenu de dossier et ensuite ajouté quelques champs. J'ai créé quelques indicateurs et prouvé à moi-même que les indicateurs de performance clés fonctionnent comme prévu. C'était la bonne nouvelle. Il n'est pas parfait, parce que l'exploration, vous obtenez de l'indicateur de performance clé contre les dossiers n'est pas exactement ce que vous voulez. Ce n'est pas trop un inconvénient dans mon cas, parce que 1) les utilisateurs finaux ne savent pas mieux et 2) l'exploration va vers un dossier. Il clique sur le nom du dossier et qu'ils sont à l'ordre du jour. C'est deux clics au lieu d'un, qui n'est pas la fin du monde.

Cela découle bien avec le travail que je faisais. Je crée un dossier pour chaque document qui obtient téléchargée. Cela se fait via un récepteur d'événements. Comme un résultat, C'est un morceau de gâteau pour garder le du dossier parent meta-données en synchronisation avec les métadonnées axée sur l'indicateur de performance clé dans le fichier lui-même car la plomberie est déjà en place. Cela me permet d’avoir mes KPI’s et de les manger aussi 🙂

J'ai modifié le récepteur d'événements pour ajouter le dossier et puis définissez type de contenu de ce nouveau dossier sur mon type de contenu personnalisé respectueux de l'indicateur de performance clé. Ce morceau de code a fait le tour:

 SPFolderCollection srcFolders = targetWeb.GetFolder(« Documents").Sous-dossiers;
  SPFolder addedFolder = srcFolders.Add(Propriétés.ListItem.ID.ToString());
  SPContentTypeId kpiCT = Nouveau SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["ID de Type de contenu"] = kpiCT;
  addedFolder.Item.Update();

Pour localiser l'ID de Type de contenu actuel, J'ai consulté ce type de contenu via les paramètres de site et copie/collé de l'URL comme indiqué:

image

</fin>

S'abonner à mon blog!

Facile et rapide: Obtenir le SPFolder d'un SPListItem dans un récepteur d'événements

Je déteste l'admettre, mais j'ai eu du mal avec celui-ci tous les jours. Mon récepteur d'événements doit mettre à jour un champ de son dossier parent. Cela peu montre comment le faire:

privé VOID UpdateParentFolder(SPItemEventProperties propriétés)
{

SPFolder thisItemFolder = propriétés.ListItem.File.ParentFolder;
thisItemFolder.Item[« Statut d'approbation ZZ"] = "De bonnes nouvelles, tout le monde!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Dans ce cas, Je travaille avec une bibliothèque de documents et les propriétés proviennent d'un événement ItemAdded.

L'astuce est que vous ne pouvez pas le SPFolder de l'élément directement à partir de l'élément lui-même (i.e. Propriétés.ListItem.Folder est null). Au lieu de cela, aller à fichier associé de l'élément de liste et obtenir le dossier de.

</fin>

S'abonner à mon blog!

Tags Technorati:

Encore un autre récepteur d'événements de débogage Trick

Je ne sais pas que je ne suis pas la première personne pour arriver à cela. Cependant, Je n'ai pas remarqué quelqu'un publie un truc comme ça que j'ai commencé très attentif à la communauté en juillet dernier. Si, J'ai pensé à qu'elle après cette astuce de débogage rapide et facile.

Je travaille sur un récepteur d'événements qui a commencé à générer cette erreur dans le 12 ruche:

Erreur lors du chargement et l'exécution de récepteur d'événements Conchango.xyzzyEventReceiver dans xyzzy, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = blahbalhbalh. Des renseignements supplémentaires sont ci-dessous. : Référence d'objet non définie à une instance d'un objet.

Je ne savais pas où j'avais présenté ce bug parce que j'avais fait trop de choses dans l'un de mes cycles de code/déploiement/test.

J'ai essayé Cette solution pour obtenir mon APB là-dedans avec l'espoir de que SharePoint 12 ruche montrerait la trace de la pile, mais pas de chance. Je ne sais pas si c'est possible et si quelqu'un le fait, Please let me know 🙂

Je sais que c'est possible de écrire vos propres messages de log à la 12 ruche. Franchement, Je voulais quelque chose un peu moins effrayante et plus rapides à mettre en œuvre.

Il m'est apparu que je pouvais au moins obtenir quelques informations de base trace en attrapant et re-levée d'exceptions génériques comme ceci:

  Essayez {
    UpdateEditionDate(propriétés);
  }
  captures (Exception e)
  {
    jeter Nouveau Exception("Dispatcher, UpdateEditionDate(): Exception: [" + e.ToString() + "].");
  }

Cela est apparu dans le 12 ainsi la ruche:

Erreur lors du chargement et l'exécution de récepteur d'événements Conchango.xyzzyEventReceiver dans xyzzy, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = bonnefin. Des renseignements supplémentaires sont ci-dessous. : Répartiteur, UpdateEditionDate(): Exception: [Système NullReferenceException.: Référence d'objet non définie à une instance d'un objet. à Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(Propriétés de SPItemEventProperties) à Conchango.xyzzyManagementEventReceiver.Dispatcher(Propriétés de SPItemEventProperties, Chaîne eventDescription)].

Cela m'a donné tous les détails que j'avais besoin pour traquer ce problème particulier et je m'attends à l'utiliser beaucoup aller de l'avant.

</fin>

S'abonner à mon blog!

Drôle de dimanche: “PAS POUR L'EXPORTATION”

Retour vers 1998, la société que j'ai travaillé à l'époque a reçu un financement pour créer un nouveau produit de commerce électronique. Nous avons eu toute la gamme des besoins de l'entreprise pour répondre aux. Il a dû être rapide, facile pour les utilisateurs finaux, flashy, multilangues, etc.. Triste à dire, Je n'ai pas eu probablement pas comme un ensemble ambitieux de travail à accomplir depuis ces jours grisants.

Cet effort antérieurs à Microsoft.net. Plain vanilla ASP était encore un peu nouveau (ou du moins très peu familier à mon entreprise). « Brique et mortier" les entreprises ont été condamnés. Doomed! Cela veut dire que c'était un travail novateur. Pas le travail de pionnier Hadron Collider, mais pour nous dans notre petit monde, C'était un travail novateur.

Nous étions fous occupé. Nous faisions mini de POC presque tous les jours, trouver des moyens de maintenir l'État dans un milieu par nature sans état, déterminer les questions multilingues, sécurité de niveau ligne. Nous avions même créer un vocabulaire permettant de définir les termes de base (J'ai préféré état persistant, mais pour une raison quelconque, la maladroite « statefull" l'ont emporté).

Comme nous étions follement inventer ce produit, les gens de marketing et de ventes étaient là essayer de le vendre. En quelque sorte, ils ont réussi à vendre à notre scénario de cauchemar. Même si nous étions de conception et de mise en œuvre d'une solution d'entreprise, Nous ne m'attendais vraiment pas le premier client à utiliser chaque dernier trait que nous construits dans la journée de produit zéro. Ce client avait besoin multilingues, une interface utilisateur radicalement différente de la norme"" système, mais avec la même logique métier. Multi-language était particulièrement difficile dans ce cas, parce que nous avons toujours mis l'accent sur l'espagnol ou Français, mais dans ce cas, C'est chinois (qui est double-byte character set et nécessitait un traitement spécial compte tenu de la technologie, que nous avons utilisé).

Avance rapide de quelques mois et je suis sur un vol de Northwest à Pékin. J'ai été tellement occupé à préparer pour ce voyage que je n'ai presque aucune idée de ce qu'il ressemble à s'y rendre. J'avais lu un livre une fois sur comment un américain en Chine depuis plusieurs années et avait appris la langue. Un jour il se promenait à la ville et demandé à quelques personnes pour obtenir des directives. La conversation a quelque chose cela:

  • Américain: "Pourriez-vous me dire comment se rendre à [XX] rue?"
  • Chinois: "Désolé, On ne parle pas anglais".
  • Américain: "Oh, Eh bien, je parle Mandarin." et il leur a demandé à nouveau en chinois, mais plus clairement (mieux qu'il pouvait).
  • Chinois: Très poliment, "Désolé, On ne parle pas anglais".

La conversation a continué comme ça pour le bit et l'américain laissé tomber dans la frustration. Alors qu'il sortait à eux qu'il a entendu un homme parlant à l'autre, "J'aurais juré qu'il demandait pour se rendre au [XX] rue."

J'avais ramassé quelques des morceaux d'autres informations quasi Chine-connexes et les « conseils utiles »:

  • Un coréen a travaillé m'a dit que le je devais être prudent des chinois, car "ils essaieraient de me soûler et profiter de vous" dans le sens de la pression sur moi des décisions mauvaises affaires.
  • Nous n'étions pas autorisés à conduire une voiture (Il y avait une certaine confusion quant à savoir si c'était une coutume, une exigence légale ou juste les règle du client).
  • Il y avait des règles spéciales pour passer par la douane.
  • Nous n'étions pas autorisés à utiliser l'argent américain pour quoi que ce soit.
  • Vous n'êtes pas censé pour laisser conseils. C'est insultant, si vous le faites.

Et enfin, J'ai eu des souvenirs assez frais le Massacre de Tiananmen. Quand j'étais au Collège, Je me souviens avoir vu affectations d'Usenet en temps réel comme le monde regardait dans l'horreur.

En bref, J'étais très nerveuse. Je n'étais pas juste normal-nerveux dans le sens où je m'offrir une solution qui était les ordres de grandeur plus compliqués que tout ce que je n'avais jamais fait avant. J'étais aussi inquiet pour briser accidentellement une règle qui pourrait m'avoir des ennuis.

Je suis sur ce 14 heures de vol et s'il s'agissait de classe affaires, 14 heures est longtemps maudit. Il ya seulement tellement de façons de vous divertir en lisant, regarder des films ou jouer avec les couverts magnétisée. Même un bon livre est difficile à lire pour plusieurs heures d'affilée.

Par la suite, J'ai commencé à lire les emballages sur un morceau de logiciel que j'ai main-portais avec moi au client, Serveur web de Netscape. J'aime lire les exigences matérielles/logicielles, les textes de présentation marketing, en regardant la belle image et tout d'un coup, J'ai zéro sur le géant "NOT FOR EXPORT" mise en garde, quelque chose 128 cryptage de bit. J'ai farci la boîte dans mon sac de transport, mise en garde face vers le bas (comme si qui aurait aidé) et j'ai essayé de garder les visions de Midnight Express out of my head.

Regardant en arrière dessus maintenant, J'aurais dû être inquiet, Si chez tous, quand je suis parti aux États-Unis, pas quand j'entrais en Chine 🙂 Rien de fâcheux ne s'est produit et je considère toujours que c'est le meilleur et le plus mémorable voyage d'affaires que j'ai eu le plaisir de faire.

</fin>

S'abonner à mon blog!

Tags Technorati: ,

Solution: SPQuery ne recherche pas de dossiers

La dernière semaine, j'ai été mise en œuvre une « évolution" solution pour un client qui utilise les BDC et SPQuery et s'est heurtée à quelques difficultés à utiliser SPQuery contre une bibliothèque de documents contenant des dossiers. Ligne de fond: attribuer "récursif" à l'attribut de point de vue de la requête.

Mon scénario:

  • Lundi, Télécharger un document et de fournir certaines données meta.
  • La semaine suivante, J'ai télécharger un nouveau document. Une grande partie des métadonnées de ce nouveau document se fonde sur le document que j'ai téléchargé le lundi (que nous appelons le « document maître »).
  • Nous avons créé une façade de service web qui fournit une interface facile à BDC à la liste afin que les utilisateurs peuvent facilement trouver ce document lundi par une recherche de titre.
  • Une colonne de données BDC fournit une interface utilisateur conviviale. (Cela fait partie de ma tentative à l'aide de la BDC pour une colonne de recherche plus conviviale).

La fonction finale de façade BDC utilise une requête comme celle-ci pour faire de la recherche:

 // Utilisé U2U outil pour aider à générer cette requête CAML.
      oQuery.Query =
        "<Où>";

      Si (titleFilter.Length > 0)
        oQuery.Query  =
          "  <Et>";

      oQuery.Query  =
        "    <Et>" +
        "      <GEQ>" +
        "        <FieldRef nom =  "DocumentId" />" +
        "        <Valeur de Type =  « Text »>" + minId + "</Valeur>" +
        "      </GEQ>" +
        "      <Leq>" +
        "        <FieldRef nom =  "DocumentId" />" +
        "        <Valeur de Type =  « Text »>" + maxId + "</Valeur>" +
        "      </Leq>" +
        "    </Et>";

      Si (titleFilter.Length > 0)
        oQuery.Query  =
          "    <Contient>" +
          "      <FieldRef nom =  "Title" />" +
          "      <Valeur de Type =  « Text »>" + titleFilter + "</Valeur>" +
          "    </Contient>" +
          "  </Et>";
      oQuery.Query  =
        "</Où>";

Au cours de la phase initiale de développement, cela fonctionnait très bien. Cependant, Nous avons présenté des dossiers dans le répertoire de résoudre certains problèmes et soudain, mon sélecteur de BDC ne renvoie aucun résultat. J'ai suivi cela au fait que le SPQuery ne reviendrait jamais aucun résultat. Nous avons utilisé les dossiers principalement pour permettre plusieurs fichiers portant le même nom d'être téléchargés, mais avec des données différentes de meta. Lorsque le fichier est téléchargé, Nous créons un dossier basé sur l'ID de l'élément de la liste et puis déplacez le fichier, il (J'ai écrit à ce sujet ici; Nous avons eu résultats mitigés avec cette approche, mais dans l'ensemble, Il fonctionne bien). L'utilisateur ne se soucient pas sur les dossiers et en fait, ne comprends pas vraiment qu'il y a tous les dossiers. Nous avons configuré toutes les vues de la bibliothèque pour afficher les éléments sans tenir compte des dossiers.

J'ai frappé ce problème elle deux fois plus que la réalisation technique a évolué et résolus différemment chaque fois. La première fois, Je n'étais pas en utilisant l'opérateur CONTAINS dans la requête. Sans un opérateur CONTAINS, J'ai été en mesure de résoudre le problème en spécifiant l'affichage sur le constructeur de la SPQuery. Au lieu d'utiliser le constructeur par défaut:

SPList oList = web.Listes[« Documents"];

SPQuery oQuery = Nouveau SPQuery();

J'ai utilisé à la place un constructeur spécifié d'un point de vue:

SPList oList = web.Listes[« Documents"];

SPQuery oQuery = Nouveau SPQuery(oList.Views[« Tous les Documents"]);

Qui a résolu le problème et j'ai commencé à obtenir mes résultats.

J'ai ensuite ajouté l'opérateur CONTAINS dans le mélange et qu'il est tombé à nouveau. Il s'avère que l'opérateur CONTAINS, pour autant que je peux dire, ne fonctionne pas avec le point de vue de la même façon que l'un GEQ plus simple / Opérateurs LEQ. J'ai fait quelques recherches et appris que ViewAttributes de la requête doit être défini sur « Récursive », comme dans:

oQuery.ViewAttributes = « Portée = "Recursive"";

Qui a résolu le problème pour CONTAINS. En fait, Cela a également résolu mon problème de recherche originale et si j'avais spécifié le récursif attribuent la première fois, Je n'aurait pas couru une fois de plus la question.

Le fait qu'une opinion fondée SPQuery fonctionne pour certains opérateurs (GEQ/LEQ) et pas d'autres (CONTIENT), couplé avec le fait que les IRC ne semblent pas travailler du tout avec conduit de bibliothèques de document contenant du dossier me faire croire que SPQuery a quelques problèmes d'orthogonalité.

Merci spécial:

</fin>

S'abonner à mon blog!

Bug de mousse PIR? Indicateur de liste liée à la bibliothèque de documents avec les dossiers

MISE À JOUR 02/29/08: J'ai résolu ce problème en créant un dossier et en assignant un type de contenu dans le dossier qui inclut les données méta que j'ai besoin pour les indicateurs de performance clés. Je qui décrit un peu plus en détail ici.

Nous avons mis en place une solution technique où les utilisateurs de téléchargement des documents vers une bibliothèque de documents. Un récepteur d'événements crée un répertoire et déplace le fichier dans ce répertoire (en utilisant une technique semblable à ce que j'ai écrit sur ici). Nous avons navigué avec succès autour des questions potentielles causées par les récepteurs d'événements que renommer les fichiers téléchargés (principalement parce que les utilisateurs commencent jamais leur document en cliquant sur « New" mais au lieu de cela créer localement les docs et puis télécharger les).

Les métadonnées pour ces documents comprennent un Oui/aucune colonne de site n'appelée "Urgent" et une autre colonne de site appelée « Status ». Nous devons répondre à une exigence de l'entreprise qui indique le pourcentage de "Urgent" documents dont le statut est « En attente ».

Cela est généralement simple à faire et j'ai décrit quelque chose de très semblable à cela sur le Beagle de SharePoint avec beaucoup de captures d'écran si vous êtes intéressé.

En bref, J'ai fait ce qui suit:

  • Créer un point de vue sur la doc library appelée « En attente ».
  • Configurer l'affichage pour ne pas tenir compte de la structure de dossier.
  • Créer une liste KPI.
  • Créer un indicateur dans la liste de points à la lib doc et que "en attente" point de vue.

Cela ne fonctionne pas. L'indicateur de performance clé montre ma cible (e.g. cinq documents urgents) mais affiche toujours le nombre réel de documents urgents comme zéro. Paradoxalement, Si vous accéder aux détails, Il montre les cinq documents urgents dans la liste. J'ai créé un scénario très simple avec deux documents, un à un dossier et non. Voici la capture d'écran:

image

La capture d'écran ci-dessus montre clairement il y a deux documents à la vue, mais la valeur"" est l'un. Le CamlSchema"" avec un document vierge Id se trouve dans le dossier racine et l'autre est dans un dossier nommé « 84 ».

Il me semble que même si vous spécifiez un point de vue, l'indicateur de performance clé n'est pas honorer les "afficher tous les éléments sans dossiers" définition et place, se limite au dossier racine.

Si je me trompe, Veuillez me drop a line ou laisser un commentaire.

</fin>

S'abonner à mon blog!

SPD Workflow “Recueillir des données d'un utilisateur”: Modifier la forme de travail généré

Je travaille sur un projet qui utilise cinq différents flux de travail SharePoint Designer pour gérer des approbations de documents. SPD fournit la « collecte de données d'un utilisateur" action afin que nous puissions invite l'utilisateur à différents bits d'information, comme si ils homologuent il, certains commentaires et peut-être nous demander ce qu'ils avaient pour le dîner l'autre soir.

Les formes sont parfaitement fonctionnels. Ils sont liés à une liste de tâches comme un type de contenu. Ils sont 100% générées par le système. Il s'agit de leur force et leur faiblesse. Si nous pouvons vivre avec le formulaire par défaut, puis nous voilà prêt à partir. Cependant, Nous n'avons pas trop de contrôle sur comment SPD crée la forme. Si nous n'aimons pas ce comportement par défaut, Nous avons besoin d'avoir recours à diverses astuces pour obtenir autour d'elle (par exemple, définition de priorité sur une tâche).

J'avais besoin de fournir un lien sur ces formes de travail qui ouvrent les propriétés du point de vue (DispForm.asxp) de l'élément « connexe" dans une nouvelle fenêtre. Cela donne accès en un clic pour les métadonnées de l'élément associé. C'est ce que je veux dire:

image

Heureusement, Nous pouvons le faire et il n'est pas très difficile. Grosso modo, incendie de SPD, Accédez au répertoire qui héberge les fichiers de flux de travail et ouvrez le fichier ASPX à modifier. Voici les instructions de transformation XSL simplement classiques et si vous avez mucked avec itemstyle.xsl, recherche ou autres scénarios XSL, ce sera facile pour vous. En fait, J'ai trouvé il est généralement plus facile puisque le formulaire généré est un peu plus facile à suivre par rapport à un composant WebPart résultats principaux de recherche (ou la CWQP cauchemardesque).

Bien sûr, Il y a un écueil majeur. Éditeur de workflow du SPD s'attend à un contrôle total sur ce fichier. Si vous modifiez, SPD va écraser joyeusement votre donner de changements le droit ensemble de circonstances. J'ai fait deux tests rapides pour voir à quel point cela pouvait obtenir. Ils ont tous deux supposent que vous avez conçu un flux de travail SPD valide qui utilise la "collecte de données d'un utilisateur" étape.

Test 1:

  • Modifier le fichier ASPX à la main.
  • Mettre à l'épreuve (Vérifiez que vos modifications ont été correctement enregistrées et n'a pas briser rien).
  • Ouvrir le flux de travail et d'ajouter une action indépendante (comme le « journal de l'histoire »).
  • Enregistrer le flux de travail.

Résultat: Dans ce cas, SPD ne pas recréer la forme.

Test 2:

  • Faire la même chose : #1 sauf directement modifier la « collecte de données d'un utilisateur" action.

Résultat: Cela recrée la forme à partir de zéro, écraser vos modifications.

Notes finales:

  • Au moins deux actions de SPD créer des formulaires comme ceci: « Collecte de données d'un utilisateur" et « Assign pour faire le point ». Deux de ces actions’ formes peuvent être modifiés manuellement.
  • J'ai été capable de générer mon lien vers dispform.aspx parce que, dans ce cas, l'article relate a toujours son ID incorporé dans l'URL de l'article connexe. J'ai pu extraire et ensuite construire une <a href> basé sur lui pour fournir la fonctionnalité d'accès un clic meta données. Il est peu probable que votre URL suit cette règle. Il peut y avoir d'autres façons d'obtenir l'ID de l'élément connexe, mais je n'ai pas eu à traverser ce pont, donc je ne sais pas si obtient de l'autre côté de l'abîme.
  • Je n'avait pas étudier, mais je ne serais pas surpris si il y a une sorte de fichier modèle dans la 12 la ruche que je pourrais modifier affecter comment SPD génère les formulaires par défaut (comme nous pouvons modifier les modèles de l'alertes).

</fin>

S'abonner à mon blog!

Sont “Erreur inconnue” Messages vraiment mieux qu'une Trace de la pile?

Je lisais le billet de blog de Madhur comment activez la stack trace affiche et maintenant je me demande: Pourquoi ne nous toujours afficher une trace de la pile?

Qui est venu à cette règle et pourquoi suivre ce?

Utilisateurs finaux saura que quelque chose ne va pas dans les deux cas. Au moins avec une trace de la pile, ils peuvent appuyer sur Impr-contrôle, Copiez/collez dans un e-mail et l'envoyer à elle. Qui réduirait nettement le temps et l'effort requis pour résoudre le problème.

</fin>

Tags Technorati:

Dimanche (Embarrassant) Funny: “Mon nom est Paul Galvin”

Un tas d'années, mon patron m'a demandé de former certains utilisateurs sur un produit appelé résultats. Résultats est un utilisateur final, outil de reporting. C'est à peu près analogue à SQL Server Reporting Service ou cristal. À l'époque, Il a été conçu pour fonctionner sur les tubes verts (e.g. Wyse 50 Terminal) connecté à une machine Unix via telnet.

Mon défaut de répondre à toute question qui commence par "peut vous … " est « Oui" et c'est où tous les problèmes ont commencé.

Le client est une entreprise chimique hors en Californie du Sud et a peu près enveloppé d'une mise en oeuvre ERP majeur basé sur De QAD MFG/PRO. Le plan d'exécution appelé maintenant pour les utilisateurs finaux de puissance formation sur le produit des résultats.

Je n'étais pas un grand utilisateur de cet outil et n'avait certainement jamais formé quelqu'un avant. Cependant, I a mené un certain nombre d'autres classes de formation et a été rapidement sur mes pieds, Si je n'étais pas trop inquiet. Dennis, l'instructeur de résultats réels à temps plein, m'avait donné son matériel de formation. Regardant en arrière dessus maintenant, C'est vraiment tout à fait absurde. Je ne savais pas bien le produit, n'avait jamais été formellement formés à ce sujet et n'avait certainement jamais enseigné il. Ce que les entreprises ai-je eu formation de toute personne à ce sujet?

Pour compliquer les choses sur le plan logistique, On m'a demandé de rencontrer quelqu'un à Chicago dans le cadre d'un engagement avant la vente le long du chemin. Le plan était de voler de New Jersey, aller à Chicago, se réunir pendant une heure avec la perspective et puis se poursuivent-elles Californie.

Puits, Je suis arrivé à Chicago et le gars vente sur mon équipe avait fait une erreur et n'a jamais confirmé la réunion. Si, J'ai montré vers le haut et la perspective wasn't there. Génial. J'ai plier bagage et laisser se poursuivent-elles CA. Quelque part au cours de ce processus, J'ai fait savoir que le client est l'apprentissage moins de 24 heures avant mon arrivée que "Paul Galvin" enseigne la classe, pas de Dennis. Le client aime Dennis. Ils veulent savoir "qui est cette personne Paul Galvin?" "Pourquoi devrions nous lui faire confiance?" "Pourquoi devrions nous payer pour lui?" Dennis n'a pas bien évidemment vous abonner à mon "donner des mauvaises nouvelles au début" philosophie. Génial.

J'arrive à l'aéroport et pour une raison quelconque incroyablement stupide, J'avais vérifié mes bagages. Je l'ai fait à LAX, mais ma valise n'a pas. Pour moi, perte de bagages est un peu comme passer par la sept étapes du deuil. Finalement je le fais à l'hôtel, avec aucun bagage, fatigué, affamés et de porter mon (maintenant, très froissé) costume d'affaires. Il prend beaucoup de temps à voyager de Newark — à O'Hare — pour un client — Retour à O'Hare — et enfin à LAX.

Je trouve enfin moi-même assis dans la salle de l'hôtel, déambulant sur une barre snickers, épuisé et en essayant de battre l'énergie permet de parcourir à nouveau le matériel de formation afin que je ne ressemble pas à un cul complet devant la classe. C'était un peu un point faible pour moi à l'époque.

Je me réveillai le lendemain, mon meilleur pour lisser ma combinaison de sorte que je ne regarde pas aimé Willy Loman dans un mauvais jour et choux sur plus au client. Comme c'est souvent le cas, en personne, elle était belle, très agréable et poli. Celui-ci était à l'opposé à son extrêmement en colère mails/messages vocaux depuis la veille. Elle m'amène sur 3 miles à travers l'immeuble après immeuble à un sectionnés au large zone dans un entrepôt de produits chimiques géant où nous mènera la classe pour les trois prochains jours. Le 15 ou 20 étudiants assemblent lentement, la plupart eux toujours en attente de Dennis.

J'ai toujours commencer mes cours de formation en me présentant, ce qui donne des renseignements généraux et l'écriture de mes coordonnées sur le tableau blanc. Comme j'ai dis, « Good morning, mon nom est Paul Galvin », J'écris mon nom, email et numéro de téléphone vers le haut sur le tableau blanc en grosses lettres afin que tout le monde peut le voir clairement. Je m'adresse au fait que je suis remplaçant Dennis et je leur assure que je suis un remplaçant adéquat, etc.. J'ai tout le monde me dire brièvement leur nom et ce qu'ils veulent atteindre hors de la classe de sorte que je peux adapter les choses à leurs exigences spécifiques que je vais le long. Les trucs habituels.

Nous qui envelopper vers le haut et allumez le projecteur. Je vais à effacer mes informations de contact et … Je l'avais écrit au marqueur permanent. J'étais tellement gêné. Dans mon esprit, Il ressemblait à ceci: Il y a cette « Paul Galvin" personne, remplacement de dernière minute pour notre bien-aimé Dennis. Il porte un froissé vers le haut de tailleur et mal rasé. Il vient d'écrire ses lettres de grand nom sur notre tableau blanc dans marqueur permanent. Quelle vision!

Tout cela se termina Heureusement, Cependant. Il s'agissait d'une entreprise de produits chimiques, Après tout. A grisonnant vétéran employé tiré quelque chose au large du plateau et, probablement en violation du règlement de l'EPA, autorisé le Conseil d'administration. J'ai réussi à rester 1/2 jour devant la classe tout au long et ils m'ont donné un bon examen en fin de compte. Cela cimente mon "pinch hitter" réputation de mon entreprise. Mes bagages sont arrivés le premier jour, Si j'étais beaucoup plus présentables jours deux et trois.

Comme je prenais l'yeux rouges à la maison, Je contemplais les « leçons apprises ». Il y avait beaucoup à contempler. La communication est la clé. Dire des clients sur les changements dans le plan. Ne jamais vérifier vos bagages à l'aéroport si vous pouvez l'éviter éventuellement. Apporter des secours "trucs" dans le cas où vous ne cochez pas vos bagages, et il ne le rend pas. Je pense que j'ai appris la leçon la plus importante, Cependant, était-ce: toujours tester un marqueur dans le coin inférieur gauche d'un tableau blanc avant l'écriture, en lettres énormes, « Paul Galvin ».

</fin>

Tags Technorati: ,

Perspectives: SharePoint vs. le grand collisionneur

En raison de certains excentrique United Airlines vols, j'ai pris dans le milieu des années 90, J'ai fini d'une certaine manière avec une offre de transformer "miles inutilisés" dans une douzaine un abonnement magazine gratuit. Voilà comment je me suis retrouvé en vous abonnant à la revue Scientific American.

Comme logiciel / consultation des personnes, nous rencontrons de nombreux besoins difficiles dans notre carrière. Plus le temps, Nous aimons rencontrer ces exigences et, en fait, C'est probablement pourquoi nous pensons que cette carrière est le meilleur dans le monde. Parfois, j'ai tout ce qui dans le monde me demande aurait j'ai fait avec moi-même si j'étais né à tout autre moment dans l'histoire. C'est terrible il serait de manquer sur les types de travail, que j'arrive à faire maintenant, en ce moment et l'endroit dans l'histoire mondiale? Je pense: assez terrible.

Au fil des ans, certaines des exigences que j'ai rencontré ont été extrêmement difficiles à satisfaire. Choses complexes de SharePoint, création web, traitement des cadres fondés sur la technologie de non-web-friendly, complexe BizTalk orchestrations, etc.. Nous pouvons tous (Si tout va bien) regarder fièrement sur notre carrière et dire, "Oui, C'était un dur à résoudre, mais en fin de compte j'ai pwned que sumbitch!" Mieux encore, encore plus intéressants et amusants de défis attendent.

Personnellement, je pense que mon curriculum vitae, à cet égard, est assez profonde et je suis assez fier de lui (Si je sais que ma femme ne comprendra jamais 1/20ème de celui-ci). Mais cette semaine, Je lisais un article sur la Large Hadron Collider dans mon magazine Scientific American et avait un de ces rares moments d'humilité où j'ai réalisé que malgré mon géant"" statut dans certains milieux ou quelle profondeur je pense que mon puits d'expérience, Il existe de véritables géants dans des univers complètement différents.

Les gens de l'équipe LHC ont des questions vraiment épineuses à gérer. Examiner la lune. Je ne pense pas vraiment beaucoup sur la lune (Si j'ai été très méfiant à ce sujet car j'ai appris, qu'il ralentit la rotation de la terre, qui ne peut pas être une bonne chose pour nous les humains à long terme). Mais, l'équipe LHC a à craindre. Appareils de mesure du LHC sont tellement sensibles qu'ils sont affectés par la lune (Earth-rotation-Slowing-and-eventually-Killing-All-Life) gravité. C'est un diable d'une exigence à satisfaire — produire des mesures correctes malgré les interférences de la lune.

Je réfléchissais cette question quand j'ai lu cette phrase: "Le premier niveau va recevoir et analyser les données provenant uniquement un sous-ensemble des composants du détecteur, de qui il peut capter les événements prometteuse basée sur des facteurs isolés tels que si un muon énergique a été repéré volant dehors à un grand angle de l'axe du faisceau." Vraiment … ? Je ne joue pas dans ce genre de bac à sable et jamais sera.

La prochaine fois que je sors avec des amis, Je vais soulever un toast aux bonnes personnes qui travaillent sur le LHC, espérons qu'ils ne pèsent la particule de Higgs boson et maudire la lune avec succès. Je vous suggère de que faire la même chose. Ce sera tout un toast 🙂

</fin>

Tags Technorati: