Kategoriarkiv: SharePoint-utvikling

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:

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!

Løsning: SPQuery søker ikke mapper

Denne siste uken var jeg implementere en "utvikling" løsning for en klient som bruker BDC og SPQuery og løp inn noen problemer med å bruke SPQuery mot et dokumentbibliotek som inneholder mapper. Bunnlinjen: Tilordne "rekursiv" Vis attributt for spørringen.

Meg filmmanuskriptet:

  • Mandag, Jeg laste opp et dokument og angi noen metadata.
  • Neste uke, Jeg laster opp et nytt dokument. Mye av dette nye dokumentet metadata er basert på dokumentet jeg lastet opp mandag (som vi kaller "hoveddokumentet").
  • Vi har laget en web service fasade som gir en BDC-grensesnitt til listen slik at brukere kan enkelt finne mandag dokumentet via en tittel søk.
  • En BDC-datakolonne gir et brukervennlig grensesnitt. (Dette er en del av mitt forsøk på å bruke BDC for mer vennlig oppslagskolonner).

Siste BDC fasade tjenesten bruker en spørring som dette for å gjøre oppslag:

 // Brukte U2U verktøyet for å hjelpe generere CAML spørringen.
      oQuery.Query =
        "<Der>";

      Hvis (titleFilter.Length > 0)
        oQuery.Query  = (likhetstegn)
          "  <Og>";

      oQuery.Query  = (likhetstegn)
        "    <Og>" +
        "      <GEQ>" +
        "        <FieldRef navn =  "DocumentId" />" +
        "        <Verditype =  "Text">" + minId + "</Verdi>" +
        "      </GEQ>" +
        "      <LEQ>" +
        "        <FieldRef navn =  "DocumentId" />" +
        "        <Verditype =  "Text">" + maxId + "</Verdi>" +
        "      </LEQ>" +
        "    </Og>";

      Hvis (titleFilter.Length > 0)
        oQuery.Query  = (likhetstegn)
          "    <Inneholder>" +
          "      <FieldRef navn =  "Title" />" +
          "      <Verditype =  "Text">" + titleFilter + "</Verdi>" +
          "    </Inneholder>" +
          "  </Og>";
      oQuery.Query  = (likhetstegn)
        "</Der>";

Under den innledende fasen av utviklingen, Denne arbeidet stor. Men, vi introdusert mapper i mappen å løse noen problemer og plutselig, min BDC-velgeren ville ikke returnerer noen resultater. Jeg sporet dette ned til det faktum at SPQuery ville aldri returnere noen resultater. Vi brukte mapper primært for å tillate flere filer med samme navn lastes, men med forskjellige metadata. Når filen er lastet opp, Vi skaper en mappe på listeelementet IDen og deretter flytte filen der (Jeg skrev om det her; Vi har hatt blandede resultater med denne tilnærmingen, men på hele, det fungerer bra). Brukeren ikke bryr seg om mapper og faktisk, ikke forstå at det er noen mapper. Vi har konfigurert alle visningene på biblioteket for å vise elementer uten hensyn til mapper.

Jeg traff dette problemet dobbelt så den tekniske gjennomføringen utviklet seg og løst det annerledes hver gang. Første gang, Jeg bruker ikke operatoren inneholder i spørringen. Uten en inneholder operatør, Jeg klarte å løse problemet ved å angi visningen i SPQuery contructor. Istedet for benytter Standardkonstruktøren:

SPList oList = web.Lister["Dokumenter"];

SPQuery oQuery = nye SPQuery();

Jeg brukte i stedet en konstruktør som angitt en visning:

SPList oList = web.Lister["Dokumenter"];

SPQuery oQuery = nye SPQuery(oList.Views["Alle dokumenter"]);

Det løste problemet og jeg begynte å få mine resultater.

Jeg deretter lagt operatoren inneholder inn i blandingen, og ble igjen. Det viser seg at operatoren inneholder, så vidt jeg kan fortelle, fungerer ikke med visningen på samme måte som i en enklere GEQ / LEQ operatører. Jeg did noe forskende og lært at spørringen ViewAttributes bør settes til "Rekursivt", som i:

oQuery.ViewAttributes = "Omfang = "Recursive"";

Det løste problemet for inneholder. faktisk, Dette også løst problemet mitt opprinnelige søk og hvis jeg hadde angitt rekursiv attributt første gang, Jeg ville ikke ha kjørt i spørsmålet igjen.

Det faktum at en visningsbasert SPQuery fungerer enkelte leverandører (GEQ/LEQ) og ikke andre (INNEHOLDER), kombinert med det faktum at KPIer ikke synes å arbeide med alle med mappen som inneholder dokumentet biblioteker fører meg til å tro at SPQuery har noen orthogonality problemer.

Spesiell takk:

  • Den gode folk på U2U og deres spørringsverktøyet.
  • Michael Hoffers store "Lær" blogginnlegg, kommentarer og svar.

</slutten>

Abonner på bloggen min!

Technorati Merkelapper: ,

MOSS KPI feil? Listeindikatoren knyttet til dokumentbiblioteket med mapper

OPPDATERINGEN 02/29/08: Jeg løste dette problemet ved å opprette en mappe og deretter tilordne en innholdstype til mappen som har metadata jeg nød for KPIene. Jeg beskrev det i litt mer detalj her.

Vi har implementert en teknisk løsning der brukere laste opp dokumenter til et dokumentbibliotek. En hendelsesmottaker oppretter en mappe og flytter filen til denne mappen (bruker en teknikk som ligner på det jeg skrev om her). Vi har vellykket navigert rundt potensielle problemene forårsaket av hendelsesmottakere som gi opplastede filer (hovedsakelig fordi brukere aldri begynne dokumentet ved å klikke på "ny" men i stedet opprette dokumenter lokalt og laster dem deretter opp).

Metadata for dokumentene inneholder Ja/nei områdekolonne kalt "haster" og en annen områdekolonne kalt "Status". Vi trenger å møte et forretningskrav som viser prosentandelen av "haster" dokumenter der statusen er "Ventende".

Dette er vanligvis enkel å gjøre og jeg noe veldig mye som dette på SharePoint Beagle med masse skjermbilder hvis du er interessert.

I et nøtteskall, Jeg did det fulgte:

  • Opprett en visning på doc bibliotek kalt "Ventende".
  • Konfigurere visningen for å ignorere mappestruktur.
  • Opprette en ytelsesindikatorliste.
  • Opprette en indikator som peker til doc lib og som "ventende" Vis.

Dette bare fungerer ikke. KPIen viser mitt mål (f.eks. fem inntrengende dokumenter) men alltid viser det faktiske antallet inntrengende dokumenter som null. Paradoksalt nok, Hvis du gå til detaljene, viser fem haster dokumentene i listen. Jeg laget en meget enkel situasjon med to dokumenter, i en mappe og en ikke. Her er skjermbilde:

bilde

Skjermbildet ovenfor viser tydelig det er to dokumenter i visningen men "value" er en. "-CamlSchema" med tomt dokument-Id er i rotmappen og den andre er i mappen "84".

Det synes for meg at selv om du angir en visning, KPI ære ikke i "Vis alle elementer uten mapper" Angi og i stedet, begrenser seg til rotmappen.

Hvis jeg tar feil, Vennligst send meg en linje eller Legg igjen en kommentar.

</slutten>

Abonner på bloggen min!

Technorati Merkelapper:

Løsningen på problemet: “FileNotFoundException” Med min funksjonen-mottaker.

Jeg jobbet på en funksjon forrige uke som ville legge noen hendelsesmottakere til en bestemt liste. (Jeg blogged litt om her som liste-mottaker).

Ved hjelp av kommandolinjen, Jeg kunne installere funksjonen uten feil (Men se nedenfor for skjulte feil). Når jeg forsøkt å distribuere funksjonen på nettstedet, MOSS klaget over en "FileNotFoundException" feil. Dette blogginnlegget beskriver hvordan jeg løste det.

Dette er feilen som MOSS viste meg i web-leseren:

Funksjonen ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ kunne ikke installeres fordi innlasting av hendelsen mottaker montering "xyzzyFeatureReceiver_0" mislyktes: System.io.FileNotFoundException: Kunne ikke laste fil eller montering ' xyzzyFeatureReceiver_0’ eller en av dens avhengigheter. Systemet finner ikke den angitte filen.
Filnavn: ' xyzzyFeatureReceiver_0’
ved System.Reflection.Assembly.nLoad(AssemblyName filnavn, Streng kodebase, Bevis assemblySecurity, Montering locationHint, StackCrawlMark& stackMark, Boolsk throwOnFileNotFound, Boolsk forIntrospection)
ved System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Bevis assemblySecurity, StackCrawlMark& stackMark, Boolsk forIntrospection)
ved System.Reflection.Assembly.InternalLoad(Streng assemblyString, Bevis assemblySecurity, StackCrawlMark& stackMark, Boolsk forIntrospection)
ved System.Reflection.Assembly.Load(Streng assemblyString)
ved Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
ADV: Montering binding: Sporlogging er slått av.
Hvis du vil aktivere logging av mislykket samlingsbinding, Angi registerverdien [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) til 1.
Note: Det er noen innvirkning på ytelsen med logging av mislykket samlingsbinding.
Hvis du vil deaktivere denne funksjonen, fjerne registerverdien [HKLMSoftwareMicrosoftFusion!EnableLog].

Feilsøke problemer med Windows SharePoint Services.

Jeg vite hvor å bevisst føre til denne feilen: ikke installere samlingen i GAC. men, Det var i GAC. Jeg installere normalt samlinger i GAC ved å dra dem inn i c:\windowsassembly-mappen i windows Utforsker. Jeg har aldri følt 100% komfortabel med det fordi jeg har alltid trodd at gacutil eksisterte for en grunn … så jeg forsøkt det. Den fremstilt nei differansen.

Jeg søkte Internets og fant dette innlegget: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakaten skjedd å bruke den samme rot-bit av koden (fra boken I WSS fra denne listen) så det var et tegn på håp. Men, forslag fra dekorere samlingen med en [Montering: ] direktivet fornuftig ikke for meg. Jeg forsøkt den likevel og jeg hadde rett. Den fremstilt nei differansen.

Så la jeg merke til at min klassedefinisjonen ikke var offentlig. Jeg gjorde det offentlig og som gjorde ingen forskjell.

Neste, Jeg dro til problemer med å aktivere "samlingen binde feil loggen" (etter nyttig og korrekt instruksjonene gitt) og dette er hvor ting begynte å bli interessant. Loggen viser meg at kjøretiden søker overalt på serveren for min samling. Det ser ut til å være søker etter den i min medisinskapet. men … det vil ikke søke etter den i GAC.

Jeg satte på min vinterjakke og lete Internets igjen og finne at noen hadde dette problemet også. Lengre diskusjon i dette oppslaget peters av til ingenting og jeg kan ikke finne en løsning.

Jeg flytter min samling i et av stedene loggen hevder den søker og jeg gjør litt mer fremgang. Jeg er belønnet med en ny feil i nettleseren når jeg prøver å aktivere funksjonen:

Kan ikke opprette funksjonen mottaker objekt fra samlingen "xyzzyFeatureReceiver_0", Skriv inn "Conchango.xyzzyFeatureReceiver" for funksjonen b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Verdien kan ikke være null.
Parameternavn: type
ved System.Activator.CreateInstance(Type-typen, Boolsk ulovlig utnytter konfidensiell)
ved System.Activator.CreateInstance(Type-typen)
ved Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Feilsøke problemer med Windows SharePoint Services.

Tid for en siste tur til Internets!

Denne gangen jeg finne ut, predictably nok, at MOSS problemer denne feilen fordi samlingen ikke er i GAC.

Jeg ønsker å få noe positivt ut av dette og prøve å føle litt stolte av at jeg har opprettet den Jaget av MSIL-samlinger, men det virker ikke. Jeg er bare ren irritert. Jeg finner meg selv mumler "høna eller egget" under min pusten.

Jeg endelig bestemmer å punt. Jeg opprette et helt nytt prosjekt og lime inn koden fra incredible-cloaked-from-the-GAC-assembly ikke fungerer prosjektet over dette nye prosjektet. (Jeg ser etter en bygge flagg som heter noe sånt som "Skjul fra samlingen binding hvis installert i GAC" men ikke kan finne en).

Jeg installere funksjonen og aktivere den og … det fungerer! Så, etter alle som, Jeg måtte utgangspunktet ' gjenstarte’ mitt prosjekt. Dette er en annen grunn til at jeg hater datamaskiner.

Jeg lærte noe nyttig fra dette. Jeg hadde vært å installere funksjoner ved hjelp av stsadm-kommandolinjen hele dagen og brukt den "-force" alternativ for vane. For noen grunn, Jeg brukte ikke-tvang når jeg installerte det nye prosjektet. denne gangen, Jeg gjorde faktisk, virkelig glemme kopiere dette nye prosjektet samlingen i GAC. Som et resultat, Jeg mottatt "FielNotFoundException" feil. denne gangen, Jeg fikk den fra stsadm, ikke når jeg forsøkt å aktivere funksjonen via nettleseren. Så, -Force faktisk spiller to roller. Det tillater deg å re-installere en eksisterende funksjon. Det også lar deg installere en buggy funksjon som ikke fungerer under kjøring ved å undertrykke feilen. Står sannsynligvis så mye hjelp et sted, men jeg lagt merke til aldri det.

</slutten>

Technorati Merkelapper: ,

Rask & Enkel: Gi nytt navn til opplastede filen ved hjelp av SharePoint-objektmodellen Via en hendelse-mottaker

OPPDATERINGEN: Dette fungerer, men det er betydelige begrensninger som er beskrevet i kommentarer. Dette kan være nyttig i noen cirumstances.

OPPDATERINGEN 2: I min nåværende prosjekt, brukere alltid laste opp dokumenter. Som et resultat, Jeg kjøre ikke inn i et problem der MS Word kjører og tenker at filen ble endret på den. Jeg gjorde kjøre inn et problem, "filen ble endret av noen andre" og løste dette via en enkel semafor typen flagg. Brukernes nød å endre meta datafelt fra standardverdien til noe annet. Itemupdated() mottakeren ser etter en gyldig verdi før du faktisk gjennomfører navneendringen og siden da, Jeg har ikke hatt noen problemer. Ditt kjørelengde kan variere.

Jeg har en klient krav om å endre navn på filer lastet opp til et bestemt dokumentbibliotek til å samsvare med en bestemt navnekonvensjon. APIEN gir ikke en "navneendring()" metoden. I stedet, Vi bruker "Flytt(…)". Her er litt minimal av kode for å oppnå dette:

 offentlig overstyre ugyldige ItemAdded(SPItemEventProperties Egenskaper)
        {
            SPFile f = egenskaper.ListItem.File;

            f.MoveTo(Egenskaper.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Det bare vanskelig bit er egenskapene. ListItem.ParentList.RootFolder.Url". MoveTo() metoden krever en URL. Som Moses opp peker meg til rotmappen av dokumentbiblioteket for gjeldende. Dette tillater meg å unngå noen harde koding i min hendelsesmottaker.

Dette er en mer nyttig versjon som gjør samme, men tilordner navnet på filen til "Tittel":

 offentlig overstyre ugyldige ItemAdded(SPItemEventProperties Egenskaper)
        {
            DisableEventFiring();

            // Tilordne tittelen på dette elementet til navnet på selve filen.
 // NOTE: Tildelingen må finne sted før vi endre selve filen.
 // Ringer oppdateringen() på SPFile synes å oppheve egenskapene i
 // noen følelse.  Oppdateringer til "tittel" mislyktes til som endrer (og oppdatere() kalle)
 // ble flyttet foran endringen i filnavnet.
            Egenskaper.ListItem["Tittel"] = Egenskaper.ListItem.File.Name;

            Egenskaper.ListItem.Update();

            SPFile f = egenskaper.ListItem.File;

            // Få forlengelse av filen.  Vi trenger som senere.
 streng spfileExt = nye FileInfo(f.name).Filtypen;

            // Endre filnavnet til den listeelement-ID, og bruk filtypen til å holde
 // som del av den intakt.
            f.MoveTo(Egenskaper.ListItem.ParentList.RootFolder.Url +
                "/" + Egenskaper.ListItem["ID"] + spfileExt);

            // Forplikte farten.
            f.Update();

            EnableEventFiring();
        }

Quick Tips: Webdelen for innholdsspørring, Kolonnen oppslagsverdien og XSL

Jeg har et kolonnenavn i en innholdstype som kalles "Real Estate plassering".

Denne kolonnen er av typen "oppslag".

Jeg har endret <CommonViewFields> og ItemStyle.xsl å vise kolonnen.

En enkel <XSL:verdien av merker =…> Returnerer tilbake en intern verdi som inkluderer ordenstallsplassering data, eksempel:

1;#Miami

Å få den menneskelige-vennlig-verdien, bruke xsl delstreng-etter, som vist:

<XSL:valuXSLf Velg = "delstreng-etter(@Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:verdien av>

Du kan bruke denne teknikken når du arbeider med oppslagsverdier i XSL-transformeringer og trenger for å få verdien menneske-vennlig.

<slutten />

Technorati Merkelapper: , ,

Rask og enkel: Bestemme interne kolonnenavnet på en områdekolonne

OPPDATERINGEN: Jeremy Thake har blogged om dette og sette opp noen koden for et konsollprogram som viser interne navnene.

Jeg prøvde å få en webdel for innholdsspørring til å vise en forfallsdato fra en aktivitet og fordi skjermetiketten er "Forfallsdato", Jeg antok at kolonnenavnet du vil bruke i <CommonViewFields> er "Due_x0020_Date".

Feil!

Ekte kolonnenavnet var i dette tilfellet "DueDate".

Hvordan kom jeg finne det? Jeg re-lese Heather Salomos bloggpost på å endre CQWP vise flere kolonner av data. Hun beskriver denne prosessen på trinn #13. Stole på det.. Det er riktig. Minst, Det var riktig for meg. Jeg ikke stole på den i begynnelsen av en annen kolonne med et mye lengre navn.

Jeg sier "stole på det." fordi jeg ikke stoler det og sannsynligvis bortkastet nær to timer stangar hodet mitt veggen. Når jeg løst "DueDate" navn, Jeg ønsket å legge et annet felt til <CommonViewFields>. Ved hjelp av Solomon teknikk, Jeg fikk et navn som "XYZ_x0020_Project_x0020_Due_x00".

Tenkte jeg, Dette er klart et avkortede navn. Jeg gikk videre og un avkortet med ingen suksess. Jeg endelig brukt det tilsynelatende avkortede navnet og den arbeidet.

Bonus Tips: Da jeg jobbet med på CQWP, Jeg la til et dårlig interne navn til <CommonViewFields>, CQWP vil fortelle meg at spørringen hadde returnert ingen resultater. men, Hvis jeg lagt en datatype til feltnavnet, det vil returnere et resultat. Legge dataene maskert type faktisk et problem siden jeg henviser et ikke-eksisterende felt. Jeg kunne legge det, men når jeg prøvde å vise verdien, Jeg vil alltid få en tom.

Dette ikke maskere feil:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

Dette maskere feil:

<CommonViewFields>Due_x0020_Date,DateTime;</CommonViewfields>

</slutten>