2013-07-23 2 views
2

У меня есть список под названием «Сессии». В списке есть рабочий процесс, который выполняется для создания, модификации. Рабочий процесс запускается, когда я добавляю элементы, используя веб-часть, а также вручную. Я разработал задание таймера, которое запускается ежедневно, что добавляет элементы в список «Сессии». Когда задание таймера добавляет элементы в список, рабочий процесс не запускается.Задание таймера SharePoint добавляет элементы списка, но не вызывает связанный с ним рабочий процесс.

ответ

0

Создание или редактирование элемента списка с использованием API не вызовет рабочих процессов. Вы должны использовать класс SPWorkflowManager, чтобы запускать его самостоятельно. Каждый экземпляр SPSite обладает свойством такого типа, что и должно использоваться.

Вы можете закодировать это следующим образом:

SPSite site = foo; // Actually get your instance of SPSite by whatever is 
        // your favorite way to do so. 

site.WorkflowManager.StartWorkflow(
     item, 
     association, 
     association.AssociationData, 
     isAutoStart); 

Где item это SPListItem, который вы создали/отредактирован, association является экземпляром SPWorkflowAssociation, что коррелирует список до фактического рабочего процесса, и isAutoStart является boolean переменная, сообщающая диспетчеру рабочего процесса, должен ли рабочий триггер вести себя как что-то, что было запущено автоматически (в вашем случае, true).

+0

У вас есть источник для инструкции, создание или редактирование элемента списка с помощью API не вызовет рабочих процессов? Я видел другие сообщения, которые говорят, что они делают, но требуют, site.WorkflowManager.Dispose(). – BinaryJam

+0

Эмпирические данные. Попробуй сам. – Renan

+0

Спасибо за это. Я думаю, что ты хотел сказать, был http://support.microsoft.com/kb/947284 http://blogs.technet.com/b/victorbutuza/archive/2009/03/14/workflows- do-not-start.aspx Вы правы, другой парень был неправ. :-) – BinaryJam