ЛИШАЙНИК: Оновлення за настроюваним списком

Є багато добрих прикладів оновлення настроювані списки розсилки за допомогою SDK. Ось ще один.

Бізнес-завдання: Форма InfoPath був розроблений, що дозволяє користувачам вводити онлайн придбати заявки. PO реквізиції номери повинні бути традиційні послідовності на основі цілі числа та розраховується автоматично.

Бізнес-рішення: Створити Настроюваний список МОСС містить два стовпці: "ControlField" і "ControlValue". Стовпці «значення» містить на наступний номер заявки на придбання. Зверніть увагу, що видових "контроль" іменуванні забезпечує для майбутніх керуючих полів, які можуть бути використані в міру необхідності.

Технічні рішення: Створити веб-сервіс до програми InfoPath клієнта. Веб-служба повертає назад на наступний номер заявки на придбання та оновлює значення зі списку.

Вивчені уроки:

  • Під час додавання веб-служба як джерело даних для форми InfoPath, Я визнав за необхідне перетворити його на УДК і зберігати його в бібліотеці зв'язків даних.
  • Я також визнав за необхідне дозволити міждоменний сценарії через Центральний служби адміністрування // керування додатками // форми конфігурації сервера.
  • Вперше у формі намагалися отримати доступ до веб-служби, Це займе якийсь час і з нагоди, Це було б тайм-аут. Я грав на скрипці з настройками у вигляді сервер конфігурації розширити параметри часу очікування і які, здавалося, допомогти.

Код:

за допомогою Система;
за допомогою System. Web;
за допомогою System.Web.Services;
за допомогою System.Web.Services.Protocols;
за допомогою Microsoft.SharePoint;
за допомогою System.Configuration;

[Веб-служба(Простір імен = "http://www.conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
громадських клас PoService : System.Web.Services.Веб-служба
{
громадських PoService () {

//Розкоментуйте наступний рядок, якщо за допомогою розроблений компонентів
//InitializeComponent();
}

/// <резюме>
/// Отримати наступний PO номер від po номер керування списком sharepoint.
/// Приріст PO номер в цьому списку.
/// </резюме>
/// <Повертає></Повертає>
[WebMethod]
громадських рядок GetNextPoNumber()
{
рядок SpPoControlSiteName; // Ім'я фактичні МОХОМ сайту, на якому списку керування PO.
рядок SpPoControlListName; // Ім'я фактичні МОХОМ список, який містить керування Po.

SpPoControlSiteName = ConfigurationSettings.AppSettings["PoControlListHostingSite"].ToString();
SpPoControlListName = ConfigurationSettings.AppSettings["PoControlList"].ToString();

рядок nextPoReqNumber = "xyzzy";

за допомогою (SPSite сайт = нові SPSite(SpPoControlSiteName))
{
за допомогою (SPWeb Web = сайт. OpenWeb())
{

SPList currentList = web. Списки[SpPoControlListName];

foreach (SPItem controlItem у currentList.Items)
{

Якщо (((рядок)controlItem["ControlField"]).Дорівнює("NextPoNumber"))
{
nextPoReqNumber = (рядок)controlItem["ControlValue"];

Int int_nextPoReqNumber;
int_nextPoReqNumber = Перетворення.ToInt32(nextPoReqNumber);

int_nextPoReqNumber ;

controlItem["ControlValue"] = int_nextPoReqNumber;
controlItem.Update();
}

} // Розміщення, читання та оновлення PO номер у списку.


} // за допомогою spweb веб = site.openweb()
} // за допомогою spsite сайту = новий spsite("http://Localhost/mizuho")

повернення nextPoReqNumber;

}
}

Одна думка про «ЛИШАЙНИК: Оновлення за настроюваним списком

  1. KSP пише:
    Привіт Павло,
    У нас є аналогічні ситуації ви згадати, але проблема в тому, я хочу використовувати цей web servie на сервері баланс навантаження.Отже,як поводитися паралелізм запити при цьому або як зробити новий запит чекати і тільки один запит слід оновлювати список номер до, то всі інші запити повинні бути в que.Будь ласка, дайте мені знати, як для досягнення цієї мети.
    Спасибі заздалегідь.

Дати відповідь

Ваша електронна адреса не буде опублікований. Обов'язкові поля позначені * *