Étude de cas de MRO Workflow à l'aide de mousse, SPD, InfoPath & services Web.

Vue d'ensemble

Cette rubrique décrit une étude de cas décrivant une réelle MRO (Entretien, Réparation et opérations) processus d'approbation de flux de travail mis en place en mousse.

Ce n'est pas un débat technique ouvertement, mais au contraire sert à fournir un exemple du monde réel qui démontre comment la plateforme MOSS a rencontré un monde réel besoin.

(Cette entrée est croisée affichée entre http://paulgalvin.spaces.live.com et http://blogs.conchango.com)

Arrière-plan

Processus MRO du client ont été caractérisées par ce qui suit

  • Processus d'approbation manuelle.
  • Certains à l'aide de soutien excel tableur.
  • Processus d'approbation irrégulière. Le même processus d'approbation achat MRO varierait au jour le jour, personne par personne.
  • Beaucoup de papier et les signatures manuscrites — acheter les réquisitions nécessaires jusqu'à 3 signatures écrites avant l'approbation finale.

Les objectifs de ce projet inclus:

  • Automatiser le processus.
  • Faire respecter les normes de l'entreprise pour l'approbation.
  • Donner une vue consolidée de MRO achat aux différents gestionnaires.
  • Piste de vérification détaillée.

Comme un effet secondaire de la solution, signatures écrites n'étaient plus requis.

Processus d'approbation

Le processus d'approbation se compose de quatre « voies de natation »: Auteur, Gestionnaire direct, Gestionnaire fonctionnel et chef de division.

Auteur:

Voit la nécessité pour l'achat et démarre le processus. Notez que l'expéditeur peut ou ne peut pas effectivement sur la demande d'achat, mais plutôt direct un autre membre du personnel de le faire. Quelques fois, l'auteur n'a pas l'expertise technique pour remplir la demande de PO. Par exemple, un utilisateur pouvez réquisitionner un nouvel ordinateur portable, mais il ne sait ne pas le meilleur vendeur, Normes informatiques, etc.. Dans ce cas, les œuvres de l'auteur avec elle et elle remplit en fait la demande.

Gestionnaire direct:

C'est le responsable direct de l'auteur (qui peut être différente de la personne qui a effectivement conclu la réquisition PO MOSS). Gestionnaires directs doivent approuver la demande de PO avant que le système vise l'approbation plus loin vers le bas de la ligne.

Gestionnaire fonctionnel:

Le Gestionnaire fonctionnel est la personne chargée de veiller à ce que l'achat proposé est conforme aux normes de l'entreprise dans le cadre d'une fonction ministérielle particulière. Par exemple, Achats IT sont approuvées par le responsable fonctionnel informatique.

Gestionnaire de la Division:

Chefs de division approuvent les demandes d'achat strictement en montant en dollars. Directeur de la Division approuver les demandes d'achat dépassant un montant configurable.

La Solution

Nous avons utilisé les outils et les composants suivants pour mettre en œuvre la solution:

MOUSSE: Sert de la plate-forme sur laquelle tout le reste « accroche ». MOSS fournit des services de roche pour la sécurité, données de base, pistes de vérification et d'autres caractéristiques.

InfoPath forms services: Un composant de mousse, Cela permet aux utilisateurs de remplir des demandes d'achat via un navigateur web.

SharePoint Designer (SPD): Nous avons utilisé le SPD à mettre en œuvre le processus de flux de travail automatisés.

Service Web: Un service de web c# améliore l'expérience utilisateur en permettant à des listes de choix en cascade dans le formulaire InfoPath et offre de meilleures performances en ce qui concerne le filtrage des données. Voir ici pour une plongée profonde technique sur ce sujet et nos motifs pour l'utiliser.

Listes personnalisées: Profils utilisateur MOSS fourni responsable direct d'un utilisateur donné, mais n'a ne pas fourni la plupart des données qui contrôlait les décisions de flux de travail (e.g. Si le gestionnaire divisionnaire est tenu d'approuver la demande de PO). Nous avons utilisé des listes personnalisées dans une entreprise de données"" site pour maintenir les données telles que les « Divisional Manager approbation Dollar montant », « Gestionnaire fonctionnel de secteur" et ainsi de suite. Listes intégrant très joliment avec InfoPath et fournissent également créer/modifier/supprimer (CRUD) fonctionnalité d'audit et de sécurité de la boîte.

Cas d'utilisation

Ce cas d'utilisation illustre comment la solution s'intègre ensemble:

  1. Paul veut un nouvel ordinateur portable. Il décrit ses besoins à Vivek, une personne TI familier avec les normes de l'entreprise portable, fournisseurs privilégiés, etc..
  2. Vivek billes en mousse, accède à la forme de réquisition de PO et pénètre dans la réquisition au nom de Paul. La forme invite Vivek pour une catégorie d'achat qui utilise ensuite les services web pour remplir une liste déroulante des fournisseurs approuvés par compagnie. Vivek spécifie également la région fonctionnelle de cet achat (e.g. « IL" ou « Finance »).
  3. SPD basé de flux de travail démarre, détermine le gestionnaire direct de Paul et achemine la demande de son manager, Stacy.
  4. Stacy approuve la demande d'achat.
  5. Flux de travail SPD inspecte la réquisition et détermine que c'est un achat informatique. Il achemine le flux de travail à l'IT manager fonctionnel, Wonson.
  6. Wonson approuve la demande d'achat.
  7. Flux de travail SPD encore inspecte la demande et détermine que le montant de l'achat dépasse un montant maximum et l'achemine vers le gestionnaire de la division pour l'approbation.
  8. Le gestionnaire de la division approuve la demande d'achat.

Notes

  • Le cas d'utilisation montre un « pur" exécuter sans rejets ni sauts.
  • Chaque approbateur a la possibilité d'approuver ou de rejeter la demande d'ainsi que de fournir des commentaires écrits. Ceux-ci sont consignés dans le journal d'audit.
  • Si un gestionnaire responsable rejette la demande d'achat à tout moment, la réquisition de PO est « morte" et le processus doit être lancé depuis le début.
  • Flux de travail informe l'auteur à chaque étape du processus de.
  • Aucune signature écrite — le client déterminé (Après quelques recommandations énergiques) que l'audit trail tel que prévu par l'histoire de flux de travail, a servi leurs besoins audit.
  • Effort — Il a fallu l'homme environ trois semaines pour mettre en œuvre cette solution.

Conclusion

Cette solution exploite MOSS comme un développement et une plateforme d'exécution. Le client a été en mesure d'exploiter les principales fonctionnalités MOSS pour automatiser un processus d'entreprise courants qui a touché presque tous les employés dans l'entreprise. À l'exception d'un service web simple (qui elle-même s'appuie sur mousse), presque aucune réelle » programmation" Il fallait.

La solution est aussi une vitrine »" pour le client, illustrant comment les différentes fonctionnalités MOSS peut être combiné pour créer une application de gestion complètes et générer de nouvelles opportunités de consultation à l'avenir.

Glossaire

MRO: Entretien, réparation et opérations. Ces achats comprennent généralement des éléments tels que les blocs-notes, chaises, ordinateurs personnels, imprimantes, téléphones cellulaires et autres.

Examen 70-542: Recommandations de l'étude (Microsoft Office SharePoint Server 2007 – Développement d'applications)

MISE À JOUR: Dans les commentaires, quelqu'un a posté ce lien: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. Il me semble bon aussi.

J'ai passé l'examen technique MOSS aujourd'hui, intitulé « Microsoft Office SharePoint Server 2007 – Développement d'applications". J'ai trouvé l'examen pour être assez rigoureuse et qu'il a jumelé très bien avec Microsoft guide de préparation.

J'ai travaillé avec de la mousse sur une base quotidienne et rien ne vaut une expérience pratique réelle pour l'ensemble de ces examens.

Cela dit, J'ai pris note de ce que je faisais mes études que j'ai étudié. Je crois que toutes ces ressources sont utiles, surtout comme un moyen de renforcer cette pratique expérience.

Objet Lien
Excel Services http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Recherche Aucune recommandation particulière. J'avais pris une classe sur la recherche plus tôt cette année et l'expérience réelle m'ont porté par. Travailler avec le centre de recherche"" composant de mousse.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Auditoires http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profils http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Content Mgmt http://www.sharepointblogs.com/tonstegeman/archive/2007/02/01/moss-custom-policies-part-1-creating-a-custom-information-management-policy.aspx

http://blogs.msdn.com/ecm/archive/2007/03/04/customize-the-page-editing-toolbar-in-moss-2007.aspx

http://msdn2.microsoft.com/en-us/library/aa674506.aspx

BI Travail pratique avec l'indicateur de performance clé dans MOSS.
Flux de travail http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Info mgmt http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Variations http://aspnetcoe.wordpress.com/2007/02/09/customize-variation-root-landing-logic/
Records mgmt http://blogs.msdn.com/recman/archive/2006/06/16/633393.aspx
InfoPath http://msdn.microsoft.com/msdnmag/issues/06/08/infopath2007/default.aspx

Beaucoup de ces liens a conduit à plus de liens, et j'avais tendance à les suivre jusqu'à 3 niveaux de profondeur.

Je ne dirais pas que tout ce que j'ai lu directement appliquée à l'examen, mais je ne regrette pas lire tout ça et même si certains morceaux n'était pas directement pertinents. C'est toutes les bonnes choses à savoir et je recommande vivement le matériel pour tous les développeurs MOSS aspirants bien équilibrées.

Résultats de recherche MOSS et WSS (et dataviews): afficher les données XML brutes

C'est peut-être évident pour beaucoup, mais alors que d'étudier pour mon examen de programmation MOSS, J'ai appris qu'il est assez facile d'obtenir le XML réels d'une requête de recherche par le biais de l'interface utilisateur.

Voici une méthode rapide:

  • Accès recherche avancée.
  • Effectuer une recherche qui renvoie des données.
  • Modifier la page (via les paramètres de site).
  • Modifiez XSL comme suit:

<?XML Version="1.0" codage="UTF-8"?>
<
XSL:feuille de style Version="1.0" xmlns:XSL="http://www.w3.org/ 1999/transformation/XSL">
<
XSL:sortie méthode="XML" Version="1.0" codage="UTF-8" tiret="Oui"/>
<
XSL:modèle match de football="/">
<
pre>
<
XSL:de la copie Sélectionnez="*"/>
</
pre>
</
XSL:modèle>
</
XSL:feuille de style>

  • Hit s'appliquent.
  • Afficher la Source dans le navigateur.

Notez que la <pre> tag ne fait pas beaucoup sauf servir comme marqueur commode lorsque vous affichez les résultats.

Cette astuce peut être très utile lorsque travaillant avec des propriétés gérées et la personnalisation de la recherche. Il fournira une liste définitive du XML disponible que vous pouvez utiliser dans votre xslt qui aurait été très utile, le dernier 25 fois, j'ai créé quelques résultats de la recherche personnalisée.

Cela devrait fonctionner pour les dataviews ainsi, Bien que je n'ai pas testé cette possibilité encore.

Aucun CQWP pour WSS? Essayez ceci…

Je vois que Eric Kraus a été confronté à une exigence normalement s'est entretenue avec un composant WebPart requête de contenu. Le problème? Il était dans un environnement WSS pur sans accès à la CQWP. Plutôt que de curling vers le haut en position foetale (une envie, qu'il faut se battre chaque jour, Il semble), Il est venu avec une solution qui donne au moins une chance de réussir à boutiques WSS. Il est décrit ici.

Vue détaillée et brillante de l'API de gestion de contenu

Stefan Goßner a mis sur pied une série de 4 fantastique sur l'API de déploiement et de contenu SharePoint ici. Il offre une excellente vue d'ensemble et de très bons exemples dans le code (C#).

J'ai ramassé tout d'abord ce lien du blog poelmans joris à http://jopx.blogspot.com/.

Même si vous êtes comme moi, car vous n'avez pas eu à faire beaucoup de travail pratique pour la gestion de contenu, Il s'agit bien d'une valeur 20 minutes de votre temps pour lire.

À l'aide de l'API, On peut:

  • Exporter et importer du contenu très facilement.
  • Apparenter contenu. Si vous souhaitez exporter du contenu d'un site "A" et l'envoyer au site "B" mais dans une toute nouvelle place dans la hiérarchie, C'est possible.
  • Exporter le contenu d'un site A et importer les morceaux sélectionnés dans le site A.
  • Rajouter un lien vers contenu (ce qui signifie faire face à tous les liens hypertexte).

WSS, libs doc & listes, Portant sur des colonnes calculées [Me]

Quelqu'un sur les Internets a poser des questions sur comment créer une colonne calculée sur une liste qui montrerait une valeur sous la forme"[Utilisateur] – [Statut] – [Emplacement]" comme dans « Paul Galvin – Consommation d'alcool [gratuit] Bière – La plage".

Paul aurait entrer et mettre à jour son entrée dans la liste et la colonne calculée mettrait à jour correctement. Le [Utilisateur] doit par défaut à la l'utilisateur entrant et la mise à jour la liste.

Une colonne calculée ne peut pas utiliser « volatile" fonctions telles que [Me] ou [Aujourd'hui]. Je l'ai résolu dans un environnement de test avec ces étapes:

  1. Créer une colonne de texte nommée « Utilisateur actuel ».
  2. Sa valeur par défaut la valeur [Me]
  3. Créer une colonne calculée appelée « Calc Test ».
  4. Définissez sa valeur = [Utilisateur actuel]

Je suis allé, ajoute un élément à la liste et il a travaillé.

Mon passé 70-315 examen aujourd'hui!

J'ai passé le « développement et mise en oeuvre de Web Applications avec Microsoft Visual c# .net et Microsoft Visual Studio .net" examen aujourd'hui dans le grand état de NJ aux bureaux de vénérables de SolarTech à Hasbrouck Heights.

J'ai mis cet examen là-haut avec BizTalk en termes de Difficulté. Vous ne pouvez pas faux votre chemin à travers elle.

À l'étude, J'ai utilisé le livre MCAD/MCSD Self Paced Training kit intitulé Développement d'Applications Web avec Microsoft Visual Basic .NET et Visual c# .NET.

Directives de Microsoft (ici) sont exactement correct IMO. Le livre aborde tout et si vous avez un minimum ou expérience réelle, Il devrait être un simple examen. Si ce n'est, prendre le temps une expérience du monde réel ou au moins exécuter les laboratoires dans le livre. Cela vous donnera sans doute ce dont vous avez besoin.

Je vont même jusqu'à recommander le livre à pro, les gens surtout autodidactes comme moi. Elle couvre quelques trucs de base que j'ai eu tout simplement jamais une raison pour tomber sur mes voyages et je suis moi-même coups de pied un peu pour ne jamais avoir pris le temps de les apprendre.

SharePoint Designer, “Recueillir des données de l'utilisateur” et l'utilisation de ces résultats.

Utilisez la « collecte de données de l'utilisateur" action pour créer et attribuer une tâche à un utilisateur qui demande les données. Entre autres choses, J'ai l'utilisé pour inviter un utilisateur d'approuver ou de rejeter une demande et entrer des commentaires.

Cette action prend la forme de:

Recueillir données De cet utilisateur (Sortie à Variable: collect1)

En cliquant sur données tire une série de boîtes de dialogue où vous spécifier quelles données l'utilisateur doit fournir quand remplir la tâche et cet utilisateur est évident.

La partie de la production (Variable: collect1) enregistre l'ID de la tâche. Vous l'utiliser dans votre flux de travail pour extraire la réponse réelle de l'utilisateur via le "comparer n'importe quelle source de données" condition.

Cette condition indique que

Si champ est égal à valeur

Cliquez sur champ et puis le f(x) icône et il tire vers le haut une autre boîte de dialogue. Utilisez cette boîte de dialogue généralisé à de dire SPD deux choses;

1. Quelle est la liste et la colonne dont vous souhaitez comparer la valeur.

2. Comment le moteur de workflow doit localiser la ligne spécifique dans la liste?

Pour ce faire:

  1. Changement de la Source"" DropDown pour pointer sur la liste de tâche correcte. Notez que la boîte de dialogue se développe pour afficher un "trouver l'élément de liste" Section.
  2. Dans la liste déroulante champ de détails de la recherche, Sélectionnez le nom du champ dont vous voulez que la valeur (Il mappe à ce que vous avez appelé dans la boîte de dialogue de collecte de données par le haut).
  3. Dans le "trouver l'élément de liste" Section, Sélectionnez tâches »:ID" dans la liste déroulante du champ.
  4. Dans le champ valeur, Cliquez sur la f(x). Cela ouvre une autre boîte de dialogue.
  5. Modifier la source de « données de Workflow"
  6. Sélectionnez la variable de flux de travail qui correspond à la « sortie de Variable" de l'action de collecte de données.
  7. Cliquez sur OK/OK et vous avez terminé.

Il ressemble à cela pour moi:

image

À ce point, vous pouvez maintenant utiliser cette valeur dans votre flux de travail tel que requis.

Notes complémentaires:

Comme une bref aparté, J'ai toujours de créer une variable de flux de travail bien nommée de type "ID d'élément de liste" et l'utiliser au lieu de l'auto-généré "collect1".

Cette « comparer n'importe quelle source de données" jeu de la boîte de dialogue est utilisée dans plusieurs endroits différents dans le SPD et vaut bien maîtriser.

== fin

Tags Technorati:

IE intermittent se bloque lorsque vous accédez à des documents dans une bibliothèque de documents WSS/MOSS

J'ai été tourmenté par ce pour 9 mois et je ne vois que les gens sur les forums MSDN et Usenet il ont too.l

Parfois, Lorsque vous accédez à un document word (ou d'autres types de doc) d'un document bibliothèque provoque simplement écrasement et disparaître d'Internet Explorer (prenant tous les onglets avec elle si tout est ouvert).

Ce correctif MS peut le résoudre: http://support.microsoft.com/kb/938888

Aussi, Il y a une description du problème ici:

http://jopx.blogspot.com/2007/07/solving-internet-explorer-crash-when.html

Transmettra la réelle avancée de XPath?

Vue d'ensemble:

Crée une liste personnalisée qui gère un type de contenu avec quelques dizaines de colonnes.

Il a ajouté à une page, puis par l'intermédiaire de SPD, convertie en une vue de données.

Problème:

Mon expression Xpath revenait vide pour une colonne nommée « Position courante ». J'ai référencé il thusly:

    <bordure de tableau = « 1 »>
      <XSL:pour chaque select = "/ dsQueryResponse/lignes/en rangée" >
        <TR>
          <TD>
            État d'avancement:
            <XSL:de la valeur de select="@Current_x0020_Status"></XSL:de la valeur>
          </TD>
        </TR>
      </XSL>
    </table>

La colonne dans le CT est nommée « État actuel ». Elle apparaît dans la liste de choix comme « État actuel ». Partout où que vous regardez, vous voyez « État actuel ».

Tout en battant follement environ, vous cherchez une solution, J'ai fait référence à la place "@Recruiter" et voici! — qui retournés en l'état actuel. Je m'attendais à retourner le recruteur quand je l'ai fait.

Solution:

J'ai fourré au SPD. Aller à cette page au SPD et il montre la vue de données. Vous pouvez inspecter les données fournies à la vue et connexes Xpath. Ici j'ai découvert qu'en effet, l'expression Xpath pointé « Recruteur ». Assez étrangement, la "réelle" champ recruteur a fait de « Recruiter1 ».

Emporte:

SPD fournit des expressions Xpath faisant autoritées pour les lignes & colonnes dans une vue de données.

Seconde, Il montre les données réelles. Ainsi, par exemple, une colonne de type montre cela:

<nobr><travée><Un HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID = 17 ">Galvin, Paul</A><img border ="0" hauteur = "1" largeur = "3" src="/_layouts/images/blank.gif"/><a href = "javascript:’ OnClick ='IMNImageOnClick();retourner false;’ class = « ms-imnlink »><IMG nom ='imnmark’ titre =” frontière =’0′ hauteur = 12’ largeur = 12’ src='/_layouts/images/blank.gif’ Alt = "aucune information de présence’ SIP ='PGalvin@xxx.com’ ID ='imn_77, type = smtp'/></un></travée></nobr>