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;

}
}

Eden mislil na "MOSS: Posodabljanje seznam po meri

  1. KSP napisal:
    Zdravo Paul,
    Imamo podobno situacijo, kaj so omeniti, ampak problem je, želim uporabiti ta spletni Servië na strežnik obremenitve ravnotežje.Zato,kako ravnati v tem primeru vzporednosti zahteve ali kako narediti novo zahtevo čakati in le eno zahtevo mora posodobiti seznam število till potem vse druge zahteve, je treba que.Prosim povej mi, kako to doseči.
    Hvala vnaprej.
    Odgovor

pusti odgovor

Vaš e-naslov ne bo objavljen. Obvezna polja so označena *