Отфильтровать перечень БП по пути их размещения (в окне выбора процесса), можно внеся следующие изменения в конфигурацию:
1. Открыть сервис scr_WorkflowGridArea. В теле функции function StartWorkflow() найти строку SelectServiceByCode('WorkflowDiagram', false, Self, 'StartWorkflow', WindowCaption); и заменить ее на следующую строку кода:
SelectServiceByPath('WorkflowDiagram','Workflow\\Workflow Diagrams\\', false, Self, 'StartWorkflow', WindowCaption);
Вместо 'Workflow\\Workflow Diagrams\\' необходимо указать требуемый путь (лучшим вариантом будет создать константу в сервисе scr_Const и обращаться к ней). Поскольку символ «\» является служебным символом, его необходимо экранировать, прописав вместо «\» двойной слеш «\\».
2. В этом же сервисе реализовать функцию SelectServiceByPath:
function SelectServiceByPath(ServiceCode, ServicePath, ShowCodeField, NotifyObject, Tag, WindowCaption) {
var Dataset = Services.GetNewItemByUSI(ServiceDatasetUSI);
ApplyDatasetFilter(Dataset, 'ServiceTypeCode', ServiceCode, true);
ApplyDatasetFilter(Dataset, 'Path', ServicePath, true);
if (ShowCodeField) {
var SearchFieldNames = 'Code;Caption';
var DisplayFieldNames = 'Code;Caption';
} else {
var SearchFieldNames = 'Caption';
var DisplayFieldNames = 'Caption';
}
if (!IsEmptyValue(WindowCaption)){
Dataset.Attributes('SelectDataCaption') = WindowCaption;
}
SelectWindow = ShowSelectDataWindow(Dataset, SearchFieldNames,
DisplayFieldNames, 'ID', GUID_NULL, 'Caption', '', NotifyObject);
if (!IsEmptyValue(Tag)) {
SelectWindow.Tag = Tag;
}
}
var Dataset = Services.GetNewItemByUSI(ServiceDatasetUSI);
ApplyDatasetFilter(Dataset, 'ServiceTypeCode', ServiceCode, true);
ApplyDatasetFilter(Dataset, 'Path', ServicePath, true);
if (ShowCodeField) {
var SearchFieldNames = 'Code;Caption';
var DisplayFieldNames = 'Code;Caption';
} else {
var SearchFieldNames = 'Caption';
var DisplayFieldNames = 'Caption';
}
if (!IsEmptyValue(WindowCaption)){
Dataset.Attributes('SelectDataCaption') = WindowCaption;
}
SelectWindow = ShowSelectDataWindow(Dataset, SearchFieldNames,
DisplayFieldNames, 'ID', GUID_NULL, 'Caption', '', NotifyObject);
if (!IsEmptyValue(Tag)) {
SelectWindow.Tag = Tag;
}
}
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать