Kategoriaj Arkivoj: SharePoint Evoluado

Simpla Klarigo: “Valoro ne falas ene de la atendata gamo.”

ĜISDATIGO: Anonima afiŝo lasis grandan rimarkon pri internaj nomoj. Esti certe legi ĝin.

Kiam laboranta kun eventaj riceviloj kaj alia kodo kiu referencas SharePoint listaj eroj tra la objekta modelo, Mi ofte faras erarojn kiu produktas ĉi tiun eraron ĉe runtime:

erara ŝarĝado kaj flua eventa ricevilo Conchango.XyzzyEventReceiver en xyzzy, Versio=1.0.0.0, Kulturo=neŭtrala, PublicKeyToken=0dc50a750396c3ac. Suplementa informo estas malsupre. : Valoro ne falas ene de la atendata gamo.

Mi pensas tion ĉi estas juste kolektiva eraro kiu estas potenciale kaŭzita multajn malsamajn vojojn. Tamen, Unu simpla klarigo estas ke mi estas referencanta kampon neĝuste. Se la nomo de la kampo estas "Ŝuldata Dato", Mi devas referenci ĝin tiel en eventa ricevilo:

Nemoveblaĵoj.ListItem["Ŝuldata Dato"]

Kiam mi misspell aŭ uzi la malĝustan kazon kiam referencanta la kampon, SharePoint produktas la sur menciita runtime eraro. Ekzemple, Tio ĉi estas malĝuste:

Nemoveblaĵoj.ListItem["Ŝuldata Dato"]

</Fino>

Aboni al mia blogo.

Technorati Etikedoj:

Rapide & Facile: Krei Tekon kaj Asigni Kontentan Tipon (Aŭ, Havi Via KPIs kaj Manĝi Ilin Ankaŭ)

Por labori #?irka? KPIa problemo Mi skribis pri #?i tie, Mi faris iun elprovadon kaj eltrovita ke la laboro de KPI kontraŭ tekoj kun meta datumo en la sama vojo ke ili laboras kontraŭ dokumentoj aŭ listaj eroj. Mi pruvis ĝin ekstere de kreanta novan enhavan tipon bazita sur la teka enhava tipo kaj tiam aldonita kelkajn kampojn. Mi kreis kelkajn indikilojn kaj pruvita al mi mem ke KPIs laboro kiel atendata. Tio ĉi estis bonvena sciigo. Ĝi ne estas perfektigi, Ĉar la borilo-malsupren vi akiras de la KPI kontraŭ la tekoj ne estas ĝuste kio vi deziras. Tio ĉi ne estas tro da malavantaĝo en mia kazo ĉar 1) La finaj uzantoj surmetas?? Scias ajnan pli bonan kaj 2) La borilo-malsupren iras al teko. Ili klakas la tekan nomon kaj ili estas ĉe la ero. Ĝi estas du klakoj anstataŭ unu, Kiu ne estas la fino de la mondo.

Tio ĉi fluis agrable kun la laboro mi estis faranta. Mi estas kreanta tekon por ĉiu dokumento kiu akiras uploaded. Tio ĉi estas farita tra eventa ricevilo. Rezulte, Ĝi estas peco de kuko teni la Gepatra teko-a Meta datumo en sync kun la KPI-veturita meta datumo de la dosiero ĝi mem ekde la sondado estas jam en loko. This allows me to have my KPI’s and eat them too 🙂

Mi modifis la eventan ricevilon aldoni la tekon kaj tiam fiksita kontentan tipon de ĉi tiu nova teko al mia laŭmenda KPI-amika enhava tipo. Tio ĉi mordis de kodo faris la ruzon:

 SPFolderCollection SrcFolders = targetWeb.GetFolder("Dokumentoj").SubFolders;
  SPFolder AddedFolder = srcFolders.Aldonas(Nemoveblaĵoj.ListItem.IDENTIGAĴO.ToString());
  SPContentTypeId KpiCT = Nova SPContentTypeId("0X0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  AddedFolder.Ero["Kontenta Tipa IDENTIGAĴO"] = KpiCT;
  AddedFolder.Ero.Ĝisdatigo();

Troviĝi la realan Enhavan Tipan IDENTIGAĴON, Mi aliris ke kontenta tipo tra ejaj fiksoj kaj kopio/almetis ĝin de la URL kiel montrita:

Bildo

</Fino>

Aboni al mia blogo!

Technorati Etikedoj: ,

Rapide kaj Facile: Akiri la SPFolder de SPListItem en Eventa Ricevilo

Mi malamas agnoski ĝin, Sed mi luktis kun ĉi tiu unu ĉiuj tage. Miaj eventaj ricevilaj bezonoj ĝisdatigi kampon de ĝia gepatra teko. Tio ĉi malmulte mordis rezultojn kiel fari ĝin:

Privata Malplena UpdateParentFolder(SPItemEventProperties Nemoveblaĵoj)
{

SPFolder ThisItemFolder = nemoveblaĵoj.ListItem.Dosiero.ParentFolder;
ThisItemFolder.Ero["ZZa Aprobo Statuso"] = "Bona sciigo, ĉiu!";
ThisItemFolder.Ero.#?Isdatigo();


} // UpdateParentFolder

En ĉi tiu kazo, Mi estas laboranta kun dokumenta biblioteko kaj la nemoveblaĵoj estas venantaj de ItemAdded evento.

La ruzo estas ke vi ne povas akiri la SPFolder de la ero rekte de la ero ĝi mem (T.e. Nemoveblaĵoj.ListItem.Teko estas null). Male, Iri al rilata Dosiero de la lista ero kaj akiri la tekon de la Dosiero.

</Fino>

Aboni al mia blogo!

Technorati Etikedoj:

Sed tamen Alia Eventa Ricevilo Elpurigas Ruzon

Mi estas certe mi ne estas la unua persono veni supre kun tio ĉi. Tamen, Mi ne rimarkis iun ajn eldonas ruzon tiel pro tio ke mi komencis paganta proksiman atenton al la komunuma lasta julio. Tiel, Mi pensis min poŝtus ĝin ĉi tiu rapida kaj facile elpurigi konsileton.

Mi estas laboranta sur eventa ricevilo kiu komencis produkti ĉi tiun eraron en la 12 Hive:

erara ŝarĝado kaj flua eventa ricevilo Conchango.XyzzyEventReceiver en xyzzy, Versio=1.0.0.0, Kulturo=neŭtrala, PublicKeyToken=blahbalhbalh. Suplementa informo estas malsupre. : Objekto referencas ne fiksita al okazo de objekto.

Mi ne sciis kie mi enkondukis ĉi tiun cimon ĉar mi faris tro da aferojn en unu el mia kodo/deplojiĝas/testajn ciklojn.

Mi provis Ĉi tiu solvo Akiri mia pdb en tie kun esperoj ke SharePoint-a 12 Hive montrus la staplan spuron, Sed neniu fortuno. Mi ne scias se ĝi estas ebla kaj se iu faras, bonvolu lasi Mi scii 🙂

Mi scias ĝin estas ebla al Skribi viajn proprajn ŝtipajn mesaĝojn al la 12 Hive. Malkaŝe, Mi deziris ion malgranda malpli timiga kaj pli rapida efektivigi.

Ĝi okazis al mi ke mi almenaŭ povus akiri iun bazan spuran informon de kaptanta kaj re-ĵetanta kolektivajn esceptojn tiel:

  Provo {
    UpdateEditionDate(Nemoveblaĵoj);
  }
  Kaptaĵo (Escepto E)
  {
    Ĵeti Nova Escepto("Ekspedanto, UpdateEditionDate(): Escepto: [" + E.ToString() + "].");
  }

Tio ĉi aperita en la 12 Hive thusly:

erara ŝarĝado kaj flua eventa ricevilo Conchango.XyzzyEventReceiver en xyzzy, Versio=1.0.0.0, Kulturo=neŭtrala, PublicKeyToken=blahblahblah. Suplementa informo estas malsupre. : Ekspedanto, UpdateEditionDate(): Escepto: [Sistemo.NullReferenceException: Objekto referencas ne fiksita al okazo de objekto. Ĉe Conchango.XyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties nemoveblaĵoj) Ĉe Conchango.XyzzyManagementEventReceiver.Ekspedanto(SPItemEventProperties nemoveblaĵoj, Laĉi eventDescription)].

Kiu donis min ĉiuj la detalo mi devis spuri malsupren ke aparta problemo kaj mi atendas uzi ĝin tre iranta antaŭen.

</Fino>

Aboni al mia blogo!

Solvo: SPQuery Ne Serĉas Tekojn

Ĉi tiu pasinta semajno mi estis efektiviganta "evoluantan" Solvo por kliento kiu uzas BDC kaj SPQuery kaj kuris en iu malfacileco uzanta SPQuery kontraŭ dokumenta biblioteko enhavanta tekojn. Malsupra linio: Asigni "recursive" Al la vida eco de la demando.

Mia scenaro:

  • Lunde, I alŝuto dokumento kaj provizi kelkaj meta datumo.
  • La sekvanta semajno, I alŝuto nova dokumento. Multe de meta de ĉi tiu nova dokumento datumo estas bazita sur la dokumento mi uploaded lunde (Kiu ni vokas la "mastran dokumenton").
  • Ni??E kreis #aranea?o servon fa?Ade kiu provizas BDC-amika fasado al la listo por ke uzantoj facile povas #trovi?i tiun lundan dokumenton tra titola #ser?o.
  • BDCa datuma kolumno provizas amikan uzantan fasadon. (#Tio ?i estas parto de mia provo #?e uzanta BDC por pli amika Lookup kolumno).

La fina BDC fa?Ade servo uzas demandon tiel fari la lookup:

 // Uzis U2U ilo helpi en produktanta #?i tiu CAMLan demandon.
      OQuery.Demando =
        "<Kie>";

      Se (TitleFilter.Longeco > 0)
        OQuery.Demando  =
          "  <Kaj>";

      OQuery.Demando  =
        "    <Kaj>" +
        "      <Geq>" +
        "        <FieldRef Nomo="DocumentId" />" +
        "        <Valora Tipo="Teksto">" + MinId + "</Valoro>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef Nomo="DocumentId" />" +
        "        <Valora Tipo="Teksto">" + MaxId + "</Valoro>" +
        "      </Leq>" +
        "    </Kaj>";

      Se (TitleFilter.Longeco > 0)
        OQuery.Demando  =
          "    <Enhavas>" +
          "      <FieldRef Noma="Titolo" />" +
          "      <Valora Tipo="Teksto">" + TitleFilter + "</Valoro>" +
          "    </Enhavas>" +
          "  </Kaj>";
      OQuery.Demando  =
        "</Kie>";

Dum la komenca stadio de evoluado, Tio ĉi laboris grandan. Tamen, Ni enkondukis tekojn en la adresaro solvi kelkajn problemojn kaj subite, Mia BDCa plukisto ne revenus ajnajn rezultojn. Mi spuris tion ĉi malsupren al la fakto ke la SPQuery neniam revenus ajnajn rezultojn. Ni uzis tekojn unuavice permesi multoblajn dosierojn kun la sama nomo esti uploaded sed kun malsama meta datumo. Kiam la dosiero estas uploaded, Ni kreas tekon bazita sur la lista ero?? #IDENTIGA?O kaj tiam movi la dosieron tie (Mi skribis pri tio Ĉi tie; Ni??E havis Miksita rezultojn Kun #?i tiu #alproksimi?o sed sur la #tuta?o, ?i?? Laboranta puton). La uzanto ne zorgas pri tekoj kaj fakte, Ne Vere komprenas ke estas ajnaj tekoj. Ni formis ĉiuj la vidoj sur la biblioteko montri erojn sen konsidero al tekoj.

Mi frapis ĉi tiun problemon dufoje kiel la teknika efektivigo evoluita kaj solvis ĝin malsame ĉiu tempo. La unua tempo, Mi ne estis uzanta la ENHAVAS operacianton en la demando. Sen ENHAVAS operacianton, Mi estis kapabla solvi la problemon de specifanta la vidon sur la contructor de SPQuery. Anstataŭ uzanta la defaŭltan constructor:

SPList OList = araneaĵo.Listoj["Dokumentoj"];

SPQuery OQuery = Nova SPQuery();

Mi male uzis constructor kiu specifis vidon:

SPList OList = araneaĵo.Listoj["Dokumentoj"];

SPQuery OQuery = Nova SPQuery(OList.Vidoj["Ĉiuj Dokumentoj"]);

Kiu solvis la problemon kaj min komencis akiri miajn rezultojn.

Mi tiam aldonis la ENHAVAS operacianton en la miksaĵo kaj ĝi rompis denove. Ĝi rezultas ke la ENHAVAS operacianton, Tiel ege kiel mi povas diri, Ne laboras kun la vido la sama vojo kiel la pli simpla GEQ / LEQaj operaciantoj. Mi faris kelkajn serĉantan kaj lernis ke ViewAttributes de la demando devus esti fiksita al "Recursive", Kiel je:

OQuery.ViewAttributes = "Amplekso="Recursive"";

Kiu solvis la problemon pro tio ke ENHAVAS. Fakte, Tio ĉi ankaŭ solvis mian originalan serĉan problemon kaj se mi specifis la recursive eco la unua tempo, Mi ne havus kurita en la afero denove.

La fakto ke vido-bazita SPQuery laboroj por kelkaj operaciantoj (GEQa/LEQ) Kaj ne aliaj (ENHAVAS), Kuplita kun la fakto ke KPIs surmetas?? #?Ajni labori #?e #?iu kun teko-enhavanta dokumentajn bibliotekojn gvidas min kredi ke SPQuery havas kelkaj orthogonality aferoj.

#Speciala?o Dankonas:

  • La bonaj homoj #?e U2U Kaj ilia demanda ilo.
  • Mikaelo Hoffer?? Granda "Lernanta de faranta" Bloga #po?to, rimarkoj kaj respondoj.

</Fino>

Aboni al mia blogo!

MUSKA KPI cimo? Lista Indikilo Ligita Dokumenti Bibliotekon Kun Tekoj

ĜISDATIGO 02/29/08: Mi solvis ĉi tiun problemon de kreanta tekon kaj tiam asignanta kontentan tipon al la teko kiu havas la meta datumo mi devas por la KPIs. Mi priskribis ke en malgranda pli da detalo #?i tie.

Ni efektivigis teknikan solvon kie uzanta alŝuto dokumentoj al dokumenta biblioteko. Eventa ricevilo kreas adresaron kaj movas la dosieron al tiu adresaro (Uzanta teknikon simila al kio mi skribis pri Ĉi tie). Ni sukcese navigis ĉirkaŭ la potencialaj aferoj kaŭzita de eventaj riceviloj kiu renomas uploaded dosieroj (Plejparte ĉar uzantoj neniam komencas ilian dokumenton de klakanta sur "Nova" Sed male krei la docs loke kaj tiam alŝuto ili).

La meta datumo por ĉi tiuj dokumentoj inkluzivas Jes/Neniun ejan kolumnon vokis "Urĝan" Kaj alia eja kolumno vokis "Statuson". Ni devas renkonti komercan postulon kiu montras la procenton de "Urĝa" Dokumentas kies statuso estas "Farota".

Tio ĉi estas kutime simpla fari Kaj mi priskribis ion tre tiel ĉe la SharePoint Beagle Kun multaj ekranaj pafoj se vi estas interesita.

Unuvorte, Mi faris la sekvantaron:

  • Krei vidon sur la doc biblioteko vokis "Farotan".
  • Formi la vidon ignori tekan strukturon.
  • Krei KPIan Liston.
  • Krei indikilon en la listo kiu indikas al la doc lib kaj ke "Farota" Vido.

Tio ĉi simple ne laboras. La KPI montras mian celon (Ekz. Kvin #ur?a dokumentoj) Sed ĉiam montras la realan nombron de urĝaj dokumentoj kiel nulo. Paradokse, Se vi boras malsupren al la detaloj, Ĝi montras la kvin urĝaj dokumentoj en la listo. Mi kreis tre simpla scenaro kun du dokumentoj, Unu en teko kaj unu ne. Ĉi tie estas la ekrano pafis:

Bildo

La supra ekrano pafis klare rezultojn estas du dokumentoj en la vido sed la "valoro" Estas unu. La "CamlSchema" Kun malplena dokumenta #Identiga?o estas en la radika teko kaj la alia estas en teko nomis "84".

?i aperas al mi ke #e? kvankam vi specifas vidon, La KPI doesn?? Honoras la "rezulton #?iuj eroj sen tekoj" Fiksanta kaj male, Limigas ?in mem al la radika teko.

Se mi?? #Mal?uste, Bonvolu fali mi linio #a? lasi rimarkon.

</Fino>

Aboni al mia blogo!

Technorati Etikedoj:

Solvo al Problemo: “FileNotFoundException” Kun Mia Ĉefaĵa Ricevilo.

Mi estis laboranta sur ĉefaĵo lasta semajno kiu aldonus kelkajn eventajn ricevilojn al specifa lista okazo. (Mi blogged iom pri tiu lista ricevilo ĉi tie).

Uzanta la komandan linion, Mi povus instali la ĉefaĵon kun neniu eraro (Sed vidi malsupre por la kaŝa eraro). Kiam mi provis deplojiĝi la ĉefaĵon sur la ejo, MUSKO plendita de "FileNotFoundException" Eraro. Ĉi tiu bloga eniro priskribas kiel min solvis ĝin.

Tio ĉi estas la eraro ke MUSKO montris min en la araneaĵa retumilo:

Prezenti ‘b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ Ne povus esti instalita ĉar la ŝarĝado de eventa ricevilo asembleo "xyzzyFeatureReceiver_0" Malsukcesita: Sistemo.IO.FileNotFoundException: Ne povus ŝarĝi dosieron aŭ asembleon ‘xyzzyFeatureReceiver_0’ Aŭ unu el ĝiaj dependecoj. La sistemo ne povas trovi la dosieron specifita.
Dosiera nomo: ‘XyzzyFeatureReceiver_0’
Ĉe Sistemo.Konsidero.Asembleo.NLoad(AssemblyName fileName, Laĉi codeBase, Indico assemblySecurity, Asembleo locationHint, StackCrawlMark& StackMark, Boolea throwOnFileNotFound, Boolea forIntrospection)
Ĉe Sistemo.Konsidero.Asembleo.InternalLoad(AssemblyName assemblyRef, Indico assemblySecurity, StackCrawlMark& StackMark, Boolea forIntrospection)
Ĉe Sistemo.Konsidero.Asembleo.InternalLoad(Laĉi assemblyString, Indico assemblySecurity, StackCrawlMark& StackMark, Boolea forIntrospection)
Ĉe Sistemo.Konsidero.Asembleo.Ŝarĝo(Laĉi assemblyString)
Ĉe Microsoft.SharePoint.Administro.SPFeatureDefinition.Akiras_ReceiverObject()
WRN: Asemblea ligado arbohakanta estas elŝaltita.
Ebligi asembleon ligas malsukceson arbohakanta, Fiksi la registry valoro [HKLMaSoftvaroMicrosoftFuzio!EnableLog] (DWORD) Al 1.
Noto: Estas iu elfara puno asociita kun asembleo ligas malsukceson arbohakanta.
Turni ĉi tiun ĉefaĵon de, Forigi la registry valoro [HKLMaSoftvaroMicrosoftFuzio!EnableLog].

Troubleshoot aferoj kun Fenestroj SharePoint Servoj.

Mi scias kiel intence kaŭzi tiun eraron: Ne instalas la asembleon en la GAC. Sed, Ĝi estis en la GAC. Mi normale instalas asembleojn en la GAC de trenanta ilin en la c:\Fenestraasembleo teko uzanta fenestran esploriston. Mi neniam sentis 100% Komforta faranta ke ĉar mi ĉiam pensis ke gacutil ekzistita por kialo … Do mi provis tion. Ĝi faris neniun diferencon.

Mi serĉis la Interretojn kaj trovis ĉi tiun poŝton: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

La afiŝo okazita esti uzanta la saman radikon mordis de kodo (De la Interna WSSa libro de ĉi tiu listo) Por ke estis esperema signo. Tamen, La sugesto ornami la asembleon kun [Asembleo: ] Instrukcio ne faris senton al mi. Mi provis ĝin ĉiuokaze kaj mi estis ĝusta. Ĝi faris neniun diferencon.

Tiam mi rimarkis ke mia klasa difino ne estis publika. Mi faris ĝin publika kaj ke faris neniun diferencon.

Poste, Mi iris al la problemo ebligi la "asembleon ligas malsukcesan ŝtipon" (Sekvanta la helpemajn kaj precizajn instruojn provizis) Kaj tio ĉi estas kie aferoj komencita akiri interesan. KE ŝtipo montras min ke la runtime estas serĉanta ĉie sur tiu servilo por mia asembleo. Ĝi eĉ aperas esti serĉanta ĝin en mia medikamenta ministraro. Sed … Ĝi ne serĉos ĝin en la GAC.

Mi metis sur mia vintra jako kaj iras serĉanta la Interretojn denove kaj trovas ke iu havis ĉi tiun problemon ankaŭ. La longa diskuto en tiu afiŝo peters de en nenio kaj mi ne povas trovi solvon.

Mi movas mian asembleon en unu el la lokoj la ŝtipaj asertoj ĝi estas serĉanta kaj mi faras malgrandan pli da progreso. Mi estas rekompencita kun nova eraro en la retumilo kiam mi provas aktivigi la ĉefaĵon:

Malsukcesita krei ĉefaĵan ricevilon objekto de asembleo "xyzzyFeatureReceiver_0", Tajpi "Conchango.XyzzyFeatureReceiver" Por ĉefaĵo b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: Sistemo.ArgumentNullException: Valoro ne povas esti null.
Parametra nomo: Tipo
Ĉe Sistemo.Activator.CreateInstance(Tipa tipo, Boolea nonPublic)
Ĉe Sistemo.Activator.CreateInstance(Tipa tipo)
Ĉe Microsoft.SharePoint.Administro.SPFeatureDefinition.Akiras_ReceiverObject()

Troubleshoot aferoj kun Fenestroj SharePoint Servoj.

Tempo por unu lasta vizito al la Interretoj!

Ĉi tiu tempo mi eltrovas, Antaŭvideble sufiĉa, KE MUSKO eldonas ĉi tiun eraron ĉar la asembleo ne estas en GAC.

Mi deziras akiri ion pozitiva ekstere de tio ĉi kaj provo senti malgrandan fiera ke mi kreis la Fuĝanto de MSILaj asembleoj, Sed ĝi ne estas laboranta. Mi estas nur klare ĝenita. Mi trovas min mem mumuranta "kokon aŭ la ovon" Sub mia enspiro.

Mi fine decidas al kanoto. Mi kreas tute novan projekton kaj kopion/almetas la kodon de la nekredebla-manteliĝita-de-la-GAC-asembleo ne-laboranta projekton super al ĉi tiu nova projekto. (Mi serĉas konstruan flagon vokis ion kiel "felo de asemblea ligado se instalita en la GAC" Sed ne povas trovi unu).

Mi instalas la ĉefaĵon kaj aktivigi ĝin kaj … Ĝi laboras! Tiel, Post kiam ĉiuj tio, Mi devis resume ‘reboot’ Mia projekto. Tio ĉi estas alia kialo kial mi malamas komputilojn.

Mi ja lernis ion utila de tio ĉi. Mi estis instalanta ĉefaĵojn uzanta la stsadm komando viciĝas ĉiujn tage longa kaj estita uzanta la "-forto" Elekto ekstere de kutimo. Por iu kialo, Mi ne uzis la -forta elekto kiam mi instalis la novan projekton. Ĉi tiu tempo, Mi faris efektive, Vere forgesi kopii asembleon de ĉi tiu nova projekto en la GAC. Rezulte, Mi ricevis ke "FielNotFoundException" Eraro. Ĉi tiu tempo, Mi akiris ĝin de stsadm, Ne kiam mi provis aktivigi la ĉefaĵon tra la araneaĵa retumilo. Tiel, -Devigi efektive ludas du rolojn. Ĝi permesas vin al re-instali ekzistantan ĉefaĵon. Ĝi ankaŭ permesas vin instali buggy ĉefaĵo kiu ne povas labori ĉe runtime de subpremanta la eraron. Ĝi verŝajne diras tiom multe en la helpo ie sed mi neniam rimarkis ĝin.

</Fino>

Technorati Etikedoj: ,

Rapide & Facile: Renomi Uploaded Dosiero Uzanta SharePoint Objekta Modelo Tra Eventa Ricevilo

ĜISDATIGO: Ĉi tiuj laboroj sed estas gravaj limoj kiu estas priskribita en la rimarkoj. Tio ĉi ankoraŭ povas esti utila en kelkaj cirumstances.

ĜISDATIGO 2: En mia nuna projekto, Uzantoj ĉiam alŝutaj dokumentoj. Rezulte, Mi ne kuras en problemo kie f-ino Word estas kuranta kaj pensas ke la dosiero estis renomita sur ĝi. Mi ja kuris en problemo, "La dosiero estis modifita de iu alia" Kaj solvis tion ĉi tra simpla semafora tipa flago. Uzantoj devas ŝanĝi meta datuma kampo de ĝia defaŭlta valoro al io alia. La itemupdated() Ricevilo serĉas validan valoron tie antaŭ ol efektive elfaranta la renomi kaj pro tio ke tiam, Mi ne havis ajnajn problemojn. Via mileage povas varii.

Mi havas klientan postulon ŝanĝi la nomon de dosieroj uploaded al specifa dokumenta biblioteko konformiĝi kun aparta nomanta kongreso. La API ne provizas "renomi()" Metodo. Male, Ni uzas "MoveTo(…)". Ĉi tie estas minimuma peco de kodo plenumi tion ĉi:

 Publika Superregi Malplena ItemAdded(SPItemEventProperties Nemoveblaĵoj)
        {
            SPFile F = #nemovebla?o.ListItem.Dosiero;

            F.MoveTo(#Nemovebla?o.ListItem.ParentList.RootFolder.Url + "/Xyzzy.Doc");
            F.#?Isdatigo();

        }

La nura delikata peco estas la "nemoveblaĵoj.ListItem.ParentList.RootFolder.Url". La MoveTo() Metodo postulas URL. Kiu pistis supre ŝnuron indikas min al la radika teko de mia nuna dokumenta biblioteko. Tio ĉi permesas min eviti ajnan malfacilan kodiĝon en mia eventa ricevilo.

#Tio ?i estas pli utila versio kiu faras la saman aferon, Sed asignas la nomon de la dosiero "Titoli":

 Publika Superregi Malplena ItemAdded(SPItemEventProperties Nemoveblaĵoj)
        {
            DisableEventFiring();

            // Asigni la titolon de #?i tiu ero al la nomo de dosiero ?i mem.
 // NOTO: #?I tiu komisio devas okazi #anta? ol ni modifas la dosieron ?i mem.
 // Vokanta #?isdatigo() Sur la SPFile #?ajni nuligi la #nemovebla?o en
 // Iu sento.  #?Isdatigo  "Titoli" Malsukcesita #?is tiu #?an?o (Kaj #?isdatigo() Voko)
 // Estis movita #anta? la #?an?o al la dosiera nomo.
            Nemoveblaĵoj.ListItem["Titolo"] = #Nemovebla?o.ListItem.Dosiero.Nomo;

            #Nemovebla?o.ListItem.#?Isdatigo();

            SPFile F = #nemovebla?o.ListItem.Dosiero;

            // Akiri la #etenda?o de la dosiero.  Ni devas ke poste.
 Ŝnuro SpfileExt = Nova FileInfo(F.Nomo).#Etenda?o;

            // Renomi la dosieron al la #IDENTIGA?O de la listo ero kaj uzi la dosieran #etenda?o teni
 // KE parto de ?i sendifekta.
            F.MoveTo(#Nemovebla?o.ListItem.ParentList.RootFolder.Url +
                "/" + Nemoveblaĵoj.ListItem["#IDENTIGA?O"] + SpfileExt);

            // Fari la movon.
            F.#?Isdatigo();

            EnableEventFiring();
        }

Rapida Konsileto: Kontenta Demanda Araneaĵo Parto, Lookup Kolumna Valoro kaj XSL

Mi havas kolumnan nomon en kontenta tipo nomis "Veran Bienan Lokon".

KE kolumno estas de tipo "lookup".

Mi modifis <CommonViewFields> Kaj ItemStyle.Xsl montri la kolumnon.

Simpla <Xsl:Valoro-de elektita=…> Revenas reen internan valoron kiu inkluzivas ordinal pozicia datumo, Kiel:

1;#Miami

Akiri la homan-amika valoro, Uzo xsl substring-poste, Kiel montrita:

<Xsl:ValuXslf elektita="substring-poste(@Vera_x005F_x0020_Bieno_x005F_x0020_Loko,'#')"></Xsl:Valoro-de>

Uzi ĉi tiun teknikon whenever vi estas laboranta kun lookup valoroj en XSL transformas kaj bezono akiri la homan-amika valoro.

<Fino/>

Technorati Etikedoj: , ,

Rapide kaj Facile: Determini Internan Kolumnan Nomon de Eja Kolumno

ĜISDATIGO: Jeremy Thake Havas blogged pri tio ĉi kaj metita supre kelkajn/kelkajn Kodo por regilara apliko Kiu montras internajn nomojn.

Mi estis provanta akiri kontentan demandan araneaĵan parton montri ŝuldatan daton de tasko kaj ĉar la ekrana etikedo estas "Ŝuldata Dato", Mi supozis ke la kolumna nomo uzi je <CommonViewFields> Estas "Ŝuldata_x0020_Dato".

Malĝuste!

La vera kolumna nomo en ĉi tiu kazo estis "DueDate".

Kiel mi trovis ĝi? Mi re-legita Heather la bloga eniro de Solomon sur modifanta CQWP Montri suplementajn kolumnojn de datumo. Ŝi priskribas ĉi tiun procezon ĉe paŝo #13. Fidi ĝin. Ĝi estas ĝusta. Almenaŭ, Ĝi estis ĝusta por mi. Mi ne fidis ĝin ĉe unua por alia kolumno kun multe pli nomo.

Mi diras "Fidas ĝin" Ĉar mi ne fidis ĝin kaj verŝajne malŝparita proksime al du horoj butting mia kapo supre kontraŭ muro. Post kiam mi solvis la "DueDate" Nomo, Mi deziris aldoni alian kampon al <CommonViewFields>. Uzanta la Solomon tekniko, Mi estis akiranta kolumnan nomon kiel "XYZ_x0020_Projektas_x0020_Ŝuldata_x00".

Mi pensis al mi mem, Tio estas klare stumpigita nomon. Mi iris antaŭen kaj un-stumpigita ĝin kun neniu sukceso. Mi fine uzis la ŝajne stumpigita nomon kaj ĝin laboris.

Gratifika konsileto: Kiam mi estis laboranta kun la CQWP, Se mi aldonis malbonan internan nomon al <CommonViewFields>, La CQWP dirus min ke la demando revenis neniujn rezultojn. Sed, Se mi aldonis datuman tipon al la kampa nomo, Ĝi revenus rezulton. Aldonanta la datuman tipon efektive maskita problemon pro tio ke mi estis referencanta malestantan kampon. Mi povus aldoni ĝin, Sed kiam mi provis montri ĝian valoron, Mi ĉiam akirus malplenaĵon.

Tio ĉi ne maskis la eraron:

<CommonViewFields>Ŝuldata_x0020_Dato;</CommonViewfields>

Tio ĉi ja maskis la eraron:

<CommonViewFields>Ŝuldata_x0020_Dato,DateTime;</CommonViewfields>

</Fino>