Månedligt arkiv: November 2007

Du kan ikke slog Sharepoint's Reach

I de sidste to dage, Jeg har deltaget i to møder som vi præsenteret resultaterne af et SharePoint projekt. CIO og hans hold sluttede sig til det første møde. Der er standard og ikke særligt bemærkelsesværdige. IT-afdelingen er naturligvis involveret i en enterprise udrulningen af enhver teknologi projekt. Det andet møde udvidet til at omfatte en V.P. fra marketing, flere bestyrelsesmedlemmer der repræsenterer HR, Logistik, Fremstilling af, Kapitalprojekter, Kvalitet, Køb, Virksomhedernes udvikling og andre afdelinger (hvoraf nogle var ikke selv direkte involveret i den nuværende fase). Det er en mægtig bredt publikum.

I mit tidligere liv, Jeg arbejdede primært på ERP- og CRM projekter. De begge har en temmelig bred løsning domæne, men ikke så bred som SharePoint. At være fuldt realiseret, SharePoint projekter nå legitimt og nødvendigvis ind i alle kroge og hjørner af en organisation. Hvor mange andre virksomhedsløsninger har der slags nå? Ikke mange.

SharePoint klart repræsenterer en kæmpechance for os heldige nok til at være i dette rum. Det giver en stor teknisk mulighed (der er en eller anden måde vendt på hovedet Her under "Teknologier du skal Master"). Men endnu bedre, SharePoint udsætter os for en omfattende og bred vifte af forretningsprocesser via disse engagementer. Hvor mange CRM specialister arbejder med fremstilling side af virksomheden? Hvor mange ERP konsulenter arbejder med menneskelige ressourcer på talent erhvervelse? SharePoint overstiger dem begge.

Gerne noget, Det er ikke perfekt, men det er en forbandet god sted at være.

Til kærlighed [Udfyld dine mest elskede person/højere bliver], ikke ændre den ' titel’ webstedskolonne.

På den SharePoint-forummer, nogen spørger lejlighedsvis om "Ændre etiketten på titel" eller om "fjernelse titel fra lister".

Bundlinjen: Ikke gøre det.!

Desværre, brugergrænsefladen giver mulighed for en ensidig ændring af at kolonneetiket som vist:

billede

Titlen er en kolonne, der er tilknyttet punktet"" indholdstype. Mange, mange, mange CTS bruger denne kolonne og hvis du ændrer det her, det risler ud overalt. Der er en god chance for at du ikke havde til hensigt at. Du var sandsynligvis tænker for dig selv, "Jeg har en brugerdefineret liste liste og ' titel’ bare giver ikke mening som et kolonnenavn, så jeg har tænkt mig at ændre det til "statuskode’ og tilføje en beskrivelse kolonne." Men hvis du følger på tanken og omdøbe ' titel’ at 'statuskode', hver liste titel (herunder dokumentbiblioteker) ændringer til "statuskode" og du sandsynligvis ikke havde til hensigt at.

Det virkelige problem er, at dette er en en-vejs ændring. UI ved"" "titlen" er et reserveret ord. Så, Hvis du prøver og ændre "statuskode" tilbage til "Titel", det vil forhindre dig og nu du har malet dig selv ind i et hjørne using paint that never dries 🙂

Så hvad sker der hvis du allerede har ændret det? Jeg har ikke set det svar vi ønsker alle, der er en enkel og nem metode til at ændre etiketten tilbage til 'Titel'. Lige nu, det bedste råd er at ændre det til noget lignende "Doc/Varenr titel". Det er en generisk nok etiket, der ikke kan være alt for disharmonisk til dine brugere.

Jeg har nogle andre idéer, som er på min to-do liste af ting at forskning:

  • Kontakt Microsoft.
  • Gøre noget med objektmodellen, måske i forbindelse med en funktion.
  • Finde ud af-databaseskemaet og manuelt opdatere SQL. (Du bør kontakte Microsoft før du gør dette selv; det vil sandsynligvis annullere din supportkontrakt).

Hvis nogen ved hvordan man kan løse dette, Skriv venligst en kommentar.

Opdatere sen eftermiddag, 11/15: Jeg fandt dette link, der beskriver en metode til at skabe en type liste, der ikke har en kolonne: http://www.venkat.org/index.php/2007/09/03/how-to-remove-title-column-from-a-custom-list/

BDC ADF og din ven, CDATA

Jeg har bemærket nogle besværlige og unødvendige hånd-kodning af RdbCommandText i nogle eksempler (herunder MSDN dokumentation).

Jeg ønskede at påpege, at tilflyttere til BDC at kommandoer kan pakkes ind i et CDATA-koden i deres "naturlige" form. Så, denne akavet konstruktion:

<Ejendom Navn="RdbCommandText" Type="System.String">
Vælg dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.Settlement fra dbo.MCRS_SETTLEMENT
HVOR (id &gt;= @MinId) OG (id &lt;= @MaxId)
</Ejendom>

kan blive bedre repræsenteret på denne måde:

<Ejendom Navn="RdbCommandText" Type="System.String">
<![CDATA[
Vælg dbo.MCRS_SETTLEMENT.id, dbo.MCRS_SETTLEMENT.Settlement fra dbo.MCRS_SETTLEMENT
HVOR (id >= @MinId) OG (id <= @MaxId)
]]>
</Ejendom>

</slutningen>

BDC-Primer

Intro til BDC

Funktionsdygtige eksempel: BDC ADF der tilsluttes SQL database med integreret bruger-id og adgangskode

Jeg havde brug for ledning op mos til en SQL database via BDC-. Henblik på test/POC, Jeg ønskede at integrere SQL konto brugerid og password i den automatiske Dokumentindføring. Startende med denne skabelon (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Jeg oprettede en ADF, der forbinder til en bestemt forekomst af SQL server og logger ind med et bestemt bruger-id og password og vist i denne kodestump:

  <LobSystemInstances>
    <LobSystemInstance Navn="ClaimsInstance">
      <Egenskaber>
        <Ejendom Navn="AuthenticationMode" Type="System.String">PassThrough</Ejendom>
        <Ejendom Navn="DatabaseAccessProvider" Type="System.String">SqlServer</Ejendom>
        <Ejendom Navn="RdbConnection-datakilde" Type="System.String">faktiske serveractual forekomst</Ejendom>
        <Ejendom Navn="RdbConnection første butik" Type="System.String">faktiske indledende katalog</Ejendom>
        <Ejendom Navn="RdbConnection integreret sikkerhed" Type="System.String">SSPI</Ejendom>
        <Ejendom Navn="RdbConnection samle" Type="System.String">falsk</Ejendom>

        <!-- Disse er de vigtigste værdier: -->
        <Ejendom Navn="RdbConnection bruger-ID" Type="System.String">enfaktiske bruger-ID</Ejendom>
        <Ejendom Navn="RdbConnection adgangskode" Type="System.String">selve Password</Ejendom>
        <Ejendom Navn="RdbConnection Trusted_Connection" Type="System.String">falsk</Ejendom>

      </Egenskaber>
    </LobSystemInstance>
  </LobSystemInstances>

Det er ikke en bedste praksis, men det er nyttigt for en hurtig og enkel konfiguration til test. Dette var overraskende svært at finde ud af. Jeg har aldrig fundet en funktionel eksempel med søgeord:

  • ADF indlejret userid og password
  • integrere bruger-id og adgangskode i ADF'en
  • integrere bruger-id og adgangskode i ADF'en bdc
  • SharePoint BDC-primer
  • SharePoint integrere bruger-id og adgangskode i ADF'en

</slutningen>

Abonner på min blog.

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"&amp;"
  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!