Månadsarkiv: Oktober 2007

SharePoint Designer — Anpassad verksamhet att köra användardefinierade C# funktioner

UPPDATERING: Detta har släppts till CodePlex här: http://www.codeplex.com/spdwfextensions

UPPDATERING: Se här för senaste release notes: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

UPPDATERING: Se här för mina tankar om kommersialisera detta projekt: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Detta projekt innehåller en anpassad aktivitet i SharePoint Designer. Använd den här anpassade aktiviteten att åberopa (avsändande) en C#-funktion som du införlivas med den länkade församlingen.

I slutet av oktober, 2007, Detta är bara en första version av projektet. Jag planerar att expandera den med ett antal ytterligare funktioner, inklusive delsträng, index, Ersätt, åberopa webbtjänster och allt som verkar användbart eller intressant. Jag planerar också att posta detta till codeplex när jag har min agera tillsammans på den fronten. Detta kommer också att sättas som en lösning vid något tillfälle.

Om du har några synpunkter, frågor eller förslag, Vänligen lämna dem i kommentarer eller e-posta mig.

Ansvarsfriskrivning:

Jag gör absolut inga anspråk detta lämplighet för något ändamål. Använd på egen risk.

Installationsanvisningar (som skall följas vid varje WFE i gården):

1. Hämta zip och extrahera.

2. Installera .dll i GAC. Jag öppna brukar c:\windowsassembly med hjälp av Utforskaren i windows och kopiera it det.

3. Ändra web.config lägga till församlingen till säkra kontroller:

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

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

4. Kopiera "SpdGenericInterface.actions" c:\Programmet c:ProgramDelade filerMicrosoft Sharedweb server extensions12TEMPLATE1033Workflow

Observera att ovanstående platsen är specifika för engelska installationer.

5. Stäng SharePoint Designer (om det redan är öppen).

6. iisreset

7. Öppna SPD och skapa ett nytt arbetsflöde.

Om allt går bra, Du bör belönas med en ny kategori av åtgärder:

bild

Anteckningar:

Se Här (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) en utmärkt översikt över processen för att skapa, Installera och konfigurera en lösning så här.

ZIP är utformad för att extrahera direkt till dig c:\ enhet. Om du gör detta, Du kan öppna projektet och alla banor kommer att överensstämma.

Använda detta i visual studio, du behöver förmodligen installera "Extensions för Windows WF".

Första uppladdning innehåller bara en "dispatcher funktion", "ToLower()". Att lägga till mer funktionalitet, lägga till det till metoden Execute som:

 skyddade åsidosätta ActivityExecutionStatus
          Köra(ActivityExecutionContext executionContext)
        {

            sträng functionToDispatch;
            functionToDispatch = Detta.DispatchFunction.ToLower();

            Växla (functionToDispatch)
            {
                fallet "tolower()":
                    {
                        Detta.OutResult1 = Detta.InParam1.ToLower();
                        paus;
                    }

                standard:
                    {
                        Detta.OutResult1 = "Okänd funktion: [" + Detta.DispatchFunction + "].";
                        paus;
                    }
            }

            återvändande ActivityExecutionStatus.Stängt;
        } // ActivityExecutionStatus

    }

Sedan, bygga om projektet och kopiera församlingen till GAC. Jag förväntar mig en iisreset skulle krävas.

Anpassade SPD arbetsflödesåtgärd – få den <WorkflowInfo> Etikett rätt att undvika frustration

Del av processen för att skapa en anpassad åtgärd för SharePoint Designer innebär skapar en "actions" filen.

Jag har hittats och försökte använda prov mallar som börjar:

<?XML version="1.0" kodning="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.microsoft.com/SharePoint/">
<
Åtgärder Sekventiell="sedan" Parallell="och">

Men, attributet xmlns hindrar min omgivning från att arbeta. Mina handlingar dyker inte upp i SPD.

Lösningen är att ta bort attributet xmlns, göra en iisreset och stäng/re-öppna SPD.

Snabb och enkel: Konfigurera MOSS om du vill söka ett specifikt dokumentbibliotek

Se uppdatering (JAG) nedan (11/24/07) på Hur du konfigurerar Microsoft Office SharePoint Server 2007 Index och Crawl nätverksmappar för sökning

Mål: Jag vill köra en sökning begränsas till ett visst dokumentbibliotek. I detta fall, dokumentbiblioteket innehåller utbildning dokument.

Steg:

1. Spela in URL för dokumentbiblioteket.

2. Skapa ett omfång:

Gå till central administration.

Tillgång SSP.

Gå till "sökinställningar".

Rulla ned till avsnittet tillämpningsområde och välj "Visa omfattningar".

Skapa ett nytt scope. Ge det ett namn och en bra beskrivning.

3. Definiera omfattningen crawlningsregler:

Lägga till en regel som definierar dokumentbiblioteket för detta scope.

Välj "web-adress" för "Räckvidd regeltyp".

Ange namnet på mappen (se #1 ovan).

Acceptera standardvärdet för "Inkludera".

Vänta på räckvidden till uppdatera (eller starta det manuellt).

4. Aktivera ett scope i en webbplatssamling.

Gå till webbplatssamling där du vill använda detta scope.

Lägga till din nya scopet i lämpliga visningsgruppen eller grupper.

5. Sök!

Vid denna punkt, Du är klar. Förutsatt att räckvidden är korrekt definierade, Det kommer att finnas i listrutorna scope för enkla och avancerade sökningar och när du söker med att tillämpningsområdet, bara får du resultat som du förväntar dig.

Anteckningar:

Jag skrev denna bloggpost eftersom mina sökningar för enkel omfattning setup dök upp torr med fraser som:

  • Konfigurera scope i MOSS
  • Konfigurera Sök omfattning moss
  • omfattningar i sharepoint 2007
  • omfattningar i sharepoint
  • Sök ett dokument bibliotek moss
  • omfattningar primer moss

Du kan skapa en sökomfattning på en mapp, inte bara hela dokumentbiblioteket.

Ett scope kan delas mellan flera webbplatssamlingar (därav, en "delad tjänst").

Du kan skapa räckvidd på webbplatssamlingsnivå sig. Men, Jag föredrar att gå till central administration eftersom jag kan börjar krypa därifrån. Du kan inte starta crawlningen från webbplatssamlingen.

UPPDATERING (JAG) som av 11/24/07:

Kai Shang sätta ihop en stor post med titeln Hur du konfigurerar Microsoft Office SharePoint Server 2007 Index och Crawl nätverksmappar för sökning @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry

Technorati Tags: , ,

Ingen soppa för dig! Är Cisco Soup Nazi av NLB-produkter?

Idag, Jag försökte få tillgång till ett dokumentbibliotek via Utforskaren. Detta doc lib lever inuti ett system som består av två WFE belastningen balanseras av någon form av Cisco NLB lösning. (Om/när berätta de nätverk guiderna vad det är, Jag kommer uppdatera detta inlägg).

Utforskaren i Windows kunde inte ansluta. Jag gjorde en del efterforskningar och så småningom, nätverket guiderna sa att WebDAV inaktiveras av / inte stöds av / under parlamentets värdighet att NLB.

Så, förutsatt att nätverket guiderna är inte bara berättade nätverket guiden motsvarande "ta en lång promenad från en kort bro", Jag måste undra — gör NLB, av naturen, Inaktivera WebDAV? Förlorar vi vår windows file explorer-gränssnittet till SharePoint? Är Cisco den Soppa nazist?

Hantera MOSS / WSS miljöer — att hålla upp med Microsofts knowledge base

Microsoft skapar kunskapsbas artiklar dag i och dag ut och några av dem är förbannat viktigt att veta om om du bor i världens SharePoint.

Jag hålla igång med dem via en tjänst ger med bra folk på www.kbalertz.com. KBAlertz kan du registrera dig för din favorit MS teknik och de skickar du smälta versioner av Microsoft KB-artiklar via e-post.

Web användningsprincip, Säkerhet platser och säkerhet putsning — Vet din konfiguration

(UPPDATERAD 11/29 att förklara hur komma åt web application principinställningar via Användargränssnittet)

Jag hade en av de "Varför MOSS gör detta för mig????" stunder i dag. I slutet, Det är mitt fel.

Vi har ett företagsprojekt MOSS pågår och vi vill säkra plats innehavaren"" tomten så att ingen användare kan komma åt det eller se det. Det är lätt:

  1. Gå till webbplatsen.
  2. Bryta säkerhet arvet.
  3. Ta bort varje användare/grupp från webbplatsbehörigheter.

Ovanstående bör lämna bara administratören för en webbplatssamling med behörighet att se webbplatsen.

Om någon annan loggar in, de bör inte längre se webbplatsen och det bör vara säkerhet-klippta från alla de vanliga ställena.

Men … Det var inte. På samma gång, Plötsligt inser jag att min "Joe användare" standardanvändarkonto test med ingen priv än begränsad läsbehörighet har en "Webbplatsåtgärder" valet överallt han går. Jag dubbel kolla en sak och dubbelkolla något annat. Jag plockar upp telefonen att ringa en kollega, men Lägg ner och kolla något annat. Jag går en promenad och prova allt igen. Jag ringa en kollega och lämna ett meddelande. Och sedan, Slutligen, Jag tycker att på Ethans blogg, hans inledande diagram gör det ganska enkelt:

MOSS 2007 har en ny funktion som kallas Web ansökan politik. Dessa är behörigheter som är knuten till ett webbprogram. Dessa säkerhetsinställningar åsidosätta någon säkerhet som ställs på webbplatssamlingen eller webbplatsen (Web) nivå för användaren.

Ett snabbt besök på web application politik visar att "NT InstansAutentiserade användare" hade beviljats Full Läs. Jag tog bort dem från listan och allt slutligen började arbeta som förväntat. Jag tror de har lagts till i första hand av någon med det felaktiga intrycket att detta är bästa metoden att bevilja läsåtkomst till alla i företaget. Det gör, Men, stam en offert, "Betyder det inte vad du tycker betyder."

Access web ansökan politik detta sätt:

  1. Gå till Central Administration
  2. Välj Application Management
  3. Välj "Policy för webbprogram"
  4. På denna bild, att du väljer rätt web application. För mig, webbprogrammet för central administration som inte kan du som standard.

När jag hade detta problem, Jag sökte efter följande fraser och fick förvånansvärt lite i form av direkt hjälp i denna fråga:

Webbplatsåtgärder synliga för alla användare

Webbplatsåtgärder visas för alla användare

Webbplatsåtgärder är inte säkerhetsoptimerade

säker en MOSS webbplats

Introduktion till moss säkerhet

Technorati Tags:

Snabb och enkel: Använd fasta nyckelordet frågan i Core sökresultat

Snabba och enkla instruktioner:

Redigera en sida och lägga till en webbdel för Core sökresultat.

Redigera den webbdelen och expandera "Fasta nyckelordet fråga".

Lägga till fasta nyckelordet frågan (t.ex. ContentType:"Utbildning faktura" TrainingInvoiceNumber:1111)

Expandera resultat Frågealternativ och ändra "Cross-Web query ID" ett annat värde än "användare Query" (t.ex. "Fråga 2").

Anteckningar:

Använda core sökresultat på detta sätt får mig för att skapa en sida som visar information från en annan webbplatssamling. Klienten har två stora webbplatssamlingar: Avdelningar och produkter.

Webbplatssamlingen produkten innehåller, naturligt nog, produktinformation. Varje produkt i webbplatssamlingen aggregerar data från flera källor.

En av departement, koder och provning, är på sådan källa. När användare öppnar produkt XYZ, de bör se koder och testdata direkt på huvudsidan XYZ. Sedan koder och testning är värd i en annan webbplatssamling, Det är lite krångligt. Vi beslutade att använda webbdelen grundläggande Sök resultat eftersom Sök spänner över webbplatssamlingar. Koder och testning hanterar produktdata via en anpassad lista som begränsas av en specifik innehållstyp. AA sökord fråga som använder första innehållstypen och sedan begränsa sökningen till en enda rad produktnumret i den anpassade listan.

Nyckelordet frågan ovan är en och. Den returnerar dokument av innehåll skriver "utbildning faktura" och där fakturanumret jämlikar "1 111".

En trevlig förmån från detta synsätt: Vi kan redigera XSL från webbdelen Grundläggande sökresultat i Sök och generera alla format som vi vill.

Se här (http://devcow.com/blogs/jdattis/archive/2007/04/17/SharePoint_2007_How_to_Rollup_Content_from_multiple_Site_Collections.aspx) för en annan bloggare diskussion om detta ämne.

</slutet>Prenumerera på min blogg.

Berätta om din blogg!

Om du underhåller en blogg som är minst minimalt ansluten till SharePoint, Låt mig veta i kommentarerna. Jag skulle älska att lägga till dig till min blogglista.

Om du underhåller en blogg som inte är ansluten till SharePoint men vill jag tillägga det ändå, Låt mig veta. Jag ska skapa en separat blogglista.

Var snäll och ge:

  • Din blogg URL (uppenbarligen)
  • En kort beskrivning av din blogg.

Jag vill behålla länken till "aktiv" Bloggar, som jag ungefär definiera som ett inlägg i veckan och minst tre månader gammal. Om du inte uppfyller detta krav"" Lägg till kommentarer iallafall. Den har * min * lista så jag kan bryta min egen regel om jag vill.

Tack!

Medarbetare utbildning schema och material mall — Sänk bugg i mallen

Klienten märkte en bugg idag med mallen ovan nämnda.

Kursen chefer skapar kurser. När du skapar en kurs, manager anger maximalt antal tillgängliga platser.

Mallen innehåller för självbetjäning registrering. Jag registrera och ett arbetsflöde bifogas registrering lista minskar de tillgängliga platserna"" samband med det jagar.

Individer kan också avregistrera dig från en kurs. Felet ligger här. Avregistrera från en kurs ökar inte räknaren tillgängliga platser. Som en följd, tillgängliga platser är inte korrekt. Denna bugg förvärras av faktumet att när tillgängliga platser minskar till noll, ingen mer självbetjäning registrering tillåts.

Lyckligtvis, Microsoft tillhandahåller arbetsflödet för denna process. Ännu bättre, Det är ett enkelt arbetsflöde skapade via SharePoint Designer.

Så här hög nivå du fixa det:

  1. Brand upp SDP.
  2. Tillgång på webbplats som bygger på mallen utbildning.
  3. Tillgång "deltagare avregistreringen" arbetsflöde.
  4. Infoga dessa steg (Jag gjorde dem de två första stegen):
    1. Beräkna Kurser:Fyllda platser minus 1 (Utgång till Variabel:calc)
    2. (sedan) Uppdatera objekt i Kurser

Klicka på Slutför och du är klar.

Skärmdumpar:


SharePoint Designer:

bild

Färdiga arbetsflöde:

bild

Beräkna drill-down:

bild

Uppdatera objekt i kurser:

bild

Ge goda nyheter ofta; ge dåliga nyheter tidigt

Jag har varit konsult för en massa år nu och som någon erfaren konsult vet, god kommunikation är en av hörnstenarna för framgångsrik leverans av ett projekt. Det är så uppenbart, Det är verkligen nästan tråkigt att prata om. Detta är inte ett inlägg om generiska kommunikation. I stället, Jag skriver om den mörkare sidan av kommunikation — kommunicera dåliga nyheter.

Det är självklart att ge goda nyheter till klienten görs hela tiden, så ofta som möjligt. Som inte vill ge goda nyheter? Vem gillar inte att höra goda nyheter?

På baksidan, dåliga nyheter är inte roligt alls. Jag har alltid kämpat med detta. Under de tidigare dagarna i min karriär, Jag skulle veta något var snett med ett projekt och i stället tala om klienten, Jag skulle arbeta längre för att försöka lösa problemet. Jag skulle ålägga mitt team att arbeta hårdare. Det är en nog naturliga impuls att tänka att en övermänsklig ansträngning kan rädda dagen. Vissa gånger fungerar detta, några gånger det inte. Även när det "fungerar" Det är ofta en blandad kompott. Är kvaliteten på slutprodukten verkligen upp till spec när viktiga delar har utvecklats under flera 60 till 80 timmarsveckor?

Vad är det bästa sättet att hantera dåliga nyheter? Svaret är: berätta det tidigt. Vänta inte tills en vecka innan projektets budget kommer att konsumeras. Om du vet sex veckor att det helt enkelt inte tillräckligt med tid att leverera några bitar av utlovade funktioner, berätta klienten just då och där. Klienten kan bli upprörd (förmodligen kommer), Det kan finnas grunder för åtal och anklagelser och såra känslor. Men, När känslor svalna, Det finns fortfarande sex veckor kvar i projektet. Sex veckor är en bra bit av tid. Finns det tid att anpassa planer, ändra scheman, få bollen i rullning på budget-tillägg (Lycka till!) och bara allmänt komma tillrätta med "fakta på marken" och utarbeta en ny plan som fortfarande leder till ett framgångsrikt projekt.

Fallet: Jag arbetar på ett projekt som kännetecknas av:

  • T&E budget med ett tak "inte överstiga" dollarn belopp.
  • En "bästa ansträngningar kommer att göras" lova att leverera X, Y och Z av projektets slut.
  • Brist på utlovade nyckelresurser på klientsidan. Dessa resurser var inte inne med flit, inte heller för några "dåliga" anledning, men de var inne.
  • En gryende insikten som projektet gått halvvägs att vi inte skulle kunna leverera "Z" (främst eftersom de utlovade resurserna inte var faktiskt tillgängliga).
  • Regelbundna statusrapporter och "CYA" dokumentationen som stödde oss (konsultteam) upp.
  • Tätt sticka genomförande team med medlemmar från den samrådande organisationen (mitt företag) och klienten.
  • Avlägsna ledningsgrupp, i båda en metaforisk och fysisk känsla. Ledningen var inriktad på ett annat stort företagsprojekt och på grund av utrymmesbegränsningar, genomförandet laget var inhyst i en separat byggnad på campus, ner en kulle och relativt långt från "civilisationen".

Med ungefär sex veckor kvar på projektets budget, Vi (genomförandet laget) visste att vi var problem. Avtalet säger att vi behövs för att leverera "Z". Även om projektet är tid & material och trots att vi bara lovat "bästa insatser" att leverera Z och även fast vi hade bra motivering för leverans som saknas … summan av kardemumman är att det inte ser bra — Vi skulle inte leverera Z i formen en kvalitet som skulle göra någon stolt.

Erkänner detta, Vi gick till ledningen och berättade för dem att projektets budget skulle konsumeras vid ett visst datum och att vi var i trubbel med Z.

En mini firestorm utbröt över de närmaste dagarna.

Dag 1: Ledningsgrupp-samtal i sin personal för ett särskilt möte (Vi, konsulterna är inte välkomna). Kontrakt är tryckas och delas ut till alla och en rad-för-rad översyn inträder. Management sätter anställda på defensiven. Jag tror inte frasen "Stockholm Syndrome" är * faktiskt * används, men du får bilden. Vi är en sammansvetsad grupp, Trots allt, och personalen har arbetat med oss konsulter dag in och ut i flera månader nu.

Dag 2: Management kräver en annan personalmöte. De känner sig lite bättre. De vill ha alternativ och idéer för att gå vidare. De inser det finns fortfarande sex veckor kvar i den nuvarande projektbudgeten för, som är fortfarande en bra bit av tid. En av de åtgärder: schemalägga ett möte med fullständigt genomförande team (inklusive konsulter).

Dag 5: Fullt lag möter, konstruktivt möte inträder och infört en ny genomförbara plan. Ännu bättre, Vi har redan börjat diskutera fas två och klienten inbjuder oss att förbereda förslag för den fasen omedelbart.

Om vi hade väntat tills bara tre veckor kvar, eller ännu värre, en eller två veckor, Det skulle ha varit mycket annorlunda. I stället för ett konstruktivt möte att åter justera projektet, Vi skulle ha dra ut statusrapporter, parsning av kontraktet och granska gammal email för att rättfärdiga detta eller detta beslut. Vi skulle ha "vunnit" men är det verkligen "vinnande" i detta fall?

Så, Om du har att ge dåliga nyheter, ge det tidigt. Dåliga nyheter ges sent är inte bara dåligt, Det är hemskt.