Mae llawer o enghreifftiau da o ddiweddaru rhestrau arfer drwy'r SDK. Dyma arall eto.
Problem Busnes: Ffurflen InfoPath wedi'i gynllunio sy'n galluogi defnyddwyr i fynd i mewn archebion prynu ar-lein. Dylai'r rhifau Ymholiad PO fod yn werthoedd cyfanrif yn seiliedig ar ddilyniant traddodiadol a chyfrifo yn awtomatig.
Ateb Busnes: Creu rhestr MOSS arfer yn cynnwys dwy golofn: "ControlField" a "ControlValue". Mae y golofn gwerth cynnwys Rhif yr archeb brynu nesaf. Yn nodi bod y generig "rheoli" Mae'r confensiwn enwi yn darparu ar gyfer rheoli dyfodol meysydd y gellir eu defnyddio yn ôl yr angen.
Ateb technegol: Creu gwasanaeth gwe ar gael gan y cleient InfoPath. Mae gwasanaeth y we yn dychwelyd yn ôl Rhif yr archeb brynu nesaf ac yn diweddaru'r gwerth y rhestr.
Gwersi a Ddysgwyd:
- Wrth ychwanegu gwasanaeth gwe hwn fel ffynhonnell data ffurflen InfoPath, Chael hi'n angenrheidiol i droi yn cyfeiriant a'i storio yn Llyfrgell cysylltiad data.
- Hefyd cefais ei bod yn angenrheidiol er mwyn galluogi sgriptio parth traws drwy weinyddu gwasanaethau canolog // Rheoli cais // ffurfweddu gweinydd ffurflen.
- Y tro cyntaf ar ffurf yn ceisio cael gafael ar y gwasanaeth gwe, Mae'n cymryd amser ac ar adegau, Byddai amser allan. Yr wyf ffidlan gyda lleoliadau ar ffurf ffurfweddiad gweinydd i ehangu'r gosodiadau goramser a oedd yn ymddangos i helpu.
Mae'r cod:
gan ddefnyddio System;
gan ddefnyddio System.Web;
gan ddefnyddio System.Web.Services;
gan ddefnyddio System.Web.Services.Protocols;
gan ddefnyddio Microsoft.SharePoint;
gan ddefnyddio System.Configuration;
[Webservice(Bwlchenw = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
cyhoeddus dosbarth PoService : System.Web.Services.Webservice
{
cyhoeddus PoService () {
//Uncomment Cynlluniodd y llinell ganlynol os ydych yn defnyddio cydrannau
//InitializeComponent();
}
/// <crynodeb>
/// Gael y Rhif y Llywydd nesaf o'r rhestr rheoli Rhif sharepoint y Llywydd.
/// Cynyddran y Llywydd nifer yn y rhestr honno.
/// </crynodeb>
/// <ffurflenni></ffurflenni>
[WebMethod]
cyhoeddus llinyn GetNextPoNumber()
{
llinyn SpPoControlSiteName; // Enw'r safle MOSS gwirioneddol sy'n lletya'r y rhestr rheoli y Llywydd.
llinyn SpPoControlListName; // Enw o'r rhestr MOSS gwirioneddol sy'n cynnwys y rheolydd y Llywydd.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
llinyn nextPoReqNumber = "xyzzy";
gan ddefnyddio (SPSite safle = newydd SPSite(SpPoControlSiteName))
{
gan ddefnyddio (SPWeb we = safle. OpenWeb())
{
SPList currentList = we. Rhestrau[SpPoControlListName];
foreach (Poeri controlItem yn currentList.Items)
{
os (((llinyn)controlItem["ControlField"]).Equals("NextPoNumber"))
{
nextPoReqNumber = (llinyn)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Trosi.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Lleoli, darllen a diweddaru nifer y Llywydd yn y rhestr.
} // ddefnyddio'r we spweb = site.openweb()
} // defnyddio'r safle spsite = spsite newydd("http://localhost/mizuho")
dychwelyd nextPoReqNumber;
}
}