SPD anpassade arbetsflödesåtgärder — sträng manipulering förbättringar

Om en vecka sedan, Startade jag upp ett codeplex projekt som ger en enkel och tämligen generisk metod för att lägga till anpassade åtgärden funktioner till SharePoit Designer arbetsflöde. Det beskrivs här: http://www.codeplex.com/spdwfextensions. Utöver att helt enkelt skapa en ram, Syftet är också att tillhandahålla en uppsättning användbara funktioner som kommer att göra SPD mer användbar/flexibel/kraftfull.

Här är de aktuella planerade funktionerna för version 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Om någon har något intresse av detta projekt, Vänligen lämna en kommentar eller start/lägga till en diskussion här: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Här är den aktuella uppsättningen funktioner som har varit kodade (även om inte testat som av 11/08/07):

Funktionen Beskrivning (om inte samma som .net funktion)
NUM-transaktioner() Returnerar tal "poster" i en sträng enligt angivna avgränsare.

Till exempel: NUM-transaktioner i en sträng "en,b,c" med avgränsare"," = 3.

Posten() Returnerar den n: te token i en sträng enligt angivna avgränsare.
Längd String.length
Ersätt() String.Replace()
Innehåller() String.contains()
Returnerar ordet "true" eller ordet "false".
Delsträng(Starta) String.substring(Starta)
Delsträng(Starta,slutet) String.substring(Starta,slutet)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returnerar ordet "true" eller ordet "false".
EndsWith() String.EndsWith()
Returnerar ordet "true" eller ordet "false".

Snabb & enkelt url kodning stationära utility

Jag har behöva url-koda vissa strängar i veckan och smällde ihop ett litet verktyg som jag trodde jag skulle sätta upp SkyDrive för gemenskapen.

Få den binära här: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Få den visual studio-lösningen här: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Här är en skärmdump:

bild

Snabb och enkel: Bädda in en hyperlänk i datavywebbdelen XSLT-

UPPDATERING (01/17/08): Detta blogginlägg talar om mer hyperlänk XSL godhet: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Översikt och mål: Jag hade skapat ett enkelt liggande diagram som komponent på en instrumentpanel. Jag ska spara information om att bygga diagram för en annan tjänst, men jag uppfinna inte denna teknik (inte heller frågetecken, för övrigt). Det visade sig att det var en bugg i diagrammet och medan jag fixade som, Jag passade på att konvertera några etiketter till hyperlänkar som pekade på den underliggande listan bakom grafen. Till exempel, Det finns en etikett med värde "Hold". Jag ville göra etiketten till en hyperlänk så att användaren kan klicka på den och gå ned till de specifika adresserna i listan vars statusvärde är "Hold".

Steg:

  1. Använd visual studio för SharePoint-medveten intellisense.
  2. Kopiera den DVWP XSLT till visual studio (skapa ett tomt projekt, lägger till en XSL-fil i projektet).
  3. Kopiera in länken som du vill använda till Urklipp.
  4. Klistra in det i rätt plats i XSL.
  5. Konvertera URL-argumentet avgränsare på frågesträngen från"&" till"&"
  6. URL-koda individuella argument.
  7. Radbryt att insidan en <en href…> </en>

Exempel:

Jag har en URL:

http://[servern]/[webbplats]/Lists/Open Positions/AllItems.aspx?Visa ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Rekryterarens&FilterValue1 = Hold

Jag omvandla den till:

     <en href="Lists/Open Positions/AllItems.aspx?Visa = % 7b84EEA2F5-121B-40B7-946F-
0FA704A1DAA1% 7 d&amp;FilterField1 = Rekryterarens&amp;FilterValue1 = Hold"> Håll: </en>

Jag har manuellt förändrat det första argumentet från:

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

till:

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

(I detta, Öppna klammerparentes transformeringar till % 7b och avslutande hängslen transformeringar till % 7 d)

De andra och tredje argument’ parametrar ("FilterField1 =Rekryterarens" och "FilterValue1 =Håll" respektive) behöver inte vara url-kodade eftersom de inte innehåller några osäkra tecken.

Anteckningar:

Denna teknik bör generellt arbeta var du vill bädda in en hyperlänk i XSLT där hyperlänken innehåller parametrar i URL-adressen som:

http://[servern]/[webbplats]/Lists/Open Positions/AllItems.aspx?Visa ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = Rekryterarens&FilterValue1 = Hold

Jag fick den URL-adressen själv genom att besöka den anpassade listan och manuellt filtrering på statuskolumnen (märkt "Rekryterarens" ovan).

Snabb och enkel: Aktivera SharePoint Designer arbetsflödet att uppdatera ett InfoPath-formulär

Scenariot: Jag har ett InfoPath-formulär som front-avslutar en arbetsflödesprocess som genomförs med hjälp av SharePoint Designer. Vid ett tillfälle, en chef måste godkänna form. Eftersom jag inte kan räkna med arbetsflödeshistoriken till min revision krav, Jag bestämmer mig att lagra min egen revision meddelande direkt på själva formuläret.

Översikt:

Designa formuläret och publicera den som en innehållstyp och själva formuläret till ett dokumentbibliotek. Markera önskad formulärfält som kan uppdateras från MOSS. Formuläret är knuten till innehållstypen och innehållstypen är "kopplad" till ett formulärbibliotek (eller många, Om du vill). Skriva ett arbetsflöde som uppdateras fältet.

Specifika åtgärder:

  1. Skapa ett dokumentbibliotek. Detta kommer att hålla din InfoPath-mall.
  2. Skapa ett formulärbibliotek.
  3. Skapa InfoPath-formuläret. Inkludera ett textfält, "Revision Message".
  4. Publicera formuläret som en innehållstyp (INTE ett dokument).
  5. Samtidigt fyller publicerar dialoger:
    en) Spara XSN-filen till dokumentbiblioteket (steg #1).
    b) Publicera meddelandet"revision" fält och markera sant: "Tillåt användare att redigera data i fältet med hjälp av ett datablad eller egenskaper sida".
    c) Skapa en ny innehållstyp och ge det ett namn.
  6. Tillgång till formulärbibliotek.
    en) Gå till dess avancerade inställningar och aktivera formulärbiblioteket att hantera innehållstyper.
    b) Välj den nyskapade innehållstypen (5c ovan). Det kommer att grupperas under "Microsoft InfoPath" (eller liknande).
    c) Ta bort standard "Form" innehållstyp från biblioteket.
    d) Mark biblioteket "Visa som webbsida" så att formuläret kommer att starta från SharePoint och inte InfoPath workstation-klient.
  7. Gå tillbaka till det korrekta formulärbiblioteket och klicka på "ny" att helt enkelt kontrollera att formuläret är bokförda korrekt och tillförordnad som du vill.
  8. Brand upp SharePoint Designer och navigera till den webbplats som är värd för din formulärbibliotek (från steg 2).
  9. Skapa ett nytt arbetsflöde som bifogas formulärbiblioteket.
  10. Lägga till en enda åtgärd "Ställa in fältet i aktuellt objekt". Du bör räkna med SharePoint Designer att lista du är ditt område, "Revision Message". Tilldela den ett värde.
  11. Klicka på Slutför och gå tillbaka till formulärbiblioteket.
  12. Skapa ett nytt formulär och sätta vissa testvärdet i meddelandet"revision" fältet.
  13. Spara den och gå tillbaka till formulärbiblioteket.
  14. Högerklicka på, Välj "arbetsflöde" och starta upp ditt arbetsflöde.
  15. Det ska köras nästan omedelbart. Dra upp form (från steg 12) och om alla har gått för att planera, "Revision Message" har tilldelats oavsett värde du angav i steg 10.

Anteckningar:

Inte alla kontroller kan konfigureras för denna dubbelriktad kommunikation. Till exempel, Det verkar inte att genomföra en SPD arbetsflöde som ändrar textfält insvept inuti upprepande avsnitt.

En av de viktigaste take-away's här är att vi verkligen har skapat en innehållstyp med en tillhörande mall. Detta också ger oss möjlighet att lagra flera InfoPath-formulärmallar i samma formulärbiblioteket.

Detta kräver forms server. Det kommer säkerligen inte att arbeta i en WSS 3.0 miljö och förmodligen även kräver en Enterprise SharePoint-miljön.

Beagle har landat (Oktober 2007 frågan)

(Detta är faktiskt lite gamla nyheter, men som min favorit brandstation mottot utropar, "Bättre sent än aldrig").

Kolla här: http://www.sharepointbeagle.com/

Om du inte redan har, se till att Registrera sig.

Självklart, Läs min artikel om verkliga SharePoint projekt (inklusive krav definitionen, KPI, innehållstyper, instrumentpaneler och mer) som min kollega artikel om webbdelen Innehållsfråga.

Det finns massor av andra bra saker även.

Ta bort “Visa allt webbplatsinnehåll” länk

Uppmanas jag denna fråga nästan varje vecka, normalt i samband med en säkerhet-diskussion. En administratör/site creator har etablerats en webbplats, konfigurerade säkerhet, ordnade web delar och anpassade Snabbstart för att ge det oh-så-perfekt uppsättningen av alternativ till slutanvändaren. Men, i kartongen, Du kan inte ta bort den "Visa allt webbplatsinnehåll" länk.

Mark Wagner ger svaret Här (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Hans write-up är fantastiskt på två nivåer. Det ger ett svar på frågan, "Hur tar jag bort den Visa allt webbplatsinnehåll" länk? Sedan, det besvarar den omedelbara tillskottsnäring frågan: Hur aktiverar jag lätt kan visa allt webbplatsinnehåll länk på en webbplats webbplatser?

Som en bonus: Hans strategi som fungerar för WSS, inte bara MOSS.

</slutet>

Prenumerera på min blogg!

Min alldeles egna CodePlex-projektet: Arbetsflödet tillägg för SharePoint Designer

UPPDATERING: Se här (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) för senast om detta projekt.

Jag skapade ett CodePlex projekt idag till hus gränssnittet generiska SPD kod att jag blogged om Här (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

Ta en titt på Här (http://www.codeplex.com/spdwfextensions) se CodePlex projektet och sparka däck.

Om du är intresserad av att arbeta på detta med mig, brand utanför en e-post på mailto:galvin.paul@gmail.com

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: , ,