MUSKO: Ĝisdatiganta laŭmendan liston

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;

}
}

Unu pensis sur "MUSKO: Ĝisdatiganta laŭmendan liston

  1. KSP skribis:
    Hi Paul,
    Ni havas similan situacion kio vi estas mencianta sed la problemo estas i deziras uzi ĉi tiun araneaĵon servie sur ŝarĝa ekvilibra servilo.Tial,Kiel pritrakti concurrency petoj en ĉi tiu kazo aŭ kiel fari la novan petan atendon kaj nur unu peto devus ĝisdatigi la listan nombran kasregistrilon tiam ĉiuj aliaj petoj devus esti en que.Bonvolu lasi Mi scii kiel atingi tion ĉi.
    Dankonas en Antaŭenigo.
    Respondo

Lasi Respondon

Via retpoŝta adreso ne estos eldonita. Postulita kampojn estas markita *