Мос: Ажурирање на сопствени листа

Постојат многу добри примери за ажурирање на сопствени листи преку пакети. Тука е уште еден.

Бизнис проблем: InfoPath формулар е дизајниран која им овозможува на корисниците да влезат во онлајн купување требувањата. PO официјално барање броеви треба да биде традиционален низа базирани целобројни вредности и се пресметуваат автоматски.

Бизнис решенија: Креирате сопствени Мос листа ги содржи две колони: "ControlField" and "ControlValue". Вредноста колона го содржи следно купување реквизиција број. Note that the generic "control" именување на конвенцијата обезбедува за идните контрола области во кои можат да се користат колку што е потребно.

Техничко решение: Создаде веб сервис посетена од страна на InfoPath клиент. На веб сервис се враќа назад на следно купување реквизиција број и надградби на вредноста на листа.

Научени лекции:

  • Кога додавање на овој веб сервис како извор на податоци на InfoPath формулар, Најдов дека е неопходно да го конвертирате во УДЦ и чувајте го во податочна врска библиотека.
  • Јас исто така, утврди дека е неопходно да им се овозможи крстот домен скриптирање преку централниот услуги администрација // апликација за управување со // форма сервер.
  • Прв пат во форма Пробавте да пристапите до веб сервис, тоа трае некое време и по повод, тоа ќе Time Out. Јас си свиркавме со поставки во форма сервер да се прошири на истек на време поставки и што се чинеше да им помогне на.

Го кодот:

користење на Систем;
користење на 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];

foreach (Плукаат 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;

}
}

Една мисла на "Мос: Ажурирање на сопствени листа

  1. KSP напиша:
    Здраво Пол,
    Ние имаме слична ситуација она што ви се спомене, но проблемот е што сакам да го користите овој веб-servie на оптоварување стабилизатор server.Hence,како да се справи со конкурентноста барања во овој случај, или како да се направи ново барање да се чека и само едно барање треба да го ажурира списокот број до тогаш сите други барања треба да бидат во que.Please дозволете ми да знам како да се постигне оваа.
    Однапред ви благодариме.

Остави Одговори

Вашата е-маил адреса нема да бидат објавени. Задолжителни полиња се означени *