Имеется БП построенный на задачах.
Требуется закрыть для редактирования поля всех задач в одном бизнес-процессе. Поля необходимо закрыть все кроме дата завершения и ответственный.
Подскажите, более подробно, реализацию метода описанного в этой теме: https://community.terrasoft.ua/forum/topic/3864.
Как я понял из этой же темы через действия БП такой функционал не реализовать?
Здравствуйте!
В tbl_Task есть поле WorkflowItemID, которое ссылается на таблицу tbl_WorkflowItem, в таблице tbl_WorkflowItem есть поле WorkflowID, которое является записью в tbl_Workflow
В tbl_Workflow есть поля DiagramServiceID,Name, по одному из которых мы можем сделать привязку и понять с какого БП мы создали задачу.
По сути нужно выполнить следующий запрос
SELECT Name FROM dbo.tbl_Workflow
WHERE id =(
SELECT WorkflowID FROM dbo.tbl_WorkflowItem
WHERE ID =(SELECT WorkflowItemID from tbl_Task
WHERE id ='{ID Задачи}'))
В конфигурации данные действия нужно делать через сервисы Dataset:
ds_WorkflowItem
ds_Workflow
Но перед этим их нужно немного доработать, а именно добавить в sq_WorkflowItem, параметр ID и CompareFilter ID
Далее на OnPrepare, карточки задачи (wnd_TaskEdit) мы можем делать не активными (свойство IsEnabled) соотвествующие поля
function wnd_TaskEditOnPrepare(Window){
...
if(!IsEmpty(WorkflowItemID)){
var WorkflowID = GetDatasetFieldValueByID('ds_WorkflowItem',WorkflowItemID,'WorkflowID');
var WorkflowName = GetDatasetFieldValueByID('ds_Workflow',WorkflowID,'Name');if(WorkflowName =='wd_TestTask'){//нужные поля которые необходимо отключить, для примера поле Контрагент edtAccount
edtAccount.IsEnabled=false;}}}//end of function
Подскажите, как можно отследить закрытие Вордовского файла открытого с детали Файлы раздела Документы (файл изначально находится в базе данных, при этом в открытый файл изменения не вносились). Понадобилось это чтобы автоматизировать блокировку и разблокировку файлов при их открытии и соответственно закрытии.
Ищите в этом направлении (на sdk):
IFileChangeNotifier
Пример есть в scr_FilesDetailGridArea.
Сам пока не трогал, т.к. не было подобных задач, посему больше не подскажу)
Олег, рекомендованное решение корректно работает только если открытый файл изменялся, если его открыть, просмотреть и закрыть, то блокировка не снимается.
Юрий, дело в том, что на текущий момент нет возможности отследить момент завершения работы с файлом. У объекта, который связан с файлом, есть возможность подписаться на событие OnFileChange и OnFileDelete. Поэтому в решении момент сохранения файла в БД воспринимается как сигнал к разблокировке файла. Согласен, что в некоторых случаях это не совсем верно, но пока другой более подходящей возможности нет.
В следующих версиях Terrasoft уже запланирована возможность обработки и других событий файлов, поэтому вскоре эту задачу можно будет решить (только для MS Office).