Studio di caso MRO del flusso di lavoro utilizzando MOSS, SPD, InfoPath & servizi Web.

Panoramica

Questo articolo descrive un caso di studio che descrive un'effettiva MRO (Manutenzione, Riparazione e operazioni) processo di flusso di lavoro approvazione attuato in MOSS.

Questa non è una discussione tecnica apertamente, ma invece serve per fornire un esempio reale che dimostra come la piattaforma MOSS ha incontrato un reale bisogno.

(Questa voce è croce pubblicato tra http://paulgalvin.spaces.live.com e http://blogs.conchango.com)

Sfondo

Processo MRO del client era stata caratterizzata dal seguente

  • Processo di approvazione manuale.
  • Qualche supporto utilizzando fogli di calcolo di excel.
  • Processo di approvazione irregolare. Lo stesso processo di approvazione di acquisto MRO varierebbe giorno per giorno, persona di persona.
  • Sacco di carta e firme scritte a mano — richieste fino a richieste di acquisto 3 firme scritte prima dell'approvazione finale.

Obiettivi di questo progetto incluso:

  • Automatizzare completamente il processo di.
  • Applicare standard di impresa per l'approvazione.
  • Vista consolidata di MRO acquisto ai vari responsabili di fornire.
  • Audit trail dettagliato.

Come effetto collaterale della soluzione, firme scritte non erano più richiesti.

Processo di approvazione

Il processo di approvazione è costituito da quattro "nuotata corsie": Ordinante, Gestore diretto, Manager funzionali e Direttore Divisione.

Ordinante:

Vede la necessità per l'acquisto e avvia il processo di. Si noti che il mittente può o non può entrare in realtà la richiesta di acquisto, ma al contrario indirizzare un altro membro del personale di farlo. Alcune volte, il mittente non ha le competenze tecniche di compilare la richiesta di PO. Per esempio, un utente potrebbe voler requisire un nuovo computer portatile, ma non conosce il migliore fornitore, Standard IT, ecc. In questo caso, le opere del creatore con esso ed è effettivamente compila la richiesta.

Gestore diretto:

Questo è il gestore diretto del creatore della (che può essere diverso dalla persona che effettivamente stipulato la requisizione PO MOSS). I responsabili diretti devono approvare la richiesta di PO prima che il sistema cerca l'approvazione più ulteriormente giù la linea.

Manager funzionali:

Il manager funzionale è l'individuo responsabile di assicurare che la proposta di acquisto è conforme alle norme di impresa nell'ambito di una determinata funzione azienda. Per esempio, IT acquisti sono approvati da un responsabile funzionale IT.

Direttore Divisione:

Manager Divisione approva le richieste di acquisto rigorosamente con l'importo in dollari. Manager divisione approvare le richieste di acquisto superiori a un importo in dollari configurabile.

La soluzione

Abbiamo utilizzato i seguenti strumenti e componenti per implementare la soluzione:

MUSCHIO: Funge da piattaforma off che tutto il resto "si blocca". MOSS fornisce servizi di substrato roccioso per la sicurezza, dati master, audit trail e altre caratteristiche.

Servizi di moduli di InfoPath: Un componente MOSS, Ciò consente agli utenti di compilare le richieste di acquisto tramite un browser web.

SharePoint Designer (SPD): Abbiamo usato SPD per implementare il processo di workflow automatizzato.

Servizio Web: Un servizio web c# migliora l'esperienza utente abilitando CSS elenchi di selezioni nel modulo di InfoPath e fornisce prestazioni migliori rispetto al filtro dei dati. Vedere qui per un'immersione profonda tecnica su questo argomento e i nostri motivi per usarlo.

Elenchi personalizzati: Profili di utente di muschio forniti responsabile diretto di un determinato utente, ma non ha fornito la maggior parte dei dati che controllava le decisioni del flusso di lavoro (e. g. Se il manager divisionale è necessaria per approvare la richiesta di PO). Abbiamo usato gli elenchi personalizzati nella "banca dati dei" sito per mantenere dati quali "Divisional Manager approvazione importo in dollari", "Funzionale Area Manager" e così via. Elenchi molto ben integrato con InfoPath e forniscono anche creare/aggiornamento/eliminazione (CRUD) funzionalità di controllo e di protezione, fuori dalla scatola.

Caso d'uso

Questo caso uso illustra come la soluzione adatta insieme:

  1. Paul vuole un nuovo computer portatile. Egli descrive i suoi bisogni di Vivek, una persona IT familiarità con gli standard aziendali portatile, fornitori preferiti, ecc.
  2. Vivek registri in MOSS, accede il modulo di richiesta di PO ed entra la richiesta a nome di Paul. Il modulo richiede Vivek per una categoria di acquisto che utilizza i servizi web per compilare un elenco a discesa di fornitori di società-approvato. Vivek specifica anche l'area funzionale azienda di questo acquisto (e. g. "ESSO" o "Finance").
  3. SPD basata del flusso di lavoro inizia, determina la gestione diretta di Paul e indirizza la richiesta al suo manager, Stacy.
  4. Stacy approva la richiesta di acquisto.
  5. Flusso di lavoro SPD esamina la richiesta e determina che è un acquisto IT. Indirizza il flusso di lavoro per l'IT manager funzionali, Wonson.
  6. Wonson approva la richiesta.
  7. SPD workflow nuovamente esamina la richiesta e determina che l'importo dell'acquisto supera un importo in dollari o massima e si indirizza al responsabile della divisione approvazione.
  8. Il manager della divisione approva la richiesta di acquisto.

Note

  • Dimostra il caso di usare un "ambiente pulito" eseguire senza rifiuti o salti.
  • Ogni revisore ha la possibilità di approvare o rifiutare la richiesta, nonché a fornire commenti scritti. Questi vengono registrati nell'audit trail.
  • Se un manager responsabile respinge la richiesta di acquisto in qualsiasi punto, la richiesta di PO è "morta" e il processo deve essere avviato dall'inizio.
  • Flusso di lavoro notifica al mittente ad ogni passo del processo di.
  • Nessuna scritte firme — il cliente determinato (Dopo alcune raccomandazioni forti) che l'audit trail come previsto attraverso la storia del flusso di lavoro, servite la loro necessità di revisione.
  • Sforzo — Ci sono voluti uomo circa tre settimane per implementare questa soluzione.

Conclusione

Questa soluzione si avvale di MOSS come sviluppo e piattaforma runtime. Il client è stato in grado di sfruttare funzionalità di MOSS base per automatizzare un processo aziendale ordinaria che ha colpito quasi ogni dipendente della società. Con l'eccezione di un semplice servizio web (che a sua volta sfrutta MOSS), quasi nessun effettivo "programmazione" è stato richiesto.

La soluzione serve anche come una vetrina"" per il cliente, dimostrando come le diverse caratteristiche di muschio possa essere combinato per creare un'applicazione aziendale completamente descritto e generare nuove opportunità di consulenza in futuro.

Glossario

MRO: Manutenzione, riparazione e operazioni. Questi acquisti in genere comprendono elementi quali blocchetti per appunti, sedie, Personal computer, stampanti, telefoni cellulari e simili.

Esame 70-542: Studiare le raccomandazioni (Microsoft Office SharePoint Server 2007 – Sviluppo di applicazioni)

AGGIORNAMENTO: Nei commenti, qualcuno ha postato questo link: http://www.midnightmonkey.co.uk/blog/blogging/?page_id=5. Sembra troppo buona per me.

Superato l'esame tecnico di MOSS oggi, intitolato "Microsoft Office SharePoint Server 2007 – Sviluppo di applicazioni". Ho trovato l'esame per essere piuttosto rigorosi e che esso ha trovato abbastanza bene con Microsoft Guida di preparazione.

Ho lavorato con muschio su una base quotidiana e niente batte reale esperienza hands-on per tutti questi esami.

Che ha detto, Ho preso nota di ciò che stavo studiando come ho studiato. Io credo che tutte queste risorse sono utili, soprattutto come un mezzo per rafforzare questo hands-on esperienza.

Oggetto Link
Excel Services http://msdn2.microsoft.com/en-us/library/ms519581.aspx
Ricerca Nessuna raccomandazione speciale. Avevo preso una classe su ricerca all'inizio di questo anno e l'esperienza del mondo reale mi portò. Lavorare con il centro di ricerca"" componente di muschio.
BDC http://msdn2.microsoft.com/en-us/library/ms563661.aspx
Pubblico http://msdn2.microsoft.com/en-us/library/ms496822.aspx
Profili 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 Lavoro hands-on con KPI in MOSS.
Flusso di lavoro http://msdn2.microsoft.com/en-us/library/aa830816.aspx
Info mgmt http://msdn2.microsoft.com/en-us/library/bb397403.aspx
Variazioni http://aspnetcoe.wordpress.com/2007/02/09/customize-variation-root-landing-logic/
Record mgmt http://blogs.msdn.com/recman/archive/2006/06/16/633393.aspx
InfoPath http://msdn.microsoft.com/msdnmag/issues/06/08/infopath2007/default.aspx

Molti di quei link ha condotto ad ulteriori collegamenti e ho la tendenza a seguirli fino a 3 livelli di profondità.

Non direi che tutto quello che letto direttamente applicate all'esame, ma non mi pento di leggere qualsiasi di esso e anche se alcuni bit non erano direttamente pertinenti. È tutta roba buona per sapere e mi consiglia vivamente il materiale per tutti gli aspiranti sviluppatori MOSS ben arrotondati.

Risultati di ricerca MOSS e WSS (e DataView): visualizzare i dati XML raw

Questo può essere evidente a molti, ma mentre studiando per il mio esame di programmazione MOSS, Imparato che è abbastanza facile da ottenere l'effettivo XML da una query di ricerca attraverso l'interfaccia utente.

Un metodo veloce è come segue:

  • Accesso ricerca avanzata.
  • Eseguire una ricerca che restituisce alcuni dati.
  • Modificare la pagina (tramite le impostazioni del sito).
  • Modificare il XSL al seguente:

<?XML Versione="1.0" codifica="UTF-8"?>
<
xsl:StyleSheet Versione="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<
xsl:uscita Metodo.="XML" Versione="1.0" codifica="UTF-8" trattino=""/>
<
xsl:modello match="/">
<
pre>
<
xsl:copia-di selezionare="*"/>
</
pre>
</
xsl:modello>
</
xsl:StyleSheet>

  • Hit applicare.
  • Visualizza sorgente nel browser.

Si noti che il <pre> Tag non fa molto tranne servire come indicatore conveniente quando si visualizzano i risultati.

Questo trucco può essere molto utile quando si lavora con proprietà gestite e personalizzazione della ricerca. Fornirà un elenco definitivo di XML disponibili per poter utilizzare nel vostro xslt che sarebbe stato molto utile l'ultimo 25 volte ho creato alcuni risultati di ricerca personalizzati.

Questo dovrebbe funzionare per DataView pure, però non ho testato che fuori ancora.

Nessun CQWP per WSS? Prova questo…

Vedo che Eric Kraus è stato affrontato con un requisito normalmente soddisfatta con una web part query contenuto. Il problema? Egli era in un ambiente WSS puro senza accesso alla CQWP. Piuttosto che avvolgersi in posizione fetale (uno stimolo che devo lottare ogni giorno, sembra), Egli si avvicinò con soluzione che almeno offre negozi WSS una possibilità di combattere per avere successo. È descritto qui.

Vista brillante e dettagliata di content management API

Stefan Goßner ha messo insieme una serie incredibile di 4 parti sul contenuto di SharePoint e l'API della distribuzione qui. Offre un'ottima panoramica e molto buoni esempi in codice (C#).

Prima ho preso questo link dal blog di joris poelmans presso http://jopx.blogspot.com/.

Anche se sei come me, in quanto non hanno avuto a che fare molto lavoro hands-on per la gestione dei contenuti, Questo vale bene 20 minuti del vostro tempo per leggere.

Utilizzando l'API, si può:

  • Esportare e importare contenuto molto facilmente.
  • Contenuto ri-padre. Se si desidera esportare alcuni contenuti da un sito "A" e inviarlo al sito "B" ma in un modo totalmente nuovo posto nella gerarchia, Questo è possibile.
  • Esportare contenuti da un sito A e importare bit selezionato nel sito A.
  • Re-link contenuto (significato di trattare con tutti i collegamenti ipertestuali).

WSS, libs doc & liste, Colonne calcolate che coinvolge [Me]

Qualcuno su Internets stava chiedendo su come creare una colonna calcolata in una lista che mostra un valore formattato come"[Utente] – [Status] – [Posizione]" come in "Paul Galvin – Bere [gratis] Birra – La spiaggia".

Paul sarebbe andare e aggiornare la sua voce nell'elenco e la colonna calcolata sarebbe aggiornare in modo appropriato. Il [Utente] dovrebbe predefinito per l'utente inserimento/aggiornamento dell'elenco.

Una colonna calcolata non può utilizzare "volatile" funzioni come [Me] o [Oggi]. Ho risolto in un ambiente di test con la procedura:

  1. Creare una colonna di testo denominata "Utente corrente".
  2. Impostare il valore predefinito [Me]
  3. Creare una colonna calcolata, chiamata "Test di Calc".
  4. Impostare il relativo valore = [Utente corrente]

Sono andato, aggiunto un elemento all'elenco e ha funzionato.

Passato il mio 70-315 esame di oggi!

Passato il "sviluppando e implementando Web applicazioni con Microsoft Visual c# .NET e Microsoft Visual Studio .NET" esame oggi in grande stato di NJ, presso gli uffici venerabili SolarTech a Hasbrouck Heights.

Ho messo questo esame lassù con BizTalk in termini di difficoltà. Si puo ' fingere il vostro senso attraverso di essa.

Lo studio, Ho usato il libro MCAD/MCSD Self Paced Training kit intitolato Lo sviluppo di applicazioni Web con Microsoft Visual Basic .NET e Visual c# .NET.

Linee guida Microsoft (qui) sono esattamente corretto IMO. Il libro affronta tutto e se avete un briciolo o esperienza del mondo reale, dovrebbe essere un esame semplice. Se non, prendere la volta qualche esperienza del mondo reale o almeno eseguire i laboratori nel libro. Che probabilmente ti darà quello che ti serve.

Persino arriverei consiglia il libro di Pro, la gente soprattutto autodidatta come me. Esso copre alcune cose di base che ho mai avuto un motivo di imbattervi nei miei viaggi e sto maledicendo un po ' per non aver preso il tempo per imparare a giocare.

SharePoint Designer, “Raccogliere dati da utente” e l'utilizzo di tali risultati.

Utilizzare la "raccolta di dati da utente" azione per creare e assegnare un'attività a un utente che chiede di dati. Tra le altre cose, Io l'ho usato per richiedere un utente di approvare o rifiutare una richiesta e inserire alcuni commenti.

Questa azione assume la forma di:

Raccogliere dati Da Questo utente (Uscita a Variabile: collect1)

Facendo clic su dati tira su una serie di finestre di dialogo in cui è possibile specificare quali dati l'utente deve fornire quando completamento dell'attività e Questo utente è ovvio.

La parte di output (Variabile: collect1) Salva l'ID dell'attività. Si utilizza questo nel vostro flusso di lavoro per estrarre la risposta dell'utente effettivo tramite "confrontare qualsiasi origine dati" condizione.

Tale condizione viene illustrato come

Se Campo è uguale a valore

Fare clic su Campo e poi la f(x) icona e si tira su un'altra finestra di dialogo. Utilizzare questa finestra di dialogo generalizzata per SPD due le cose;

1. Che cosa è la lista e la colonna cui valore che si desidera confrontare.

2. Come il motore di workflow deve individuare la riga specifica in tale elenco?

Per fare questo:

  1. Cambiare la sorgente"" l'elenco a discesa scegliere la lista di attività corretto. Si noti che nella finestra di dialogo si espande per mostrare una "trovare la voce di elenco" sezione.
  2. Nell'elenco a discesa del campo di ricerca particolari, Selezionare il nome del campo cui valore desiderato (questo mappe a ciò che è chiamato nella finestra di dialogo raccolta di dati dall'alto).
  3. A "trovare la voce di elenco" sezione, selezionare "attività:ID" nell'elenco a discesa del campo..
  4. Nel campo valore, fare clic sul f(x). Verrà visualizzata un'altra finestra di dialogo.
  5. Modificare l'origine dati di flusso di lavoro""
  6. Selezionare la variabile del flusso di lavoro che corrisponde alla "uscita alla variabile" dall'azione di raccolta di dati.
  7. Fare clic su OK/OK e hai finito.

Sembra che questo per me:

immagine

A questo punto, ora è possibile utilizzare tale valore nel vostro flusso di lavoro come richiesto.

Note aggiuntive:

Come un breve inciso, Sempre creare una variabile di nome appropriato flusso di lavoro di tipo "List Item ID" e l'uso che invece l'auto-generato "collect1".

Questo "confrontare qualsiasi origine dati" finestra di dialogo set è utilizzato in diversi luoghi diversi in SPD e vale la pena di mastering.

= = fine

Technorati Tags:

Intermittente IE si blocca quando l'accesso ai documenti in una raccolta documenti WSS/MOSS

Io sono stato tormentato da questo per 9 mesi e vedo che la gente sul forum MSDN e Usenet si hanno too.l

A volte, Quando si accede a un documento di word (o altri tipi di doc) da un documento libreria provoca Internet Explorer semplicemente in crash e andare via (prendendo tutte le schede con esso se apre qualsiasi sono).

Questo hotfix MS può risolverlo: http://support.microsoft.com/kb/938888

Anche, c'è qualche descrizione del problema qui:

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

Il vero XPath passo avanti?

Panoramica:

Creato un elenco personalizzato che gestisce un tipo di contenuto con qualche dozzina di colonne.

Ha aggiunto a una pagina e poi via SPD, convertita in una visualizzazione dati.

Problema:

La mia espressione Xpath stava tornando in bianco per una colonna denominata "Posizione corrente". Ho fatto riferimento questa convenzione:

    <tavolo border = "1">
      <xsl:per ogni select = "/ dsQueryResponse/riga/righe" >
        <TR>
          <TD>
            Stato attuale:
            <xsl:valore di select="@Current_x0020_Status"></xsl:valore di>
          </TD>
        </TR>
      </xsl>
    </tabella>

La colonna nel CT è denominata "Stato attuale". Si presenta in lookup come "Stato attuale". Ovunque si guardi, Vedi "Stato attuale".

Mentre thrashing follemente circa, alla ricerca di una soluzione, Mi riferivo invece a "@Recruiter" ed ecco! — che effettivamente restituito indietro lo stato corrente. Mi aspettavo di tornare indietro il reclutatore, quando l'ho fatto.

Soluzione:

Mi infilò in SPD. Vai a quella pagina in SPD e Mostra la visualizzazione di dati. È possibile controllare l'effettiva dati forniti alla vista e associati Xpath. Qui ho scoperto che in effetti, Xpath è additato da "Reclutatore". Abbastanza stranamente, il "reale" Campo reclutatore puntato da "Recruiter1".

Porta via:

SPD fornisce autorevoli espressioni Xpath per righe & colonne in una visualizzazione dati.

Secondo, Mostra i dati effettivi. Così per esempio, una colonna di tipo dimostra questo:

<nobr><arco><Un HREF="/sites/Corporate/HumanResources/TalentAcquisition/_layouts/userdisp.aspx?ID = 17 ">Giannini, Paul</A><img border ="0" altezza = "1" larghezza = "3" src="/_layouts/images/blank.gif"/><href ='javascript:’ OnClick ='IMNImageOnClick();restituire false;’ classe = 'ms-imnlink'><IMG nome ='imnmark’ titolo =” confine =’0′ altezza = 12’ larghezza = 12’ src='/_layouts/images/blank.gif’ Alt =' nessuna informazione di presenza’ SIP ='PGalvin@xxx.com’ ID ='imn_77, tipo = smtp'/></un></arco></nobr>