МОСС: Обновление настраиваемого списка

Есть много хороших примеров обновления пользовательских списков через SDK. Вот еще один.

Бизнес-проблемы: Формы InfoPath был разработан, что позволяет пользователям вводить онлайн купить заявок. PO реквизиции, цифры должны быть традиционной последовательности на основе целочисленные значения и рассчитывается автоматически.

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

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

Уроки:

  • При добавлении этой веб-службы в качестве источника данных для формы InfoPath, Я счел необходимым преобразовать его в udc и хранить его в библиотеку подключений к данным.
  • Я также счел необходимым для включения междоменного сценария через Центральный Услуги администрации // Управление приложениями // Форма Конфигурация сервера.
  • Впервые форме пытался получить доступ к веб-службе, Это занимает некоторое время и по случаю, Это будет время ожидания. Я fiddled с параметрами конфигурации сервера формы расширить параметры времени ожидания и, казалось, чтобы помочь.

Код:

использование Система;
использование System.Web;
использование System.Web.Services;
использование System.Web.Services.Protocols;
использование Microsoft.SharePoint;
использование System.Configuration;

[WebService(Пространство имен = «http://www.Conchango.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
государственные класс PoService : System.Web.Services.WebService
{
государственные PoService () {

//Раскомментируйте следующую строку при использовании разработаны компоненты
//Метод InitializeComponent();
}

/// <Резюме>
/// Получить следующий номер заказа из списка элементов управления sharepoint po номер.
/// Увеличьте номер PO в этом списке.
/// </Резюме>
/// <Возвращает></Возвращает>
[WebMethod]
государственные Строка GetNextPoNumber()
{
Строка SpPoControlSiteName; // Имя фактического Мосс сайта, на котором размещается список PO управления.
Строка SpPoControlListName; // Имя фактического списка Мосс, содержащий элемент управления Po.

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

Строка nextPoReqNumber = «xyzzy";

использование (SPSite сайта = Новые функции SPSite(SpPoControlSiteName))
{
использование (SPWeb веб сайт =. OpenWeb())
{

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

по каждому элементу (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/Мидзухо")

возвращение nextPoReqNumber;

}
}

Одна мысль на "МОСС: Обновление настраиваемого списка

  1. Написал KSP:
    Привет Павел,
    У нас аналогичная ситуация, что вы упоминания, но проблема в том я хочу использовать этот web Сервье на сервере баланс нагрузки.Поэтому,как в этом случае обрабатывать запросы параллелизма или как сделать новый запрос ждать и только один запрос следует обновить список номер до, то все остальные запросы должны быть в que.Пожалуйста, дайте мне знать, как этого добиться.
    Заранее спасибо.

Оставь ответ

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