Snabb och enkel: Göra ett InfoPath-formulär skrivskyddad (InfoPath utgör tjänster i MOSS)

Det finns en gemensam affärsscenario såhär:

  • Användare fyller i ett InfoPath-formulär.
  • Skickar formulär.
  • Långvariga arbetsflödesprocessen drar igång.
  • När arbetsflödet körs, Vi vill inte ha någon att ändra innehållet i form.

Exemplet office.microsoft.com Beskriver hur du skapar en separat "vy" och markera hela vyn som skrivskyddad. Detta är en fungerande metod men har den nackdelen att du effektivt har skapat två hela versioner av samma form och måste nu hålla dem synkade manuellt. Om du lägger till ett fält i vyn redigerbara, Du måste sedan lägga till vyn inte redigeras också. Över tid, med olika utvecklare, Det kan finnas vissa skillnader.

Detta alternativ kan fungera bättre i vissa fall:

  • Lägga till ett nytt fält i formuläret som kallas "IsEditable".
  • Ange ett standardvärde till true.
  • Främja det när du publicerar till MOSS.
  • I arbetsflödet, Ange värdet för IsEditble till false.
  • Gå tillbaka till formuläret.
  • Lägga till en regel som "vid öppna formuläret", Inaktivera Spara knappen när IsEditable är falskt.

Nackdelen med detta tillvägagångssätt är att alla fält fortfarande kommer att redigeras på skärmen. Användaren kan få ett falskt intryck att de faktiskt kan ändra innehåll. Du kan komma runt det genom att lägga in lite text att formuläret är inaktiverad, möjligen i stora röda bokstäver överst på sidan.

I ett projekt, Jag skapade en "arbetsflödesstatus" Visa. Som arbetsflödet fortskred, Det skulle uppdatera specifika status-fält som hade blivit befordrad från formuläret. När användaren öppnar formuläret, den "öppna formen" regeln bytte automatiskt till att visa och användaren hade en trevlig liten sammanfattande status.

</slutet>

Prenumerera på min blogg.

Använda semaforer i SharePoint Designer arbetsflöde för att förhindra oändliga loopar

Det är möjligt att orsaka en oändlig loop i ett arbetsflöde för SharePoint Designer. Ett gemensamt genomförande mönster som detta orsakar problemet:

  • Skapa ett arbetsflöde och associera med en lista.
  • Ange att det ska börja skapa nya objekt och uppdatering av befintliga objekt.
  • Ett steg i arbetsflödet uppdaterar ett fält i "Aktuellt objekt".
  • Eftersom det aktuella objektet ändras, Arbetsflödet startar på nytt.

Att förhindra denna oändliga loop, genomföra en enkel semafor:

  • Lägga till en webbplatskolumn (eller kolumnen till det lista/biblioteket om du inte använder innehållstyper).
  • Dölja det från redigeringssidan (lätt att göra om en webbplatskolumn via dess egenskaper, inte lika lätt om en listkolumn).
  • I arbetsflödet, Kontrollera om värdet i kolumnen semafor är tomt.
  • Om det är tomt, Ange en icke-tomma värde och gå vidare.
  • Om är inte är tomt, avsluta omedelbart.

Detta kan bli en ganska nyanserad lösning, beroende på verksamhetens krav och så vidare, men det har varit ett fungerande mönster när jag har behövt det.

</slutet>

Technorati Tags:

Prenumerera på min blogg.

Utvecklare: Hur lär jag SharePoint?

UPPDATERING: 04/25/08: Var ifatt några blogginlägg och hittade en länk till denna artikel: http://www.networkworld.com/news/2008/032608-microsoft-sharepoint.html?page=1. Jag antecknar det eftersom förutom be, "Hur lär jag sharepoint?", vissa människor frågar "Varför ska jag lära mig sharepoint?". Denna artikel svarar delvis den senare.

I de senaste månaderna, ett dussin eller fler folk från hela världen har e-posta mig och frågar den allmänna frågan, "Hur lär jag SharePoint?"

Jag är knappast auktoritära, men jag har haft viss framgång (och försöker bli bättre hela tiden) så jag tänkte skulle jag dokumentera min personliga vägkarta. Andra kan finna det värdefulla.

Innan jag gör det, Jag vill bara konstatera att det är uppenbart för mig, utifrån dessa personliga e-postmeddelanden och det ännu större antalet MSDN / SharePoint universitet inlägg av samma slag, som det finns stora utvecklare intresse att få upp farten med WSS/MOSS. Jag undrar vad det ska vara som ett år från nu … lättare att hitta bra SharePoint talanger? Samma? Folk begår sig till plattformen med en hastighet som är tillräcklig för att hålla jämna steg med efterfrågan på bra resurser? Hur kunde du ens räkna något sådär ut ifrån en VIFTA?

Pauls färdplan

Jag var anställd av bra folk på Conchango medan jag följde denna vägkarta på heltid. Detta innebär att ur ett lärandeperspektiv, Jag var aktivt engagerad i projekt som jag följde efter stammen jag beskriver nedan.

Några grundläggande termer

För människor träder in i denna värld, Det finns två viktiga förkortningar:

  • WSS: Windows SharePoint Services
  • MOSS: Microsoft Office SharePoint Server

WSS är "gratis" som har stuvat med windows server 2003 (eller åtminstone kan laddas ner från MS). Jag sätta citationstecken runt gratis eftersom du behöver en låda, en giltig O/S licens och förmodligen SQL (även om det finns en "fri" typ av SQL samt).

MOSS är byggd ovanpå WSS och fördjupa det. Det finns ingen mossa utan WSS. MOSS är inte gratis.

Kanske inte dag ett, men snart efter att du har vissa grundläggande kunskaper om plattformen, Det är viktigt att lära sig skillnaderna. Till exempel, en kraftfull webbdel, Webbdelen Innehållsfråga, är en mossa funktion och inte tillgänglig WSS. Människor gör ofta felaktiga antagandet att CQWP finns i WSS och sedan hamna kryptering för en utfyllnad åtgärd när de inser sina fel.

Hit böckerna

Jag började jobba med WSS/mossa på om 01/02/2007. Jag hade en liten tidigare erfarenhet av SPS 2003 men väldigt lite. Att få mig igång, Jag köpte den två böcker som listas här (http://paulgalvin.spaces.live.com/lists/cns!1CC1EDB3DAA9B8AA!203/).

Jag började med den stora blå administration bok. Naturligt, Det omfattar administration. På samma gång, Det ger en undersökning av alla funktioner på MOSS (och WSS funktioner samt).

För mig, Det är inte så viktigt att komma ihåg alla olika Detaljer (tills det är dags att bli certifierad) men det är bra att veta gränserna. (Jag följa detta samma tillvägagångssätt i första person shooters jag spela på xbox eller PC — Jag går in i ett rum och tenderar att göra en moturs loop tills jag får tillbaka där jag började. Jag mår bara bättre att veta formen på rutan jag i.)

Efter att ha läst den stora blå boken, Jag skulle läsa hela inuti WSS boken. Det dyker djupt in frågor som utvecklare bryr sig mest om.

Skapa en virtuell miljö

För att göra någon utveckling eller korrekt använda miljön, du behöver en full blåst windows-serveroperativsystem med SharePoint Designer, Visual Studio 2005 (2008 fungerar, men några användbara verktyg har ännu inte ska flyttas från och med skrivandet av denna artikel), InfoPath 2007 och lite andra grejer. Det finns många bra blogginlägg som beskriver denna process. Jag skulle ta en titt på dessa två:

Ytterligare, Andrew Connell delade sina erfarenheter med VMWare här:

Använda din favorit sökmotor för att se vad andra människor gör. Det är en användbar lärande övning i och för sig.

Spendera några minuter ilsket fördöma det faktum att du behöver en servermiljö att göra utveckling. Men … bry dig inte blogga om den eller skicka den till MSDN: S Forum. It’s already been done 🙂. I stället, omfamna det och gå vidare. Du kommer att bli bättre för det..

Bli certifierad

Jag tror att MS SharePoint certifieringssökvägen, som består fyra examina, är uttömmande. Jag föreslår att du följer deras online handboken och gör ditt bästa för att förstå de olika testets.

JAG Gör inte föreslå att du tar testet bara för att passera det. JAG Gör inte föreslå att du använder en av de "brain dumpen" stil 3: e part "verktyg" för passerar MS tester. Om du kan ta testet, passera den baserad på en kombination av egna riktade studier och praktisk erfarenhet, du ska vara en starkare utvecklare och jobb kandidat för det.

Det finns fyra tester i två "spår":

Utvecklare:

Admin:

Jag rekommenderar att utvecklare studera för alla dessa tentor. Du ska vara stark för dem, men jag antar att om du hoppat över de admin tentamina, du skulle få.

Jag hittade den WSS-versionen att vara betydligt mer utmanande än de motsvarande MOSS-versionerna, mycket till min förvåning. Jag var nyligen i en klass och flera andra gjorde samma sak.

Medan jag studerade för den 70-542 examen (MOSS utveckling) Jag spårade min studie resurser. Dessa kan vara bra att du också: http://paulgalvin.spaces.live.com/Blog/cns!1CC1EDB3DAA9B8AA!192.entry

Anslut dig till gemenskapen

SharePoint gemenskapen har ett livligt, stark och växande större hela tiden.

Du vill titta på följande för att starta:

  • Bloggar
  • Forum
  • CodePlex
  • Twitter

Bloggar

Om du inte förstår RSS, stoppa allt och lära sig det. Det kommer att ta 10 minuter att lära sig det, kanske en annan 10 minuter att hitta en webb baserad RSS-läsare (Jag gillar google reader, www.Google.com/ läsaren).

Start by adding this blog to your RSS reader 🙂

Nästa, Lägg till www.sharepointblogs.com till din läsare. De samlade många Bloggar i en enda foder.

Över tid, du hittar Bloggar som inte samman på så sätt. Bara lägga dem individuellt.

Jag prenumerera på några dussin Bloggar som jag har ackumuleras under det senaste året. Om du vill, Jag kan exportera min lista och e-post.

Så småningom, kan du starta din egen blogg. Personligen tror jag att en serie blogginlägg som beskriver en "nybörjare" framsteg lärande WSS/MOSS skulle vara en intressant serie. Jag önskar jag hade gjort det själv.

Forum

Jag deltar aktivt i två forum-grupper: MSDN och SharePoint universitet.

Forum är utmärkta ställen att lära sig. Folk frågar frågor, alltifrån från mycket enkla ("Hur skapar jag en webbplatskolumn") att i panik ("Min server är nere!") mer hypotetisk design frågor.

När du får en smak av miljön, ge dig ut och börja svara. Kort att direkt interagera med en kund, ingenting är bättre än detta för praktisk erfarenhet.

CodePlex

Gå till www.CodePlex.com.

Kontrollera ut och söka efter SharePoint-projekt.

Prenumerera på dagliga sammanfattningen Codeplex feed i din RSS-läsare.

Lägga till några nya SharePoint-projekt i din RSS-läsare.

Så småningom, efter läsa forum och vänd ner din egen WSS/MOSS demoner, överväga att sätta ihop din egen codeplex-projektet.

Twitter

När jag skriver detta blogginlägg, en hel del SharePoint folk har börjat använda Twitter.

Det är svårt att karakterisera Twitter. Du får väl kolla upp det själv.

Slutsats

Som sveper upp min färdplan och gör mig nuvarande. Jag börjat precis använda Twitter för två veckor sedan.

WSS/MOSS är en väldigt cool plattform och gemenskapen växer hela tiden. Använda gemenskapens resurser för att förbättra dina kunskaper och njuta av resan!

</slutet>

Prenumerera på min blogg.

Data Protection Manager: Verkar som en stor SharePoint Backup/återställning lösning

På den New Jersey SharePoint User Group möte i går kväll, Microsoft Sr. produktspecialist DuWayne Harrison presenteras Microsoft Data Protection Manager 2007. DuWayne var stor (och han fick stöd av en eller två kolleger från publiken vars namn jag inte minns). Du kan få presentationsmaterial här.

Fram till igår kväll, Jag har aldrig hört talas om DPM.

Jag är inte en system admin typ person, så jag skriver detta från SharePoint konsultens perspektiv och kan få vissa ord fel. Till mig, DPM är en lösning för säkerhetskopiering/återställning för Microsoft "saker":

  • Filer
  • SQL
  • O/S
  • Virtuella maskiner (levande backup av VM, även om VM sig körs Unix).
  • Bare metal recovery (dvs. katastrofala maskinvarufel).

Utöver sånt, som jag anser vara minimikrav för någon form av "real" Säkerhetskopiera/återställa produkt, DPM har också inbyggd intelligens för SharePoint. Det förstår om server gårdar och låter dig återställa:

  • Hela databaser (t.ex. innehåll, config, m.m.).
  • Webbplatssamlingar
  • Enskilda platser
  • Enskilda objekt (t.ex. dokument).

Faktiska återställningsprocessen innebär utvinna måldata från säkerhetskopian och spara den i en "Återställ gård" och sedan därifrån, flytta den till produktionsmiljön (eller varhelst du vill återställa). Jag tror detta är sömlös, men det fanns en stor vikt vid behovet av en "Återställ farm". Restaurera gården behöver inte överensstämmer med produktionsmiljön i varje särskilt (främst i fysiska topologin) men behöver matcha i termer av mallar, versioner, m.m..

Jag såg inte en fullständig heltäckande demo, men DuWayne visade skärm skott och några live-demonstrationer. Det verkar vara så bra som den måste vara, åtminstone för en måttlig storlek miljö.

Det slog särskilt prissättningen. Uppenbarligen, inte hålla mig till detta, men jag tror att den dyraste prissättning är ungefär som följer (i USD):

  • $600 för DPM sig.
  • Hårdvara för en DPM-server (och tillhörande saker för media och allt som).
  • $450 för varje server vill du säkerhetskopiera ("enterprise" licens).

En fem-servergrupp skulle kosta högst:

  • $600 för DPM
  • $450 x 5 servrarna = $2,250

Totala kostnaden i licenser: $2,850

I praktiken, Det skulle vara mindre. Du skulle inte nödvändigtvis behöver ha DPM installeras på varje frontwebbserver, till exempel. Du behöver inte nödvändigtvis enterprise licenser antingen.

Användargränssnittet är verkar mycket enkelt förmodligen skulle inte kräva någon särskild utbildning för att komma igång. Jag frågade om det specifikt och det finns tydligen en 1.5 dag klass tillgänglig, men det inte är uppenbart för mig att någon skulle verkligen behöva ta det.

Alla, Jag tycker det är verkligen värt att undersöka om du är ute och där letar en skyddslösning för SharePoint.

</slutet>

Prenumerera på min blogg.

Technorati Tags:

Twitter: http://twitter.com/pagalvin

Genomgång: Fixa medarbetare utbildning mall finns platser avregistrera bugg

Som många vet, mallen medarbetare utbildning som tillhandahålls av Microsoft här har en bugg som vi kan återge följande steg:

  • Skapa en klass med en max storlek på 10 studenter.
  • Registrera dig –> Totalt tillgängliga platser korrekt minskar vid en. Resultat: 9 tillgängliga platser.
  • Avregistrera: –> Bugg. Totalt tillgängliga platser bör ökas med ett. Det inte. Resultat: 9 tillgängliga platser per SharePoint, men i själva, Det finns 10 tillgängliga platser.

Lösning: Använda SharePoint Designer för att rätta till arbetsflödet.

Första, öppna upp webbplatsen. Mapplistan för mig ser ut så här:

bild

Om vi har en titt på "deltagare registrering" arbetsflöde, Vi ser att det finns ett steg märkt "Tillämpar sittplatser politik". Det ser ut så här:

bild

Detta steg i arbetsflödet uppdaterar objektet genom uppräkning "fylld säten" kolumn med metadata på banan. Om vi drar det mer i detalj, Vi ser detta:

bild

Det är all information vi behöver att fixa avregistreringen arbetsflödet.

Om vi vänder till avregistreringen arbetsflödet, Det finns ingen liknande arbetsflödessteg. Lägg till det följande:

1: Expandera "deltagare avregistreringen" och öppna upp XOML (se första skärm skott om du är förlorad).

2: Lägga till en ny arbetsflödesvariabel, "Nya fyllda stolar" av typ "Number".

3: Tilldela ett värde till "nya fylld säten" som visas:

bild

4: Minska de fyllda platserna av 1:

bild

5: Uppdatera relaterade kurs artikeln:

bild

6: Se till att alla åtgärder är i rätt ordning. För mig, Det ser ut så här:

bild

7: Avsluta arbetsflödet så att åter bygga upp det.

8: Testet.

</slutet>

Prenumerera på min blogg.

Technorati Tags: ,

Slumpmässiga lördag morgon Observation

Jag har varit i klasser de senaste två veckorna och en sak som slår mig är att det finns en hel del tankeväckande, smarta människor arbetar på SharePoint (som konsulter eller IT-personal) som inte blogg, Twitter, verka medveten om offentliga anslagstavlor som MSDN forum eller SharePoint universitet, upprätthålla Facebook- eller LinkedIn-profiler, m.m.. De är ren information konsumenter. Inte illa, bara intressant.

</slutet>

Technorati Tags:

Prenumerera på min blogg.

Webbdelen för innehållsfråga: Tal vid New York SharePoint-användare grupp

Jag kommer att tala med min kollega, Natalya Voskresenskaya, på den New York SharePoint-användare grupp möte onsdag den 7 maj.

Tack vare Bob räv för att kasta våra namn i hatt och hjälper få oss denna möjlighet!

Vårt övergripande ämne är webbdelen för innehållsfråga och vi hoppas att ge användbar information till två skilda målgrupper:

  • Företagsanvändare (icke-utvecklare): Visa hur CQWP kan konfigureras för att lösa vissa vanliga affärsproblem utan någon kodning.
  • Utvecklare: Visa hur CQWP kan utökas för att göra några ganska intressanta saker att en business användare normalt inte skulle känner sig bekväm att göra sig. Denna del av presentationen kommer att hjälpa användare förstår vad som är möjligt med den här webbdelen så att de kan ge bättre och mer realistiska krav att deras utvecklare partner.

Här är meddelandet NYSPUG skickas ut tidigare i veckan:

"Använda webbdelen för innehållsfråga att lösa affärsproblem".

Webbdelen för innehållsfråga MOSS 2007 (CQWP) användarna kan skapa anpassade vyer av data från många källor, och presentera informationen på ett ställe. Trots dess kraftfull fråga & innehåll förfining alternativ, CQWP är ofta en underskattad och förbises funktion. CQWP är både en "data utvinning motor" (hitta dokument eller listobjekt någonstans i en webbplatssamling) och även en förstklassig presentationsverktyg som gör att användarna kan kontrollera hur innehållet presenteras av omslag HTML och formatmallar för att formatera visningen av nästan något sätt du vill.

I denna demo-tung session, de kommer att visa hur man använder CQWP för att lösa affärsproblem av visar huvudfunktionerna.

  • använda standard CWQP funktioner, inklusive målgruppsanpassning

  • använda CWQP som ett rapporteringsverktyg som helst i en webbplatssamling via filterkriterier som "alla dokument som skapas idag".

  • ändra utseende & känslan i frågeresultatet att belysa affärsdata, Visa ytterligare kolumner med information, Visa information i ett rutnätsformat, och andra.

  • Visa hur CQWP kan hjälpa till innehållstypen administration (dvs. Hitta alla dokument för en viss innehållstyp för att förstå potentiella effekten av att ändra en CT-definition).

  • beskriva vissa begränsningar för CQWP

  • ger en lista över resurser för avancerade CQWP tekniker, inklusive Bloggar, ECQWP Codeplex projekt & MSDN-dokumentationen.

</slutet>

Prenumerera på min blogg.

Technorati Tags:

SNABB SharePoint-integrering: Köra en enkel fråga

Detta är en fortsättning i min snabb kodning miniserie för SharePoint folk. Biten av koden nedan utför en sökning efter ordet "test" i snabbt via en konsolapplikation. Uppenbarligen, Det är en hop, hoppa och hoppa undan för att avsluta denna logik inuti en webbdel eller ansökan sida:

med hjälp av System;
med hjälp av System.Collections.Generic;
med hjälp av System.Linq;
med hjälp av System.Text;
med hjälp av System.Collections.Specialized;
med hjälp av Com.FastSearch.Esp.Search;
med hjälp av Com.FastSearch.Esp.Search.Http;
med hjälp av Com.FastSearch.Esp.Search.Navigation;
med hjälp av Com.FastSearch.Esp.Search.Query;
med hjälp av Com.FastSearch.Esp.Search.Result;
med hjälp av Com.FastSearch.Esp.Search.View;
med hjälp av System.Collections;

namnområdet Conchango
{
    klass InvokeSimpleFASTQuery
    {
        statisk void Main(sträng[] args)
        {

            #regionen Initiera vår kommunikation med FAST
            ISearchFactory searchFactory;

            NameValueCollection nameValueCollection = nya NameValueCollection();

            nameValueCollection.Add("fastsearchengine", "Com.FastSearch.Esp.Search.Http.HttpSearchFactory");
            nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.QRServers", "fastdemoback:15100");
            nameValueCollection.Add("Com.FastSearch.Esp.Search.Http.RequestMethod", "GET");

            searchFactory = SearchFactory.NewInstance(nameValueCollection);

            #endregion #region Starta en fråga

            sträng queryString = "test";

            Fråga Query = nya Fråga(queryString);

            fråga.SetParameter(BaseParameter.KLUSTRING, falskt);
            fråga.SetParameter(BaseParameter.NAVIGERING, sant);
            fråga.SetParameter(BaseParameter.NAVIGATION_DEEPHITS, 100);

            ISearchView searchView;
            searchView = searchFactory.GetSearchView("sharepointconn");

            IQueryResult resultat = searchView.Search(fråga);

            Konsolen.WriteLine("Totalt resultat från Sök: [" + resultat.DocCount + "].");

            int docCounter = 0;

            medan (docCounter < resultat.DocCount)
            {

                docCounter   ;

                IDocumentSummary thisDocSummary = resultat.GetDocument(docCounter);

                Konsolen.WriteLine("[" + docCounter + "]: " + thisDocSummary.GetSummaryField("url").StringValue);

            } // medan

            Konsolen.ReadLine();
            #endregion

        }
    }
}

Det genererar följande resultat:

bild

</slutet>

Prenumerera på min blogg.

Technorati Tags: ,