Månedlige Arkiver: November 2007

Du kan ikke slå SharePoints rekkevidde

I løpet av de siste to dagene, Jeg har deltatt i to møtene som vi presenterte resultatene av et SharePoint-prosjekt. CIO og hans team ble det første møtet. Det er standard og ikke spesielt kjent. IT-avdelingen er åpenbart involvert i en enterprise utrulling av noen teknologi-prosjekt. Det andre møtet utvidet til å omfatte en V.P. fra markedsføring, flere direktører som representerer HR, Logistikk, Produksjon, Hovedstaden prosjekter, Kvalitet, Kjøpe, Corporate development og andre avdelinger (noen av dem var ikke selv direkte involvert i den gjeldende fasen). Det er et mektig bredt publikum.

I mitt tidligere liv, Jobbet jeg hovedsakelig på ERP og CRM prosjekter. Begge har en ganske bred løsning domene, men ikke så bredt som SharePoint. Fullt ut realisert, SharePoint prosjekter kommer legitimt og nødvendigvis inn hver nook og cranny av en organisasjon. Hvor mange andre bedriftsløsninger har slags nå? Ikke mange.

SharePoint tydelig representerer en enorm mulighet for de av oss heldige nok være her. Det gir en stor teknisk mulighet (som er liksom slått på hodet her under "Teknologier du må mestre"). Men enda bedre, SharePoint eksponerer oss til et omfattende og bredt spekter av forretningsprosesser gjennom disse engasjementer. Hvor mange CRM spesialister i arbeidet med produksjon siden av selskapet? Hvor mange ERP konsulenter arbeidet med menneskelige ressurser på talent oppkjøpet? SharePoint overskrider begge.

Liker noe, Det er ikke perfekt, men det er en forbannet godt sted å være.

For kjærligheten til [Fyll ut ditt mest elsket person/høyere vesen], ikke endre det ' tittel’ områdekolonne.

På den SharePoint-Forum, noen spør ganger om "endre etiketten for tittel" eller om å "fjerne tittel fra lister".

Bunnlinjen: Ikke gjør det.!

Dessverre, brukergrensesnittet lar en enveis endring av denne etiketten som vist:

bilde

Tittelen er en kolonne med den "varen" innholdstype. Mange, mange, mange CTS bruke kolonnen og hvis du endrer det her, det krusninger ut overalt. Det er en god sjanse for at du ikke mente for at skal skje. Du var sannsynligvis tenke til deg selv, "Jeg har en egendefinert oppslagsliste og ' tittel’ bare gir ikke mening som et kolonnenavn, så jeg kommer til å endre den til "statuskode’ og legge til en beskrivelse-kolonnen." Men hvis du følger gjennom på den tanken og gi nytt navn ' tittel’ til "statuskode", hver tittelfeltet (inkludert dokumentbiblioteker) endringer i "statuskode" og du sannsynligvis ikke tenkt for at skal skje.

Det virkelige problemet er at dette er en. UI vet"" tittelen"" er et reservert ord. Så, Hvis du prøve og endre "statuskode" tilbake til "Title", det vil hindre deg og nå du har malt deg inn i et hjørne using paint that never dries 🙂

Så hva skjer hvis du allerede forandret den? Jeg har ikke sett svaret vi ønsker, som er en enkel og enkel metode for å endre etiketten til 'Tittel'. akkurat nå, det beste rådet er å endre det til noe som "Doc/vare tittel". Det er en generell nok etikett som ikke kanskje er altfor risting for brukerne.

Jeg har noen andre ideer som er på min gjøremålsliste ting til forskning:

  • Kontakt Microsoft.
  • Gjøre noe med objektmodellen, kanskje sammen med en funksjon.
  • Regne ut databaseskjemaet og manuelt oppdatere SQL. (Du bør kontakte Microsoft før du gjør det selv; det vil trolig kansellere din kontrakt).

Hvis noen vet hvordan å løse, Vennligst legg inn en kommentar.

Oppdatere ettermiddag, 11/15: Jeg fant denne linken som beskriver en metode for å lage en type liste som 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 venn, CDATA

Jeg har lagt merke til noe vanskelig og unødvendig hånd-koding av RdbCommandText i eksempler (inkludert MSDN-dokumentasjonen).

Jeg ønsket å påpeke nykommere til BDC at kommandoer kan innpakket i en CDATA-kode i deres "naturlige" skjemaet. Så, Denne vanskelig konstruksjon:

<Egenskapen navn="RdbCommandText" Type="System.String">
Velg dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement fra dbo.MCRS_SETTLEMENT
HVOR (ID &gt;= @MinId) OG (ID &lt;= @MaxId)
</Egenskapen>

kan vises bedre på denne måten:

<Egenskapen navn="RdbCommandText" Type="System.String">
<![CDATA[
Velg dbo.MCRS_SETTLEMENT.ID, dbo.MCRS_SETTLEMENT.Settlement fra dbo.MCRS_SETTLEMENT
HVOR (ID >= @MinId) OG (ID <= @MaxId)
]]>
</Egenskapen>

</slutten>

BDC Primer

Intro til BDC

Funksjonell eksempel: BDC ADF som kobles til SQL-database med innebygde bruker-id og passord

Jeg trengte å wire opp MOSS til en SQL-database via BDC. For testing/POC formål, Jeg ønsket å bygge SQL regningen bruker id og passord i den automatiske Dokumentmateren. Starter med Denne malen (http://msdn2.microsoft.com/en-us/library/ms564221.aspx), Jeg opprettet en automatisk dokumentmater som kobler til en bestemt SQL server-forekomst og logger på med en bestemt brukerid og passord og vist i denne kodebiten:

  <LobSystemInstances>
    <LobSystemInstance navn="ClaimsInstance">
      <Egenskaper>
        <Egenskapen navn="AuthenticationMode" Type="System.String">Gjennomgang</Egenskapen>
        <Egenskapen navn="DatabaseAccessProvider" Type="System.String">SqlServer</Egenskapen>
        <Egenskapen navn="RdbConnection-datakilde" Type="System.String">faktisk serveractual forekomst</Egenskapen>
        <Egenskapen navn="RdbConnection første katalog" Type="System.String">faktisk første katalog</Egenskapen>
        <Egenskapen navn="RdbConnection integrert sikkerhet" Type="System.String">SSPI</Egenskapen>
        <Egenskapen navn="RdbConnection Pooling" Type="System.String">USANN</Egenskapen>

        <!-- Disse er sentrale verdier: -->
        <Egenskapen navn="RdbConnection bruker-ID" Type="System.String">enfaktisk bruker-ID</Egenskapen>
        <Egenskapen navn="RdbConnection passord" Type="System.String">faktisk passord</Egenskapen>
        <Egenskapen navn="RdbConnection Trusted_Connection" Type="System.String">USANN</Egenskapen>

      </Egenskaper>
    </LobSystemInstance>
  </LobSystemInstances>

Det er ikke en beste praksis, men det er nyttig for en rask og enkel konfigurasjon for testing. Dette var overraskende vanskelig å finne ut. Jeg har aldri funnet en funksjonell eksempel med søkeord:

  • ADF innebygd brukerid og passord
  • bygge inn brukernavn og passord i automatisk dokumentmater
  • bygge inn brukernavn og passord i adf bdc
  • SharePoint bdc primer
  • SharePoint bygge inn brukernavn og passord i automatisk dokumentmater

</slutten>

Abonner på bloggen min.

SPD egendefinerte arbeidsflythandlinger — streng manipulasjon forbedringer

Om en uke siden, Jeg startet opp en codeplex prosjekt som gir en enkel og rimelig generisk metode for å legge til egendefinert handling funksjoner SharePoit Designer arbeidsflyt. Det er beskrevet her: http://www.codeplex.com/spdwfextensions. Utover bare å gi en ramme, det skal også gi en rekke nyttige funksjoner som vil gjøre SPD nyttig/fleksibel/kraftigere.

Her er de gjeldende planlagte funksjonene for versjon 1.0: https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=spdwfextensions&ReleaseId=8280

Hvis noen har noen interesse i dette prosjektet, Vennligst legg igjen en kommentar eller start/Legg til en diskusjon her: http://www.codeplex.com/spdwfextensions/Thread/List.aspx

Her er gjeldende sett med funksjoner som har vært kodet (skjønt testet ikke fullstendig som 11/08/07):

Funksjonen Beskrivelse (Hvis ikke samme som .net-funksjon)
NUM-poster() Returnerer antallet "postene" i en streng som angitt skilletegn.

For eksempel: NUM-oppføringer i en streng "en,b,c" med skilletegnet"," = 3.

Oppføring() Returnerer den n'te tokenet i en streng som angitt skilletegn.
Lengde String.Length
Erstatt() String.Replace()
Inneholder() String.Contains()
Returnerer ordet "true" eller ordet "false".
Delstreng(Start) String.Substring(Start)
Delstreng(Start,slutten) String.Substring(Start,slutten)
ToUpper() String.ToUpper()
ToLower() String.ToLower()
StartsWith() String.StartsWith()
Returnerer ordet "true" eller ordet "false".
EndsWith() String.EndsWith()
Returnerer ordet "true" eller ordet "false".

Rask & lett url koding desktop verktøy

Jeg har behov til url-kode noe strenger denne uken og slo sammen en en liten nytte det jeg trodde jeg ville sette på SkyDrive for samfunnet.

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

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

Her er et skjermbilde:

bilde

Rask og enkel: Bygge inn en hyperkobling i webdelen for datavisning XSLT

OPPDATERINGEN (01/17/08): Dette blogginnlegget snakker om mer hyperkobling XSL godhet: http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/rewriting-links-in-search-results-xslt.

Oversikt og mål: Jeg hadde laget et enkelt stolpediagram som komponent på et instrumentbord. Jeg vil lagre detaljene på å bygge diagrammer for en annen post, men jeg fant ikke opp det teknikken (eller spørsmålstegnet, for saks skyld). Det viste seg det var en feil i diagrammet, og mens jeg løst som, Jeg benyttet anledningen til å konvertere noen etiketter i hyperkoblinger som pekte på den underliggende listen bak diagrammet. For eksempel, Det er en etikett med verdien "Hold". Jeg ønsket å slå etiketten til en hyperkobling, slik at brukeren kan klikke på den og gå til bestemte oppføringer i listen som er "Hold".

Trinn:

  1. Bruk visual studio for å SharePoint-aware intellisense.
  2. Kopier den DVWP XSLT til visual studio (opprette et tomt prosjekt, Legg en XSL-fil til prosjektet).
  3. Kopiere koblingen du vil bruke til utklippstavlen.
  4. Lim den inn i den riktige lokasjonen i XSL.
  5. Konvertere URL argumentet skilletegn på spørsmålet hyssing fra"&" til"&amp;"
  6. URL-kode argumenter.
  7. Vikle den inne en <et href…> </en>

Eksempel:

Jeg har en URL-adresse:

http://[Server]/[nettstedet]/Lists/Open Positions/AllItems.aspx?Vis ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutterer&FilterValue1 = vent

Jeg konvertere den til:

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

Jeg har manuelt forvandlet det første argumentet fra:

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

til:

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

(I dette, åpningsparentes transformeringene til % 7b og avsluttende klammeparentes transformeringer til %7 d)

Andre og tredje argumentene’ parametere ("FilterField1 =Rekrutterer" og "FilterValue1 =Hold" henholdsvis) trenger ikke å være url-kodede fordi de ikke inneholder usikre tegn.

Notater:

Denne teknikken bør generelt arbeide hvor som helst du vil bygge inn en hyperkobling i XSLT der hyperkoblingen inneholder parameterne i Webadressen som:

http://[Server]/[nettstedet]/Lists/Open Positions/AllItems.aspx?Vis ={84EEA2F5-121B-40B7-946F-0FA704A1DAA1}&FilterField1 = rekrutterer&FilterValue1 = vent

Jeg fikk selve Webadressen ved tilgang til den egendefinerte listen og manuelt filtrering på statuskolonnen (merket "rekrutterer" ovenfor).

Rask og enkel: Aktiver SharePoint Designer arbeidsflyt oppdatere et InfoPath-skjema

Scenario: Jeg har et InfoPath-skjema som front-ender en arbeidsflytsprosess implementert ved hjelp av SharePoint Designer. På et tidspunkt, en leder må godkjenne skjemaet. Siden jeg kan ikke telle på Arbeidsflytlogg å møte min revisjon krav, Jeg vil lagre min egen overvåking melding direkte på selve skjemaet.

Oversikt:

Utforme skjemaet og publisere den som en innholdstype og selve skjemaet til et dokumentbibliotek. Mark ønsket felt som oppdateres fra MOSS. Skjemaet er knyttet til innholdstypen og innholdstypen er "knyttet" til et skjemabibliotek (eller mange, hvis du vil). Skrive en arbeidsflyt som oppdaterer feltet.

Fremgangsmåten:

  1. Opprett et dokumentbibliotek. Dette vil holde din InfoPath-mal.
  2. Opprett et skjemabibliotek.
  3. Opprette InfoPath-skjemaet. Inkluder et tekstfelt, "Overvåkingsmeldingen".
  4. Publisere skjemaet som en innholdstype (IKKE et dokument).
  5. Under utfylling publisering dialoger:
    en) Lagre XSN-filen i dokumentbiblioteket (Trinn #1).
    b) Publisere overvåkingsmeldingen"" feltet og merke sant: "Tillat brukere å redigere data i dette feltet ved hjelp av et dataark eller en egenskapsside".
    c) Opprett en ny innholdstype og gi den et passende navn.
  6. Tilgang til skjemabiblioteket.
    en) Gå til avanserte innstillinger og aktiverer skjemabiblioteket å behandle innholdstyper.
    b) Velg nyopprettede innholdstypen (5c ovenfor). Det blir gruppert under "Microsoft InfoPath" (eller lignende).
    c) Fjerne standard "Form" innholdstypen fra biblioteket.
    d) Mark biblioteket til "Vis som webside" slik at skjemaet vil åpne fra SharePoint og ikke InfoPath workstation-klient.
  7. Gå tilbake til skjemabiblioteket riktig og klikk "ny" bare bekrefte at skjemaet er skrevet riktig og handle som du vil..
  8. Fyr opp SharePoint Designer og gå til webområdet som er vert for skjemabiblioteket (fra trinn 2).
  9. Opprett en ny arbeidsflyt knyttet til skjemabiblioteket.
  10. Legge en handling "Angi feltet i gjeldende element". Du bør forvente SharePoint Designer listen du er feltet, "Overvåkingsmeldingen". Tilordne det en verdi.
  11. Klikk Fullfør og gå tilbake til skjemabiblioteket.
  12. Opprette et nytt skjema og sette noen testverdi i overvåkingsmeldingen"" feltet.
  13. Lagre det og gå tilbake til skjemabiblioteket.
  14. Høyreklikk, Velg "arbeidsflyt" og starte arbeidsflyten.
  15. Det bør kjøre nesten umiddelbart. Trekke opp skjemaet (fra trinn 12) og hvis alt har gått for å planlegge, "Overvåkingsmeldingen" er tilordnet uansett verdien du angav i trinn 10.

Notater:

Ikke alle kontroller kan konfigurert for denne toveis kommunikasjon. For eksempel, Det synes ikke å gjennomføre en SPD arbeidsflyt som endrer tekstfelt innpakket i gjentatte inndelinger.

En av den viktige ta plasseringen her er at vi virkelig har laget en innholdstype med en tilknyttet mal. Dette også mulig å lagre flere InfoPath-skjemamaler i samme skjemabiblioteket.

Dette krever skjemaer server. Det kommer absolutt ikke til å arbeide i en WSS 3.0 miljø og sannsynligvis enda krever en Enterprise SharePoint-miljøet.

Beagle har landet (Oktober 2007 problemet)

(Dette er faktisk en litt gammel nyheter, men som min favoritt brannstasjon motto proklamerer, "Bedre sent enn aldri").

Sjekk det ut her: http://www.sharepointbeagle.com/

Hvis du ikke allerede har, Sørg for å melde seg på.

selvfølgelig, Les min artikkel om virkelige verden SharePoint prosjekter (inkludert definisjon av krav, KPIS, innholdstyper, oversikter og mer) i tillegg min kollega artikkel om webdelen for innholdsspørring.

Det er mange andre gode ting også.

Hvordan fjerne “Vis alt områdeinnhold” kobling

Jeg spurte dette spørsmålet nesten hver uke, vanligvis i forbindelse med en sikkerhet diskusjon. En administrator/site creator har klargjort et område, konfigurerte sikkerhet, arrangert web deler og tilpasset Hurtigstart for å gi det oh-så-perfekte settet med alternativer for sluttbrukeren. men, esken, Du kan ikke fjerne den "Vis alt områdeinnhold" kobling.

Mark Wagner gir svaret her (http://www.crsw.com/mark/Lists/Posts/Post.aspx?ID=36). Hans skrive opp er veldig bra på to nivåer. Det gir et svar på spørsmålet, "Hvor gjøre jeg fjerne det Vis alt områdeinnhold" kobling? Deretter, svar umiddelbart etterarbeid spørsmålet: Hvordan lar jeg lett visningen alt områdeinnhold kobling på område-for-område-basis?

Som en bonus: Hans tilnærmingen fungerer for WSS, ikke bare MOSS.

</slutten>

Abonner på bloggen min!