archivi mensili: Ottobre 2007

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

No zuppa per te! È Cisco i prodotti minestra nazista di NLB?

Oggi, Ho provato ad accedere una raccolta documenti tramite Esplora risorse di windows. Questo lib doc sta vivendo all'interno di un sistema che è costituito carico di due WFE bilanciato da una sorta di soluzione di bilanciamento carico di rete Cisco. (Se/quando i maghi della rete mi dicono che cosa è, Aggiornerò questo post).

Windows explorer non poteva connettersi. Ho fatto qualche ricerca e alla fine, i maghi di rete ha detto che WebDAV è disattivato / non supportato da / sotto la dignità di NLB.

Così, Supponendo che i maghi della rete non sono solo dirmi l'equivalente di procedura guidata di rete di "prendere una lunga passeggiata fuori un breve ponte", È necessario chiedersi — fa bilanciamento carico di rete, dalla natura, disabilitare WebDAV? Perdiamo la nostra interfaccia di Esplora file di windows per SharePoint? È Cisco il Nazi della minestra?

Gestione di muschio / Ambienti WSS — tenere il passo con knowledge base della Microsoft

Microsoft crea giorno articoli della knowledge base in e giornata fuori e alcuni di questi sono dannatamente importante conoscere se si vive nel mondo SharePoint.

Tenere al passo con loro tramite un servizio di fornire la buona gente di www.KBAlertz.com. KBAlertz consente di firmare per il vostro preferita tecnologia MS e mandano che è digerire le versioni di Microsoft KB articoli via email.

Criterio di applicazione Web, Siti di sicurezza e rimozione della protezione — So la vostra configurazione

(AGGIORNATO 11/29 per spiegare come accedere alle impostazioni di criteri di applicazione web tramite l'interfaccia utente)

Ho avuto uno di quelli "perché è MOSS facendo questo a me????" momenti di oggi. Alla fine, è tutta colpa mia.

Abbiamo un progetto MOSS enterprise in corso e noi vogliamo garantire "posto da titolare" siti in modo che nessun utente può accedervi o vederlo. È facile:

  1. Vai al sito.
  2. L'ereditarietà della sicurezza.
  3. Rimuovere ogni utente o gruppo di autorizzazioni del sito.

Quanto sopra dovrebbe lasciare solo l'amministratore della raccolta siti con il permesso di visitare il sito.

Se chiunque altro log in, non più si dovrebbe vedere il sito e dovrebbe essere guarniti di sicurezza da tutti i soliti posti.

Ma … non è stato. Allo stesso tempo, Mi rendo improvvisamente conto che il mio utente Joe"" account utente standard di prova con no priv diverso dal limitato accesso in lettura è un sito di "azioni" scelta ovunque che vada. Doppia controllare una cosa e doppio controllo qualcos'altro. Prendo il telefono per chiamare un collega, ma mettilo giù e controllare qualcos'altro. Vado per una passeggiata e riprovare tutto dappertutto. Ho un collega di chiamare e lasciare un messaggio. E poi, Infine, Trovo che a Blog di Ethan, suo apertura grafico rende abbastanza semplice:

MUSCHIO 2007 ha una nuova funzionalità denominata Web Application politiche. Queste sono le autorizzazioni di protezione che è legato a un'applicazione Web. Queste impostazioni di sicurezza eseguire l'override di qualsiasi impostazione di protezione che si trova nel sito di raccolta siti o (Web) livello per quell'utente.

Una rapida visita al web applicazione Condizioni a spettacoli che "NT Authorityauthenticated users" era stato concesso lettura completa. Li ho rimosso dall'elenco e tutto finalmente iniziato a lavorare come previsto. Credo che sono stati aggiunti in primo luogo da qualcuno con l'impressione errata che che è il metodo migliore per concedere l'accesso in lettura a tutti nell'impresa. Lo fa, ma, per ceppo un preventivo, "Non dire cosa pensi che vuol dire."

Criteri di accesso web applicazione in questo modo:

  1. Vai all'amministrazione centrale
  2. Selezionare l'applicazione gestione
  3. Selezionare "criteri per l'applicazione Web"
  4. Su quello schermo, Assicurati di che scegliere l'applicazione web corretta. Per me, per impostazione predefinita l'applicazione web di amministrazione centrale, che potrebbe non essere quello che volete.

Quando ho avuto questo problema, Ho cercato le frasi seguenti e ottenuto sorprendentemente poco in termini di aiuto diretto su questo tema:

Azioni sito visibile per tutti gli utenti

Azioni del sito visibile a tutti gli utenti

azioni del sito non sono rimossi protezione

garantire un sito MOSS

Introduzione alla protezione di muschio

Technorati Tags:

Semplice e veloce: Utilizzare Query con parole chiave fissa nei risultati della ricerca Core

Rapidi e semplici istruzioni:

Modificare una pagina e aggiungere una web part di ricerca risultati.

Modificare quella parte del web ed espandere "Query con parole chiave fissa".

Aggiungere la parola chiave fixed query (e. g. ContentType:«Fattura formazione" TrainingInvoiceNumber:1111)

Espandere opzioni Query risultati e cambiare "Cross-Web query ID parte" un valore diverso da "utente Query" (e. g. "Query 2").

Note:

Utilizzo risultati principali in questo modo mi ha permesso di creare una pagina che mostra le informazioni da un'altra raccolta siti. Il cliente ha due principali raccolte: Prodotti e servizi.

Contiene la raccolta di siti di prodotto, naturalmente abbastanza, informazioni sul prodotto. Ogni prodotto della raccolta siti aggrega i dati da più origini.

Uno dei dipartimenti, codici e test, è su tale origine. Quando gli utenti accedono prodotto XYZ, si dovrebbe vedere codici e dati di prova direttamente sulla pagina principale di XYZ. Da codici e test è ospitati in un'altra raccolta siti, è un po' imbarazzante. Abbiamo deciso di utilizzare la web part Ricerca risultati, dal momento che la ricerca si estende su raccolte siti. Codici e Testing gestisce i dati di prodotto tramite un elenco personalizzato che è vincolato da un tipo di contenuto specifico. Query con parole chiave AA che utilizza prima il tipo di contenuto e quindi il numero di prodotto di restringere la ricerca a una sola riga nell'elenco personalizzato.

La parola chiave di ricerca qui sopra è l'operatore AND. Restituisce documenti di contenuto digitare "formazione fattura" e dove il numero della fattura è uguale a "1111".

Un bel vantaggio da questo approccio: Siamo in grado di modificare il codice XSL da web part Ricerca risultati e generare qualsiasi formato che vogliamo.

Vedi qui (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) per la discussione di un altro blogger su questo argomento.

</fine>Iscriviti al mio blog.

Mi parli del tuo blog!

Se si mantiene un blog almeno minimamente connesso a SharePoint, per favore fatemelo sapere nei commenti. Mi piacerebbe aggiungere a mio lista Blog.

Se si mantiene un blog che non è connesso a SharePoint, ma mi vuole aggiungere comunque, Fammi sapere. Ti può creare una lista di blog separato.

Si prega di dare:

  • L'URL del blog (ovviamente)
  • Una breve descrizione del tuo blog.

Voglio mantenere il link a "attiva" Blog, che ho più o meno definire come un post a settimana e minimo tre mesi di età. Se non si soddisfano tale requisito"" Aggiungi il tuo nome ai commenti comunque. Ha * mio * lista così posso rompere la mia propria regola se voglio.

Grazie!

Programma di formazione dei dipendenti e il modello di materiali — Bug di decremento nel modello

Il client notato un bug oggi con il modello di cui sopra.

I responsabili di corso creare corsi. Quando si crea un corso, la gestione specifica il numero massimo di posti disponibili.

Il modello fornisce per la registrazione di self-service. Iscrivendosi e un flusso di lavoro associato a decrementa elenco registrazione "posti disponibili" associato a quel corso.

Gli individui possono anche annullare la registrazione da un corso. Il bug si trova qui. L'annullamento della registrazione da un corso non viene incrementato il contatore di posti disponibili. Di conseguenza, posti disponibili non è accurato. Questo problema è aggravato dal fatto che quando decrementa di posti disponibili a zero, è consentita la registrazione non più self-service.

Fortunatamente, Microsoft fornisce il flusso di lavoro per questo processo. Ancora meglio, è un semplice flusso di lavoro creato tramite SharePoint Designer.

Segui questi passaggi ad alto livelli per risolvere il problema:

  1. Fuoco di SDP.
  2. Accesso al sito basata sul modello di formazione.
  3. Accesso "partecipante annullamento della registrazione" flusso di lavoro.
  4. Inserire questi passaggi (Li ho fatti i primi due passaggi):
    1. Calcolare Corsi:Sedili riempiti meno 1 (Uscita a Variabile:Calc)
    2. (poi) Voce di aggiornamento in Corsi

Fare clic su fine e hai finito.

Schermate:


SharePoint Designer:

immagine

Flusso di lavoro finito:

immagine

Calcolare DrillDown:

immagine

Elemento in corsi di aggiornamento:

immagine

Dare buone notizie frequentemente; dare cattive notizie presto

Sono stato un consulente per un sacco di anni e come qualsiasi consulente esperto SA, una buona comunicazione è uno dei pilastri fondamentali per la realizzazione di un progetto. È così evidente, è davvero quasi noioso parlare. Questo non è un post su comunicazione generica. Invece, Sto scrivendo sul lato più oscuro della comunicazione — comunicare cattive notizie.

Va da sé che dà la buona notizia al cliente è fatto tutto il tempo, quanto più possibile. Chi non vuole dare la buona notizia? Chi non piace sentire buone notizie?

Il rovescio, cattive notizie non è divertente a tutti. Ho sempre lottato con questo. Nei giorni precedenti della mia carriera, Vorrei sapere che qualcosa era storto con un progetto e invece di dire al client, Che avrei lavorato più ore per cercare di risolvere il problema. Sarebbe ingiunge a mio team a lavorare di più. È un impulso abbastanza naturale pensare che un super-umano sforzo può salvare il giorno. Alcune volte questo funziona, alcune volte non è così. Anche quando "funziona" spesso è un miscuglio. È la qualità del risultato finale è davvero all'altezza di parti specifiche quando chiave sono stati sviluppati sopra parecchie 60 A 80 ore settimanali?

Qual è il modo migliore per gestire le cattive notizie? La risposta è: Dillo presto. Non aspettare fino ad una settimana prima che si consumerà il budget di progetto. Se sai sei settimane che semplicemente non c'è abbastanza tempo per consegnare alcuni bit di funzionalità promesso, dire al client lì e subito. Il client può ottenere sconvolto (probabilmente sarà), potrebbe esserci incriminazioni e accuse e ferire i sentimenti. Ma, Quando emozioni rinfrescarsi, C'è ancora sei settimane sinistra sul progetto. Sei settimane è un buon pezzo di tempo. C'è tempo per adattare i piani di, Modifica orari, ottenere la palla su estensioni di bilancio (Buona Fortuna!) e in generale venire alle prese con i "fatti sul terreno" e di elaborare un nuovo piano che ancora si traduce in un progetto di successo.

Fattispecie: Sto lavorando su un progetto caratterizzato da:

  • T&Bilancio E con una ridotta "da non superare" importo in dollari.
  • Un "migliori sforzi saranno" promessa di consegnare X, Y e Z di fine del progetto.
  • Mancanza di risorse chiave promesse sul lato client. Queste risorse non sono state ritenute di proposito, né per alcun male"" motivo, ma essi sono stati trattenuti.
  • Una realizzazione albeggiante come progetto superato il punto a metà strada che non stavamo per essere in grado di fornire "Z" (soprattutto perché le risorse promesse non erano effettivamente disponibili).
  • Rapporti di stato normale e "CYA" documentazione che noi sostenuta (il team di consulenza) fino.
  • Strettamente maglia team di implementazione con membri disegnati dall'organizzazione di consulenza (la mia azienda) e il cliente.
  • Team di gestione distante, sia in senso fisico e metaforico. Il team di gestione è stato focalizzato su un altro progetto di grande impresa e a causa di vincoli di spazio, il team di implementazione è stato ricavato in un edificio separato nel campus, giù per una collina e un senso relativamente lontano dalla "civiltà".

Con circa sei settimane a sinistra il budget di progetto, Abbiamo (il team di implementazione) sapeva che eravamo guai. Il contratto ha detto che dovevamo consegnare "Z". Anche se il progetto è ora & materiali e anche se abbiamo solo promesso "migliori sforzi" a consegnare Z e anche però abbiamo avuto grande giustificazione per mancare la consegna … la linea di fondo è che non stava guardando bene — non stavamo andando a consegnare Z a forma di una qualità che farebbe chiunque orgoglioso.

Riconoscendo questo, Siamo andati a gestione e ha detto loro che il budget di progetto sarebbe essere consumato entro una certa data e che eravamo nei guai con Z.

Una mini tempesta scoppiata durante i prossimi giorni.

Giorno 1: Gestione squadra chiama nel suo staff per un incontro speciale (Abbiamo, i consulenti non sono invitati). I contratti sono stampati e distribuiti a tutti e ne consegue una recensione di riga. Gestione mette i membri del personale sulla difensiva. Non credo che la frase "Sindrome di Stoccolma" è * realmente * usato, ma si ottiene l'immagine. Siamo un gruppo affiatato, Dopotutto, e il personale ha lavorato con noi consulenti giorno dentro e fuori da diversi mesi ormai.

Giorno 2: Gestione chiama un'altra riunione del personale. Si sentono un po' meglio. Che vogliono idee e opzioni per lo spostamento in avanti. Capiscono che c'è ancora sei settimane rimanenti nel budget del progetto corrente, che è ancora decente po ' di tempo. Uno degli elementi di azione: pianificare una riunione con la squadra piena attuazione (compresi i consulenti).

Giorno 5: Completo team incontra, incontro costruttivo ensues e un nuovo piano realizzabile messo in atto. Ancora meglio, Noi abbiamo già cominciato a discutere la fase due e il client ci invita a preparare proposte per quella fase immediatamente.

Se noi avessimo aspettato fino a tre settimane è rimasto, o peggio ancora, una o due settimane, sarebbe stato molto diverso. Invece di un incontro costruttivo per ri-allineare il progetto, ci sarebbe stato tirando fuori i rapporti sullo stato, l'analisi del contratto e rivedere vecchie email per giustificare questa o quella decisione. Avremmo "vinto" ma è davvero "vincente" in questo caso?

Così, Se devi dare cattive notizie, dare presto. Brutta notizia data in ritardo non è solo male, è orribile.