Файлы на задаче
Добрый день, подскажите, как в алгоритме ухода с этапа обратиться к файлам, которые прикреплены к задаче (если задача еще не завершена)?
Войдите или Зарегистрируйтесь чтобы комментировать.
Добрый день, подскажите, как в алгоритме ухода с этапа обратиться к файлам, которые прикреплены к задаче (если задача еще не завершена)?
Комментарии
Добрый день!
Не до конца понятен целевой кейс, уточните пожалуйста - с какой целью хотите обратиться к прикрепленным к задаче файлам?
Добрый день! Не получили уточнения по кейсу, направляем общие рекомендации:
1. Прикреплённые файлы в бизнес-процессе
По умолчанию файлы, прикреплённые в рамках хода бизнес-процесса, сохраняются в маршрутном объекте. Чтобы они отображались, необходимо добавить в маршрутный объект системный атрибут "Прикреплённые файлы" как существующий.
2. Отображение файлов
Отображение файлов в атрибуте "Прикреплённые файлы" зависит от настройки "Транслировать файлы в маршрутный объект автоматически при прикреплении":
Вы можете проверять наличие файлов через атрибут маршрутного объекта, однако в системе уже реализован более удобный встроенный функционал - управление документами на этапе задачи.
Рекомендуем использовать настройку "Управление документами": https://docs.greendata.ru/platform/ru/document-management-task-element-tab.html
Если в поле "Алгоритм обязательности" вы зададите условие (например, true) и укажете требуемую классификацию, завершить задачу будет невозможно до тех пор, пока не будут прикреплены файлы с указанной классификацией.
При попытке завершить задачу без прикрепленных файлов пользователь увидит предупреждающее сообщение:
Если уточните детали вашего кейса - сможем предложить более точное решение.
Добрый день! Спасибо за подробный ответ!

Нам бы очень подошла настройка "Транслировать файлы в маршрутный объект автоматически при прикреплении". Но к сожалению в нашей версии платформы ее нет:
но вроде нашли в существующих атрибутах, вынесем, протестируем и вернемся
@Vladislav_Grachev
Добрый день! Протестировали настройку "Транслировать файлы в маршрутный объект автоматически при прикреплении".
Файл действительно пробрасывается в заявку сразу при прикреплении, это здорово.
Но если исполнитель передумал и удалил файл, то он из заявки уже не удаляется.
Как раз для подобных случаев хотелось бы иметь возможность обращаться напрямую к списку файлов, прикрепленных к задаче. Можно было бы сравнить этот список со списком на заявке и удалить файл.
Но как и для других кейсов, получается такой возможности нет?
Наш изначальный кейс заключался в том, что на задаче есть проводник (где файлы не крепятся, а только тянутся из заявки - для составления пакета из определенных классификаций - для наглядности пользователей). При этом пользователи хотят иметь возможность крепить файлы в исходящие. При уходе с задачи нужно сравнивать список из проводника и список в исходящих.
Но если включить автотрансляцию файлов в заявку, то в проводник файлы попадут. И это ок. Но при удалении файла из исходящих, они из проводника не удалятся.
Вот тут нужно иметь какую-то возможность "читать" исходящие на предмет удаления файлов.
Либо, если отключать автотрансляцию, на предмет совпадения файлов из исходящих с файлами на маршрутном объекте - чтобы выдавать пользователю предупреждение на задаче, что пакет документов стал полным. (Сейчас подсказка смотрит только на проводник).
Здравствуйте, очень ждем ответ
Вот еще кейс, когда нужно обращаться к файлам в исходящих: в зависимости от значения на задаче (например, выбрали определенное подразделение) необходимо делать видимым и обязательным определенную классификацию. Для других подразделений - скрывать.
Но если при выборе другого подразделения уже добавили файл с этой классификацией, то его нужно оставить видимым.
Как в таком случае проверить алгоритмически, что по определенной классификации файл прикреплен и именно на этой задаче?
Валерия, добрый день!
Задача в работе, постараемся подготовить и предоставить ответ к понедельнику
Валерия, добрый вечер! Задача пока в работе, постараемся в ближайшие дни предложить адекватное прикладное решение этого кейса.
Можно просто подсказать таблицу, в которой хранятся исходящие файлы. Думаю этого будет достаточно, если в ней хранится дата прикрепления файла в задачу или хотя бы ее идент.
Столкнулись с еще одной проблемой. Если убрать галку "Транслировать файлы", то на проверках ухода с этапа алгоритмы, которые обращаются к Прикрепленным файлам на заявке "не считывают" те файлы, которые были прикреплены на задаче.
То есть нельзя, например, проверить прикрепленный файл на наличие подписи - до ухода с задачи.
Опять же если включить галку "Транслировать файлы" возникает опасность, что файлы удалят с задачи, а в заявке они останутся.
Валерия, добрый вечер!
Таблицы с файлами прикрепленными к задаче -
wf_process_task_wflo (исходящие) и wf_process_task_wfli (входящие)
Запросом ниже можно получить ID файла и дату его создания:
select wptw.file_id, ff.create_date from wf_process_task_wflo wptw
left join fs_file ff on ff.id = wptw.file_id>
Спасибо!
Валерия, добрый день!
Подскажите пожалуйста, получилось ли использовать таблицу с файлами для настройки и решения Вашего кейса? Также подскажите - каким образом организовали проверку подписи в файле?
Да, удалось.
При разработке нашли кстати еще одну таблицу - кто-то давно использовал ее: wpi_tagged_file_list
Подписи проверяю через таблицу "Электронная подпись файла" - смотрю наличие записи в данной таблице для проверяемого файла.
Насколько поняла, при подписании файла на задаче, файл сохраняется в систему, потому что проверка на уходе с этапа его уже видит, даже если файл был новый - загружен с диска на данную задачу (а потом подписан).
Отлично, мы думали о варианте, при котором возможную ошибку пользователя можно предотвратить пакетным действием с помощью кнопки с модулем пользовательского интерфейса "Модальное окно подтверждения действия" и выносом этой кнопки на визуал экземпляра типа с родительским типом ДО. Задача на процессе. Либо же реализовать эту проверку в жизненном цикле того же типа. Подскажите пожалуйста, а как Вы реализовали решение кейса?
P.S: если подскажете, как триггерить алгоритмы визуала задачи при креплении файлов - будем признательны, т.к. такая проблема уже не раз поднималась при разработке
Кейс с подписями также решился добавлением в алгоритм ухода с этапа проверки на наличие в системе подписей по всем файлам в Исходящих (для определенной классификации).
Настройка на этапе "Только новый файл" = Нет позволяет выводить все файлы заявки на задачу, поэтому проверка всегда захватывает все файлы ЗПР.
Кейс с ошибкой пользователя - удалением файла с задачи - решили еще одной проверкой на уходе с этапа:
прохожу по всем файлам с задачи с заданной классификацией и сравниваю с файлами на заявке. если файл без подписи был удален, то кол-во файлов не совпадает при уходе с этапа, тогда выходит блокирующее предупреждение, что нужно удалить файл и из заявки.
а какой кейс вы тут имели в виду? проверку на что?
Валерия, добрый день!
Думали о такой реализации:
1. Создать прикладной тип с родителем ДО. Задача на процессе;
2. в него добавить объектный атрибут с ссылкой на FS_FILE;
3. создаем визуал задачи, на него выносим наш объектный атрибут и скрываем/временно скрываем исходящие файлы;
4. далее два варианта:
4.1. добавить в событие "После сохранения" алгоритм, который будет переносить файлы из временного атрибута в исходящие файлы или напрямую в маршрутный объект;
4.2. вынести на визуал или в шапку кнопку с аналогичным алгоритмом, который будет переносить файлы с нашего атрибута в исходящие файлы или напрямую в маршрутный объект. При необходимости можно добавить действие, которое будет выводить пользователю модальное окно с запросом подтверждения, например: "Все ли файлы корректны и готовы к прикреплению?"