Azioni del flusso di lavoro personalizzato SPD — miglioramenti di manipolazione stringa

Circa una settimana fa, Ho iniziato un progetto codeplex che fornisce un metodo semplice e ragionevolmente generico per l'aggiunta di funzioni di azione personalizzata per flusso di lavoro SharePoit Designer. È descritto qui: http://www.codeplex.com/spdwfextensions. Di là semplicemente fornendo un quadro, Essa mira inoltre a fornire una serie di funzioni utili che renderanno più utile/flessibile/potente SPD.

Qui ci sono le attuali caratteristiche previste per la versione 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Se qualcuno ha interesse a questo progetto, si prega di lasciare un commento o start/aggiungere a una discussione qui: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Ecco il set corrente di funzioni che sono state codificate (anche se non completamente testato come di 11/08/07):

Funzione Descrizione (Se non lo stesso come.Funzione netto)
Num-entries() Restituisce il numero "voci" in una stringa secondo un delimitatore specificato.

Per esempio: Num-voci in una stringa "un,b,c" con delimitatore"," = 3.

Voce() Restituisce il token n-esimo di una stringa secondo un delimitatore specificato.
Lunghezza String. length
Sostituire() Replace()
Contiene() Contains()
Restituisce la parola "true" o la parola "false".
Sottostringa(Start) Substring(Start)
Sottostringa(Start,fine) Substring(Start,fine)
ToUpper() ToUpper()
ToLower() ToLower()
StartsWith() String. StartsWith()
Restituisce la parola "true" o la parola "false".
EndsWith() String. EndsWith()
Restituisce la parola "true" o la parola "false".

Rapido & facile url Encoding utilità desktop

Ho dover url-codificare alcune stringhe di questa settimana e schiaffeggiato insieme a una piccola utility che ho pensato io metterei SkyDrive per la comunità.

Ottenere il binario qui: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Ottenere la soluzione di visual studio: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Ecco una schermata:

immagine

Facile e veloce: Incorporare un collegamento ipertestuale nel web part visualizzazione dati XSLT

AGGIORNAMENTO (01/17/08): Questo blog parla di collegamento ipertestuale più bontà XSL: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Panoramica e obiettivo: Avevo creato un semplice grafico a barre per servire come componente in un dashboard. I'll salvare i dettagli sulla costruzione di grafici per un altro post, ma non ha inventato quella tecnica (né il punto interrogativo, per quanto riguarda). Si è scoperto che c'era un bug nel grafico, e mentre io fisso che, Ho colto l'occasione per convertire alcune etichette in collegamenti ipertestuali che puntava alla lista sottostante dietro il grafico. Per esempio, C'è un'etichetta con valore "Hold". Ho voluto girare l'etichetta in un collegamento ipertestuale in modo che l'utente potrebbe fare clic su di esso e drill-down per le specifiche voci nell'elenco cui valore dello stato è "Hold".

Passi:

  1. Visual studio uso per SharePoint supporto intellisense.
  2. Copia XSLT di DVWP in visual studio (creare un progetto vuoto, aggiungere al progetto un file XSL).
  3. Copiare il link che si desidera utilizzare negli Appunti.
  4. Incollarlo nella giusta posizione in XSL.
  5. Convertire separatori argomento URL sulla stringa di query da"&" a"&"
  6. Codifica URL singoli argomenti.
  7. Avvolgere quel dentro un <href…> </un>

Esempio:

Ho un URL:

http://[server]/[sito]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold

Convertirlo in:

     <un href="Lists/Open Positions/AllItems.aspx?Vista = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1 7% d&amp;FilterField1 = Recruiter&amp;FilterValue1 = Hold"> Tenere premuto: </un>

Io ho trasformato manualmente il primo argomento da:

{84EEA2F5-121B-40B7-946F-0FA704A1DAA1}

A:

%7b84EEA2F5-121B-40B7-946F-0FA704A1DAA1 7% d

(In questo, le trasformazioni di parentesi graffa aperta a 7b % e la chiusura graffa aperta si trasforma al 7% d)

Gli argomenti di secondo e terzi’ parametri ("FilterField1 =Reclutatore" e "FilterValue1 =Tenere premuto" rispettivamente) non è necessario essere codificata in url perché non contengono caratteri non sicuri.

Note:

Questa tecnica in generale dovrebbe lavorare ovunque che si desidera incorporare un collegamento ipertestuale in XSLT dove il collegamento ipertestuale include i parametri sull'URL quali:

http://[server]/[sito]/Lists/Open Positions/AllItems.aspx?Vista ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Recruiter&FilterValue1 = Hold

Ho ottenuto l'URL stesso accedendo all'elenco personalizzato e filtro manualmente su nella colonna Stato (classificati come "Recruiter" di sopra).

Semplice e veloce: Abilitare il flusso di lavoro SharePoint Designer aggiornare un modulo di InfoPath

Scenario: Ho un modulo di InfoPath che front-end un processo del flusso di lavoro implementato tramite SharePoint Designer. A un certo punto, un manager deve approvare il modulo. Da allora non posso contare su storia del flusso di lavoro per soddisfare la mia revisione requisiti, Decido di memorizzare il mio messaggio di controllo direttamente sul modulo stesso.

Panoramica:

Progettare il modulo e pubblicarlo come un tipo di contenuto e il modulo stesso in una raccolta documenti. Marco desiderato campi modulo come essendo aggiornabile da MOSS. La forma è legata al tipo di contenuto e il tipo di contenuto è "collegato" in una libreria di forme (o molti, Se vuoi). Scrivere un flusso di lavoro che aggiorna il campo.

Passaggi specifici:

  1. Creare una raccolta documenti. Questo terrà il vostro modello di InfoPath.
  2. Creare una libreria di moduli.
  3. Creare il modulo di InfoPath. Includere un campo di testo, "Messaggio di controllo".
  4. Pubblicare il modulo come tipo di contenuto (NON un documento).
  5. Durante la compilazione le finestre di dialogo editrice:
    un) Salvare il file con estensione xsn nella raccolta documenti (passo #1).
    b) Pubblicare il messaggio di Audit"" Campo e segnare vero: "Consenti agli utenti di modificare i dati in questo campo utilizzando una pagina di proprietà o foglio dati".
    c) Creare un nuovo tipo di contenuto e dargli un nome appropriato.
  6. Accedere alla libreria di forme.
    un) Vai alle impostazioni avanzate e attivare la libreria di forme gestire i tipi di contenuto.
    b) Selezionare il tipo di contenuto appena creato (5c di cui sopra). Si saranno raggruppata sotto "Microsoft InfoPath" (o simili).
    c) Rimuovere il valore predefinito "forma" tipo di contenuto dalla libreria.
    doppie) Mark la libreria a "Visualizza come pagina web" affinché il modulo lancerà da SharePoint e non il client workstation di InfoPath.
  7. Tornare alla libreria di forme corretta e fare clic su "nuovo" semplicemente verificare che il modulo è inviato correttamente e recitazione come volete.
  8. Fuoco su SharePoint Designer e spostarsi al sito che ospita la tua libreria di forma (dal passo 2).
  9. Creare un nuovo flusso di lavoro associato alla libreria di forme.
  10. Aggiungere una singola azione "Imposta campo in elemento corrente". Si dovrebbe aspettare SharePoint Designer alla lista sei il campo, "Messaggio di controllo". Assegnare un valore.
  11. Fare clic su fine e tornare alla libreria di forma.
  12. Creare un nuovo modulo e mettere qualche valore di prova nel messaggio Audit"" Campo.
  13. Salvarlo e tornare alla libreria di forma.
  14. Tasto destro del mouse, selezionare "Workflow" e iniziare il vostro flusso di lavoro.
  15. Dovrebbe funzionare quasi immediatamente. Tirare verso l'alto il modulo (dal passo 12) e se tutto è andato per pianificare, "Il messaggio di controllo" è stato assegnato il valore fornito nel passaggio 10.

Note:

Non tutti i controlli possono configurato per questa comunicazione bi-direzionale. Per esempio, non sembra per implementare un flusso di lavoro SPD che modifica i campi di testo avvolti all'interno di sezioni ripetute.

Uno del chiave take-away qui è che abbiamo davvero creato un tipo di contenuto con un modello associato. Questo permette anche di memorizzare più modelli di modulo di InfoPath nella stessa raccolta moduli.

Questo richiede forme server. Certamente non sta a lavorare in un WSS 3.0 ambiente e probabilmente anche richiede un ambiente SharePoint Enterprise.

Il Beagle ha atterrato (Ottobre 2007 problema)

(Questa notizia è in realtà un po ' vecchia, ma, come proclama il mio motto preferito fire station, "Meglio tardi che mai").

Check it out qui: http://www.sharepointbeagle.com/

Se già non avete, essere sicuri di Registrati.

Naturalmente, Assicuratevi di leggere il mio articolo su un progetto reale SharePoint (compresa la definizione di requisiti, KPI, tipi di contenuto, cruscotti e altro ancora) così come il mio collega articolo sulla web part query contenuto.

C'è anche molta altra roba buona.

Come rimuovere “Mostra tutti i contenuti del sito” link

Mi sono chiesto questa domanda quasi ogni settimana, normalmente nel contesto di una discussione di sicurezza. Un creatore di amministratore/sito è eseguito il provisioning di un sito, sicurezza configurato, organizzato web parti e personalizzato il lancio rapido per fornire quel set di oh-così-perfetto di opzioni per l'utente finale. Ma, fuori dalla scatola, non puoi rimuovere la "Mostra tutti i contenuti del sito" link.

Mark Wagner fornisce la risposta qui (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). La scrittura è formidabile su due livelli. Esso fornisce una risposta alla domanda, "Come faccio a rimuovere la vista tutto il contenuto del sito" link? Poi, esso risponde alla domanda di proseguimento immediata: Come faccio ad attivare facilmente la visualizzazione di tutti i contenuti del sito link su base sito per sito?

Come bonus: Il suo approccio funziona per WSS, non solo MOSS.

</fine>

Iscriviti al mio blog!

Mio molto proprio progetto CodePlex: Estensioni del flusso di lavoro per SharePoint Designer

AGGIORNAMENTO: Vedi qui (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) per le ultime su questo progetto.

Ho creato un progetto oggi a casa l'interfaccia generica SPD di codice che ho bloggato su CodePlex qui (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

Date un'occhiata a qui (http://www.codeplex.com/spdwfextensions) per vedere il progetto CodePlex e calci le gomme.

Se siete interessati a lavorare su questo con me, fuoco spento un email a mailto:galvin.paul@gmail.com

SharePoint Designer — Attività personalizzata per eseguire funzioni definite dall'utente c#

AGGIORNAMENTO: Questo è stato rilasciato in CodePlex qui: http://www.codeplex.com/spdwfextensions

AGGIORNAMENTO: Si veda qui per le ultime note di rilascio: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

AGGIORNAMENTO: Vedi qui i miei pensieri sulla commercializzazione di questo progetto: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Questo progetto prevede un'attività personalizzata in SharePoint Designer. Utilizzare questa attività personalizzata per richiamare (spedizione) qualsiasi funzione in c# che è incorporato nell'assembly collegati.

Come di fine ottobre, 2007, Questo è solo una versione iniziale del progetto. Ho in programma di espandere il nodo con un numero di funzioni aggiuntive, compresa la sottostringa, indice, sostituire, richiamo di servizi web e tutto ciò che sembra utile o interessante. Ho anche intenzione di questo post di codeplex, una volta che ho il mio agire insieme su questo fronte. Anche questo potrà essere distribuito come una soluzione ad un certo punto.

Se avete dei commenti da fare, domande o suggerimenti, si prega di lasciare commenti o scrivermi.

Dichiarazione di non responsabilità:

Io assolutamente non fanno reclamo dell'idoneità di questo per qualsiasi scopo. Utilizzare a proprio rischio.

Procedura di installazione (da seguire per ogni Web front-end della farm):

1. Scaricare il. zip ed estrarre.

2. Installare il file dll nella GAC. Apro di solito c:\windowsassembly usando il windows explorer e copia esso ci.

3. Modificare il file Web. config per aggiungere l'assembly ai controlli di sicurezza:

<System.Workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

<authorizedType Assembly = "SpdGenericInterface, Version = 1.0.0.0, Cultura = neutral, PublicKeyToken = abe076fd8125f3c4" Namespace = "Nivlag" TypeName = "*" Autorizzato = "True" />

4. Copia "SpdGenericInterface.actions" a c:\Programma FilesCommon FilesMicrosoft Sharedweb server extensions12TEMPLATE1033Workflow

Si noti che la posizione di cui sopra è specifica per installazioni di lingua inglese.

5. Chiudere SharePoint Designer (Se è già aperto).

6. iisreset

7. Aprire SPD e creare un nuovo flusso di lavoro.

Se tutto va bene, si dovrebbe essere ricompensati con una nuova categoria di azione:

immagine

Note:

Vedere qui (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) per una panoramica terrificante del processo per la creazione di, installazione e configurazione di una soluzione come questa.

Il. zip è stato progettato per estrarre direttamente a voi c:\ in auto. Se si esegue questa operazione, è possibile aprire il progetto e tutti i percorsi sarà coerenti.

Per utilizzare questo in visual studio, probabilmente è necessario installare "Estensioni per Windows WF".

Il caricamento iniziale contiene solo una "funzione dispatcher", "ToLower()". Per aggiungere ulteriori funzionalità, aggiungere al metodo Execute come illustrato:

 protetti eseguire l'override ActivityExecutionStatus
          Eseguire(ActivityExecutionContext classe executionContext)
        {

            stringa functionToDispatch;
            functionToDispatch = Questo.DispatchFunction.ToLower();

            interruttore (functionToDispatch)
            {
                caso "tolower()":
                    {
                        Questo.OutResult1 = Questo.InParam1.ToLower();
                        pausa;
                    }

                impostazione predefinita:
                    {
                        Questo.OutResult1 = "Funzione sconosciuta: [" + Questo.DispatchFunction + "].";
                        pausa;
                    }
            }

            ritorno ActivityExecutionStatus.Chiuso;
        } // ActivityExecutionStatus

    }

Poi, ri-costruire il progetto e copiare l'assembly nella global assembly cache. Mi aspettavo che un iisreset sarebbe necessario.

Azione personalizzata SPD Workflow – ottenere il <WorkflowInfo> diritto di tag per evitare la frustrazione

Parte del processo per la creazione di un'azione personalizzata per SharePoint Designer comporta creare un .actions"" file.

Ho trovato e provato ad utilizzare un modello di esempio che inizia come:

<?XML Versione="1.0" codifica="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.Microsoft.com/SharePoint/">
<
Azioni Sequenziale="poi" Parallelo="e">

Tuttavia, tale attributo xmlns previene il mio ambiente di lavoro. Le mie azioni non vengono visualizzati in SPD.

La soluzione è quella striscia fuori l'attributo xmlns, fare un iisreset e Chiudi/re-open SPD.

Semplice e veloce: Configurare il muschio per cercare una raccolta di documenti specifici

Vedere aggiornamento (IO) qui di seguito (11/24/07) su Come configurare Microsoft Office SharePoint Server 2007 Indice e cartelle di rete di ricerca per indicizzazione per la ricerca

Obiettivo: Io voglio eseguire una ricerca ristretta a una raccolta di documenti specifici. In questo caso, la libreria del documento contiene documenti di formazione.

Passi:

1. Registrare l'URL della raccolta documenti.

2. Creare un ambito di:

Vai all'amministrazione centrale.

Accesso al provider di servizi condivisi.

Vai a "Impostazioni di ricerca".

Scorrere fino alla sezione di ambito e selezionare "Visualizza ambiti".

Creare un nuovo ambito. Dargli un nome e una descrizione utile.

3. Definire regole di ambito ricerca per indicizzazione:

Aggiungere una regola che definisce la raccolta di documenti per questo ambito.

Selezionare "indirizzo web" per "Tipo di regola di ambito".

Immettere il nome della cartella (vedere #1 di sopra).

Accettare il valore predefinito di "Inclusione".

Attesa per l'ambito per aggiornare (o avviarlo manualmente).

4. L'ambito di una raccolta siti di attivare.

Vai alla raccolta di siti dove si desidera utilizzare questo ambito.

Aggiungi il tuo nuovo ambito al gruppo di visualizzazione appropriato o gruppi.

5. Ricerca!

A questo punto, Hai finito. Supponendo che la portata è definita correttamente, sarà disponibile in ambiti drop downs per ricerche semplici e avanzate, e quando si cerca di utilizzare quell'ambito, appena otterrete risultati che previsti.

Note:

Ho scritto questo post perché le mie ricerche per installazione semplice ambito alzato a secco usando frasi come:

  • configurare gli ambiti in MOSS
  • configurare search scope moss
  • ambiti in sharepoint 2007
  • ambiti in sharepoint
  • Cerca un muschio di libreria del documento
  • moss primer ambiti

È possibile creare un ambito di ricerca in una cartella, non solo la biblioteca di intero documento.

Un ambito può essere condiviso tra più insiemi di sito (da qui, un "servizio condiviso").

È possibile creare l'ambito a livello della raccolta siti. Tuttavia, Preferisco andare a central admin perché posso iniziare la ricerca per indicizzazione da lì. Non è possibile avviare la ricerca per indicizzazione dalla raccolta siti.

AGGIORNAMENTO (IO) come di 11/24/07:

Kai Shang mettere insieme che un grande post dal titolo Come configurare Microsoft Office SharePoint Server 2007 Indice e cartelle di rete di ricerca per indicizzazione per la ricerca @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry