Seal on palju häid näiteid ajakohastamine kohandatud loendite kaudu SDK. Siin on veel üks.
Äriprobleemi: InfoPathi vorm on mõeldud võimaldab kasutajatel sisestada online osta ostutellimused. PO nõudelehe numbrid peaksid olema traditsiooniline järjestus põhineb täisarvulised väärtused ja arvutatakse automaatselt.
Majandustarkvaraga: Looge kohandatud MOSS loend sisaldab kahte veergu: "ControlField" ja "ControlValue". Väärtuse veerg sisaldab järgmise ostu ostutellimuse kood. Pange tähele, et liiginimi "ülevaade" nimetamistava nähakse ette tulevasi kontrolli väljad, mida võib kasutada vastavalt vajadusele.
Tehniline lahendus: Luua InfoPathi kliendi juurde veebiteenusele. Veebiteenus tagastab tagasi Järgmise ostu ostutellimuse kood ja värskendab loendis väärtus.
Õppetunnid:
- See veebiteenus lisamisel andmeallikana InfoPathi vorm, Olen pidanud vajalikuks teisendamine on udc ja talletada selle andmeühendusteegi.
- Olen ka leidsin selle domeenidevahelist skriptimise kaudu kesksete talituste haldamise võimaldamiseks // rakenduse haldamine // serveri konfiguratsiooni.
- Esimest korda vormi proovis pääseda juurde veebiteenusele, See võtab aega ja mõnikord, See oleks aja maha. Ma fiddled seadetega serveri konfiguratsiooni ajalõpu sätteid laiendada ja see tundus, et aidata.
Kood:
kasutades Süsteemi;
kasutades System.Web mitu;
kasutades System.Web.Services;
kasutades System.Web.Services.Protocols;
kasutades Microsoft.SharePoint;
kasutades System.Configuration;
[Veebiteenuse(Namespace = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
avalik klass PoService : System.Web.Services.Veebiteenuse
{
avalik PoService () {
//Eemalda kommentaar rea kui kasutades loodud komponendid
//InitializeComponent();
}
/// <Kokkuvõte>
/// Saada järgmise PO number SharePointi loendist po arv kontroll.
/// Juurdekasvu PO number selles nimekirjas.
/// </Kokkuvõte>
/// <Tagastab></Tagastab>
[WebMethod]
avalik stringi GetNextPoNumber()
{
stringi SpPoControlSiteName; // Nime tegelik MOSS veebilehekülg, mis majutab PO Control list.
stringi SpPoControlListName; // Tegelik MOSS loendi Po juhtelementi sisaldavat nime.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
stringi nextPoReqNumber = "xyzzy";
kasutades (SPSite'i Site = Uus SPSite'i(SpPoControlSiteName))
{
kasutades (SPWebi Web = site. OpenWeb())
{
SPList currentList = web. Nimekirjad[SpPoControlListName];
foreach (SPItem controlItem aastal currentList.Items)
{
Kui (((stringi)controlItem["ControlField"]).Võrdub("NextPoNumber"))
{
nextPoReqNumber = (stringi)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Teisendada.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Asukoha kindlaksmääramine, lugemine ja PO number loendi värskendamine.
} // kasutades spweb web = site.openweb()
} // kasutate SPSite'i koduleheküljel = uue SPSite'i("http://localhost/mizuho")
edasi-tagasi nextPoReqNumber;
}
}