Используйте Web Money - это очень удобно

пятница, 14 декабря 2007 г.

Ошибка при старте рабочего процесса в библиотеке документов при добавлении нового документа.

Здравствуйте!
Решил коротко написать про решение этой проблемки.
Проблема в следующем:
Когда мы цепляем рабочий процесс на создание элемента в списке все ок, после создания элемента РП запускается.
А вот в библиотеке документов РП запускается после загрузки документа, в тот момент когда поля формы еще не заполнены.
Соответсвенно любое обращение рабочего процесса к полям (все пользовательские значения Null) на чтение приводят к ошибке, так же к ошибке приводит и запись, но уже у пользователя, т.к. элемент изменился до того как пользователь сохранил его - происходит конфликт сохранения.
Это конечно баг, но есть простое решение checkin/checkout.
Если установить обязатеельным извлечение документа в библиотеке, РП запустится только после того как пользователь вернет документ, а значит никаких кофликтов сохранения не будет.

8 комментариев:

Denis комментирует...

Приветствую, Глеб!
Скажите, не сталкивались ли с такой проблемой: просто перестали запускаться workflow имеющиеся, вновь создаваемые (простейшие, из одного действия отпрать e-mail). Все процессы из Дизайнера...голову ломаю...(проблема появилась до установки SP1 для серверов, после - так и осталась).
Спасибо.

Gleb комментирует...

Во-первых посмотрите логи, (настраиваются на узле администрирования)
Запущен ли таймер? - проверьте запущены ли все службы на сервере
Скорее всего вы найдете ответ в логах.
http://www.gotdotnet.ru/Forums/SharePoint/Default.aspx - хороший форум когда найдете в чем дело пишите туда - скорее всего подскажут что делать.

Denis комментирует...

Все службы запущены, в логах есть ошибка:
System.ArgumentException: Value does not fall within the expected range
В форму поискал, народ сталкиваося , но нет ответа....
Для эксперимента поднял второй вирт.сервер с точной копией баз...там все работает...

Gleb комментирует...

Для эксперимента поднял второй вирт.сервер с точной копией баз...там все работает...
Запустить службу настройки sharepoint пробовали?

Denis комментирует...

Да, пробовал, но не помогло. Решение нашел с трудом, не знаю почему (может где-то есть такая настройка?) но похоже истек срок действия пароля (или сбился) учетки, под которой я все ставил, т.е. администратор фермы, хотя все службы стартовали нормально и работали.
Спросил и ответил тут http://www.gotdotnet.ru/Forums/SharePoint/535520.aspx

Красноруцкая Светлана комментирует...

Здравствуйте!
Прочитала Ваш пост, надо сказать checkin\checkout мне почему-то не помогают. Использую свое действие, созданное для Sharepoint Designer. Суть: в библиотеке документов (Публикации) есть столбец подстановки (рубрики), подставляются названия папок из списка (Рубрикатор). РП добавляет в каждую указанную папку Рубрикатора ссылку на текущий элемент библиотеки Публикации. Проблема как раз в том, что при автоматическом запуске вылазит ошибка, несмотря на checkin\checkout.
Собственно в SPD в действиях РП написано следующее:
Извлечь элемент Публикации
затем Добавить URL документа в столбец библиотеки Публикации (еще одно собственное действие, которое нормально выполняется)
затем Добавить ссылку на документ из библиотеки Публикации в список Рубрикатор
затем Вернуть элемент Публикации с примечанием: Публикации:URL

Пыталась разбивать на шаги, делать проверку "Если рубрики(столбец подстановки)не пусто". Все равно выползает ошибка.

Спасибо.

Gleb комментирует...

Вы наверное не поняли сути поста:
Вы должны указать: Требовать извлечения документов перед редактированием? "Да".
Т.Е. Сначала добавляется документ, потом пользователь заполняет поля, потом возвращает документ в библиотеку. После этого стартует РП на добавление элемента.

Красноруцкая Светлана комментирует...

Спасибо за помощь! Теперь все замечательно!