SPD brugerdefinerede arbejdsproceshandlinger — string manipulation forbedringer

Om en uge siden, Jeg startede en codeplex projekt, der giver en enkel og rimeligt generisk metode til at tilføje brugerdefineret handling funktioner til SharePoit Designer arbejdsprocessen op. Det er beskrevet her: http://www.codeplex.com/spdwfextensions. Ud over blot at give en ramme, Det sigter også mod at give et sæt af nyttige funktioner, der vil gøre SPD nyttige/fleksibel/kraftigere.

Her er de nuværende planlagte funktioner for version 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Hvis nogen har nogen interesse i dette projekt, venligst efterlade en kommentar eller start/tilføje til en diskussion her: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Her er det aktuelle sæt af funktioner, der er blevet kodet (dog testet ikke fuldt ud som af 11/08/07):

Funktion Beskrivelse (Hvis ikke samme som .net funktion)
NUM-poster() Returnerer de antal "poster" i en streng som pr en anførte afgrænsning.

For eksempel: NUM-poster i en streng "en,b,c" med afgrænser"," = 3.

Indrejse() Returnerer den n'te token i en streng som pr en anførte afgrænsning.
Længde String.Length
Erstat() String.Replace()
Indeholder() String.Contains()
Returnerer ordet "true" eller ordet "falsk".
Understreng(Start) String.Substring(Start)
Understreng(Start,slutningen) String.Substring(Start,slutningen)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returnerer ordet "true" eller ordet "falsk".
EndsWith() String.EndsWith()
Returnerer ordet "true" eller ordet "falsk".

Hurtig & nem url kodning desktop værktøj

Jeg har blevet behøver hen til url-encode nogle strenge i denne uge og slog sammen en en lille hjælpeprogram, som jeg troede, jeg ville sætte SkyDrive for Fællesskabet.

Få den binære her: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncode.zip

Få visual studio-løsning her: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/WinUrlEncodeVS2005.zip

Her er et skærmbillede:

billede

Hurtig og nem: Integrere et hyperlink i webdelen Datavisning XSLT

OPDATERING (01/17/08): Denne blog taler om flere hyperlink XSL-godhed: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Overblik og mål: Jeg havde lavet et simpelt søjlediagram til at tjene som komponent på et dashboard. Jeg vil gemme detaljerne om at opbygge diagrammer til en anden post, men jeg har ikke opfinde teknikken (heller ikke spørgsmålstegn, for sags skyld). Det viste sig der var en fejl i diagrammet, og mens jeg fast, Jeg benyttede lejligheden til at konvertere nogle etiketter til hyperlinks, der peger på den underliggende liste bag grafen. For eksempel, der er en etiket med værdien "Hold". Jeg ønskede at gøre etiketten til et hyperlink, således at brugeren kan klikke på den og bore ned til de specifikke poster på listen værdi hvis status er "Hold".

Trin:

  1. Brug visual studio for SharePoint-aware intellisense.
  2. Afskrift den DVWP XSLT i visual studio (oprette et tomt projekt, tilføje en XSL-fil til projektet).
  3. Kopiere det link, du vil bruge til Udklipsholder.
  4. Indsætte det i den rigtige placering i XSL.
  5. Konvertere URL argument separatorer på forespørgselsstreng fra"&" til"&"
  6. URL-encode enkelte argumenter.
  7. Wrap at inde en <en href…> </en>

Eksempel:

Jeg har en URL-adresse:

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

Jeg konvertere det til:

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

Jeg har manuelt omdannet det første argument fra:

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

til:

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

(I dette, åben tandbøjle transformeringer til % 7b og afsluttende klammeparentes transformeringer til %7 d)

Den anden og tredje argumenter’ parametre ("FilterField1 =Personalekonsulent" og "FilterValue1 =Hold" henholdsvis) behøver ikke at være url-kodet fordi de ikke indeholder nogen usikre tegn.

Noter:

Denne teknik bør generelt arbejde hvor som helst du vil integrere et hyperlink i XSLT hvor hyperlinket indeholder parametre på URL såsom:

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

Jeg fik URLEN ved at få adgang til listen Brugerdefineret og manuelt filtrering på statuskolonnen (mærket "Recruiter" ovenfor).

Hurtig og enkel: Aktivere SharePoint Designer arbejdsprocessen for at opdatere en InfoPath-formular

Scenario: Jeg har en InfoPath-formular, som front-ends en arbejdsproces, der er implementeret ved hjælp af SharePoint Designer. På et tidspunkt, en leder skal godkende form. Da jeg ikke kan regne med Arbejdsproceshistorik at opfylde min revision krav, Jeg beslutter at gemme min egen revision meddelelse direkte på selve formularen.

Oversigt:

Designe formularen og udgive det som et indholdstype og selve formularen i et dokumentbibliotek. Mark ønskede formularfelter for at være opdaterbar fra MOSS. Formularen er bundet til den indholdstype og den indholdstype er "knyttet" til et formularbibliotek (eller mange, Hvis du vil). Skrive en arbejdsproces, der opdaterer feltet.

Bestemte trin:

  1. Oprette et dokumentbibliotek. Dette vil holde dine InfoPath-skabelon.
  2. Opret et formularbibliotek.
  3. Oprette InfoPath-formularen. Omfatte et tekstfelt, "Overvågningsmeddelelse".
  4. Udgiv formularen som en indholdstype (IKKE et dokument).
  5. Samtidig udfylder de udgivelse dialoger:
    en) Gemme .xsn-filen til dokumentbiblioteket (trin #1).
    b) Udgive meddelelsen"revision" feltet og markere sand: "Tillad brugere at redigere dataene i dette felt ved hjælp af et dataark eller egenskaber side".
    c) Oprette en ny indholdstype og give det et passende navn.
  6. Få adgang til formularbibliotek.
    en) Gå til dens avancerede indstillinger, og aktiver det formularbibliotek til at administrere indholdstyper.
    b) Vælg den nyoprettede indholdstype (5c ovenfor). Det vil blive grupperet under "Microsoft InfoPath" (eller lignende).
    c) Fjerne standard "Form" indholdstype fra biblioteket.
    d) Mark biblioteket til "Vis som Web-side" så formen vil lancere fra SharePoint og ikke InfoPath arbejdsstation klienten.
  7. Gå tilbage til biblioteket formularer korrekt og klik på "ny" at blot kontrollere, formen er bogført korrekt og fungerende, som du vil.
  8. Brand op SharePoint Designer og naviger til det websted, der er vært for din formularbibliotek (fra trin 2).
  9. Oprette en ny arbejdsproces knyttet til formularbibliotek.
  10. Tilføje en enkelt handling "Angivet felt i aktuelle element". Du skal forvente SharePoint Designer til at liste du dit felt, "Overvågningsmeddelelse". Tildele en værdi.
  11. Klik på Udfør og gå tilbage til formularbiblioteket.
  12. Opret en ny formular og sætte nogle test værdi i meddelelsen"revision" felt.
  13. Gem det og gå tilbage til formularbiblioteket.
  14. Højreklik på, Vælg "arbejdsproces" og starte op din arbejdsproces.
  15. Det bør køre næsten straks. Trække op form (fra trin 12) og hvis alle gået til at planlægge, "Overvågningsmeddelelse" har fået tildelt uanset værdi, du angav i trin 10.

Noter:

Ikke alle kontrolelementer kan konfigureres for denne tovejskommunikation. For eksempel, Det synes ikke at gennemføre en SPD workflow, der ændrer tekstfelter indpakket i gentagne sektioner.

En af de centrale take-away's her er at vi virkelig har skabt en indholdstype med en tilhørende skabelon. Dette giver også mulighed for at gemme flere InfoPath-formularskabeloner i samme formularbiblioteket.

Dette kræver forms server. Det helt sikkert ikke gå på arbejde i en WSS 3.0 miljø og sandsynligvis endog kræver en Enterprise SharePoint miljø.

Beagle-hunde har landede (Oktober 2007 problem)

(Det er faktisk lidt gammel nyhed, men som min favorit brandstation motto forkynder, "Bedre sent end aldrig").

Tjek det ud her: http://www.sharepointbeagle.com/

Hvis du ikke allerede, Sørg for at Tilmeld dig.

Selvfølgelig, Sørg for at læse min artikel om en real-verden SharePoint projekt (herunder krav definition, Nøgletallene, indholdstyper, dashboards og mere) samt min kollega artikel om webdelen indholdsforespørgsel.

Der er masser af andre gode ting for.

Sådan fjernes “Se alle webstedsindhold” link

Jeg stillede dette spørgsmål næsten hver uge, normalt i forbindelse med en sikkerhed diskussion. En administrator/site creator har klargjort en site, konfigurerede sikkerhed, arrangeret web dele og tilpasset den rask indlede for at give slutbrugeren at Åh-så-perfekte sæt indstillinger. Men, ud af boksen, Du kan ikke fjerne "Se alle webstedsindhold" link.

Mark Wagner giver svaret Her (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Hans skrive-up er fantastisk på to niveauer. Det giver et svar på spørgsmålet, "Hvordan jeg fjerner den Vis alt indhold på webstedet" link? Derefter, den besvarer det umiddelbare opfølgende spørgsmål: Hvordan aktiverer jeg nemt se alle webstedsindhold link på websted?

Som en bonus: Hans fremgangsmåde fungerer for WSS, ikke bare mos.

</slutningen>

Abonner på min blog!

Min helt egen CodePlex projekt: Arbejdsprocessen serverudvidelser for SharePoint Designer

OPDATERING: Se her (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!310.entry) for senest på dette projekt.

Jeg oprettede en CodePlex projekt i dag til hus den generiske SPD grænseflade kode at jeg blogges om Her (http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!275.entry).

Have et kig på Her (http://www.codeplex.com/spdwfextensions) Se projektets CodePlex og sparke dæk.

Hvis du er interesseret i at arbejde på dette med mig, affyre en e-mail på mailto:galvin.paul@gmail.com

SharePoint Designer — Brugerdefineret aktivitet at udføre brugerdefinerede C# funktioner

OPDATERING: Dette er blevet udleveret til CodePlex her: http://www.codeplex.com/spdwfextensions

OPDATERING: Se her for seneste produktbemærkninger: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!381.entry

OPDATERING: Se her for mine tanker om kommercialisering dette projekt: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!569.entry

Dette projekt indeholder en brugerdefineret aktivitet i SharePoint Designer. Brug denne brugerdefinerede aktivitet til at påberåbe sig (forsendelse) enhver C#-funktion, du er indarbejdet i den sammenkædede forsamling.

I slutningen af oktober, 2007, Dette er blot en indledende version af projektet. Jeg planlægger at udvide det med en række ekstra funktioner, herunder understreng, indeks, Erstat, påberåbe sig webtjenester og noget, der ser ud til nyttige eller interessante. Jeg planlægger også at skrive dette til codeplex, når jeg har min handle sammen på fronten. Dette vil også være deployerbare som en løsning på et tidspunkt.

Hvis du har kommentarer, spørgsmål eller forslag, venligst forlade dem i kommentarer eller e-mail mig.

Ansvarsfraskrivelse:

Jeg gør absolut ingen krav vedrørende dette egnethed til ethvert formål. Bruge på egen risiko.

Installationstrin (der skal følges ved hver WFE i farmen):

1. Hente .zip og pakke.

2. Installere .dll i GAC. Jeg åbne normalt c:\windowsassembly ved hjælp af windows Stifinder og kopi it der.

3. Ændre web.config for at føje samlingen til de sikre objekter:

<System.workflow.ComponentModel.WorkflowCompiler>
<authorizedTypes>

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

4. Kopiere "SpdGenericInterface.actions" til c:\Programmet c:ProgrammerFælles filerMicrosoft Sharedweb server extensions12TEMPLATE1033Workflow

Bemærk, at denne placering er specifikke for engelsk sprog installationer.

5. Lukke SharePoint Designer (Hvis det er allerede åben).

6. iisreset

7. Åbn SPD, og Opret en ny arbejdsgang.

Hvis alt går vel, du vil blive belønnet med en ny kategori af action:

billede

Noter:

Se Her (http://blogs.msdn.com/sharepointdesigner/archive/2007/03/15/adding-activities-to-spd.aspx) for en fantastisk overblik over processen til oprettelse af, installation og konfiguration af en løsning på denne.

.zip er designet til at udtrække direkte til dig c:\ kørsel. Hvis du gør dette, Du kan åbne projektet og alle stier vil være i overensstemmelse.

At bruge det i visual studio, du nødt sandsynligvis til at installere "Extensions for Windows WF".

Den oprindelige upload indeholder bare en "togleder funktion", "ToLower()". At tilføje mere funktionalitet, føje det til metoden Execute som vist:

 beskyttet tilsidesætte ActivityExecutionStatus
          Udføre(ActivityExecutionContext executionContext)
        {

            streng functionToDispatch;
            functionToDispatch = Dette.DispatchFunction.ToLower();

            skifte (functionToDispatch)
            {
                sag "tolower()":
                    {
                        Dette.OutResult1 = Dette.InParam1.ToLower();
                        pause;
                    }

                standard:
                    {
                        Dette.OutResult1 = "Ukendt funktion: [" + Dette.DispatchFunction + "].";
                        pause;
                    }
            }

            tilbagevenden ActivityExecutionStatus.Lukket;
        } // ActivityExecutionStatus

    }

Derefter, genopbygge projektet og kopiere assemblyen til GAC. Jeg forventer en iisreset ville være påkrævet.

SPD Workflow brugerdefineret handling – få den <WorkflowInfo> Tag lige at undgå frustration

En del af processen for at oprette en brugerdefineret handling for SharePoint Designer omfatter opretter et ".actions" fil.

Jeg har fundet og forsøgte at bruge en eksempelskabelon, som starter som:

<?XML version="1.0" kodning="UTF-8" ?>
<
WorkflowInfo xmlns="http://schemas.Microsoft.com/SharePoint/">
<
Handlinger Sekventielle="derefter" Parallel="og">

Dog, attributten xmlns forhindrer mine omgivelser fra arbejde. Mine handlinger dukke ikke op i SPD.

Løsningen er at fratage ud xmlns-attribut, gøre en iisreset og luk/re-åbne SPD.

Hurtig og enkel: Konfigurere mos for at søge et specifikt dokumentbibliotek

Se opdatering (JEG) nedenfor (11/24/07) på Sådan konfigureres Microsoft Office SharePoint Server 2007 til indeks og kravle netværksmapper for søgning

Mål: Jeg ønsker at udføre en søgning begrænset til et bestemt dokumentbibliotek. I dette tilfælde, dokumentbiblioteket indeholder dokumenter, uddannelse.

Trin:

1. Registrere Webadressen til dokumentbiblioteket.

2. Oprette et omfang:

Gå til central administration.

Adgang til skibets sikringsplan.

Gå til "søgeindstillinger".

Rul ned til afsnittet anvendelsesområde og vælge "Vis områder".

Opret et nyt område. Give det et navn og en nyttig beskrivelse.

3. Definere anvendelsesområdet gennemsøgningsreglerne:

Tilføje en regel, der definerer dokumentbibliotek for dette område.

Vælg "web-adresse" for "Rækkevidde regeltype".

Angiv navnet på din mappe (Se #1 ovenfor).

Acceptere standardværdien i "Medtag".

Afvente mulighed for at opdatere (eller starte det manuelt).

4. Aktivere anvendelsesområde i en gruppe af websteder.

Gå til websteder, hvor du vil bruge dette område.

Tilføj din nye rækkevidde til passende visningsgruppe eller grupper.

5. Søg!

På dette punkt, du er færdig. Forudsat at anvendelsesområdet er ordentligt defineret, det vil være tilgængelig i scopes rullemenuer til enkle og avancerede søgninger, og når du søger hjælp af dette omfang, du får lige forventede resultater.

Noter:

Jeg skrev dette blogindlæg, fordi mine søgninger for simple anvendelsesområde setup dukkede op tør bruge udtryk som:

  • konfigurere scopes i MOSS
  • konfigurere søgning anvendelsesområde moss
  • områder i sharepoint 2007
  • områder i sharepoint
  • Søg et dokument bibliotek moss
  • Scopes primer moss

Du kan oprette et søgeområde på en mappe, ikke bare hele dokumentbiblioteket.

Et område kan deles på tværs af flere grupper af websteder (dermed, "shared service").

Du kan oprette omfang på webstedsgruppeniveau, selv. Dog, Jeg foretrækker at gå til central administration, fordi jeg kan starte gennemsøgningen derfra. Du kan ikke starte gennemsøgningen fra gruppen af websteder.

OPDATERING (JEG) som af 11/24/07:

Kai Shang sat sammen en stor post med titlen Sådan konfigureres Microsoft Office SharePoint Server 2007 til indeks og kravle netværksmapper for søgning @ http://kaishenghoo.spaces.live.com/blog/cns!8A7458DB12CA5AC9!206.entry