Регистрация

Удаление файлов из задания

Ответы на вопросы по workflow

Модератор: Модераторы форума

Гуру
Сообщения: 425
Зарегистрирован: 20 июл 2009, 13:19

Удаление файлов из задания

Сообщение Dmitryserd » 23 мар 2010, 10:54

Доброго времени суток
В БП есть задание, к которому прикрепляется коллекция файлов. При определенных условиях после завершения этого задания из переменной-коллекции файлов удаляется несколько файлов и задание снова отправляется исполнителю.
Проблема в том, что при повторном приходе задания в нем остаются удаленные файлы не смотря на то, что переменная-коллекция прикрепляемых к заданию фалов их уже не содержит.

Есть ли возможность при повторной отправке задания сделать так, чтобы прикреплялись только те файлы, которые есть в переменной-коллекции? Пока вижу только один вариант - вместо задания в БП вставить подпроцесс, состоящий из одного кубика задания, чтобы каждый раз создавалась абсолютно новая карточка задания, но делать это не очень хочется.

Гуру
Аватара пользователя
Сообщения: 528
Зарегистрирован: 31 окт 2007, 15:18
Откуда: Irkutsk

Сообщение Ice » 23 мар 2010, 11:49

Сталкивался с такой проблемой... Это фича :roll:.
Я вручную перед рассылкой задания при помощи сценария удалял все файлы из этой карточки задания. А при повторном переходе на кубик "Задание" коллекция файлов снова прикреплялась с актуальным содержимым.

Как нужно сделать:
1) Перед кубиком задание вставить сценарий, который по названию кубика ищет связанную карточку задания (читать тут мой пост от 01.10.09).
2) Получить карточку списка файлов задания (FilesID) и очистить коллекцию. Также я очищал все ссылки на карточки.
---Не беспокойтесь, исправление будет в следующей версии :roll: ---
-= MCSA\MCSE 2003, MCTS =-

Гуру
Сообщения: 425
Зарегистрирован: 20 июл 2009, 13:19

Сообщение Dmitryserd » 26 мар 2010, 13:22

А можно ли сделать то, что делает скрипт, стандартными средствами?
Я пробовал универсальным обменом очищать коллекцию строк в секции Ссылки в карточке перед отправкой задания, но все равно оно приходит с лишними файлами.
Пробовал вручную через DVExplorer удалять строки этой секции, но все равно из карточки задания файлы не пропадают, а после его завершения БП создает переменные типа файл с названиями вроде FILE001, FILE002 и т.д., по одной на каждый удаленный вручную в DVExplorer файл, и в настройках ссылок задания прописывает все эти переменные.

Вообще в карточке "Задание бизнес-процесса" есть секция "Ссылки", в которой, как я понял, хранится информация из настроек задания (ID, типы переменных, содержимое которых, надо прикреплять к заданию, назначаемые права, необходимость комментария при сохранении), и есть секция "Ссылки в карточке", в которой уже хранятся непосредственно ID файлов и карточек, которые прикреплены к карточке задания. В какой из этих секций надо копаться, чтобы удалить ненужные ссылки из задания?

Гуру
Аватара пользователя
Сообщения: 528
Зарегистрирован: 31 окт 2007, 15:18
Откуда: Irkutsk

Сообщение Ice » 26 мар 2010, 15:59

Как минимум не сделано это:
2) Получить карточку списка файлов задания (FilesID) и очистить коллекцию.

Изображение

Именно в карточке типа "список файлов" хранятся ссылки на файлы.
Нужно очищать коллекцию строк секции "ссылки на карточки" карточки типа "Список файлов" и в "Основной инфе" обнулить кол-во файлов в списке.
Ну и в карточке ЗБП также ссылки хранятся и в секции ссылки, но вы их почистили.

Здесь, правда, есть ещё один нюанс.... желательно ещё удалять файлы из системы. Сами они не удаляются, даже если на них ссылок в карточках не остаётся...
---Не беспокойтесь, исправление будет в следующей версии :roll: ---
-= MCSA\MCSE 2003, MCTS =-

Гуру
Сообщения: 425
Зарегистрирован: 20 июл 2009, 13:19

Сообщение Dmitryserd » 26 мар 2010, 18:08

Все получилось сделать двумя кубиками: унифункция и универсальный обмен.
Жуть... это получается, чтобы обновить список файлов в задании, надо "вычистить" в трех местах десятью шагами универсального обмена

Опытный
Сообщения: 79
Зарегистрирован: 14 ноя 2011, 13:36

Re: Удаление файлов из задания

Сообщение Albinos_X » 25 апр 2018, 19:18

Ice писал(а):Сталкивался с такой проблемой... Это фича :roll:.

Я вручную перед рассылкой задания при помощи сценария удалял все файлы из этой карточки задания. А при повторном переходе на кубик "Задание" коллекция файлов снова прикреплялась с актуальным содержимым.



Как нужно сделать:

1) Перед кубиком задание вставить сценарий, который по названию кубика ищет связанную карточку задания (читать тут мой пост от 01.10.09).

2) Получить карточку списка файлов задания (FilesID) и очистить коллекцию. Также я очищал все ссылки на карточки.


можете поделиться скриптом?

Опытный
Сообщения: 79
Зарегистрирован: 14 ноя 2011, 13:36

Re: Удаление файлов из задания

Сообщение Albinos_X » 26 апр 2018, 12:35

спасибо, сам уже написал.

Если кому понадобится:
Код: Выделить всё
////////////////////////////////////////////////////////
      /// Удаление приложенных к заданию файлов на вкладку отчет
   public void FilesReportDelete(ProcessVariable Task, ProcessInfo process)
      {process.LogMessage("FilesReportDelete - "+DateTime.Now.ToString());
       DVCard vTask = (DVCard)Task.Value;
       DVCardSection vTaskSec = vTask.GetSectionByAlias("MainInfo");
       DVCardRow vTaskRow = (DVCardRow)vTaskSec.Rows[0];   
       string filesID = (string)vTaskRow.Value["PerformerFilesID"];
       DVGate vGate = (DVGate)process.Gates[DVGate.GateID];   
       DVCard vFSCard = (DVCard)vGate.GetVariable((long)DVVariableType.DOCUMENT, filesID);   
       DVCardSection vFSSec = vFSCard.GetSectionByID("{E962AC85-0F53-4439-A1CD-171E46C3EF91}");
       vFSSec.Rows.Clear();
      }  // public void FilesReportDelete(ProcessVariable Task, ProcessInfo process)
///////////////////////////////////////////////////

Вернуться в Бизнес-процессы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3