MRO Workflow casestudy met behulp van MOSS, EPD, InfoPath & diensten van het web.

Overzicht

Dit bericht beschrijft een case-studie met een beschrijving van een werkelijke MRO (Onderhoud, Reparatie en operaties) goedkeuring workflowproces implemented in MOSS.

Dit is niet een openlijk technische discussie, maar in plaats daarvan dient om een echte wereld voorbeeld dat aantoont hoe de MOSS platform ontmoette een levensechte te verstrekken nodig.

(Dit item is cross-gepost tussen http://paulgalvin.spaces.live.com en http://blogs.conchango.com)

Achtergrond

Het clientproces MRO had gekenmerkt door de volgende

  • Handmatige goedkeuringsproces.
  • Sommige ondersteuning met behulp van excel-werkbladen.
  • Onregelmatige goedkeuringsproces. Het dezelfde MRO aankoop goedkeuringsproces zouden variëren van dag tot dag, persoon door persoon.
  • Veel van papier en handgeschreven handtekeningen — Koop vorderingen nodig tot 3 schriftelijke handtekeningen voor definitieve goedkeuring.

De doelstellingen van dit project opgenomen:

  • Volledig automatiseren naar de procédé.
  • Afdwingen van onderneming normen voor goedkeuring.
  • Totaaloverzicht van MRO inkoop naar verschillende managers bieden.
  • Gedetailleerde audittrail.

Als een neveneffect van de oplossing, schriftelijke handtekeningen werden niet langer nodig.

Goedkeuringsproces

Het goedkeuringsproces bestaat uit vier 'zwemmen rijstroken': Opdrachtgever, Directe manager, Functionele manager en divisie manager.

Opdrachtgever:

Ziet de noodzaak voor de aankoop en begint het proces. Merk op dat de opdrachtgever kan of kan niet daadwerkelijk de aankoop opeising invoert, maar in plaats daarvan direct een ander personeelslid te doen. Sommige tijden, de opdrachtgever hoeft niet de technische expertise om de PO opeising in te vullen. Bijvoorbeeld, een gebruiker kan wil een nieuwe laptopcomputer Inkoopbeheer, maar weet niet de beste verkoper, IT-standaarden, etc. In dit geval, de opdrachtgever werken met en het eigenlijk het invullen van het inkoopvoorstel.

Directe manager:

Dit is de directe manager van de opdrachtgever (die kunnen afwijken van de persoon die de PO opeising daadwerkelijk aangegaan in MOSS). Directe managers moeten de opeising van het PO goedkeuren voordat het systeem goedkeuring verder langs de lijn zoekt.

Functionele Manager:

De functionele manager is de persoon die verantwoordelijk is om ervoor te zorgen dat de voorgenomen aankoop aan de normen van de onderneming in het kader van een bepaalde zakelijke functie voldoet. Bijvoorbeeld, IT-aankopen zijn goedgekeurd door een functionele IT-manager.

Divisie Manager:

Divisie managers goedkeuren aankoop vorderingen strikt door de dollarbedrag. Divisie manager goedkeuren aankoop vorderingen die een configureerbare dollarbedrag overschrijden.

De oplossing

We gebruikten de volgende hulpprogramma's en onderdelen om de oplossing te implementeren:

MOSS: Fungeert als het platform uit die alles "hangt". MOSS biedt fundament voor beveiliging, stamgegevens, audit trails en andere functies.

InfoPath-formulierservices: Een component MOSS, Hierdoor kunnen gebruikers om aankoop vorderingen via een webbrowser in te vullen.

SharePoint Designer (EPD): Wij EPD gebruikt de geautomatiseerde workflowproces uit te voeren.

Webservice: Een c#-webservice verbetert de gebruikerservaring doordat trapsgewijze selecties lijsten in het InfoPath-formulier en levert betere prestaties met betrekking tot het filteren van gegevens. Zie Hier voor een technische diepe duik over dit onderwerp en onze redenen voor het gebruik ervan.

Aangepaste lijsten: MOSS gebruikersprofielen verstrekt van een bepaalde gebruiker directe manager, maar deed niet bieden de meeste gegevens die gecontroleerd werkstroom besluiten (bijvoorbeeld. of de afgesplitste manager is vereist om goed te keuren de opeising PO). We gebruikten aangepaste lijsten in een "-bedrijfsgegevens" site om gegevens zoals "Afgesplitste Manager goedkeuring dollarbedrag", "Functionele Area Manager" enzovoort. Lijsten heel mooi geïntegreerd met InfoPath en bieden ook maken/bijwerken/verwijderen (CRUD) functionaliteit met controle en veiligheid uit de doos.

Use-Case

Deze use-case illustreert hoe de oplossing in elkaar past:

  1. Paul wil een nieuwe laptop. Hij beschrijft zijn behoeften aan Vivek, een IT-persoon bekend met de zakelijke laptop normen, voorkeur leveranciers, etc.
  2. Vivek Logboeken in MOSS, toegang heeft tot de PO inkoopvoorstel vorm en voert de opeising namens Paul. Het formulier gevraagd een aankoop-categorie die vervolgens de webservices gebruikt voor het vullen van een drop-down lijst van verkopers bedrijf goedgekeurde Vivek. Vivek specificeert ook de corporate functioneel gebied van deze aankoop (bijvoorbeeld. "HET" of 'Finance').
  3. SPD gebaseerd werkstroom is gestart, Paul de directe manager bepaalt en de behoefteregel wordt rondgestuurd naar zijn manager, Stacy.
  4. Stacy hecht zijn goedkeuring aan de aankoop opeising.
  5. SPD werkstroom inspecteert de opeising en bepaalt kleur is een IT-aankoop. Het routeert de werkstroom naar de functionele manager van IT, Wŏnsan.
  6. Wŏnsan hecht zijn goedkeuring aan het inkoopvoorstel.
  7. SPD workflow opnieuw inspecteert de behoefteregel en bepaalt dat het aankoopbedrag een maxium dollarbedrag overschrijdt en stuurt het door naar de manager van de afdeling voor goedkeuring.
  8. De divisie manager hecht zijn goedkeuring aan de aankoop opeising.

Notities

  • De use-case toont een 'schone" met geen afwijzingen of sprongen worden uitgevoerd.
  • Elke fiatteur heeft de mogelijkheid om goedkeuren of verwerpen van de opeising, evenals bieden schriftelijke opmerkingen. Deze worden vastgelegd in het controlepad.
  • Als een verantwoordelijke manager de aankoop opeising op elk gewenst moment verwerpt, de PO opeising is "dood" en het proces moet worden gestart vanaf het begin.
  • Werkstroom waarschuwt de opdrachtgever bij elke stap van het proces.
  • Geen schriftelijke handtekeningen — de client bepaald (Na enkele krachtige aanbevelingen) dat de audit trail zoals bepaald via werkstroomgeschiedenis, geserveerd hun controle behoeften.
  • Inspanning — het duurde ongeveer drie man weken om deze oplossing te implementeren.

Conclusie

Deze oplossing maakt gebruik van MOSS als ontwikkeling en runtime-platform. De client kon hefboomeffect MOSS kerneigenschappen automatiseren van een routine bedrijfsproces waarop bijna elke werknemer in de onderneming. Met uitzondering van een eenvoudige webservice (die zelf hefboomwerkingen MOSS), bijna geen werkelijke 'programmeren" nodig was.

De oplossing dient ook als een "showcase" voor de client, demonstreren hoe verschillende MOSS functies kan worden gecombineerd om een volledig functionele bedrijfstoepassing maken en het genereren van nieuwe consulting kansen in de toekomst.

Woordenlijst

MRO: Onderhoud, reparatie en operaties. Deze aankopen omvatten items zoals blocnotes, stoelen, Personal computers, printers, mobiele telefoons en dergelijke.

Examen 70-542: Aanbevelingen van de studie (Microsoft Office SharePoint Server 2007 – Ontwikkeling van toepassingen)

UPDATE: In commentaren, iemand gepost deze link: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. Het ziet er goed uit voor mij ook.

Ik doorgegeven de MOSS technische examen vandaag, getiteld "Microsoft Office SharePoint Server 2007 – Application Development". Ik vond het examen vrij streng en dat het gepaard heel goed met Microsofts Voorbereidingshandboek.

Ik heb gewerkt met mos op een dagelijkse basis en niets beats daadwerkelijke hands-on ervaring voor al deze examens.

Dat gezegd, Ik heb nota genomen van wat ik was studeren zoals ik bestudeerd. Ik ben van mening dat al deze middelen nuttig zijn, met name als middel om te versterken dat hands-on ervaring.

Onderwerp Koppeling
Excel Services http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Zoek Geen speciale aanbeveling. Ik had genomen een klasse op zoek eerder dit jaar en levensechte ervaring mij doorgevoerd. Werken met de "search center" onderdeel van MOSS.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Doelgroepen http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profielen http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Inhoud 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 Hands-on werken met KPI's in MOSS.
Werkstroom http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Info mgmt http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Variaties 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

Veel van deze verbindingen heeft geleid tot meer links en ik de neiging om hen te volgen tot over 3 niveaus diep.

Ik zou niet zeggen dat alles wat die ik lees rechtstreeks op het examen toegepast, maar ik heb geen spijt van het lezen en zelfs als sommige bits niet rechtstreeks relevant waren. Het is alle goede dingen om te weten en ik sterk aanbevelen het materiaal voor alle aspirant goed-rond gemaakte MOSS ontwikkelaars.

MOSS/WSS Search results (en dataviews): de ruwe XML-gegevens weergeven

Dit kan worden duidelijk aan velen, Maar terwijl studeren voor mijn MOSS programmering examen, Ik leerde dat het is vrij gemakkelijk te krijgen van de werkelijke XML van een zoekopdracht via de gebruikersinterface.

Een snelle methode als volgt is:

  • Toegang Geavanceerd zoeken.
  • Een zoekopdracht die sommige gegevens retourneert.
  • De pagina bewerken (via site-instellingen).
  • Verander de XSL in de volgende:

<?XML Versie="1.0" codering="UTF-8"?>
<
XSL:Stylesheet Versie="1.0" xmlns:XSL="http://www.w3.org/1999/XSL/Transform">
<
XSL:uitvoer methode="XML" Versie="1.0" codering="UTF-8" streepje="Ja"/>
<
XSL:sjabloon wedstrijd="/">
<
pre>
<
XSL:kopie-van Selecteer="*"/>
</
pre>
</
XSL:sjabloon>
</
XSL:Stylesheet>

  • Hit van toepassing.
  • Bron weergeven in de browser.

Merk op dat de <pre> Label doen niet veel behalve dienen als een handige marker wanneer u de resultaten bekijken.

Deze truc kan zeer nuttig zijn bij het werken met beheerde eigenschappen en aanpassen van zoeken. Het zal een definitieve lijst van het XML-bestand beschikbaar voor u om te gebruiken in uw xslt die zou zeer nuttig zijn geweest de laatste verstrekken 25 tijden die ik heb gemaakt sommige aangepaste zoekresultaten.

Dit zou moeten werken voor dataviews ook, Hoewel ik heb nog niet getest dat uit zo.

Geen CQWP voor WSS? Probeer dit…

Ik zie dat Eric Kraus werd geconfronteerd met een voorwaarde gewoonlijk voldaan met een webonderdeel Inhoudsquery. Het probleem? Hij was in een zuivere WSS omgeving met geen toegang tot de CQWP. In plaats van curling in de foetushouding (een drang die ik moet vechten elke dag, het lijkt), Hij kwam met oplossing waarmee ten minste WSS winkels een het vechten kans om te slagen. Het wordt beschreven Hier.

Briljante en gedetailleerde weergave van content management API

Stefan Goßner een geweldige 4-delige serie heeft op de SharePoint-inhoud en implementatie API samengesteld Hier. Het biedt een goed overzicht en zeer goede voorbeelden in code (C#).

Ik voor het eerst pakte deze link van joris poelmans blog op http://jopx.blogspot.com/.

Zelfs als u als me bent, in dat u niet hebt moest doen veel hands-on werk voor content management, Dit is de moeite waard 20 minuten van uw tijd om te lezen.

Met behulp van de API, Men kan:

  • Exporteren en importeren van inhoud heel gemakkelijk.
  • Nieuwe bovenliggende inhoud. Als u wilt exporteren van bepaalde inhoud van een site "A" en stuur het naar site "B" maar in een geheel nieuw plaats in de hiërarchie, Dit is mogelijk.
  • Inhoud van een site A exporteren en importeren van geselecteerde bits in site A.
  • Inhoud opnieuw koppelen (betekenis deal met alle hyperlinks).

WSS, doc-libs & lijsten, Berekende kolommen waarbij [Me]

Iemand op de Internets vroeg over het maken van een berekende kolom op een lijst die een waarde opgemaakt als zou tonen"[Gebruiker] – [Status] – [Locatie]" zoals in "Paul Galvin – Drinken [gratis] Bier – Het strand".

Paul zou gaan en bijwerken zijn vermelding in de lijst en de berekende kolom zou bijwerken. De [Gebruiker] standaard moet het de gebruiker de lijst invoeren/bijwerken.

Een berekende kolom kan niet worden gebruikt "vluchtige" functies zoals [Me] of [Vandaag]. Ik heb het in een testomgeving met deze stappen opgelost:

  1. Maken van een tekstkolom met de naam "Huidige gebruiker".
  2. De standaardwaarde instellen [Me]
  3. Maken van een berekende kolom met de naam "Calc Test".
  4. Stel de waarde = [Huidige gebruiker]

Ik ging, een object toegevoegd aan de lijst en het werkte.

Doorgegeven mijn 70-315 examen vandaag!

Ik doorgegeven de "ontwikkeling en implementatie van Web toepassingen met Microsoft Visual C# .NET en Microsoft Visual Studio .NET" examen vandaag in de grote staat van NJ op de eerbiedwaardige kantoren van SolarTech in Hasbrouck Heights.

Ik put dit examen up daar met BizTalk in termen van moeilijkheid. U kan niet uw weg doorheen nep.

Om te studeren, Ik gebruikte het de MCAD/MCSD zelf tempo Training kit boek getiteld: Ontwikkeling van webapplicaties met Microsoft Visual Basic .NET en Visual C# .NET.

Microsoft-richtlijnen voor (Hier) zijn precies juiste IMO. Het boek behandelt alles en als je een beetje of echte wereld ervaring hebt, het moet een rechttoe-rechtaan-examen. Zoniet, Neem de tijd krijg sommige echte wereldervaring of ten minste uit te voeren de labs in het boek. Dat zal u waarschijnlijk geven wat je nodig hebt.

Ik gaan zelfs zo ver dat het boek aanbevelen aan pro's, met name autodidact mensen zoals ik. Het omvat een aantal fundamentele dingen die ik had gewoon nooit een reden om te struikelen op in mijn reizen en ik ben mezelf een beetje schoppen voor nooit de tijd om te leren van hen hebben genomen.

SharePoint Designer, “Gegevens verzamelen van gebruiker” en het gebruik van deze resultaten.

Gebruik het "gegevens verzamelen van een gebruiker" actie om te maken en een taak toewijzen aan een gebruiker die vraagt hen om gegevens. Onder andere, Ik heb het gebruikt om een gebruiker gevraagd te goedkeuren of afwijzen van een verzoek en sommige opmerkingen invoeren.

Deze actie neemt de vorm van:

Verzamelen gegevens Van deze gebruiker (Uitvoer naar Variabele: collect1)

Te klikken op gegevens trekt een reeks van dialoogvensters waarin u opgeven welke gegevens de gebruiker moet opgeven wanneer het voltooien van de taak en deze gebruiker is duidelijk.

Het deel van de uitvoer (Variabele: collect1) Hiermee slaat u de ID van de taak. U dit in uw workflow om uit te pakken van de werkelijke antwoord van de gebruiker via de "Vergelijk een willekeurige gegevensbron gebruiken" voorwaarde.

Die voorwaarde toont als

Als veld is gelijk aan waarde

Klik op veld en vervolgens de f(x) pictogram en het trekt een ander dialoogvenster. Gebruik dit dialoogvenster om veralgemeend EPD twee dingen te vertellen;

1. Wat is de lijst en de kolom waarvan u de waarde wilt vergelijken.

2. Hoe moet de workflow-engine Zoek de specifieke rij in die lijst?

Om dit te doen:

  1. De "Bron wijzigen" dropdown te wijzen op de juiste takenlijst. Merk op dat het dialoogvenster wordt uitgebreid om aan te tonen een "vinden het Item in de lijst" sectie.
  2. In de dropdown veld Lookup Details, Selecteer de naam van het veld waarvan u de waarde wilt (Dit wordt toegewezen aan wat u in het dialoogvenster gegevens verzamelen van boven genoemd).
  3. In het "zoeken het Item in de lijst" sectie, Selecteer "taken:ID" in het veld dropdown.
  4. In het waardeveld, Klik op de f(x). Nog een ander dialoogvenster wordt geopend.
  5. De brongegevens "Workflow wijzigen"
  6. Selecteer de werkstroomvariabele die overeenkomt met de "Output naar variabele" uit de actie gegevens verzamelen.
  7. Klik op OK/OK en je bent klaar.

Het ziet er als volgt voor mij:

afbeelding

Op dit punt, u kunt nu die waarde gebruiken in uw workflow als vereist.

Aanvullende opmerkingen:

Als een korte terzijde, Ik maak altijd een toepasselijke naam werkstroomvariabele van het type "lijstitem-ID" en het gebruik dat in plaats van de auto-generated "collect1".

Deze "Vergelijk elke gegevensbron" dialoogvenster set wordt gebruikt op verschillende plaatsen in de SPD en is de moeite waard mastering.

== einde

Technorati Tags:

Intermitterende IE crasht bij het openen van documenten in een documentbibliotheek WSS/MOSS

Ik heb al geteisterd door dit voor 9 maanden en ik zie dat mensen op de MSDN en Usenet forums het too.l hebben

Soms, bij het openen van een word-document (of andersoortige doc) uit een document bibliotheek zorgt ervoor dat Internet Explorer om gewoon crash en ga weg (alle tabbladen mee te nemen als elke zijn open).

Deze hotfix MS kan oplossen: http://support.microsoft.com/kb/938888

Ook, Er is sommige beschrijving over het probleem hier:

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

De echte XPath stap zal voorwaarts?

Overzicht:

Gemaakt van een aangepaste lijst die worden beheerd met een inhoudstype met enkele tientallen kolommen.

Toegevoegd het aan een pagina en vervolgens via EPD, omgezet in een gegevensweergave.

Probleem:

Mijn Xpath-expressie terugkeerde leeg voor een kolom met de naam 'Huidige positie'. Ik het thusly waarnaar wordt verwezen:

    <tabelrand = "1">
      <XSL:voor elke select = "/ dsQueryResponse/rijen/rij" >
        <tr>
          <TD>
            Huidige Status:
            <XSL:waarde-van-select="@Current_x0020_Status"></XSL:waarde-van>
          </TD>
        </tr>
      </XSL>
    </tabel>

De kolom in de CT heet "Huidige Status". Het verschijnt in de opzoektabel als 'Huidige Status'. Overal waar die je kijkt, u Zie 'Huidige Status'.

Terwijl het dorsen waanzinnig ongeveer, op zoek naar een oplossing, In plaats daarvan bedoelde ik "@Recruiter" en zie! — die eigenlijk geretourneerd terug de huidige status. Ik verwacht dat het weer terug de recruiter toen ik dat deed.

Oplossing:

Ik stak over in de SPD. Ga naar die pagina in SPD en het toont de gegevensweergave. Controleert u de werkelijke gegevens verstrekt aan de weergave en bijbehorende Xpath. Hier, ik ontdekte dat inderdaad, het Xpath wees op "Recruiter". Vreemd genoeg, de "werkelijke" Recruiter veld wees van "Recruiter1".

Neem mee:

SPD biedt gezaghebbende Xpath-expressies voor rijen & kolommen in een gegevensweergave.

Tweede, het toont de werkelijke gegevens. Dus bijvoorbeeld, een kolom van het type toont dit:

<NOBR><span><Een HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID = 17-INCH>Galvin, Paul</A><img grens ="0" hoogte = "1" breedte = "3" src="/_layouts/images/blank.gif"/><een href ='javascript:’ onclick ='IMNImageOnClick();resultaat false;’ klasse = 'ms-imnlink'><img naam ='imnmark’ titel =” grens =’0′ hoogte ='12’ breedte ='12’ src='/_layouts/images/blank.gif’ Alt =' geen aanwezigheidsinformatie’ SIP ='PGalvin@xxx.com’ ID = "imn_77, type = smtp'/></een></span></NOBR>