Kategorija Archives: SharePoint

Kaip spręsti paslaptingas SharePoint klaidų.

Apžvalga:

Derinimo sunku kurdami pasirinktinį funkcija Windows SharePoint Services 3.0 (WSS) arba Microsoft Office SharePoint serverio (SAMANŲ). Pagrindinis kaltininkas yra kad SharePoint paprastai paviršių labai mažai diagnostinę informaciją savo interneto naršyklėje klaidai. Šio dienoraščio įrašas aprašoma, kaip rasti papildomų sistemos sugeneruotas diagnostikos informacijos, kuri dažnai gali būti kad daugiau tiek išsamiai, kad vienas turi nustatyti priežastis. Tai tada gali sukelti spręsti šią problemą.

Aš naudoju šią techniką su dideliu pasisekimu spręsti kitaip paslaptingas klaidų.

Požiūris:

SharePoint taupo daug informacijos diagnostikos ieiti i žurnalo failą, 12 avilys.

"12 Avilio" "C paprastai yra:\Programa FilesCommon FilesMicrosoft SharedWeb Server Extensions12 ". (Aš nesu įsitikinęs, jei tai įmanoma, 12 avilys su gyventi kitur, tiesą sakant).

Idėja yra nustatyti esamą failą, jėgos klaida ir tada greitai atidaryti žurnalo failą. Šiuos žurnalo failus yra būdingas:

  • Dideliu kiekiu informacijos. SharePoint generuoja labai daug diagnostinę informaciją ir įrašo į žurnalo failą labai greitai. Jums reikia greitai pirštais nufotografuoti.
  • Įvairovės. SharePoint ne rašyti į vieną žurnalo failą bet gana generuoja kelis failus iš eilės.
  • Nukopijuokite ir įklijuokite gražiai į MS Excel.

Mano mėgstamas būdas:

  1. Atidarykite "windows Explorer", o tai rodo, 12 hivelogs.
  2. Rūšiuoti rodinį parodyti modifikavimo data (Pradėję nuo vėliausiojo).
  3. Pabrėžti naujausią žurnalo failą.
  4. Interneto naršyklės lange, jėgos klaidos pasitaiko.
  5. Greitai atidarykite esamą failą ir kopijuoti turinį į MS Excel.
  6. Pereiti prie pabaigos ir analizuoti atitinkami įrašai.

Kitos pastabos:

Pagal numatytuosius nustatymus, diagnostikos žurnalo įsikūręs į 12 hiveLOGS katalogas.

MS Best practices (pagal Mike T. Microsoft) kad failus turėtų būti įrašytas į atskirą kietąjį diską. Vienas tai daro per Vidurio administratorius. Sistemos administratorius gali padaryti tai, Tokiu atveju jums būtų akivaizdžiai reikia rasti failą ten o ne pagal nutylėjimą 12 avilys vieta).

Šis įrašas sprendžiami klausimai, kaip antai:

  • SharePoint darbo eigai nepavyko dėl klaidos vidaus.
  • (papildyta per tam tikrą laiką)
  • Šis įrašas buvo naudingas diagnozuoti darbo eigos klaidų (pvz.. "Darbo eigos nepavyko pradėti darbo dėl vidinė klaida").

SAMANŲ: Efektyvus prisistatymas organizacijai

(Šis įrašas kryžius iπsiψstus tarp http://paulgalvin.spaces.live.com/blog/ ir http://blogs.conchango.com)

Siuntimus paskelbtuose šioje svetainėje yra mano ir nebūtinai atspindi Conchango's pozicijas, strategijas ar nuomones.

Apžvalga:

Šis įrašas apibūdina tam tikrą pagrindinę informaciją apie didelio (3,000 vartotojai) Microsoft Office SharePoint Server (SAMANŲ) rida ir ką mes padarėme gauti sukti taip, kad klientas yra laimingas ir tvirtai žemyn kelio projektas, baigiasi visas priėmimas, MOSS funkcijų rinkinys. Kaip įrašas raštu, Mes maždaug 50% su pirmojo etapo projekto. Kaip viskas pažanga, Aš jums atnaujinti šį įrašą ir/arba rašyti naujus įrašus.

Šiuo konkrečiu atveju, bendrovė jau įdiegta SharePoint portalo serveris 2003. IT grupės įrengti savotišką "let's see, jei kas nors rūpinasi produkto" mados. Ji greitai priėmė daug verslo vartotojų ir tapo gana populiari apskritai įmonė. Kaip galite įsivaizduoti, tai buvo ne geriausia rida strategija (kurią klientas lengvai pripažįsta) ir kada MOSS atvyko į sceną, klientas nusprendė "do it right" ir samdyti mums padėti jiems.

Vienas svarbiausių susiduriame kai mes pradėjo įgyvendinti šį projektą buvo: Kaip mes įvesti MOSS prie šį klientą? Turint omenyje, kad klientas jau turėjo patirties su SharePoint, stebėjomės — mums reikia daryti "skirtumas" mokymo ar jūs pradedant nuo žemės iki? Po darbo su pagrindinių vartotojų, nustatėme, kad gydant tai kaip daugiau prasmės plyno lauko projektas.

Kad sprendimas davė atspirties taškas, bet vis dar paliko mus su pagrindinių suprasti, gera strategija diegiame MOSS įmonei. SAMANŲ yra toks didelis gyvūnas … ji apima turinio valdymo, dokumentų tvarkymas, paieškos, saugumo, Tikslinė auditorija, projektų valdymas, "Pasakų keturiasdešimt" Šablonai, darbo eigos, veiklos duomenų jungties, ir tt. Pora tai su tuo, kad ji yra didelės organizacijos, gali tikrai pasinaudoti beveik visų pagrindinių MOSS funkcija ir jūs turite didelį projektą su įmonės reach ir daug gerų dalykų vyksta Guardian.

Mes esate susiduria su šia problema kartą … SAMANŲ yra įmonė pasiekti su savo įmonės funkcijų rinkinys, dar net šiek tiek sudėtinga klientams sunku protiškai sugeria šių funkcijų, tegul tik su ženklaus dalis juos į savo kasdieninę dienotvarkę.

Aš neturiu magija sprendimas problemos. Aš vietoj adresas tik pirmųjų žingsnių, kad mes atlikome kartu su klientu vesti juos keliu į sėkmingą ilgalaikę priėmimo.

Taikymo sritis:

Nes norėjau komanda amatų projekto planą, kuris įtraukti tokių laimėjimų kaip "PoepleSoft integracijos per BDC baigtas", "Naują koordinuojami produktas pradėti darbo eigą pilnas" ir "Vykdomosios valdymas KPI patvirtintas", Man teko atsiskaityti už kažką mažiau. Tai nereiškia, kad "mažiau" yra blogai. tiesą sakant, "mažiau" kad mes nusprendėme pradinio ėjimas buvo mylių į priekį kur jie buvo prieš pradėjome. Mūsų atveju, "mažiau" virto:

  • Paprastas dokumentų tvarkymas naudojant dokumentų bibliotekos, versija valdymo ir turinio tipai.
  • Veiksmingą ieškoti pagal turinio tipus ir pritaikyti Išplėstinė paieška (Via valdomomis ypatybėmis, XSLT gana rezultatų, ir tt).

Be aukščiau visos įmonės (tai reiškia, kad jie buvo iškočiojama visiems departamentams ir vartotojai), Mes pridėjome pavienį apklaustų mini-projektus:

  • Įrodymas koncepcijos BDC integracijos.
  • Sukurtas naudojant BPD kelių žingsnių ir keliolikos atšakų eigos.
  • Sudėtingos InfoPath formos.
  • Dangos KPI dėl kai kurių verslo procesų (tikriausiai HR talentų atrankos mūsų atveju, Nors tai gali pakeisti).

Čia yra ne 100% tiksliai, bet iš mūsų požiūris ir pakankamai mano tikslais čia, tai paaiškinti, ką aš manau, kad veiksminga"" Įvadas, samanų, kad bus nustatyti kliento tvirtai aukso nustatantis visas MOSS priėmimas.

Aš įpratęs rašyti daug daugiau apie pavienį šiame įraše. Aš noriu pabrėžti, kad tai yra mūsų bendras strategijos dalis. Idėja yra įgyvendinti pagrindinių dokumentų valdymo ir paieškos funkcijas visiems vartotojams teikia labai funkcinės, didelis matomas ir labai tipiškos pavyzdžių kitų pagrindinių MOSS savybių, kurios yra tiesiog už dauguma vartotojų gebėjimą sugerti šiame ankstyvame etape. Tačiau, jie bus "ten" ir vienas tikisi, kad kitų verslo vienetų bus žinoti arba sužinoti apie juos ir reikia tų funkcijų sau, didesnis priėmimo. Šių Singletonas sėkmės istorijas taip pat tarnauja suteikti mūsų pardavimų komandą "šaudmenų" sėkmingai laimėti antra, trečioji ir n-etapo projektams.

Ką mes pristatome ir kodėl?

Atsiskaitoma dokumentų valdymo ir paieškos kaip išankstinis visos įmonės reikalavimas, mums reikia pradėti rinkti informaciją. Kaip praktiškai, tai sukasi aplink suprasti savo dokumentus ir kad galiausiai priskirti suprasti turinio tipai.

Mes pastebėjome, tai sunku paaiškinti turinio tipų be vizualiai padėjėjus. Daugiau techninių Liaudies gali vaikščioti diskusijų apie turinio tipai, kai CT's aprašytos duomenų bazės sąlygas. "Kompiuterinė yra panašus į duomenų bazės lentelės, jo stulpelius, o stulpeliai yra apibrėžta, kad duomenų tipai, bet CT duomenų tipai yra daugiau nei paprastas sveikasis skaičius/data, bet taip pat "pasirinkimas" ir "peržvalgos" ir panašiai." Mes galime kalbėti apie "išplėsti" turinio tipai, Panašiai kaip vienas galite paveldėti funkcijas iš pagrindinės klasės Objektinis kalbomis. Tačiau tai nėra akivaizdžiai naudinga transporto departamento admin asmuo, turintis techninį išsilavinimą. T. y., beveik visi, kad klausimai į MOSS rida.

Naudojant balta lenta yra iffy. Aš pristatyti turinio tipo ir nupiešti genialiais idėja (ar taip jie atrodo) Nuotraukos turinio tipus ir ką jie daro jums pagal paieškos ir kaip jie gali būti išplėsta, ir tt. Galiausiai, jis nemano, kaip kai kurie elektros lemputės yra įjungtas, bet dėl balta lenta nuotraukų yra valgykla.

Tai paskatino mus į mūsų dabartinę ir taip toli efektyviausias iškrovimo vietą: SAMANŲ smėlio dėžės svetainės, sukonfigūruotos parodyti šių funkcijų.

Smėlio dėžės svetainės naudojimas, Mes parodėme:

  • Turinio tipai:
    • Sukurti kompiuterinę Tomografiją su įvairių duomenų tipų (tekstas, data, pasirinkimas, Bulio logika, peržvalgos, ir tt).
    • Išplėsti kompiuterinę Tomografiją sukuriant naują CT pagal tėvų.
    • Dokument ų naudojant CT metaduomenų paieška.
  • Dokumentų bibliotekos:
    • Jungiančių vieną CT biblioteka.
    • Kas atsitinka, kai mes nusiunčiamas į bibliotekos?
    • Jungiančių kelis CT doc biblioteka.
    • Kas atsitinka, kai mes nusiunčiamas į bibliotekos?
    • Filtravimas ir rūšiavimas per doc lib pozicijų skiltis.
    • Dokumentų bibliotekos rodinius:
      • Rūšiavimas
      • Grupės
      • "Greitai atvykti" (duomenų lapo rodinyje)
      • "Nežymėtas duomenys" (padėti su migracijos į MOSS kitų turinio šaltinių; daugiau apie tai toliau).

Smėlio dėžės svetainės:

Mes sukurta svetainės smėlio dėžės turi būti neatsiejama kūrimo aplinkoje naudoti mokomuosius ilgai po to, kai baigsime projekto ir įtraukti keletą dalykų, kaip aprašyta:

Turinio tipai:

Mes apibrėžti šie turinio tipai: SF, Pirkimo užsakymas, Paslaugų SF.

Pasirinkome SF ir pirkimo tvarka, nes jie daugiau ar mažiau visuotinai pagal
stovėjo subjektai. Kiekvienas verslo supranta, kad sąskaita-faktūra yra reikalavimą sumokėti į a klientų už tai suma išduotas tam tikrą data mokama kaip už kai kuriuos mokėjimo sąlygos. Tai veda prie gamtos apibrėžimas CT, kurį mes paragino "mokymo sąskaita-faktūra" (atskirti nuo bet kokios kitos rūšies SF). Pirkimo užsakymas yra taip pat lengva apibrėžti. Mes taip pat sukūrėme su "mokymo paslaugų SF" sukuriant naują CT grindžiamas "mokymo sąskaita" CT ir papildoma tik vieną stulpelį, "suteiktas paslaugas".

Su aukščiau, Mes dabar gali parodyti keli pagrindiniai bruožai ir CT's be gauti Ugrzęźnięty bando paaiškinti abstrakti sąvoka pirmiausia; visi jau supranta, ką reiškia "sąskaita-faktūra" ir "pirkimo užsakymas" ir vietoj to gali skirti mechanika CT pati.

Pasirinktinius sąrašus:

CT su tipo "peržvalgos stulpelių" nukreipkite žymiklį į pasirinktinio sąrašo ar dokumentų bibliotekos. Mes naudojame šią plačiai ir smėlio, Mes sukūrėme vienas remti pasirinktinį sąrašą, kuriame Klientai. Mes pasirinkome Klientai, nes tai lengva sąvoka suprasti ir lengva įrodyti,. SF CT yra stulpelis, "klientas" kurie yra apibrėžti "peržvalgos tipo" kad taškų šio sąrašo.

Mes sukūrėme panašius pasirinktinį sąrašą valdyti "pardavėjai" "pirkimo užsakymo" CT.

Dokumentų bibliotekos:

Mes sukūrėme dvi dokumentų bibliotekos: "SF" o "Mišrios dokumentų".

Mes sukonfig sąskaitas faktūras dokumentų bibliotekoje valdyti tik dokumentų CT tipo "SF".

Mes sukonfig "mišrios dokumentai" bibliotekos valdyti visus tris CT.

Kurti kelis rodinius, kad parodyti rūšiavimo, filtravimas, duomenų lapas ir grupės.

Paieška:

Mes apibrėžti dviejų naujų valdomų ypatybių ir susieti juos su sąskaitos-faktūros numeris ir kliento.

Sukūrėme naują individualų išankstinės paieškos svetainę ir kartą ją leisti vartotojams ieškoti "SF" naudojant šių dviejų susietų savybių.

Modifikuoti XSLT, kad sąskaitos-faktūros ir klientų skaičių, Kada pateikti, HTML lentelėje ryškios spalvos. Čia siekiama parodyti, kad toks formatavimas yra įmanoma.

Išleidimą visi kartu:

Mes susitarti dėl pagrindinių vartotojų dalyvauti demo.

Sekame šį paprastą scenarijų:

  1. Apibūdinti tikslas ir paskirtis yra CT, naudojant sąskaitas-faktūras ir pirkimo užsakymus kaip pavyzdžiai.
  2. Rodyti SF CT apibrėžimas o tuo pat metu užtikrinant juos kad jie nereikia naudoti tie patys ekranai, Tiesiog paimkite sąvokas.
  3. Eiti į sąskaitas faktūras dokumentų bibliotekoje.
  4. Įkelti dokumentas.
  5. Įrodyti, kad pirkėjas Išplečiamasis tikrai yra gaunamos iš pasirinktinį sąrašą.
  6. Įtraukite naują klientą į klientų sąrašą ir tada atnaujinti įkeltų SF meta duomenis su naujai sukurtą klientas.
  7. Pereiti prie "mišrios dokumentai" bibliotekos ir įkelti dokumentą. Paaiškinti, kaip sistema paragins įvesti dokumento tipas.
  8. Grįžti atgal į sąskaitas faktūras dokumentų bibliotekoje ir Rodyti kaip paspaudę stulpelio pavadinimą keičia rūšiavimo tvarką.
  9. Įrodyti stulpelio lygio filtravimą.
  10. Rodyti skirtingus požiūrius, kad įrodyti įvairių lygių rūšiavimas, filtravimas ir grupavimas.
  11. Rodyti duomenų lapo rodinį.
  12. Paaiškinti "nepažymėtų dokumentų tikslas" Rodyti.
  13. Perjungti į individualų Išplėstinė paieška.
  14. Iki šiol, Neseniai nusiųstus dokumentus turi būti nuskaityti ir indeksuojami, Taigi atlikti paiešką, įrodo gebėjimą rasti šią sąskaitą-faktūrą per susietus nuosavybės.
  15. Mes įrodyti skirtumas tarp susietų savybių vs paiešką. tik teksto paieška.

Šiuo metu, mes daugiau ar mažiau padaryta su demo. Atrodo, kad trunka apie 30 į 45 minučių, priklausomai nuo to, kaip daug klausimų žmonės klausia.

Mes tada siųsti juos atgal į savo stalai su "namų darbus". Tai sudaro paprastą excel lentelę; kai mes prašome juos apibrėžti mums ką jie galvoja, kad jie turi pagal CT's, abu aukšto lygio (tik pavadinimas bei verslo tikslas) taip pat stulpeliai ir duomenų tipas, jie būtų laikyti stulpelyje. Mes neprašome juos apibrėžti stulpelio duomenų tipų MOSS požiūriu, Tačiau verslo sąlygos.

Apibendrinant:

Mes sukūrėme smėlio dėžės aplinką, mes galime naudoti parodyti kai kurių pagrindinių MOSS funkcijų kurio apeliacinis skundas yra visos įmonės.

Mes turime modeliuojama lengvai suprantamos ir bendro verslo subjektai, kad vartotojai gali sutelkti dėmesį samanų ir ne gauti Ugrzęźnięty subjektams / pavyzdžiai, patys.

Verslo vartotojams išeiti iš disertacija sesijas kartu su "namų darbus" kaip programa "Excel" dokumentus, kuriuos jie dabar kompetentingos užpildyti ir naudoti kuriant savo pirmosios-cut turinio tipai.

Pagaliau, kaip mes atliekame demo per tam tikrą laiką, kliento komandos nariai patys tapti pajėgi perkelti, demo savo pačios ir paprastai atlaisvinti iki mums dirbti sudėtingesnių problemų sprendimą, pvz., pasaulio taksonomija, sudėtinga darbo eigos, BDC ir pan.

SAMANŲ: Funkcinis pavyzdys-vartotojo duomenų tipas

Verslo scenarijus:

Visos įmonės įgyvendinimas MOSS gamybos įmonė 30+ svetaines ir keletą dešimčių įmonių padalinių.

Verslo tikslas:

Nepaisant daugybės verslo grupių (departamentai, vietose, ir tt), tam tikrus duomenis, turėtų būti išlaikytos pasauliniu mastu. Pvz., autoritetingų meistras sąrašas visų fizines vietoves bendrovės (pvz.. gamybiniai pajėgumai, sandėlių išsidėstymo vietose, pardavimo agentūrose) turėtų būti išlaikyta centre.

Techninių problemų:

Įmonės taksonomijos buvo įgyvendinama naudojant kelis svetainių rinkinius. Būtų norėję sukurti patikimą sąrašą fizines vietoves pasirinktinį WSS sąrašą. Tada, Kada mums reikia, kad stulpelio turinio tipe (ar stulpelį prie sąrašo ar doc biblioteka) kad esančių įmonių ir vietų, Mes būtų naudojant "peržvalgos stulpelio kūrimas" duomenų tipo ir taškas į šį pagrindinį sąrašą.

Deja, peržvalgos duomenų tipai turi pasiekti šaltinio sąrašą "vietoje" tai reiškia, kad mūsų autoritetingų sąrašas gali kirsti svetainių rinkiniai.

Techninis sprendimas:

Įgyvendinti naują pasirinktiniam duomenų tipui įgyvendinama remiantis SPField ir atstovavo DropDownList kurių ListItems užpildyti iš meistras WSS sąrašo vartotojo sąsaja.

Mes sukūrėme naują svetainę kolekcija "http://localhost/EnterpriseData". Ten, Mes sukūrėme pasirinktinį sąrašą pavadino "Verslo vietos". Šis sąrašas tik naudoja standartinę "pavadinimas" srityje turi būti tikrasis įmonių vietų sąrašą ir.

Vienas toks kelių atskirų veiksmų sukurti vartotojo duomenų tipo WSS. Jie yra:

  1. Nustatyti klasės, kuri paveldi iš SPField (vienas gali paveldėti iš kitose srityse, jei reikia).

Čia yra kodas, kad:

visuomenės klasės XYZZYCorporateLocationField : SPFieldText
{
visuomenės XYZZYCorporateLocationField
(SPFieldCollection, esantį laukai, eilutė typeName, eilutė displayName)
: bazė(laukai, typeName, displayName) { }

visuomenės XYZZYCorporateLocationField
(SPFieldCollection, esantį laukai, eilutė displayName)
: bazė(laukai, displayName) { }

visuomenės Nepaisyti BaseFieldControl FieldRenderingControl
{
gauti
{
BaseFieldControl kontrolės = naujas XYZZYCorporateLocationFieldControl();
kontrolės. Lauko pavadinimas = tai.InternalName;
grįžti kontrolės;
} //gauti
} // fieldrenderingcontrol

visuomenės Nepaisyti eilutė GetValidatedString(objekto vertė)
{
Jei (tai.Reikia || vertė. ToString().Yra lygi(Eilutė.Tuščias))
{
mesti naujas SPFieldValidationException ("Departamentas nėra priskirtas.");
}
grįžti bazė.GetValidatedString(vertė);
} // getvalidatedstring

} // XYZZYCorporateLocation

  1. Apibrėžti kita klasė, kuri paveldi iš pagrindinio lauko valdiklis, kaip ir:

visuomenės klasės XYZZYCorporateLocationFieldControl : BaseFieldControl
{
apsaugoti DropDownList XYZZYCorporateLocationSelector;

apsaugoti Nepaisyti eilutė DefaultTemplateName
{
gauti
{
grįžti "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName

visuomenės Nepaisyti objekto Vertė
{
gauti
{
EnsureChildControls();
grįžti tai.XYZZYCorporateLocationSelector. SelectedValue;
} // gauti
rinkinys
{
EnsureChildControls();
tai.XYZZYCorporateLocationSelector.SelectedValue = (eilutė)tai.ItemFieldValue;
} // rinkinys
} // Nepaisyti objekto vertės

apsaugoti Nepaisyti negalioja CreateChildControls()
{

Jei (tai.Lauko == neapibrėžtas || tai.ControlMode == SPControlMode.Ekranas)
grįžti;

bazė.CreateChildControls();

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

Jei (tai.XYZZYCorporateLocationSelector == neapibrėžtas)
mesti naujas Išimtis("KLAIDA: Negalima įkelti. ASCX failą!");

Jei (!tai.IsPostBIsPostBackırmalıyız puslapis.)
{

naudojant (SPSite svetainės = naujas SPSite("http://localhost/enterprisedata"))
{
naudojant (SPWeb interneto = svetainėje. OpenWeb())
{

SPList currentList = interneto. Sąrašai["Įmonių ir vietų"];

foreach (SPItem XYZZYCorporateLocation į currentList.Items)
{
Jei (XYZZYCorporateLocation["Pavadinimas"] == neapibrėžtas) toliau;

eilutė theTitle;
theTitle = XYZZYCorporateLocation["Pavadinimas"].ToString();

tai.XYZZYCorporateLocationSelector.Items.Add
(naujas ListItem(theTitle, theTitle));

} // foreach

} // naudojant spweb interneto = site.openweb()
} // naudojant spsite svetainės = naujas spsite("http://localhost/enterprisedata")

} // Jei ne visiškai nenaudingai

} // CreateChildControls

} // XYZZYCorporateLocationFieldControl

Šį kodą iš esmės įgyvendina logika galima įvesti DropDownList su WSS pasirinktinio sąrašo esančių reikšmių http://localhost/enterprisedata ir pavadintas "įmonių padalinių".

Aš apibrėžta abiem klasėms vieną .cs failą, rengiami jį ir įdėti jį į GAC (stiprus reikia, žinoma).

  1. Įgyvendinti kontrolės šabloną (.ascx) kaip parodyta:

<%@ Kontrolės Kalba= "#" Kad paveldi= "Microsoft SharePoint Portal ServerAdmin..., CreateSiteCollectionPanel1 Microsoft.SharePoint.Portal,Versija 12.0.0.0, kultūros = neutral =,PublicKeyToken = 71e9bce111e9429c" compilationMode= "Visada" %>
<%
@ Užsiregistruok TagPrefix= "wssawc" Namespace= "Microsoft.SharePoint.WebControls" Asamblėja="Microsoft.SharePoint, Versija = 12.0.0.0, Kultūros = neutrali, PublicKeyToken = 71e9bce111e9429c" %> <%@ Užsiregistruok TagPrefix= "SharePoint" Namespace= "Microsoft.SharePoint.WebControls" Asamblėja="Microsoft.SharePoint, Versija = 12.0.0.0, Kultūros = neutrali, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:RenderingTemplate ID= "XYZZYCorporateLocationFieldControl" būti runat= "serveris">
<Šablonas>
<ASP:DropDownList ID= "XYZZYCorporateLocationSelector" būti runat= "serveris" />
</Šablonas>
</
SharePoint:RenderingTemplate>

Pirmiau įrašomas į c:\programa filescommon filesmicrosoft sharedweb server extensions12controltemplates.

  1. Pagaliau, mes sukurti XML failą išsaugoti į į... 12XML katalogas. Tai CAML, kuris apibrėžia mūsų pasirinktiniam duomenų tipui ir mano pvz., atrodo taip::

<?XML versija="1.0" kodavimas="UTF-8" ?>
<
Lauko>
<
Lauko tipas>
<
Lauko vardas, pavadinimas="TypeName">CorporateLocations</Lauko>
<
Lauko vardas, pavadinimas="ParentType">Tekstas</Lauko>
<
Lauko vardas, pavadinimas="TypeDisplayName">Įmonių ir vietų</Lauko>
<
Lauko vardas, pavadinimas="TypeShortDescription">Visos XYZZY įmonės vietos gamybos arba kiti įrengimai.</Lauko>
<
Lauko vardas, pavadinimas="UserCreatable">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInListCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInDocumentLibraryCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInSurveyCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="ShowInColumnTemplateCreate">TIESA</Lauko>
<
Lauko vardas, pavadinimas="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Versija = 1.0.0.0, Kultūros = neutrali, PublicKeyToken = b0b19e85410990c4</Lauko>
<
RenderPattern vardas, pavadinimas="DisplayPattern">
<
Jungiklis>
<
Išraiška>
<
Stulpelio />
</
Išraiška>

<Atveju Vertė=""/>

<Numatytasis>
<
HTML>
<![CDATA[
<span style = "color:Raudona"><b>]]>
</
HTML>

<
Stulpelio SubColumnNumber="0" HTMLEncode="TIESA"/>

<HTML><![CDATA[</b></tarpą>]]></HTML>

</
Numatytasis>
</
Jungiklis>

</
RenderPattern>
</
Lauko tipas>
</
Lauko>
Šio XML failo prideda pasirinktinių duomenų tipo WSS "biblioteka" ir dera jame prieš GAC turėjo Asamblėja.

Perkėlę visus šiuos bitus į vietą, iisreset serveris ir jis turėtų pradėti darbo gražiai.

SAMANŲ: Atnaujinti pasirinktinį sąrašą

Yra nemažai pavyzdžių, atnaujinimą pasirinktiniais sąrašais per SDK. Štai dar vienas.

Verslo problemas: InfoPath šablonas buvo sukurtas taip kad leidžia vartotojams įvesti internete pirkimo paraiškos. PO paraiškų skaičius turėtų būti tradicinis seka pagal sveikojo skaičiaus reikšmes ir apskaičiuojama automatiškai.

Pervežimų: Kurti pasirinktinį MOSS sąrašą, kuriame yra dviejų stulpelių: "ControlField" ir "ControlValue". Reikšmės stulpelyje yra kitą pirkimo paraiškos numeris. Atkreipkite dėmesį, kad bendras "kontrolės" vardų suteikimo konvencija numato būsimus tikrinimus laukus, kurie gali būti naudojami kaip reikalingas.

Techninis sprendimas: Sukurti interneto paslauga prieinama InfoPath kliento. Tinklo tarnybos grąžina atgal kitą pirkimo paraiškos numerį ir atnaujina sąrašą vertės.

Pamokas:

  • Kai įtraukti šios žiniatinklio tarnybos kaip duomenų šaltinį į "InfoPath" forma, Radau jį reikia konvertuoti į a udc ir laikyti jį į duomenų ryšių biblioteka.
  • Man taip pat atrodė būtina, kad kirsti domenų scenarijų per centrinių tarnybų administracija // programos tvarkymo // formos serverio konfigūracijos.
  • Pirmą kartą formą bandė prieigai prie interneto paslauga, ji mano, o ir kartais, tai laiko. Aš fiddled su formos serverio konfigūracijos parametrus plėsti paskirtojo laiko pabaigos parametrai ir, atrodė, kad padėtų.

Kodas:

naudojant Sistemos;
naudojant System.Web;
naudojant System.Web.Services;
naudojant System.Web.Services.Protocols;
naudojant Microsoft.SharePoint;
naudojant System.Configuration;

[WebService(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
visuomenės klasės PoService : System.Web.Services.WebService
{
visuomenės PoService () {

//Anuliuoti šią eilutę jei naudojant suprojektuoti
//InitializeComponent();
}

/// <santrauka>
/// Gauti kitą PO numerį iš sharepoint po skaičiaus kontrolės sąrašo.
/// Prieaugio PO numeris į tą sąrašą.
/// </santrauka>
/// <Grąžina></Grąžina>
[WebMethod]
visuomenės eilutė GetNextPoNumber()
{
eilutė SpPoControlSiteName; // Tikrasis MOSS svetainės, kurioje yra PO teisių sąrašo pavadinimas.
eilutė SpPoControlListName; // Tikrasis MOSS sąrašą, kuriame yra Po kontrolės, pavadinimas.

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

eilutė nextPoReqNumber = "xyzzy";

naudojant (SPSite svetainės = naujas SPSite(SpPoControlSiteName))
{
naudojant (SPWeb interneto = svetainėje. OpenWeb())
{

SPList currentList = interneto. Sąrašai[SpPoControlListName];

foreach (SPItem controlItem į currentList.Items)
{

Jei (((eilutė)controlItem["ControlField"]).Yra lygi("NextPoNumber"))
{
nextPoReqNumber = (eilutė)controlItem["ControlValue"];

LC int_nextPoReqNumber;
int_nextPoReqNumber = Konvertuoti.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

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

} // Rasti, skaitymo ir atnaujinimo PO skaičių sąraše.


} // naudojant spweb interneto = site.openweb()
} // naudojant spsite svetainės = naujas spsite("http://localhost/mizuho")

grįžti nextPoReqNumber;

}
}