Կան շատ լավ օրինակներ թարմացնելու հարմարեցված ցուցակների միջոցով SDK. Ահա եւս մեկ.
Բիզնես խնդիրը: InfoPath ձեւը արդեն մշակված է, որ հնարավորություն է տալիս օգտվողներին մուտք գործել առցանց գնումների requisitions. PO պահանջ համարները պետք է լինի ավանդական հաջորդականությունը ի թիվ արժեքները եւ հաշվարկվում է ավտոմատ կերպով.
Բիզնես Solution: Ստեղծել գործարկողի MOSS ցանկը պարունակող երկու սյունակների: "ControlField" and "ControlValue". Արժեքը սյունակը պարունակում է հաջորդ գնման պահանջ համարը. Note that the generic "control" անվանելու Կոնվենցիայի հետագա կառավարման ոլորտներում, որը կարող է օգտագործվել որպես անհրաժեշտ.
Տեխնիկական Solution: Ստեղծել վեբ ծառայություն մուտք գործել կողմից InfoPath հաճախորդի. Վեբ ծառայությունը վերադարձնում հետ հերթական գնման պահանջ համարը եւ թարմացումներ արժեքը ցուցակի.
Քաղված դասերը:
- Երբ որ այս վեբ ծառայություն, որպես տվյալների աղբյուր է InfoPath ձեւով, Ես գտա, որ անհրաժեշտ է փոխարկել այն UDC եւ պահպանել այն տվյալների կապի գրադարան.
- Ես էլ գտա, որ անհրաժեշտ է հնարավորություն տալ խաչ դոմենի Scripting միջոցով կենտրոնական ծառայությունների կառավարման // դիմումը կառավարում // Ձեւ սերվերի կոնֆիգուրացիայի.
- Առաջին անգամ ձեւը փորձեց օգտվել ինտերնետային ծառայություններից, Այն տեւում է մի քիչ, իսկ կապակցությամբ, դա Ժամանակը ավարտվեց. Ես fiddled պարամետրերով ձեւի սերվերի կոնֆիգուրացիայի ընդլայնել timeout պարամետրերը, եւ որ կարծես օգնել.
Կոդը:
օգտագործելով Համակարգ;
օգտագործելով System.Web;
օգտագործելով System.Web.Services;
օգտագործելով System.Web.Services.Protocols;
օգտագործելով Microsoft.SharePoint;
օգտագործելով System.Configuration;
[WebService(Namespace = "Http :/://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
հասարակություն դաս PoService : System.Web.Services.WebService
{
հասարակություն PoService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
/// <ամփոփում>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </ամփոփում>
/// <վերադառնում></վերադառնում>
[WebMethod]
հասարակություն լարային GetNextPoNumber()
{
լարային SpPoControlSiteName; // Name of the actual MOSS site that hosts the PO Control list.
լարային SpPoControlListName; // Name of the actual MOSS list containing the Po control.
SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();
լարային nextPoReqNumber = "Xyzzy";
օգտագործելով (SPSite site = նոր SPSite(SpPoControlSiteName))
{
օգտագործելով (SPWeb web = site.OpenWeb())
{
SPList currentList = web.Lists[SpPoControlListName];
ԲՀԿ (Թքել controlItem մեջ currentList.Items)
{
եթե (((լարային)controlItem["ControlField"]).Հավասար("NextPoNumber"))
{
nextPoReqNumber = (լարային)controlItem["ControlValue"];
int int_nextPoReqNumber;
int_nextPoReqNumber = Փոխակերպել.ToInt32(nextPoReqNumber);
int_nextPoReqNumber ;
controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}
} // Locating, reading and updating the PO number in the list.
} // using spweb web = site.openweb()
} // using spsite site = new spsite("Http :/://localhost/mizuho")
վերադարձ nextPoReqNumber;
}
}