Månedligt arkiv: Februar 2008

Mindre offentlig bekendtgørelse: Windows Live sikkerhedsindstillinger og kontakter plads ejere

Jeg modtager en håndfuld af meddelelser fra enkeltpersoner via indbygget "sende en meddelelse" funktionen Microsoft giver levende rum (der er også vært for min blog) hver måned.

Omkring en tredjedel af tid, Disse brugere har sikret deres live spaces-konto, så jeg ikke kan svare. Dette er en slags anti-spam funktion jeg formoder.

</slutningen>

Enkel forklaring: “Værdi falder ikke inden for det forventede interval.”

OPDATERING: En anonym plakat efterlod en stor kommentar om interne navne. Sørg for at læse det.

Når du arbejder med Hændelsesmodtagere og anden kode, som refererer til SharePoint-listeelementer via objektmodellen, Jeg laver ofte fejltagelser, der genererer denne fejl på kørselstidspunktet:

Fejl lastning og kører hændelse receiver Conchango.xyzzyEventReceiver i xyzzy, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = 0dc50a750396c3ac. Yderligere oplysninger finder du under. : Værdi falder ikke inden for det forventede interval.

Jeg tror, dette er en forholdsvis generisk fejl, der er potentielt forårsaget mange forskellige måder. Dog, en simpel forklaring er, at jeg ser referencing et felt forkert. Hvis navnet på feltet er "Forfaldsdato", Jeg skal henvise til den som denne i en begivenhed receiver:

egenskaber.ListItem["Forfaldsdato"]

Når jeg staver forkert eller bruge den forkerte sag, når der refereres til feltet, SharePoint genererer den ovenfor nævnte runtime fejl. For eksempel, Dette er forkert:

egenskaber.ListItem["forfaldsdato"]

</slutningen>

Abonner på min blog.

Technorati Tags:

Slutbrugeren hurtige Tip: Sortere visninger i et dokumentbibliotek, Liste, osv.

Vi kan, bør og oprette mange visninger på SharePoint-lister (dokumentbiblioteker, brugerdefinerede lister, osv). SharePoint lister altid tilgængelige visninger i alfabetisk rækkefølge. Vi kan ikke ændre dette ved hjælp af funktionen boks. Hvis det kan gøres via tilpasning (og jeg er ikke sikker på, at det kan), Det er langt til den tekniske for dit typiske slutbruger.

Hvis du vil styre rækkefølgen, som SharePoint-lister tilgængelige visninger, blot tilføjer et tal eller bogstav til navnet på visningen, som i:

1 – Ved materialetype
2 – Alle dokumenter
3 – Forfaldsdato

-eller-

A – Ved materialetype
B – Alle dokumenter
C – Forfaldsdato

Jeg har også lavet visninger hvis formål er strengt at fodre en KPI. Jeg har fulgt denne navngivningskonvention:

Z_KPI_[beskrivelse]

Der forårsager min "KPI" visninger vises nederst på listen.

</slutningen>

Abonner på min blog.

Technorati Tags: ,

Søndag Funny: “Da jeg var en lille dreng”

Som forælder, et sted langs linjen jeg opdagede den "da jeg var en lille dreng" trick.

Min søn, sandsynligvis fire eller fem dengang, spillede en ballon og gerne mest små drenge, at spille med markeringsbobler, han puttede den. Han var meget ked af. Verden var kommet til en ende. Jeg sagde til ham, "da jeg var lille dreng, Jeg havde en ballon og det dukkede og til sidst, Jeg fik en ny ballon." Det syntes at hjælpe ham håndtere sin tab og førte til en sjov snak om, hvad det var ligesom da jeg var en lille dreng.

Det fungerede godt som en trøst teknik og jeg brugt det flere gange i den næste periode. Jeg fik ind i problemer en gang da hans Monster Rancher 3 væsen døde. Jeg talte om hvordan min hund, Prins, døde i en bilulykke. Denne gang, var hans svar, "Nu jeg føler dårlige om to ting!" Jeg veget tilbage fra ved hjælp af den "da jeg var en lille dreng" teknik til trøst efter at.

Før den døde hund hændelse, dog, Jeg var også begyndt at bruge teknikken for at overbevise ham om at gøre gøremål. "Da jeg var en lille dreng, Jeg havde at gå ud og Hent avisen", "ren mit værelse", "get Mommy hendes kaffe cup", osv.

Dette var også temmelig vellykket i et stykke tid, men han begyndte i stigende grad oprør mod tyranni i min barndom. En begivenhed, navnlig, markerede afslutningen. Jeg fortalte ham at bringe skraldespande fra bremse tilbage til garagen. Han fremførte, og jeg reagerede, "Da jeg var en lille dreng, Jeg måtte tage skraldet tilbage til garagen." Han reagerede, "Åh ja! Godt, når du var en lille dreng, Det var DUM!".

</slutningen>

Abonner på min blog.

Technorati Tags:

Visninger og kolonner på lister og dokumentbiblioteker kan ikke være sikret

OPDATERING (02/29/08): Dette nye codeplex projekt synes at give en metode til sikring af enkelte kolonner: http://www.codeplex.com/SPListDisplaySetting. Hvis du har nogen erfaring med at arbejde med det, venligst efterlade en kommentar.

Forum plakater stille ofte et spørgsmål som dette: "Jeg har en manager visning og og et personale visning af en liste. Hvordan sikrer jeg visningen manager, således at personalet ikke kan bruge det?"

De spørger også jævnligt en beslægtet afhøre: "Jeg ønsker at sikre en kolonne med specifikke metadata, således at kun ledere kan redigere denne kolonne, mens andre ikke kan selv se det."

Disse svar gælder for begge WSS 3.0 og MOSS:

  • SharePoint indeholder ikke out-of-the-box understøttelse for at sikre visninger.
  • SharePoint indeholder ikke out-of-the-box understøttelse for sikkerhed kolonner.

Der er flere teknikker man kan følge for at opfylde disse former for sikkerhedskrav. Her er hvad jeg kan tænke på:

  • Bruge out-of-the-box sikkerhed på elementniveau. Udsigt ære altid vare sikkerhedskonfiguration. Hændelsesmodtagere og/eller arbejdsprocessen kan automatisere sikkerhedsindstilling.
  • Bruge personlige visninger for "privilegeret" visninger. Disse er let nok at sætte op. Dog, på grund af deres "personlige" natur, disse skal konfigureres for hver bruger. Brug Standardsikkerhed konfiguration til at forhindre andre i at oprette en personlig visning.
  • Bruge webdelen datavisning og gennemføre en slags AJAXy trimning sikkerhedsløsning.
  • Roll din egen liste display funktionalitet og indarbejde sikkerhed trimning på kolonneniveau.
  • Ændre dataindtastningsformularerne og bruge JavaScript sammen med sikkerhedsmodellen for at gennemføre kolonneniveau sikkerhed trimning.
  • Bruge en InfoPath-formular til indtastning af data. Gennemføre kolonneniveau sikkerhed trimning via web serviceopkald til SharePoint og betinget hide felter efter behov.
  • Roll din egen ASP.NET data entry funktion, der implementerer kolonne sikkerhed trimning.

Ingen af disse muligheder er virkelig så stor, men der er mindst en sti at følge, hvis du skal, Selvom det er svært.

NOTE: Hvis du går ned nogen af disse stier, Glem ikke om "handlinger-> Åbn i Windows Stifinder". Du vil være sikker på, at du tester med denne funktion for at sikre, at det ikke virker som en "bagdør" og besejre dine sikringsordning.

Hvis du har andre ideer til eller erfaringer med sikring af kolonner eller visninger, Vær så venlig e-mail mig eller efterlade en kommentar og jeg vil opdatere denne postering som passende.

</slutningen>

Abonner på min blog.

Technorati Tags:

Hurtige Tip: BDC-ADF versionsnumrene er din ven

Hvis du hånd-kodning ADF filer og gør en masse import-kode-test cykler, Brug den gengivelse antal til at gøre dit liv nemmere.

Jeg hader at indrømme det., men indtil denne uge, Jeg altid slette ADF'EN og importere det igen. Dette ville bryde min business datakolonner og gøre mig re-wire dem. Alle unødvendige.

Fil dette under "det er indlysende, 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" Version="1.2.0.0" Navn="xyzzyDocumentReview" xmlns="http://schemas.Microsoft.com/Office/2006/03/BusinessDataCatalog">

Ændre denne version og re-importere og den eksisterende firmadatakolonne bruger den opdaterede version automatisk med kræves ingen yderligere konfiguration.

</slutningen>

Abonner på min blog.

Technorati Tags:

Løsning: BDC Picker viser kun én kolonne af resultater

I min igangværende forsøg på at give en mere nyttigt opslagskolonnen ved hjælp af BDC, Jeg ramte en mur med BDC-picker. Hvis du ikke ser det, BDC-picker er svarende til en mennesker picker, bortset fra at det virker med kolonner af typen "business data".

Du få adgang til vælgeren til ved at klikke på symbolet for den åbne bog af en firmadatakolonne som vist:

billede

Ovenstående billede viser en firmadatakolonne, kaldet "Master dokument Id". Denne kolonne er forbundet, via BDC, til en webtjeneste. Webtjenesten returnerer to kolonner med oplysninger: Dokument-ID og titel. Den forretningsmæssige formål her er at give en "dette dokument er baseret på" funktion. Brugerne vælger en "master" dokument, og når de gemmer, en event modtager kopier meta datafelter fra den refererede master.

Som standard, BDC-picker ser sådan her ud når jeg søger efter et dokument med ID'ET = "38":

clip_image002

Det er nyttigt, men ikke godt nok. Folk tænker ikke i id'er, de tror i titler og/eller andre metadata. Farvevælger kan du søge på andre kolonner (strømsparetilstand. Titel) men ikke vil vise den aktuelle liste af titler det fundet, bare deres DocId's som vist her:

clip_image002[1]

(Skærmbilledet er ikke så stor, fordi jeg ikke vælge en søgning, der returnerer nogen gyldige resultater, men du kan se, at hvis det havde fundet nogle resultater, Det ville kun have vist Docids, ikke titler).

Jeg søgte højt og lavt efter svar på dette og mislykkedes. Min kollega, de ærværdige Jonathan Bradshaw, havde stillet og løst problemet. Da jeg nåede til ham for at få hjælp, han pegede mig i den rigtige retning.

Konfigurere picker for at vise flere kolonner via "ShowInPicker" ejendom i ADF'EN:

<Ejendom Navn="ShowInPicker" Type="System.Boolean">True</Ejendom>

Mere detaljeret:

  <!-- Titel -->
  <TypeDescriptor TypeName="System.String" Navn="Titel" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Titel</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Egenskaber>
      <Ejendom Navn="DisplayByDefault" Type="System.Boolean">True</Ejendom>
      <Ejendom Navn="ShowInPicker" Type="System.Boolean">True</Ejendom>
    </Egenskaber>
  </TypeDescriptor>

Angiver denne egenskab indfører et mindre problem. Så snart du indstille det én gang, Du skal angive det for hver kolonne, du vil vise. I mit tilfælde, BDC-picker viste DocId som standard. Dog, Når jeg tilføjet "ShowInPicker" til titel, DocId ikke længere vises. Jeg løste det ved eksplicit at angive egenskaben ShowInPicker for Doc ID.

Her er resultatet:

billede

(Jeg vil forklare de mærkeligt udseende "168 – CamlSchema.xsd" konstruktion i et kommende blogindlæg. Kort sagt, Det er en sammenkædede streng, der giver mulighed for en lidt bedre brugeroplevelse).

Selvfølgelig, efter at have skrevet denne blog, Jeg gjorde netop en søgning efter "ShowInPicker" og fundet mange hits, herunder denne ene: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. Det forklarer betydningen af ejendommen sammen med nogle andre gode BDC-ting.

</slutningen>

Abonner på min blog!

Technorati Tags:

Hurtig & Let: Opret en mappe og tildele en indholdstype (Eller, Har din KPI'er og spise dem også)

For at løse et KPI-problem Jeg skrev om her, Jeg gjorde nogle test og opdagede at KPI arbejde mod mapper med metadata på samme måde, at de arbejder mod dokumenter eller listeelementer. Jeg viste det ud ved at oprette en ny indholdstype baseret på content mappetype og derefter tilføjet et par felter. Jeg lavet nogle indikatorer og viste sig til mig selv, at KPI'er arbejde som forventet. Dette var velkommen nyheder. Det er ikke perfekt, fordi drill-down får du fra er KPI mod mapperne ikke præcis hvad du vil. Dette er ikke for meget en ulempe i mit tilfælde, fordi 1) slutbrugere, der ikke kender nogen bedre og 2) drill-down går til en mappe. De klikker på mappenavnet, og de er på varen. Det er to klik i stedet for en, der er ikke slutningen af verden.

Det flød pænt med det arbejde jeg lavede. Jeg opretter en mappe til hvert dokument, der bliver uploadet. Dette gøres via en begivenhed modtager. Som et resultat, Det er en smal til at holde den overordnet mappes metadata i sync med KPI-drevet metadata fra selve filen da VVS er allerede på plads. Dette giver mig mulighed for at have mine KPI'er og også spise dem 🙂

Jeg ændrede begivenhed-modtager for at tilføje mappen og derefter angive denne nye mappe indholdstype til min brugerdefineret KPI-venlige indholdstype. Denne bit af kode gjorde tricket:

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

Til at finde det faktiske indholdstype-ID, Jeg adgang til denne indholdstype via indstillinger for websted og kopi/indsat det fra URL-adressen som vist:

billede

</slutningen>

Abonner på min blog!

Technorati Tags: ,

Hurtig og nem: Få SPFolder af en SPListItem i en begivenhed Receiver

Jeg hader at indrømme det., men jeg kæmpede med denne ene alle dag. Min begivenhed modtageren skal opdatere et felt i den overordnede mappe. Dette lidt viser hvordan man gør det:

privat void UpdateParentFolder(SPItemEventProperties egenskaber)
{

SPFolder thisItemFolder = egenskaber.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ godkendelsesstatus"] = "Gode nyheder, alle!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

I dette tilfælde, Jeg arbejder med et dokumentbibliotek og egenskaber kommer fra en ItemAdded begivenhed.

Tricket er at du ikke kan få SPFolder af varen direkte fra selve emnet (dvs. egenskaber.ListItem.Folder er null). I stedet, gå til listeelementets tilknyttede fil og få den filmappe.

</slutningen>

Abonner på min blog!

Technorati Tags:

Endnu en anden begivenhed modtager Debug Trick

Jeg er sikker på, jeg ikke er den første person til at komme med denne. Dog, Jeg har ikke bemærket nogen udgiver et trick som det siden jeg startede med større opmærksomhed til Fællesskabet i juli. Så, Jeg tænkte jeg ville sende det denne hurtig og nem debug tip.

Jeg arbejder på en event-modtager, der begyndte at generere denne fejl i den 12 hive:

Fejl lastning og kører hændelse receiver Conchango.xyzzyEventReceiver i xyzzy, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = blahbalhbalh. Yderligere oplysninger finder du under. : Objektreferencen er ikke indstillet til en forekomst af et objekt.

Jeg vidste ikke hvor jeg havde introduceret denne fejl, fordi jeg havde gjort alt for mange ting i en af min kode/installere/test cykler.

Jeg har prøvet Denne løsning at få min FBF derinde med håb at SharePoint 12 hive ville vise staksporingen, men uden held. Jeg ved ikke, hvis det er muligt, og hvis nogen ikke, Lad mig vide 🙂

Jeg ved, at det er muligt at skrive din egen log beskeder til den 12 hive. Helt ærligt, Jeg ønskede noget lidt mindre skræmmende og hurtigere at gennemføre.

Den forekom mig, at jeg i det mindste kunne få nogle grundlæggende sporingsoplysninger ved fangst og re-throwing generic undtagelser som denne:

  Prøv {
    UpdateEditionDate(egenskaber);
  }
  fangst (Undtagelse e)
  {
    kaste nye Undtagelse("Dispatcher, UpdateEditionDate(): Undtagelse: [" + e.ToString() + "].");
  }

Dette viste i den 12 hive thusly:

Fejl lastning og kører hændelse receiver Conchango.xyzzyEventReceiver i xyzzy, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = blahblahblah. Yderligere oplysninger finder du under. : Senderen, UpdateEditionDate(): Undtagelse: [System.NullReferenceException: Objektreferencen er ikke indstillet til en forekomst af et objekt. på Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties egenskaber) på Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties egenskaber, Streng eventDescription)].

Der gav mig alle detaljer I needed at opspore dette problem, og jeg forventer at bruge det et parti går fremad.

</slutningen>

Abonner på min blog!