Kategorija Arhiv: SharePoint

Kako odpraviti skrivnostno SharePoint napake.

Pregled:

Razhroščevanje je težko pri razvoju po meri funkcionalnost za Windows SharePoint Services 3.0 (WSS) ali Microsoft Office SharePoint Server (MOSS). Glavni krivec je, da SharePoint običajno površine zelo malo diagnostične informacije na spletnem brskalniku, ko pride do napake. Ta blog vnos opisuje, kako poiskati dodatne sistemsko ustvarjena diagnostične informacije, ki lahko pogosto zagotavljajo da ekstra nekaj podrobnosti, ki potrebuje za prepoznavanje vzrokov. To lahko nato privede do rešitve problema.

Imam uporabljajo to tehniko z velikim uspehom rešiti drugače skrivnostne napake.

Pristop:

SharePoint prihrani veliko informacij za diagnostični dnevnik v dnevniški datoteki v na 12 panj.

"12 panj" se običajno nahaja na "C:\Program FilesCommon FilesMicrosoft SharedWeb Server Extensions12 ". (Nisem prepričan, če je mogoče, je 12 panj živeti kjerkoli drugje, v bistvu).

Ideja je najti trenutna dnevniška datoteka, silo napako in nato hitro odprite dnevniško datoteko. Ta dnevniške datoteke so značilna:

  • Veliko količino informacij. SharePoint ustvari zelo veliko količino diagnostične informacije in piše Ta dnevniške datoteke zelo hitro. Morate biti hitro s prsti se je zajetje.
  • Mnogoterost. SharePoint ne napisati eno dnevniško datoteko, vendar ne ustvarja več dnevniške datoteke v zaporedju.
  • Kopirajte in prilepite lepo v MS Excel.

Moja najljubša metoda:

  1. Odprt navzgor Raziskovalcu, kaže na 12 hivelogs.
  2. Razvrščanje pogleda razkazati po datumu spremembe (najprej najbolj nedavne).
  3. Označite najbolj trenutna dnevniška datoteka.
  4. V oknu spletnega brskalnika, silo napake pojavijo.
  5. Hitro odprite trenutna dnevniška datoteka in prekopirajte njegovo vsebino v MS Excel.
  6. Skok do konca in analizo ustreznih vpisov.

Druge opombe:

Privzeto, diagnostični dnevnik se nahaja na 12 hiveLOGS imenik.

MS Best practices (kot Mike T. Microsoft) država, ki dnevniške datoteke je mogoče shraniti na ločen trdi disk. Nedoločni zaimek does to preko osrednje skrbniško. Skrbnik sistema lahko naredil to, v tem primeru očitno bi morali najti dnevniško datoteko tam namesto privzete 12 panj mesto).

Ta vnos obravnava vprašanja, kot so:

  • SharePointov potek dela ni bilo mogoče zagnati zaradi notranje napake.
  • (več dodajo sčasoma)
  • Ta vnos je bil koristen, diagnosticiranje napak poteka dela (npr.. "Potek dela se ni začel zaradi notranje napake").

MOSS: Uspešen uvod v organizacijo

(Ta vnos cross napoteni med http://paulgalvin.spaces.live.com/blog/ in http://blogs.conchango.com)

Napotitve na tej strani so moja lastna in ne nujno predstavljajo Conchango's pozicije, strategije ali mnenj.

Pregled:

Ta vnos opisuje nekaj osnovnih informacij o velikem (3,000 uporabniki) Microsoft Office SharePoint Server (MOSS) širitev in kaj smo naredili, da se projekt v tako, da stranka je vesel in trdno navzdol pot konča s polno sprejetja MOSS nabor funkcij. Za pisanje o začetku, smo približno 50% skupaj s prvo fazo projekta. Kot stvari napredek, Jaz bom posodobite ta vnos in/ali pisati nove vnose.

V tem primeru, družba je že nameščen SharePoint Portal Server 2003. Skupini je nameščen izdelek v neke vrste "da vidimo če kdorkoli ljubkovati" moda. To je hitro sprejela veliko poslovnih uporabnikov in je postala zelo priljubljena v podjetju nasploh. Kot si lahko predstavljate, to ni najboljša strategija za širitev (ki stranko takoj priznala) in ko mah prišel na sceno, odjemalec odpravili "to storiti desno" in najel nas, da bi jim pomagali.

Ena osrednji vprašanj, srečujemo, ko smo začeli izvajanje tega projekta je bila: Kako bomo uvedbo MOSS na to stranko? Glede na to, stranka je že imela izkušnje s SharePointom, smo spraševali — ali moramo narediti "diferencialni" usposabljanja ali ne, smo začeli od tal navzgor? Po obdelavi z ključnih uporabnikov, Ugotovili smo, da se to zdravljenje kot zeleno polje projekta, ki je bolj smiselno.

Da odločitev je izhodišče, vendar še vedno nam preostane pomemben pogoj poskušal ugotoviti dobro strategijo za mah uvajajo v podjetje. MAH je tako velike živali … To vključuje upravljanje vsebin, upravljanje dokumentov, Išči, varnost, izbiro občinstva, projektno vodenje, "čudovito štirideset" predloge, potek dela, poslovni podatki priključek, itd. Par to z dejstvom, da je veliki organizaciji ki lahko resnično izkoristiti skoraj vsak večji MOSS funkcijo in imate dobitek velik projekt z enterprise reach in veliko dobrih stvari, ki se dogaja.

Smo srečujejo s težavo znova in znova … MAH je podjetje doseči z njegovega podjetja nabor funkcij, še celo nekoliko sofisticirane stranke imajo težko duševno absorbira te funkcije, naj sam vključitev precejšnji del jih v njihovo dnevno rutino.

Nimam čarobno rešitev problema. Namesto tega sem naslov samo prvih korakih, ki smo jih naredili s stranko, da jih vodijo po poti za uspešno dolgoročno sprejetje.

Področje:

Toliko, kot sem hotel ekipa obrti načrt projekta, ki je vključevala tako mejnike, kot "PoepleSoft integracijo prek BDC zaključili", "Nov izdelek prek-oddelkov začetek poteka dela popolno" in "Izvršno vodstvo KPI sprejet", Sem moral poravnati za nekaj manj. To pa ne pomeni da manj"" je slabo. v bistvu, "manj" da smo se odločili za začetni zagon je bil milj pred kjer so bili, preden smo začeli. V našem primeru, "manj" spremenila v:

  • Upravljanje preprostih dokumentov z uporabo knjižnice dokumentov, različice vrste nadzora in vsebine.
  • Učinkovito iskanje na osnovi vrste vsebine in prilagodite iskanje vnaprej (preko upravljane lastnosti, XSLT lepe rezultate, itd).

Poleg zgoraj navedenih lastnosti poslovnega (kar pomeni, da so bili valjan jasno v vsi oddelki in uporabniki), smo dodali naslednje singleton v področje mini-projekte:

  • Dokaz koncepta vključevanja BDC.
  • Proces multi-step in razvejan poteka dela, ki so ustvarili preko EPD.
  • Kompleks InfoPathov obrazec.
  • Navarjanje KPI-jev za nekaj poslovnih procesov (verjetno HR talent pridobitev v našem primeru, Čeprav to se lahko spremeni).

Področje tukaj ni 100% natančno pa predstavnika našega pristopa in dovolj za moj namen tukaj, ki je, da pojasni, kaj menim, da je učinkovit"" uvedba MOSS, ki bo stranko trdno določeni zlati poti za popolno sprejetje MOSS.

Ne bom pisal veliko več o singleton v tej postavki. Želim poudariti, da so del naše strategije, oblikovanje. Ideja je, da izvajanje temeljnih dokumentov upravljanje in iskanje funkcij za vse uporabnike še zagotavljajo zelo funkcionalno, visoko vidne in zelo reprezentativne primere drugih značilnosti jedro MOSS, ki je preprosto presegajo sposobnost večina uporabnikov, da absorbira v tej zgodnji fazi. Vendar, bodo "tam zunaj" in ena upa, da bo drugih poslovnih enot poznam ali izvedeti o njih in želite te funkcije zase, vodi k večji sprejetje. Te zgodbe o uspehu posameznega služi tudi za zagotavljanje naše prodajne ekipe "strelivo" za uspešno drugi zmagal, tretji in n-faze projektov.

Kaj pa uvajamo in zakaj?

Poravnajo na upravljanje dokumentov in Išči kot izhodiščno lotitev-širok zahtevo, smo potrebovali za začetek zbiranja podrobnosti. Kot praktično zadevo, to vrti okoli razumevanje svojih dokumentov in da na koncu preslikana v razumevanje vrste vsebine.

Sem ugotovila, je težko razložiti vrste vsebine brez vizualne aides. Več tehničnih folk lahko oditi iz razpravo o vrstah vsebine, ko je CT so opisane v izrazoslovju. "A CT je podobna tabeli zbirke podatkov, ima stolpce in stolpcev definirane podatkovne tipe, vendar CT podatkovni tipi vključujejo več kot preprosto celo število/datum, vendar je tudi "izbira" in "za iskanje" in podobno." Lahko govorimo o "razširitev" vrste vsebine, podobno kot ena lahko podedovali funkcionalnost iz osnovnega razreda v objektno orientirani jeziki. Vendar to seveda ni koristno za prevoz oddelka admin oseba, ki je brez tehničnega ozadja. Tj, skoraj vsakdo, ki zadevah v MOSS zagona.

Uporaba belo tablo je iffy. Ste predstavil zamisel o vrsto vsebine in sestavljen briljantno (ali tako se zdi) slike vrst vsebine in kaj storiti za vas v smislu iskanja in kako jih je mogoče razširiti, itd. Na koncu, občutek, kot nekaj žarnice so se obrnili, vendar je nastala slika tablo nered.

To nas je pripeljalo do naše sedanje in tako daleč najučinkovitejši pristanek mesto: mesto MOSS sandbox konfiguriran za prikaz te funkcije.

Z uporabo strani sandbox, smo pokazati:

  • Vrste vsebine:
    • Ustvarjanje CT z več podatkovnimi tipi (besedilo, datum, izbira, logična vrednost, za iskanje, itd).
    • Razširitev CT z ustvarjanjem novih CT, ki temelji na matično.
    • Iskanje dokumentov z metapodatki CT.
  • Knjižnice dokumentov:
    • Povezovanje enotnega CT s knjižnico.
    • Kaj se zgodi, ko smo upload dokument v to knjižnico?
    • Povezovanje več CT s knjižnico doc.
    • Kaj se zgodi, ko smo upload dokument v to knjižnico?
    • Filtriranje in razvrščanje prek stolpcev v doc lib.
    • Pogledov knjižnice dokumentov:
      • Razvrščanje
      • Združevanje
      • "Nagel vstop" (podatkovni list pogled)
      • "Neoznačene podatkov" (za pomoč pri migracije MOSS iz drugih virov vsebine; več o tem v nadaljevanju).

Sandbox stran:

Smo zasnovan našo spletno stran sandbox biti stalnica v razvojno okolje, ki se uporabljajo za namene usposabljanja, dolgo, ko končamo projekt in vključenih več artefakte, kot je opisano:

Vrste vsebine:

Opredelili smo te vrste vsebine: Računa, Nabavni nalog, Račun za storitve.

Smo izbrali računa in nabavni nalog, ker so bolj ali manj splošno pod
stal subjekti. Vsi v podjetju razume, da račun je zahtevo za plačilo, ki je kupca za na znesek izdanih na določenem datum izplača kot na nekaj Plačilni pogoji. To vodi do naravnih opredelitev CT, ki smo jo poimenovali "usposabljanje račun" (da se razlikuje od katere koli druge vrste računa). Nabavni nalog je podobno težko opredeli. Ustvarili smo tudi a "usposabljanje storitve računa" z ustvarjanjem novega CT na podlagi "usposabljanje račun" CT in dodani samo en stolpec, "opravljene storitve".

Z zgoraj, smo lahko sedaj pokazati nekaj ključnih značilnosti osebe CT brez pridobivanje bogged dol poskuša razložiti abstrakten pojem najprej; vsakdo že razume, kaj mislimo s "računa" in "naročilnica" in so namesto tega lahko osredotočili na mehanike CT sama.

Seznamih po meri:

CT s stolpcev vrste »iskanje" pokažite na po meri seznam ali knjižnica dokumentov. Mi uporabljamo to obširno in za sandbox, smo ustvarili podporo po meri seznam, ki vsebuje stranke. Smo izbrali stranke, ker je preprost koncept, da razumejo in dokazovanje. Račun CT je stolpec, "stranka" ki je definicija tipa "za iskanje" ki kaže na ta seznam.

Smo ustvarili podoben seznam po meri obvladovati "prodajalci" za naročilo"" CT.

Knjižnice dokumentov:

Ustvarili smo dve knjižnice dokumentov: "Računi" in "Mešani dokumenti".

Smo knjižnico konfigurirali v računih dokumenta za upravljanje dokumentov samo CT tipa "Račun".

Smo nastavljen "mešani dokumenti" knjižnica upravlja vse treh CT.

Ustvarite več pogledov, ki kažejo, razvrščanje, filtriranje, list in združevanje.

Iskanje:

Smo opredeljeni dve novi upravljane lastnosti in preslikan jih številko računa in kupca.

Smo ustvarili novo spletno stran iskanja po meri vnaprej in spremenjen, da omogočite uporabnikom, da iščejo za "račune" z uporabo teh dveh preslikanih lastnosti.

Spreminjanje XSLT, da številko računa in kupca, Kdaj predstavi, pojavijo v HTML tabeli v svetli barvi. Cilj je dokazati, da takšno oblikovanje je mogoče.

Prenos je vse skupaj:

Bomo poskrbeli za ključne uporabnike, da sodelujejo v demo.

Mi sledite ta preprost skript:

  1. Opišite pomen in namen CT, z uporabo računov in nabavnih nalogov kot primeri.
  2. Pokaži računa CT opredelitev, medtem ko hkrati jim zagotoviti, da ni treba uporabiti teh zaslonov, sami, Samo dvigni konceptov.
  3. Pojdite v knjižnico dokumentov računov.
  4. Upload dokument.
  5. Dokazati, da je kupec kaplja-niz res izvirajo iz seznam po meri.
  6. Kupca na seznam dodajte novo stranko in nato posodobite račun pred kratkim naložili meta podatkov z novoustanovljeno stranko.
  7. Preklopite na "mešani dokumenti" Knjižnica in upload dokument. Pojasni, kako sistem vpraša za vrsto dokumenta.
  8. Pojdite nazaj v knjižnico dokumentov računov in kažejo, kako tako, da kliknete na ime stolpca spremeni vrstni red.
  9. Dokazati ravni stolpca filtriranje.
  10. Pokaži različne poglede, ki kažejo Multi-Level razvrščanje, filtriranje in združevanje.
  11. Prikažite pogled stanja podatkov.
  12. Razložite namen "neoznačene dokumente" pogled.
  13. Prehod na prilagojeno napredno iskanje.
  14. Do sedaj, pred kratkim naložili dokument naj sprevod ter indeks, tako izvedete iskanje, da dokazuje sposobnost za iskanje tega računa prek preslikanih lastnosti.
  15. Smo pokazati razlike med iskanjem prek preslikanih lastnosti vs. samo iskanje besedila.

Na tej točki, smo bolj ali manj končali z demo. Zdi se, da o 30 za 45 minut, glede na to koliko vprašanja ljudje vprašajo.

Smo nato pošljete nazaj do svoje mize z "domače naloge". Ta je sestavljen iz preprost Excelovo preglednico, kjer smo ga prosite za nas opredeliti, kaj mislijo, da potrebujejo glede na CT, tako visoke ravni (samo ime in poslovni namen) stolpci in vrsto podatkov bi hranijo v stolpcu. Ne prosite, da določite stolpec podatkovne tipe v smislu MOSS, vendar pogoji poslovanja.

V Povzetek:

Ustvarili smo sandbox okolju, ki jih lahko uporabljamo za pokazati nekaj jedro MOSS funkcije katerih Pritožba se lotitev-širok.

Smo vzoru zlahka razume in skupni poslovni subjekti, tako da uporabniki lahko osredotočijo na mah in ne zaslužiti bogged na subjekti / primeri, sami.

Poslovni uporabniki hoje od teze sej z "domače naloge" v obliki excel dokumentov, ki so zdaj pristojni, da izpolnite in uporabite za oblikovanje lastne vrste vsebine prve-cut.

Končno, kot sčasoma opravljamo demos, člani skupine stranke, sami postanejo bolj sposobni opravljati naprej, demo sami in na splošno sprostite preostanek nas gor delati na bolj zapletena vprašanja, kot svetovni taksonomija, zapletenih potekov dela, BDC in podobno.

MOSS: Funkcionalno primer-podatkovnim tipom po meri

Poslovni scenarij:

Izvajanje poslovnega MOSS za proizvodno podjetje z 30+ mesta in nekaj deset podjetij oddelkov.

Poslovni cilj:

Kljub množico poslovnih skupin (oddelki, lokacijah, itd), nekatere podatke je treba ohraniti na svetovni ravni. Na primer, avtoritativni glavni seznam vseh fizičnih lokacijah podjetja (npr.. proizvodni objekti, skladiščnih lokacijah, prodajnih mestih) je treba ohraniti v osrednjem mestu.

Tehnične težave:

Podjetje taksonomije je bilo izvedeno z uporabo več različnih zbirk mesta. Mi bi rad, da ustvarite avtoritativno seznam fizičnih lokacijah v WSS seznam po meri. Nato, ko smo potrebovali, da so v stolpcu v vrsto vsebine (ali stolpec dodati seznam ali doc knjižnica) ki vsebuje skupen lokacijah, bomo ustvarili stolpec z uporabo "iskanje" podatkovni tip in točko glavnega seznama.

Na žalost, iskanje podatkovni tipi morajo imeti dostop do vira seznam "lokalno" kar pomeni, da ne more naša avtoritativni seznam span zbirke mest.

Tehnično rešitev:

Izvajati nova vrsta podatkov po meri izvajajo na podlagi SPField in zastopali DropDownList v UI, katerih ListItems zapolnijo od glavnega seznama WSS.

Ustvarili smo novo zbirko mest, imenuje "http://localhost/EnterpriseData". Tam, ustvarili smo poimenovali "Corporate lokacijah" seznam po meri. Ta seznam uporablja samo standardne "naslov" polje vsebuje seznam dejanskih lokacijah podjetja.

Eden sledi več nepovezanih korakov ustvariti s podatkovnim tipom po meri v WSS. So:

  1. Določite razred, ki deduje od SPField (Eden lahko podedujejo od drugih področjih, če zahtevati).

Tukaj je koda za to:

javnih razred XYZZYCorporateLocationField : SPFieldText
{
javnih XYZZYCorporateLocationField
(SPFieldCollection polja, niz typeName, niz displayName)
: osnove(polja, typeName, displayName) { }

javnih XYZZYCorporateLocationField
(SPFieldCollection polja, niz displayName)
: osnove(polja, displayName) { }

javnih Preglasitev BaseFieldControl FieldRenderingControl
{
dobili
{
BaseFieldControl nadzor = nove XYZZYCorporateLocationFieldControl();
nadzor. Imepolja = to.InternalName;
vrnitev nadzor;
} //dobili
} // fieldrenderingcontrol

javnih Preglasitev niz GetValidatedString(predmet vrednost)
{
Če (to.Zahteva || vrednost. ToString().Je enako(Niz.Prazna))
{
vrzi nove SPFieldValidationException ("Oddelek ni dodeljena.");
}
vrnitev osnove.GetValidatedString(vrednost);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Določite drug razred, ki deduje od osnovno polje kontrolnika, kot v:

javnih razred XYZZYCorporateLocationFieldControl : BaseFieldControl
{
zaščiteni DropDownList XYZZYCorporateLocationSelector;

zaščiteni Preglasitev niz DefaultTemplateName
{
dobili
{
vrnitev "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

javnih Preglasitev predmet Vrednost
{
dobili
{
EnsureChildControls();
vrnitev to.SelectedValue XYZZYCorporateLocationSelector.;
} // dobili
Set
{
EnsureChildControls();
to.XYZZYCorporateLocationSelector.SelectedValue = (niz)to.ItemFieldValue;
} // Set
} // Preglasitev predmeta vrednost

zaščiteni Preglasitev nična CreateChildControls()
{

Če (to.Področju == NULL || to.ControlMode == SPControlMode.Prikaz)
vrnitev;

osnove.CreateChildControls();

to.XYZZYCorporateLocationSelector =
(DropDownList)FindControl TemplateContainer.("XYZZYCorporateLocationSelector");

Če (to.XYZZYCorporateLocationSelector == NULL)
vrzi nove Izjema("NAPAKA: Ni mogoče naložiti. Datoteki ASCX!");

Če (!to.IsPostBack strani.)
{

z uporabo (»SPSite « stran = nove »SPSite «("http://localhost/enterprisedata"))
{
z uporabo (SPWeb Spletna stran =. OpenWeb())
{

SPList.Update() currentList = spletni. Seznami["Podjetja lokacijah"];

foreach (SPItem XYZZYCorporateLocation v currentList.Items)
{
Če (XYZZYCorporateLocation["Naslov"] == NULL) «««;

niz theTitle;
theTitle = XYZZYCorporateLocation["Naslov"].ToString();

to.XYZZYCorporateLocationSelector.Items.Add
(nove ListItem(theTitle, theTitle));

} // foreach

} // z uporabo spweb web = site.openweb()
} // z uporabo strani »SPSite« = nov spsite("http://localhost/enterprisedata")

} // Če ne a povratno objavo

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Zgornjo kodo v bistvu izvaja logika za populating DropDownList z vrednostmi iz seznama WSS po meri, ki se nahaja na http://localhost/enterprisedata in imenovan "oddelki podjetij".

I opredeljene obeh razredov v enotni .cs datoteko, skupljevati to ter ga v predpomnilniku GAC (močno potrebnih, seveda).

  1. Izvajanje predloga kontrolnika (.ascx) kot je prikazano:

<%@ Nadzor Jezik= "C#" Podeduje="Microsoft.SharePoint.portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.portal,Prevod = 12.0.0.0, kultura = neutral,ŽetonJavnegaKljuča = 71e9bce111e9429c" compilationMode= "Vedno" %>
<%
@ Registracija TagPrefix= "wssawc" Namespace="Microsoft.SharePoint.WebControls" Skupščina="Microsoft.SharePoint, Različica = 12.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = 71e9bce111e9429c" %> <%@ Registracija TagPrefix= "SharePoint" Namespace="Microsoft.SharePoint.WebControls" Skupščina="Microsoft.SharePoint, Različica = 12.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = 71e9bce111e9429c" %>
<SharePoint:Predlogo upodabljanja ID= "XYZZYCorporateLocationFieldControl" potepuh= "strežnik">
<Predloga>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" potepuh= "strežnik" />
</Predloga>
</
SharePoint:Predlogo upodabljanja>

Zgoraj je shranjena v c:\program filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Končno, Ustvarjamo XML datoteko shraniti v je... 12XML imenik. To je CAML, ki določa naše podatkovnim tipom po meri in za moj primer, izgleda takole:

<?XML različica="1.0" kodiranje="UTF-8" ?>
<
FieldTypes>
<
FieldType>
<
Polje ime="TypeName">CorporateLocations</Polje>
<
Polje ime="ParentType">Besedilo</Polje>
<
Polje ime="TypeDisplayName">Podjetja lokacijah</Polje>
<
Polje ime="TypeShortDescription">Povsod XYZZY podjetij, vključno z zmogljivostmi za proizvodnjo ali druge.</Polje>
<
Polje ime="UserCreatable">RES</Polje>
<
Polje ime="ShowInListCreate">RES</Polje>
<
Polje ime="ShowInDocumentLibraryCreate">RES</Polje>
<
Polje ime="ShowInSurveyCreate">RES</Polje>
<
Polje ime="ShowInColumnTemplateCreate">RES</Polje>
<
Polje ime="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Različica = 1.0.0.0, Culture = neutral, ŽetonJavnegaKljuča = b0b19e85410990c4</Polje>
<
RenderPattern ime="DisplayPattern">
<
Stikalo>
<
Izraz>
<
Stolpec />
</
Izraz>

<Primeru Vrednost=""/>

<Privzeto>
<
HTML>
<![CDATA[
<span style = "barva:Red"><b>]]>
</
HTML>

<
Stolpec SubColumnNumber="0" HTMLEncode="RES"/>

<HTML><![CDATA[</b></razpon>]]></HTML>

</
Privzeto>
</
Stikalo>

</
RenderPattern>
</
FieldType>
</
FieldTypes>
Ta XML datoteka doda s podatkovnim tipom po meri WSS "knjižnica" in tekme gor v primerjavi z GAC je skupščina.

Po vseh teh bitov gibljejo na mesto, iisreset na strežniku in jo morajo vsi začeli delati lepo.

MOSS: Posodabljanje seznam po meri

Obstaja veliko dobrih primerov posodabljanje seznamov po meri prek SDK. Tukaj je še en.

Business problem: InfoPathov obrazec je bil oblikovan, da omogoča uporabnikom, da vnesejo online nakup zasegi. PO zahtevnice številke je treba tradicionalne zaporedje temelji celoštevilske vrednosti in samodejno izračuna.

Poslovnih rešitev: Ustvarite seznam po meri MOSS, ki vsebuje dva stolpca: "ControlField" in "ControlValue". V stolpcu vrednost je naslednja številka zahtevka za nabavo. Upoštevajte, da je generično "nadzor" poimenovanja predvideva prihodnje kontrolnik polja, ki se lahko uporabijo kot je potrebno.

Tehnično rešitev: Ustvarite spletno storitev dostopal InfoPath odjemalca. Spletna storitev vrne nazaj na naslednja številka zahtevka za nabavo in posodobi vrednost seznama.

Spoznanja:

  • Pri dodajanju to spletno storitev kot vir podatkov InfoPathovega obrazca, Sem ugotovila, da je treba spremeniti to v a udc in shranjevanje v knjižnici podatkovnih povezav.
  • Mi je tudi zdelo potrebno omogočiti navzkrižne domeno skriptno izvajanje prek centralne službe uprave // upravljanje programa // obliki strežnika konfiguracije.
  • Prvič obliki poskušali dostopati do spletne storitve, To traja nekaj časa in včasih, To bi pavza. Sem fiddled s nastavitve v obliki konfiguracijo strežnika, da razširite nastavitve časovne omejitve in ki je zdelo, da pomaga.

Šifra:

z uporabo Sistem;
z uporabo System.Web;
z uporabo System.Web.Services;
z uporabo System.Web.Services.Protocols;
z uporabo Microsoft.SharePoint;
z uporabo System.Configuration;

[Spletna storitev(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
javnih razred PoService : System.Web.Services.Spletna storitev
{
javnih PoService () {

//Odkomentirate vrstico če using izdelane komponente
//InitializeComponent();
}

/// <povzetek>
/// Dobimo naslednjo številko PO seznamu sharepoint po število nadzor.
/// Prirastek številko PO tem seznamu.
/// </povzetek>
/// <Vrne></Vrne>
[WebMethod]
javnih niz GetNextPoNumber()
{
niz SpPoControlSiteName; // Ime dejansko MOSS mesto, ki gosti PO kontrolni seznam.
niz SpPoControlListName; // Ime dejansko MOSS seznam, ki vsebuje kontrolnik Po.

SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();

niz nextPoReqNumber = "xyzzy";

z uporabo (»SPSite « stran = nove »SPSite «(SpPoControlSiteName))
{
z uporabo (SPWeb Spletna stran =. OpenWeb())
{

SPList.Update() currentList = spletni. Seznami[SpPoControlListName];

foreach (SPItem controlItem v currentList.Items)
{

Če (((niz)controlItem["ControlField"]).Je enako("NextPoNumber"))
{
nextPoReqNumber = (niz)controlItem["ControlValue"];

int int_nextPoReqNumber;
int_nextPoReqNumber = Pretvori.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}

} // Iskanje, branje in posodabljanje številko PO seznamu.


} // z uporabo spweb web = site.openweb()
} // z uporabo strani »SPSite« = nov spsite("http://localhost/mizuho")

vrnitev nextPoReqNumber;

}
}