Постоји много добрих примера ажурирање прилагођене листе преко СДК. Ево још један.
Пословни проблем: ИнфоПатх образац је дизајниран тако да омогућава корисницима да уђу на мрежи дописа куповину. ПО требовање бројеви треба да буду засновани на традиционалним редослед целобројне вредности и израчунава аутоматски.
Пословна решења: Креирање прилагођене листе МОСС садржи две колоне: "ControlField" and "ControlValue". Вредност колона садржи следећу куповину Требовање број. Note that the generic "control" конвенција за именовање предвиђа будуће контроле поља која се могу користити по потреби.
Техничко решење: Написана апликација приступити ИнфоПатх клијента. Веб сервис враћа следеће куповине требовање број и исправке вредности из листе.
Научене лекције:
- Када додајете ове веб сервиса као извор података за ИнфоПатх обрасцу, Било ми је потребно да га претворите у УДК и чувајте их у везу за пренос података библиотеке.
- Такође сам пронашао да је неопходно да се омогући унакрсно домена скрипти преко централне административне услуге // Апликација за управљање // образац конфигурације сервера.
- Први пут је покушао образац за приступ веб сервис, потребно је време, а повремено, Тиме би се. Ја запетља подешавања у облику конфигурације сервера да се прошири и временски период и параметре који се чинило да помогне.
Код:
коришћење Систем;
коришћење System.Web;
коришћење System.Web.Services;
коришћење System.Web.Services.Protocols;
коришћење Microsoft.SharePoint;
коришћење System.Configuration;
[Вебсервице(Namespace = "http://ввв.цонцханго.цом/")]
[ВебСервицеБиндинг(ConformsTo = ВсиПрофилес.БасицПрофиле1_1)]
јавност класа ПоСервице : System.Web.Services.Вебсервице
{
јавност ПоСервице () {
//Uncomment the following line if using designed components
//ИнитиализеЦомпонент();
}
/// <резиме>
/// Obtain the next PO number from the sharepoint po number control list.
/// Increment the PO number in that list.
/// </резиме>
/// <повраћај></повраћај>
[ВебМетход]
јавност ниска GetNextPoNumber()
{
ниска СпПоЦонтролСитеНаме; // Name of the actual MOSS site that hosts the PO Control list.
ниска СпПоЦонтролЛистНаме; // Name of the actual MOSS list containing the Po control.
SpPoControlSiteName = ЦонфигуратионСеттингс.АппСеттингс["PoControlListHostingSite"].ТоСтринг();
SpPoControlListName = ЦонфигуратионСеттингс.АппСеттингс["PoControlList"].ТоСтринг();
ниска nextPoReqNumber = "xyzzy";
коришћење (СПСите site = нови СПСите(СпПоЦонтролСитеНаме))
{
коришћење (СПВеб web = site.OpenWeb())
{
СПЛист currentList = web.Lists[СпПоЦонтролЛистНаме];
фореацх (Пљунути цонтролИтем у currentList.Items)
{
ако (((ниска)цонтролИтем["ControlField"]).Једнако("NextPoNumber"))
{
nextPoReqNumber = (ниска)цонтролИтем["ControlValue"];
инт int_nextPoReqNumber;
int_nextPoReqNumber = Претворити.ТоИнт32(нектПоРекНумбер);
int_nextPoReqNumber ;
цонтролИтем["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")
повратак нектПоРекНумбер;
}
}