Månedlige Arkiver: Februar 2008

Mindre offentlig kunngjøring: Windows Live sikkerhetsinnstillinger og kontakte Space-eiere

Jeg får en håndfull meldinger fra personer via innebygget "send en melding" funksjonen Microsoft gir levende mellomrom (som også er vert for bloggen min) hver måned.

Om lag en tredel av tiden, disse brukerne har sikret deres live spaces-konto slik at jeg ikke kan svare. Dette er en slags anti-spam funksjon jeg antar.

</slutten>

Enkel forklaring: “Verdien faller ikke innenfor forventet område.”

OPPDATERINGEN: En anonym plakat igjen en flott kommentar om interne navnene. Les det.

Når du arbeider med hendelsesmottakere og annen kode som refererer til SharePoint-listeelementer via objektmodellen, Jeg gjøre ofte feil som genererer denne feilen under kjøring:

Feil ved lasting og kjører hendelsesmottaker Conchango.xyzzyEventReceiver i xyzzy, Versjon = 1.0.0.0, Culture = neutral, PublicKeyToken = 0dc50a750396c3ac. Tilleggsinformasjon er under. : Verdien ikke er innenfor det forventede området.

Jeg tror dette er en ganske generisk feil som er potensielt forårsaket mange forskjellige måter. Men, en enkel forklaring er at jeg henviser en feltet feil. Hvis feltet er "Forfallsdato", Jeg må referere til den som dette i en hendelsesmottaker:

Egenskaper.ListItem["Forfallsdato"]

Når jeg feilstaver eller bruke feil saken referert feltet, SharePoint genererer ovenfor nevnte kjøretidsfeil. For eksempel, Dette er feil:

Egenskaper.ListItem["forfallsdato"]

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

Sluttbrukeren Quick tips: Sorter visninger i et dokumentbibliotek, Liste, osv..

Vi kan, bør og oppretter mange visninger i SharePoint-lister (dokumentbiblioteker, egendefinerte lister, osv.). SharePoint viser alltid tilgjengelige visninger i alfabetisk rekkefølge. Vi kan ikke forandre dette ved hjelp av funksjonen for. Hvis det kan gjøres via tilpasning (og jeg er ikke sikker på at det kan), Det er langt til teknisk for din typiske sluttbruker.

Hvis du vil styre rekkefølgen som SharePoint viser tilgjengelige visninger, bare før opp før et nummer eller en bokstav til visningen, som i:

1 – Etter regning
2 – Alle dokumenter
3 – Forfallsdatoen

-eller-

A – Etter regning
B – Alle dokumenter
C – Forfallsdatoen

Jeg har også laget visninger formålet er strengt å mate en KPI. Jeg har fulgt denne navnekonvensjonen:

Z_KPI_[Beskrivelse]

Som fører til at min "KPI" visninger vises nederst på listen.

</slutten>

Abonner på bloggen min.

Technorati Merkelapper: ,

Søndag Funny: “Da jeg var liten gutt”

Som forelder, et sted langs linjen jeg oppdaget den "da jeg var liten gutt" knep.

Min sønn, sannsynligvis fire eller fem samtidig, spilte en ballong og som de fleste små gutter som spiller med ballonger, Han spratt den. Han var veldig opprørt. Verden hadde kommet til en slutt. Jeg sa til ham, «da jeg var liten gutt, Jeg hadde en ballong og det spratt og til slutt, Jeg fikk en ny ballong." Det syntes å hjelpe ham å takle hans tap og førte til en morsom snakke om hvordan det var da jeg var liten gutt.

Som fungerte bra som en trøst teknikk og jeg brukte den en flere ganger over de neste perioden. Jeg fikk problemer når når hans Monster Rancher 3 skapning døde. Jeg snakket om hvordan min hund, Prins, døde i en bilulykke. denne gangen, hans svar var, "Nå jeg føler dårlig om to ting!" Jeg shied unna den "når jeg var liten gutt" teknikk for trøst etter at.

Før døde hunden hendelsen, men, Jeg hadde også begynt å bruke teknikk for å overtale ham til å gjøre husarbeid. «Da jeg var liten gutt, Jeg måtte gå ut og få avisen", "rydde rommet mitt", "få mamma henne kaffekopp", osv..

Dette var ganske vellykket for en stund, men han begynte å stadig gjøre opprør mot tyranni min barndom. En hendelse, spesielt, markerte slutten. Jeg fortalte ham å bringe søppel bokser fra fortauskanten tilbake til garasjen. Han hevdet og jeg svarte, «Da jeg var liten gutt, Jeg måtte ta søpla tilbake til garasjen." Han svarte, "Oh ja! Vel da du var liten gutt, Det var dum!".

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

Visninger og kolonner i lister og dokumentbiblioteker kan ikke sikres

OPPDATERINGEN (02/29/08): Dette nye codeplex prosjektet synes en metode for å sikre enkeltkolonner: http://www.codeplex.com/SPListDisplaySetting. Hvis du har noen erfaring med det, Legg igjen en kommentar.

Forum Plakater stille ofte et spørsmål som dette: "Jeg har utsikt manager og og personalet utsikt en liste. Hvordan sikrer jeg manager visningen slik at ansatte ikke kan bruke den?"

De spør også ofte en relaterte spørsmål: "Jeg ønsker å sikre en bestemt metadata-kolonne slik at bare administratorer kan redigere kolonnen mens andre ikke kan engang se det."

Disse svarene gjelder både WSS 3.0 og MOSS:

  • SharePoint gir ikke ut av esken støtte for å sikre visninger.
  • SharePoint gir ikke ut-av-støtte for sikkerhet kolonner.

Det finnes flere teknikker som kan følge for å møte slike sikkerhetskrav. Her er hva jeg kan tenke på:

  • Bruke out-of-the-box sikkerhet på elementnivå. Utsikt ære alltid sikkerhet varekonfigurasjon. Hendelsesmottakere og/eller arbeidsflyt kan automatisere sikkerheten oppgave.
  • Bruke personlige visninger for "privilegert" visninger. Dette er enkelt nok å sette opp. Men, på grunn av deres "personlige" natur, disse må konfigureres for hver bruker. Bruk standard sikkerhetskonfigurasjon hindre andre i å opprette en personlig visning.
  • Bruke en webdelen for datavisning og implementere en slags AJAXy sikkerhetsløsning for trimming.
  • Roll din egen liste utfoldelse funksjonaliteten og innlemme sikkerhetstrimming på kolonnenivå.
  • Endrer dataregistreringsskjemaer og bruker JavaScript sammen med sikkerhetsmodellen implementere kolonnenivå sikkerhetstrimming.
  • Bruke et InfoPath-skjema for dataregistrering. Implementere kolonnenivå sikkerhetstrimming via web service samtaler til SharePoint og betinget Skjul felt etter behov.
  • Roll din egen ASP.NET data oppføring funksjon som implementerer kolonnen sikkerhetstrimming.

Ingen av disse alternativene er virkelig så stor, men det er minst en sti å følge hvis du må, Selv om det er vanskelig.

NOTE: Hvis du går ned noen av disse banene, ikke glem "handlinger-> Åpne Windows Utforsker". Du vil være sikker på at du tester med funksjonen å sørge for at det ikke fungerer som en "bakdør" og beseire din sikkerhetsoppsett.

Hvis du har andre ideer for eller erfaringer med å sikre kolonner eller visninger, vær så snill email meg eller Legg igjen en kommentar og jeg vil oppdatere dette oppslaget etter behov.

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

Quick Tips: BDC ADF versjonsnumrene er din venn

Hvis du er hånd-koding ADF filer og gjør mye av kode/import/test, Bruk versjonsnummeret til å gjøre livet ditt enklere.

Jeg hater å innrømme det., men før denne uken, Jeg var alltid slette den automatiske Dokumentmateren og importerer den på nytt. Dette vil bryte min forretningsdatakolonner og gjøre meg re-wire dem. Alle unødvendige.

Fil dette under "det er tydelig når du ser det".

Eksempel:

<LobSystem
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Type="WebService" Versjon="1.2.0.0" navn="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Endre den versjonen og importen og den eksisterende forretningsdatakolonnen bruker den oppdaterte versjonen automatisk med ytterligere konfigurasjon kreves.

</slutten>

Abonner på bloggen min.

Technorati Merkelapper:

Løsning: BDC Picker viser bare én kolonne med resultater

I mitt pågående forsøk på å gi en mer nyttig oppslagskolonnen ved hjelp av BDC, Jeg traff en vegg med BDC plukkeren. Hvis du ikke ser det, BDC plukkeren ligner på en folk-velgeren bortsett fra at det fungerer med kolonner av typen "business data".

Du tilgang plukkeren ved å klikke på ikonet åpen bok av en forretningsdatakolonne som vist:

bilde

Bildet over viser en forretningsdatakolonne kalles "Master dokument-Id". Denne kolonnen er koblet, via BDC, til en webtjeneste. Webtjenesten returnerer to kolonner med informasjon: Dokument-ID og tittel. Business formålet her er å gi en "dette dokumentet er basert på" funksjonen. Brukere velge en "master" dokumentet, og når de spare, en hendelsesmottaker kopierer meta datafelt fra refererte master.

Som standard, BDC plukkeren ser slik ut når jeg søker etter et dokument med ID = "38":

clip_image002

Det er nyttig, men ikke gode nok. Folk tror ikke i IDene, de tenker i form av titler og/eller andre metadata. Plukkeren lar deg søke i andre kolonner (f.eks. Tittel) men ikke vise den faktiske listen over titler funnet, bare deres DocId er som vist her:

clip_image002[1]

(Skjermbildet er ikke så stor fordi jeg ikke gjorde plukke et søk som alle gyldige resultater, men du kan se at hvis det hadde funnet noen resultater, det ville bare ha vist Docids, ikke titler).

Jeg søkte høyt og lavt for svaret på dette og ikke. Min kollega, den ærverdige Jonathan Bradshaw, hadde møtt og løst problemet. Da jeg nådde til ham om hjelp, han pekte meg i riktig retning.

Konfigurere plukkeren for å vise flere kolonner via ShowInPicker»" eiendom i den automatiske Dokumentmateren:

<Egenskapen navn="ShowInPicker" Type="System.Boolean">sann</Egenskapen>

Mer detaljert:

  <!-- Tittel -->
  <TypeDescriptor TypeName="System.String" navn="Tittel" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Tittel</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Egenskaper>
      <Egenskapen navn="DisplayByDefault" Type="System.Boolean">sann</Egenskapen>
      <Egenskapen navn="ShowInPicker" Type="System.Boolean">sann</Egenskapen>
    </Egenskaper>
  </TypeDescriptor>

Denne egenskapen presentere et mindre problem. Så snart du setter den gang, du må angi det for hver kolonne du vil vise. I mitt tilfelle, BDC picker viste DocId som standard. Men, Når jeg lagt "ShowInPicker" tittel, DocId vises ikke lenger. Jeg løste det ved å uttrykkelig angi egenskapen ShowInPicker for Doc-ID.

Her er resultatet:

bilde

(Jeg skal forklare de odde-ser "168 – CamlSchema.xsd" bygging i en fremtidig blogginnlegg. Kort sagt, Det er en sammensatt streng som gir en litt bedre brukeropplevelse).

selvfølgelig, å ha skrevet denne bloggpost, Jeg gjorde et søk etter "ShowInPicker" og fant mange treff, inkludert denne: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Det forklarer betydningen av denne eiendommen sammen med noen andre gode BDC ting.

</slutten>

Abonner på bloggen min!

Technorati Merkelapper:

Rask & Enkel: Opprett en mappe og tilordner en innholdstype (Eller, Har din KPIer og spise dem også)

For å omgå en KPI-problemet Jeg skrev om her, Jeg did noe tester og oppdaget at KPIS arbeid mot mapper med metadata på samme måte som de jobber mot dokumenter eller listeelementer. Jeg viste den ut ved å opprette en ny innholdstype basert på mappen innhold og lagt noen felt. Jeg laget noen indikatorer og bevist for meg selv som KPIer virker som forventet. Dette var velkomne nyheter. Det er ikke perfekt, fordi neddrillingen du får fra er KPI mot mappene ikke akkurat hva du vil. Dette er ikke mye en ulempe i mitt tilfelle fordi 1) sluttbrukeren ikke vet bedre og 2) neddrillingen går til en mappe. De klikker mappenavnet og de er på elementet. Det er to klikk i stedet for en, som er ikke slutten av verden.

Dette kom pent med arbeidet jeg gjorde. Jeg oppretter en mappe for hvert dokument som blir lastet opp. Dette gjøres via en hendelsesmottaker. Som et resultat, Det er et stykke kake å holde den overordnet mappe metadata som er synkronisert med KPI-drevet metadata fra selve filen siden avløp er allerede på plass. This allows me to have my KPI’s and eat them too 🙂

Jeg endret hendelsesmottaker legge til mappen og deretter angi denne nye mappen innholdstype min egendefinerte KPI-vennlig innholdstype. Tilværelse did kunsten:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumenter").Undermapper;
  SPFolder addedFolder = srcFolders.Add(egenskaper.ListItem.ID.ToString());
  SPContentTypeId kpiCT = nye SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Innholdstype-ID"] = kpiCT;
  addedFolder.Item.Update();

Å finne de faktiske innholdstype-ID, Jeg åpnet denne innholdstypen via områdeinnstillinger og avskrift/pasta det fra URL-adressen som vises:

bilde

</slutten>

Abonner på bloggen min!

Technorati Merkelapper: ,

Rask og enkel: Få SPFolder av en SPListItem i en Event-mottaker

Jeg hater å innrømme det., men jeg kjempet med dette alle dag. Min hendelsesmottaker må oppdatere et felt i den overordnede mappen. Litt viser hvordan du gjør det:

privat ugyldige UpdateParentFolder(SPItemEventProperties Egenskaper)
{

SPFolder thisItemFolder = egenskaper.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ Godkjenningsstatus"] = "Gode nyheter, alle!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

I dette tilfellet, Jeg arbeider med et dokumentbibliotek og egenskapene kommer fra en ItemAdded-hendelse.

Trikset er at du ikke kan få SPFolder av varen direkte fra selve elementet (dvs.. egenskaper.ListItem.Folder er null). I stedet, gå til listeelementet tilknyttede filen og få filmappe.

</slutten>

Abonner på bloggen min!

Technorati Merkelapper:

Ennå en annen hendelse mottaker Debug knep

Jeg sikker på at ikke jeg er den første personen til å komme opp med dette. Men, Jeg har ikke merke noen publisere et triks som dette siden jeg startet betalende hensyn til samfunnet i juli. Så, Jeg tenkte jeg skulle poste den denne rask og enkel feilsøking tips.

Jeg jobber med en hendelsesmottaker begynt å generere denne feilen i det 12 struktur:

Feil ved lasting og kjører hendelsesmottaker Conchango.xyzzyEventReceiver i xyzzy, Versjon = 1.0.0.0, Culture = neutral, PublicKeyToken = blahbalhbalh. Tilleggsinformasjon er under. : Objektreferanse er ikke satt til en forekomst av et objekt.

Jeg visste ikke hvor jeg hadde introdusert denne feilen fordi jeg hadde gjort for mange ting i en av min kode/distribuere og teste sykluser.

Jeg prøvde Denne løsningen å få min pdb der med håp om at SharePoint 12 strukturen vil vise stakksporingen, men uten hell. Jeg vet ikke om det er mulig og hvis noen ikke, gi meg beskjed 🙂

Jeg vet det er mulig å skrive din egen loggmeldinger til den 12 struktur. Ærlig, Jeg ville ha noe mindre skremmende og raskere å gjennomføre.

Det slo meg at jeg minst kunne få noen grunnleggende sporingsinformasjon ved å fange og re-kaster generiske unntak som dette:

  Prøv {
    UpdateEditionDate(Egenskaper);
  }
  fange (Unntak e)
  {
    kaste nye Unntak("Sentralen, UpdateEditionDate(): Unntak: [" + e.ToString() + "].");
  }

Dette dukket opp i den 12 hive thusly:

Feil ved lasting og kjører hendelsesmottaker Conchango.xyzzyEventReceiver i xyzzy, Versjon = 1.0.0.0, Culture = neutral, PublicKeyToken = blahblahblah. Tilleggsinformasjon er under. : Sentralen, UpdateEditionDate(): Unntak: [System.NullReferenceException: Objektreferanse er ikke satt til en forekomst av et objekt. ved Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties egenskaper) ved Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties egenskaper, Streng eventDescription)].

Det ga meg alle detaljene jeg trengte å spore opp det aktuelle problemet, og jeg forventer å bruke det mye fremover.

</slutten>

Abonner på bloggen min!