Estas multaj bonaj ekzemploj ĝisdatigi laŭmendajn listojn tra la SDK. Ĉi tie estas ankoraŭ alia.
Komerca problemo: InfoPath formo estis desegnita ke ebligas uzantojn eniri enretajn aĉetajn rekviziciojn. POa Rekvizicio nombroj devus esti tradicia sinsekvo bazita integralajn valorojn kaj kalkulita aŭtomate.
Komerca Solvo: Krei laŭmendan MUSKAN liston enhavanta du kolumnojn: "ControlField" Kaj "ControlValue". La valora kolumno enhavas la sekvantan aĉetan rekvizician nombron. Noti ke la kolektiva "kontrolo" Nomanta kongreson provizas por estontaj kontrolaj kampoj kiu povas esti uzita kiel devita.
Teknika Solvo: Krei araneaĵan servon alirita de la InfoPath kliento. La araneaĵa servo revenas reen la sekvantan aĉetan rekvizician nombron kaj ĝisdatigas la valoron de la listo.
Lecionoj Lernis:
- Kiam aldonanta ĉi tiun araneaĵan servon kiel datuma fonto al la InfoPath formo, Mi trovis ĝin necesa transformi ĝin al udc kaj enteni ĝin en datuma konekta biblioteko.
- Mi ankaŭ trovis ĝin necesa ebligi transversan domajnon scripting tra centra serva administro // Aplika administrado // Forma servilo konfiguracio.
- La unua tempo la formo provita aliri la araneaĵan servon, Ĝi prenas momenton kaj sur okazo, Ĝi volus tempon ekstere. Mi ludadis kun fiksoj en forma servilo konfiguracio vastigi la timeout fiksoj kaj ke ŝajnita helpi.
La kodo:
Uzanta Sistemo;
Uzanta Sistemo.Araneaĵo;
Uzanta Sistemo.Araneaĵo.Servoj;
Uzanta Sistemo.Araneaĵo.Servoj.Protokoloj;
Uzanta Microsoft.SharePoint;
Uzanta Sistemo.Konfiguracio;
[WebService(Namespace = "Http://Www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
Publika Klaso PoService : Sistemo.Araneaĵo.Servoj.WebService
{
Publika PoService () {
//Uncomment la sekvanta linio se uzanta desegnita erojn
//InitializeComponent();
}
/// <Resuma>
/// Akiri la sekvantan POan nombron de la sharepoint po nombro kontrola listo.
/// Pliigo la POa nombro en tiu listo.
/// </Resuma>
/// <Revenoj></Revenoj>
[WebMethod]
Publika Ŝnuro GetNextPoNumber()
{
Ŝnuro SpPoControlSiteName; // Nomo de la reala MUSKA ejo kiu gastigas la POan Kontrolan liston.
Ŝnuro SpPoControlListName; // Nomo de la reala MUSKA listo enhavanta la Po kontrolo.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
Ŝnuro NextPoReqNumber = "Xyzzy";
Uzanta (SPSite Ejo = Nova SPSite(SpPoControlSiteName))
{
Uzanta (SPWeb Araneaĵa = ejo.OpenWeb())
{
SPList CurrentList = araneaĵo.Listoj[SpPoControlListName];
Foreach (SPItem ControlItem Je CurrentList.Eroj)
{
Se (((Ŝnuro)ControlItem["ControlField"]).Egaluloj("NextPoNumber"))
{
NextPoReqNumber = (Ŝnuro)ControlItem["ControlValue"];
Int Int_nextPoReqNumber;
Int_nextPoReqNumber = Transformi.ToInt32(NextPoReqNumber);
Int_nextPoReqNumber ;
ControlItem["ControlValue"] = Int_nextPoReqNumber;
ControlItem.Ĝisdatigo();
}
} // Troviĝanta, Leganta kaj ĝisdatiganta la POan nombron en la listo.
} // Uzanta spweb araneaĵa = ejo.Openweb()
} // Uzanta spsite ejo = nova spsite("Http://Localhost/mizuho")
Reveno NextPoReqNumber;
}
}