Kategorija Arhīvs: SharePoint Development

Vienkāršs izskaidrojums: “Vērtība neietilpst paredzamais diapazons.”

ATJAUNINĀJUMS: Anonīms plakātu, kas atstāja lielu komentāru par iekšējo nosaukumi. Noteikti izlasiet to.

Strādājot ar notikumu uztvērēju un citu kodu, kas satur norādes uz SharePoint saraksta vienumus, izmantojot objekta modeli, Es bieži vien kļūdas, kas rada šo kļūdu Runtime:

Kļūda, ielādējot un palaižot notikumu saņēmēju Conchango.xyzzyEventReceiver xyzzy, Versija = diapazonā no 1.0.0.0, Kultūras = neitrāla, PublicKeyToken = 0dc50a750396c3ac. Papildu informāciju, kas atrodas zem. : Vērtība neietilpst paredzamais diapazons.

Domāju, ka šis ir diezgan vispārīgs kļūdas, kas potenciāli rada daudz dažādos veidos. Tomēr, viens vienkāršs izskaidrojums ir, ka es esmu apskatot lauku nepareizi. Ja lauka nosaukums ir "Izpildes datums", Jābūt reference to kā šis notikums uztvērējs:

rekvizītus.ListItem["Izpildes datums"]

Kad es kļūdaini vai izmantot nepareizi lieta, norādot atsauci uz lauku, SharePoint ģenerē iepriekš minēts izpildlaika kļūda. Piemēram, tas ir nepareizi:

rekvizītus.ListItem["izpildes datums"]

</beigās>

Abonēt manu blogu.

Technorati Tags: Technorati Tags:

Ātrās & Viegli: Izveidot mapi un piešķirt satura tipu (Vai, Ir jūsu KPI un ēst tos pārāk)

Lai KPI problēmu apiet Es rakstīja par šeit, I did daži testēšana un atklāja, ka KPI darbu pret mapes ar meta dati tādā pašā veidā, ka viņi strādāt pret dokumenti vai saraksta elementi. Es pierādīja to, izveidojot jaunu satura tipu mapes satura tipa pamatā, un tad pievieno dažus laukus. I izveidojis dažus rādītājus un pierādīt sev, ka KPI darbotos, kā nepieciešams. Tas ir apsveicami ziņas. Tas nav perfekts, jo jums urbt uz leju no KPI pret mapes ir ne gluži tas, ko jūs vēlaties. Tas nav pārāk daudz atmaksas, manā gadījumā, jo 1) gala lietotāju nezinu nevienu labāku un 2) no rakšanās iet uz mapi. Tie noklikšķiniet uz mapes nosaukuma, un tie atrodas vienums. Tas ir nevis viens divi klikšķi, kas nav pasaules gals.

Tas labi aizplūda bija darīt darbu. Esmu izveidot katram dokumentam, kas izpaužas augšupielādēts mapē. To var izdarīt, izmantojot notikumu uztvērēju. Kā rezultātā, tas ir gabals ir nieks, lai saglabātu vecākobjekta mapes meta datu sinhronizācijas ar pašu failu tā vietā jau ir santehnikas KPI orientētu meta datiem. Tas ļauj man iegūt savus KPI un ēst tos arī 🙂

Pievienot mapi un pēc tam iestatiet savu pielāgoto KPI draudzīgu satura tipam šīs jaunās mapes satura tipu notikumu uztvērēju ir rediģēts. Šis kods mazliet darīja arī triks:

 SPFolderCollection srcFolders = targetWeb.GetFolder("Dokumenti").Apakšmapes;
  SPFolder addedFolder = srcFolders.Add(rekvizītus.ListItem.ID.ToString());
  SPContentTypeId kpiCT = jaunā SPContentTypeId("0x0120002A666CAA9176DC4AA8CBAA9DC6B4039F");
  addedFolder.Item["Satura tipa ID"] = kpiCT;
  addedFolder.Item.Update();

Lai atrastu faktiskā satura tipa ID, Es piekļūt, izmantojot vietnes iestatījumus šī satura tipa, un kopēt/ielīmēt to no URL, kā parādīts:

attēlu

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags: ,

Ātri un viegli: SPListItem SPFolder iedēstīt notikumu uztvērēju

Es ienīst to uzņemt, bet es cīnījos ar šo te visu dienu. Manu notikumu uztvērēju jāatjaunina laukā no tā vecākmapes. Tas mazliet ir parādīts, kā to izdarīt:

privāts anulēts UpdateParentFolder(SPItemEventProperties rekvizīti)
{

SPFolder thisItemFolder = īpašības.ListItem.File.ParentFolder;
thisItemFolder.Item["ZZ apstiprinājuma statusu"] = "Labas ziņas, visi!";
thisItemFolder.Item.Update();


} // UpdateParentFolder

Šajā gadījumā, Esmu strādā ar dokumentu bibliotēku un īpašības nāk no notikumu ItemAdded.

Triks ir, ka jūs nevarat saņemt preces SPFolder tieši no paša sūtījuma (ti. rekvizītus.ListItem.Folder ir null). Tā vietā, dodieties uz saistīto failu saraksta elementu un failu mapi saņemtu.

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags:

Vēl citu notikumu uztvērēju atkļūdot triks

Es esmu pārliecināts, ka es neesmu pirmā persona nākt klajā ar šo. Tomēr, Neesmu pamanījis ikviens publicēt triks kā šis, jo es sāku pievērst uzmanību Kopienas pagājušā gada jūlijā. Tik, Es domāju, I'd post šo ātri un viegli atkļūdošanas tip.

Es esmu strādā pie notikumu uztvērēju, kas sāka radīt šo kļūdu, 12 strops:

Kļūda, ielādējot un palaižot notikumu saņēmēju Conchango.xyzzyEventReceiver xyzzy, Versija = diapazonā no 1.0.0.0, Kultūras = neitrāla, PublicKeyToken = blahbalhbalh. Papildu informāciju, kas atrodas zem. : Objekta atsauce nevar iestatīt objekta gadījumu.

Es nezināju, kur man bija ieviesusi šo kļūdu tāpēc, ka bija darīts pārāk daudzas lietas vienā no manu kodu/izvietot/testa ciklus.

Es to izmēģināju Šis risinājums lai saņemtu savu stratēģisko plānošanu un sastādot provizorisko budžeta projektu tur cer, ka SharePoint 12 stropu atnāktu steka izsekošanas dati, bet bez luck. Es nezinu, ja tas ir iespējams, un, ja kāds nav, Lūdzu, let me know 🙂

Es zinu, tas ir iespējams rakstīt log ziņojumus, 12 strops. Atklāti, Es gribēju kaut ko mazliet mazāk biedējošu un ātrāk īstenot.

Tas notika ar mani, ka es vismaz varētu saņemt dažus pamata izsekošanas informāciju ķeršanai un vispārīgo izņēmumi, piemēram, tas re-throwing:

  mēģiniet {
    UpdateEditionDate(rekvizīti);
  }
  nozvejas (Izņēmums e)
  {
    mest jaunā Izņēmums("Dispečers, UpdateEditionDate(): Izņēmums: [" + e.ToString() + "].");
  }

Tas atnāca 12 thusly stropu:

Kļūda, ielādējot un palaižot notikumu saņēmēju Conchango.xyzzyEventReceiver xyzzy, Versija = diapazonā no 1.0.0.0, Kultūras = neitrāla, PublicKeyToken = blahblahblah. Papildu informāciju, kas atrodas zem. : Dispečers, UpdateEditionDate(): Izņēmums: [System.NullReferenceException: Objekta atsauce nevar iestatīt objekta gadījumu. pie Conchango.xyzzyManagementEventReceiver.UpdateEditionDate(SPItemEventProperties rekvizīti) pie Conchango.xyzzyManagementEventReceiver.Dispatcher(SPItemEventProperties rekvizīti, Virkne eventDescription)].

Tas deva man visi dati, kas vajadzīgi, lai izsekotu šo konkrēto problēmu, un es ceru, ka to izmantot daudz iet uz priekšu.

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags: ,

Šķīdums: SPQuery nav meklēšanas mapes

Šo pagājušo nedēļu biju īstenošanas "attīstās" risinājumu, lai klients, kas izmanto BDK un SPQuery un uzbrauca zināmas grūtības, izmantojot SPQuery pret dokumentu bibliotēkā, kas satur mapes. Grunts līnija: piešķirt "rekursīvu" skata atribūts vaicājumu, lai.

Mans scenārijs:

  • Pirmdien, Es augšupielādēt dokumentu un sniegt dažas meta dati.
  • Nākamajā nedēļā, Es varu augšupielādēt jaunu dokumentu. Liela daļa šo jauno dokumentu meta dati balstās uz šo dokumentu, es augšupielādēju pirmdien (ko mēs saucam "pamatdokuments").
  • Mēs izveidojām tīmekļa pakalpojumu fasādi, kas nodrošina BDC draudzīgu interfeisu, lai sarakstu tā, lai lietotāji varētu viegli atrast pirmdien dokumenta virsrakstu meklēšanu, izmantojot.
  • BDC datu kolonnas nodrošina lietotājam draudzīgs interfeiss. (Šī ir daļa no maniem mēģinājumiem, izmantojot BDC draudzīgāku uzmeklēšanas kolonnas).

BDC gala fasādes pakalpojumu izmanto vaicājumu kā šis darīt uzmeklēšanas:

 // U2U rīks izmanto, lai palīdzētu radīt CAML vaicājums.
      oQuery.Query =
        "<Kur>";

      Ja (titleFilter.Length > 0)
        oQuery.Query   =
          "  <Un>";

      oQuery.Query   =
        "    <Un>" +
        "      <Geq>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Vērtību tips =  "Text">" + minId + "</Vērtība>" +
        "      </Geq>" +
        "      <Leq>" +
        "        <FieldRef Name =  "DocumentId" />" +
        "        <Vērtību tips =  "Text">" + maxId + "</Vērtība>" +
        "      </Leq>" +
        "    </Un>";

      Ja (titleFilter.Length > 0)
        oQuery.Query   =
          "    <Satur>" +
          "      <FieldRef Name =  "Title" />" +
          "      <Vērtību tips =  "Text">" + titleFilter + "</Vērtība>" +
          "    </Satur>" +
          "  </Un>";
      oQuery.Query   =
        "</Kur>";

Attīstības sākotnējā posmā, Tas strādāja lieliski. Tomēr, mēs iepazīstinājām mapes direktorijā atrisināt dažas problēmas, un pēkšņi, manu BDC atlasītāju nebūtu neatgriež rezultātus. Tas ir reģistrētas uz faktu, ka SPQuery būtu nekad neatgriež rezultātus. Mēs izmantojām mapes pirmām kārtām, lai atļautu vairākus failus ar tādu pašu nosaukumu, tiks augšupielādēti, bet ar dažādu meta datu. Kad fails ir augšupielādēts, mēs izveidot mapi, balstoties uz saraksta vienuma ID un pēc tam pārvietojiet failu tur (Es rakstīja par to, ka šeit; mēs esam bija dažāda ar šo pieeju, bet par visu, tas strādā labi). Lietotājs nav jārūpējas par mapēm un patiesībā, īsti nesaprotu visas mapes. Mums esat konfigurējis visus viedokļus par bibliotēkā, lai rādītu vienumus bez mapēm.

Šo problēmu, divreiz tehnisko īstenošanu attīstījusies un atrisināt to savādāk katru reizi, kad es hit. Pirmo reizi, Es nebiju izmantojot satur operatoru vaicājumā. Bez satur operators, Man bija iespēja, lai atrisinātu problēmu, norādot viedoklis par SPQuery contructor. Tā vietā, lai izmantotu noklusēto konstruktoru:

SPList oList = interneta.Saraksti["Dokumenti"];

SPQuery oQuery = jaunā SPQuery();

Tā vietā izmantotas, konstruktoru, kas norādīta skatu:

SPList oList = interneta.Saraksti["Dokumenti"];

SPQuery oQuery = jaunā SPQuery(oList.Views["Visi dokumenti"]);

Kas atrisināt problēmu, un es sāku saņemt manus rezultātus.

Pēc tam pievienoju satur operatora samaisa un atkal aizlūza. Izrādās, ka satur operators, ciktāl es varu pateikt, nedarbojas skatā tāpat kā vienkāršāku GEQ / LEQ operatori. I did dažas meklēšanu un uzzināju, ka vaicājums ViewAttributes jābūt iestatītam "Rekursīvu", kā:

oQuery.ViewAttributes = "Jomu = "Recursive"";

Kas izšķīrās par satur. patiesībā, Tas arī atrisināt manu sākotnējo meklēšanas problēmu un ja man bija norādīts rekursīvs atribūts, pirmo reizi, Es varētu nevar būt izskriet jautājumu vēlreiz.

Fakts, ka daži operatori darbojas skata balstītu SPQuery (GEQ/LEQ) u.c. ne (SATUR), apvienojumā ar faktu, ka KPI nešķiet strādāt vispār ar mapi, kas ietver dokumentu bibliotēkas rezultātā man domāt, ka SPQuery ir daži orthogonality jautājumi.

Īpašs paldies:

  • Labas folks pie U2U un to vaicājuma rīku.
  • Michael Hoffer lielo "mācīties darot" emuāra ierakstā, Komentāri un atbildes.

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags: ,

MOSS KPI bug? Saistīta ar dokumentu bibliotēku ar mapēm saraksta indikators

ATJAUNINĀJUMS 02/29/08: Man atrisināt šo problēmu, izveidojot mapi un pēc tam piešķirot satura tipa mapē, kas ir nepieciešams, lai vadošos veiktspējas rādītājus meta dati. Es, kas aprakstītas nedaudz sīkāk šeit.

Mēs esam ieviesuši tehniskais risinājums, ja lietotājiem augšupielādēt dokumentus, dokumentu bibliotēkā. Notikumu uztvērēju izveido direktoriju un failu pārvieto šim direktorijam (izmantojot tehniku, ko es rakstīja par līdzīgu šeit). Mēs esam veiksmīgi nokļuvis ap iespējamās problēmas, ko izraisa notikuma uztvērēji, kurus augšupielādētos failus pārdēvējiet (galvenokārt tāpēc, ka lietotāji nekad sākt savu dokumentu, noklikšķinot uz "jauns" bet tā vietā izveidot docs lokāli un pēc tam tie jāaugšupielādē).

Meta datus šajos dokumentos ir iekļauti Jā/Nē vietnes kolonnu sauc "steidzami" un citas vietnes kolonnu sauc par "Status". Mums ir nepieciešams, lai uzņēmumu prasībai, kas parāda, cik procentus "steidzami" dokumenti, kuru statuss ir "Gaida".

Šī ir parasti vienkārši darīt un es aprakstīju, kaut kas ļoti līdzīgs šim pēc SharePoint Beagle ar lielu ekrāna šāvienu, ja jūs interesē.

Īsumā, Es darīju šādi:

  • Izveidot skatu uz doc bibliotēkā, ko sauc par "Gaidīšanas".
  • Konfigurēt skatu ignorēt mapes struktūru.
  • Izveidot veiktspējas Pamatrādītāju sarakstu.
  • Izveidot indikatoru saraksts, kas norāda uz doc lib un ka "gaida" skats.

Tas vienkārši nestrādā. KPI parāda savu mērķi (piem.. pieci steidzamos dokumentus) bet vienmēr rāda faktisko skaitu steidzamos dokumentus kā nulle. Paradoksālā kārtā, Ja jūs detalizēti apskatīt detalizētu informāciju, Tas parāda piecu steidzamu dokumentu sarakstā. I izveidojis ļoti vienkāršs scenārijs ar diviem dokumentiem, vienu mapi un viens nav. Šeit ir screen shot:

attēlu

Virs ekrāna nošauti skaidri parāda, ka pastāv divi dokumenti viedokli, bet "vērtība" ir viens. "CamlSchema" ar tukšu dokumentu Id ir saknes mapē, un otrs ir mape ar nosaukumu "84".

Man šķiet, ka pat tad, ja norādāt skata, KPI nav gods, "Rādīt visus vienumus bez mapēm" iestatījumu, un tā vietā, aprobežojas ar to, ka saknes mapē.

Ja es esmu nepareizi, lūdzu aizvest mani līniju vai atstāt komentāru.

</beigās>

Abonēt manu blogu!

Technorati Tags: Technorati Tags:

Problēmas risinājums: “FileNotFoundException” Ar savu funkciju uztvērējs.

Es biju darba par līdzekli pagājušajā nedēļā, kas varētu pievienot kādu notikumu uztvērēju īpašā sarakstā instance. (Es blogged mazliet par šo sarakstu uztvērējs šeit).

Izmantojot komandrindas, Nevarēja instalēt līdzekli ar kļūdas (bet tālāk skatiet slēpto kļūda). Kad es mēģināju izvietot līdzekli vietnē, MOSS sūdzējās par "FileNotFoundException" kļūda. Šī bloga ieraksts apraksta, kā es to atrisināt.

Šī ir kļūda, ka MOSS parādīja man web pārlūkprogrammā:

Līdzeklis ' b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ nevar instalēt, jo iekraušanas un notikumu uztvērēju montāža "xyzzyFeatureReceiver_0" neizdevās: System.IO.FileNotFoundException: Nevarēja ielādēt failu vai montāža "xyzzyFeatureReceiver_0’ vai viena no tā atkarībām. Sistēma nevar atrast norādīto failu.
Faila nosaukums: ' xyzzyFeatureReceiver_0’
pie System.Reflection.Assembly.nLoad(AssemblyName fileName, Virkne codeBase, Pierādījumus, assemblySecurity, Montāžas locationHint, StackCrawlMark& stackMark, Būla throwOnFileNotFound, Būla forIntrospection)
pie System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Pierādījumus, assemblySecurity, StackCrawlMark& stackMark, Būla forIntrospection)
pie System.Reflection.Assembly.InternalLoad(Virkne assemblyString, Pierādījumus, assemblySecurity, StackCrawlMark& stackMark, Būla forIntrospection)
pie System.Reflection.Assembly.Load(Virkne assemblyString)
pie Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
WRN: Asamblejas saistošu reģistrēšana ir ieslēgta OFF.
Lai iespējotu asamblejas sasaistīt neveiksmes reģistrēšanu, iestatīt reģistra vērtību [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) lai 1.
Piezīme: Tur ir daži veiktspējas soda saistīta ar asamblejas sasaistīt neveiksmes reģistrēšanas.
Lai izslēgtu šo līdzekli, noņemiet reģistra vērtību [HKLMSoftwareMicrosoftFusion!EnableLog].

Novērst problēmas ar Windows SharePoint Services.

Es zinu, kā apzināti radīt kļūdas: neinstalēt montāža GAC. bet, tas bija GAC. Es parasti instalēt GAC mezgli, ievelkot tos c:\windowsassembly mapi, izmantojot programmu windows explorer. Man nekad nav bijušas 100% ērti izdarīt, jo es vienmēr domāju, ka gacutil pastāvēja iemesls … tāpēc es mēģināju, ka. Tam nebija nekādas nozīmes.

Man meklēt Internets un uzskatīja, ka šis post: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakātu notika izmantojot pašu saknes bitu kodu (no iekšpuses WSS grāmatas no šī saraksta) tāpēc, ka bija cerību zīmi. Tomēr, apdare ar montāžas ierosinājums [Asambleja: ] direktīvā nav jēgas man. Es to izmēģināju anyway, un man bija taisnība. Tam nebija nekādas nozīmes.

Tad es pamanīju, ka mana klases definīcija nav valsts. Es tā publiski un kas nebija nekādas nozīmes.

Nākamo, Es devos uz pūlēties un ļaujot "montāžas sasaistīt neveiksmes log" (pēc tam noderīgi un precīzas instrukcijas) un tas ir, ja lietas sāk iegūt interesantu. Šī žurnāla liecina, ka izpildlaika visur meklēt šajā serverī manu montāžai. Šķiet, tas pat būtu meklē manu medicīnas kabinets. bet … tas paradis meklēt to GAC.

Es likts uz ziemas jaku un doties meklēt Internets vēlreiz un atrast, ka kādam ir bijusi šī problēma, pārāk. Garas diskusijas, grāmatošana peters prom neko un nevar atrast risinājumu.

Es manu asamblejas ievācas vienā no vietas žurnāls apgalvo, tas meklē, un es nedaudz vairāk progresēt. Esmu apbalvota ar jaunu pārlūku kļūdu mēģinot aktivizēt funkciju:

Neizdevās izveidot līdzekļa saņēmēja objektu no montāžas "xyzzyFeatureReceiver_0", ierakstiet "Conchango.xyzzyFeatureReceiver" par funkciju b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Vērtība nevar būt null.
Parametra nosaukums: tips
pie System.Activator.CreateInstance(Tips, Būla nonPublic)
pie System.Activator.CreateInstance(Tips)
pie Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Novērst problēmas ar Windows SharePoint Services.

Reizi vienu pēdējā reisā uz Internets!

Šajā laikā uzzināt, prognozējamu pietiekami, SŪNA jautājumiem šī kļūda, jo montāža nav GAC.

Es gribu kaut ko pozitīvu šajā lietā un mēģināt justies mazliet lepna, ka esmu izveidojis Bēglis MSIL komplekti, bet tas nedarbojas. Es esmu tikai plain annoyed. Es atrodu sevi murminādami "Vista vai ola" saskaņā ar manu elpu.

Beidzot nolemjat punt. Es izveidot pilnīgi jaunu projektu un kopēt/ielīmēt kodu no incredible-cloaked-from-the-GAC-assembly nestrādājošu projekta gaitā, lai šo jauno projektu. (Es paskatos uz veidot karogu sauc par kaut ko līdzīgu "slēpt no montāžas saistošu, ja instalēta GAC" bet nevaru atrast kādu).

Es instalēt līdzekli un aktivizējiet to un … tas darbojas! Tik, pēc tam visi, Nācās būtībā ' atsāknēšana’ mans projekts. Tas ir vēl viens iemesls, kāpēc es naida datori.

Man bija uzzināt kaut ko noderīgu no šī. Man bija instalēt līdzekļus, izmantojot komandrindas stsadm visas dienas garumā un lietojušas "-spēks" opcija no paraduma. Kāda iemesla dēļ, I neizmantoja - uzspiešanas opcijas instalējot jaunu projektu. šoreiz, Man bija faktiski, patiesi aizmirst kopēt šo jauno projektu montāža GAC. Kā rezultātā, Es saņēmu "FielNotFoundException" kļūda. šoreiz, Es guvu stsadm, nevis tad, kad es mēģināju, aktivizējiet šo funkciju, izmantojot web pārlūkprogrammu. Tik, -spēkā faktiski spēlē divas lomas. Tas ļauj atkārtoti instalēt esošo līdzekli. Tā arī ļauj jums uzstādīt buggy iezīme, kas nevar strādāt pie runtime, anulējot kļūda. Tas droši vien saka tik daudz palīdzības kaut_kur taču nekad ievērojuši, tas.

</beigās>

Technorati Tags: Technorati Tags: ,

Ātrās & Viegli: Pārdēvēt augšupielādēto failu, izmantojot SharePoint objekta modeli, izmantojot notikumu uztvērēju

ATJAUNINĀJUMS: Tas darbojas, bet ir būtiski ierobežojumi, kas aprakstīta komentāri. Tas vēl joprojām var būt noderīgi, daži apstākļi.

ATJAUNINĀJUMS 2: Ar manu pašreizējo projektu, lietotāji vienmēr augšupielādēt dokumentus. Kā rezultātā, Es nedomāju saskaraties ar problēmu, kur MS Word ir palaista un domā, ka fails tika pārdēvēts par to. Man bija uzskriet problēmu, "fails tika modificēts kāds cits" un atrisināt šo, izmantojot vienkāršu semafora tipa karogu. Lietotājiem ir jāmaina meta datu lauks no tās noklusējuma vērtību uz kaut ko citu. Itemupdated() uztvērējs meklē tur derīgu vērtību pirms īstās pārdēvēt un pēc tam, Man nebija nekādas problēmas. Jūsu nobraukums var atšķirties.

Man ir klientu vajadzību mainīt nosaukumu uz konkrētu dokumentu bibliotēku, lai atbilstu konkrētā nosaukumdošanas augšupielādēto failu. API nenodrošina "pārdēvēšana()" metode. Tā vietā, mēs izmantojam "MoveTo(…)". Šeit ir mazliet minimālu kodu, lai to paveiktu:

 valsts ignorēt anulēts ItemAdded(SPItemEventProperties rekvizīti)
        {
            SPFile f = īpašības.ListItem.File;

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

        }

Tikai grūts bit ir "rekvizītiem. ListItem.ParentList.RootFolder.Url". MoveTo() metode prasa URL. Ka biezeni virknē punkti mani saknes mape Mana pašreizējā dokumentu bibliotēkā. Tas ļauj man, lai izvairītos no jebkāda grūti kodēšanas manu notikumu uztvērēju.

Tas ir vairāk noderīgs versija, kas nav tas pats, bet piešķir faila nosaukumu "Title":

 valsts ignorēt anulēts ItemAdded(SPItemEventProperties rekvizīti)
        {
            DisableEventFiring();

            // Piešķirt šī vienuma nosaukums pats faila nosaukums.
 // PIEZĪME: Šis uzdevums ir jānotiek pirms mēs modificēsim pašā failā.
 // Aicinot atjaunināt() par SPFile, šķiet, atzīst par nederīgu rekvizīti
 // zināmā mērā.  Atjauninājumus programmai "Title" līdz ko mainīt neizdevās (un atjaunināt() zvanu)
 // tika pārvietoti priekšā izmaiņas ar faila nosaukumu.
            rekvizītus.ListItem["Title"] = īpašības.ListItem.File.Name;

            rekvizītus.ListItem.Update();

            SPFile f = īpašības.ListItem.File;

            // Iegūt faila paplašinājumu.  Mums ir nepieciešams, kas vēlāk.
 virkne spfileExt = jaunā FileInfo(f.Name).Paplašinājums;

            // Pārdēvējiet failu saraksta vienuma ID un izmanto faila paplašinājumu, lai saglabātu
 // daļa, tas neskartu.
            f.MoveTo(rekvizītus.ListItem.ParentList.RootFolder.Url +
                "/" + rekvizītus.ListItem["ID"] + spfileExt);

            // Izdarīt gājienu.
            f.Update();

            EnableEventFiring();
        }

Quick Tip: Satura vaicājuma Web daļu, Uzmeklēšanas kolonnas vērtības un XSL

Man ir kolonnas nosaukuma satura tipa nosaukumu "Nekustamā īpašuma atrašanās vieta".

Šis kolonnas tips ir "uzmeklēšana".

Esat modificējis <CommonViewFields> un ItemStyle.xsl, lai parādītu kolonnu.

Vienkārša <XSL:vērtību, atlasiet =…> atgriež atpakaļ iekšējo vērtību, kas ietver kārtas stāvokļa datus, piem.:

1;#Miami

Lai iegūtu vērtību cilvēka draudzīgas, lietot apakšvirkni pēc xsl, kā parādīts:

<XSL:( @Real_x005F_x0020_Estate_x005F_x0020_Location, '#') ">< / xsl:vērtību nav >(@Real_x005F_x0020_Estate_x005F_x0020_Location,’#’)"></XSL:vērtību no>

Izmantojiet šo metodi, kad strādājat ar uzmeklēšanas vērtības XSL transformācijas un ir nepieciešams, lai iegūtu vērtību cilvēka draudzīgas.

<beigām />

Technorati Tags: Technorati Tags: , ,

Ātri un viegli: Noteikt iekšējo kolonnu nosaukumu vietnes kolonnu

ATJAUNINĀJUMS: Jeremy Thake ir blogged par šo un safasēti daži kods konsole programmai kas rāda iekšējās nosaukumus.

Es biju cenšas iegūt satura vaicājuma web daļu, lai parādītu no uzdevuma izpildes datumu un, tā _ kā ekrāna etiķete ir "Izpildes datums", Pieņemts, ka kolonnas nosaukums, kas tiks lietots <CommonViewFields> ir "Due_x0020_Date".

Nepareizi!

Šajā gadījumā reāla kolonnas nosaukums bija "DueDate".

Kā to atradāt? Es vēlreiz izlasīt, Heather Solomona blog entry par pārveidojot CQWP lai rādītu papildu datu kolonnas. Viņa ir aprakstīta šajā procesa posmā #13. Neuzticas. Tas ir pareizs. Vismaz, tas bija pareizs mani. Tomēr nevar uzticēties to citā kolonnā ar daudz garāka vārda sākumā.

Teikt, "Trust" jo tai neuzticas, un droši vien netērēja gandrīz divas stundas butting galvu pret sienu. Pēc tam, kad es nolēmu "DueDate" vārds, Es gribēju pievienot vēl vienu lauku <CommonViewFields>. Izmantojot Solomona tehnika, Bija iegūt kolonnas nosaukumu, piemēram, "XYZ_x0020_Project_x0020_Due_x00".

Es nodomāju, tas ir skaidri saīsināts nosaukums. Es devos uz priekšu un ANO saīsināts tā bez panākumiem. Es beidzot izmantot šķietami saīsināts nosaukums, un tā strādāja.

Bonus Padoms: Kad es strādāju ar CQWP, Ja slikti iekšējo vārdu pievienojis <CommonViewFields>, CQWP taču man pateiktu, ka vaicājums bija neatgrieza nekādus rezultātus. bet, Ja lauka nosaukumam ir pievienots datu tips, tas atgriezīsies rezultāts. Pievienojot datu tipa faktiski maskē problēma, jo bija norādes neeksistējoša lauku. Varētu pievienot to, bet, kad es centos parādīt tās vērtību, Es vienmēr get tukšu.

Tas nebija ne maskas kļūdas:

<CommonViewFields>Due_x0020_Date;</CommonViewfields>

Tas nebija maskas kļūdas:

<CommonViewFields>Due_x0020_Date,DateTime;</CommonViewfields>

</beigās>

Technorati Tags: Technorati Tags: , ,