Добрый день! В обращении в ITIL есть такие поля "просрочен по реакции" и "просрочен по разрешению",
эти поля заполняются автоматически, если плановое время реакции/разрешения прошло.
Почему стартовый сигнал в бизнес-процессе ( при изменении обращения, "просрочен по реакции"=true, должно быть изменено поле "просрочен по реакции") не срабатывает?
Не реагирует именно на изменение поля "просрочен по реакции"(по разрешению)
Если добавить еще какое-то поле в "должно быть изменено поле", то бизнес-процесс стартует
если честно из прочитанного я понимаю, что у вас ничего не срабатывает. Поясните пожалуйста развернуто, какие действия выполняете, что в результате заполняется, что не заполняется а должно заполняться. Я вам подскажу где и что поменять, чтобы заполнялось.
В обращении в ITIL есть такие поля "просрочен по реакции" и "просрочен по разрешению",
эти поля заполняются автоматически, если плановое время реакции/разрешения прошло.
Я хотела бы сделать бизнес-процесс, в котором в качестве стартового сигнала служило бы изменение поля "просрочен по реакции".
Сигнал выглядит следующим образом: сигнал при изменении обращения, условие - "просрочен по реакции"=Да, список должно быть измененных полей - "Просрочен по реакции".
Сигнал не срабатывает на изменение поля "Просрочен по реакции".
Именно на это поле. Если я любое другое поле добавлю, то сигнал начнет срабатывать.
Особенность поля "просрочен по реакции" в том, что его изменение происходит автоматически, т.е. как только дата реакции становится просроченной.
Простого варианта реализации Вашего кейса нет, даже больше, его вообще реализовать полноценно не позволит сама система.
Прошу обратить внимание, что раздел "Контакты" особенность рабочей версии, а логика работы портала очень сильно ограничена, количество объектов, которые могут быть добавлены на портал - ограничено. Вам недостаточно будет создать просто свой раздел "Контакты", необходимо создавать все объекты, которые использует раздел "Контакт", по аналогии с рабочей версией.
Наталья, я могу Вас проинформировать, что подобное решение будет в версии продукта 7.7, но для рабочей версии. Возможно его удастся адаптировать для портала, но на данный момент простого решения, к сожалению, я Вам не подскажу.
Добрый день, Еще один вопрос, возможно ли и если да то как, отрисовать на странице редактирования таблицу, в которой количество столбцов и строк динамично. Т.е. по данным данной страницы и других связанных объектов необходимо создавать обычную таблицу с данными, пример одной из таблиц прикрепил, в данном случае динамическое количество строк, в зависимости от количества продуктов в заказе
если вы используете BPMOnline 7.6 Sales, то в данной системе есть созданный компанией Террасофт объект "PivotGrid". Данный объект используется в разделе "Планирование" именно с помощью данного объекта я бы решил вашу задачу. Как работать с данным объектом можно подсмотреть в схемах раздела "Планирование". будут вопросы пишите. я именно данный объект "PivotGrid" переделал и использовал в своих задачах. К примеру я сделал огромную таблицу по ведению БДР и БДДС для экономической части своего проекта.
Добрый день, Олег.
Действительно, базовая функциональность не позволяет реализовать Вам поставленную задачу.
Для решения- попробуйте воспользоваться советом из комментария Власова Михаила.
похорошему уже пора в системе создать новый объект Table и использовать его к примеру для формирования таких таблиц, или к примеру для формирования красивых Table отчетов, а помимо красивых еще и живых, чтобы была возможность проваливаться внутрь цифры, для получения расшифровки, или проваливаться внутрь статьи затрат, что будет показана в отчете и так же получать расшифровку по цифрам очень было бы удобно. Я данный функционал у себя реализовал, но за основу брал PivotGrid и далее уже делал свой объект, и описывал все события и не только. Но я смотрел на данный объект с точки зрения своего проекта, а хотелось бы конечно чтобы существовал универсальный объект Table с описанными свойствами, методами и событиями.
Ваша идея принята для анализа аналитиками проектного офиса и будет рассмотрена возможность ее реализации в одной из последующих версий программного продукта.
Хм, понятно, тогда такой вопрос, а как создать раздел аналогичный Планированию? Не совсем по теме но все же из того же разряда использования PivotGrid, т.е. при обычной регистрации раздела у меня идет обращение через SectionModule, как это изменить. Если где то подобный вопрос поднимался скиньте пожалуйста ссылку, что то я найти не смог
Немножко не понял суть вопроса. и в особенности про "регистрацию раздела". Можно конкретный кусок кода привести в пример, где и к чему у вас идет обращение, и где возникает трабл. я тогда поясню. а сейчас немного сложно ориентироваться в пространстве. так как в BPM очень много одновременно отрабатывается схем, событий, callback-ов и не только. и еще раз повторюсь, чтобы вы понимали вся основная логика построена и работает с помощью генераторов страниц, это очень удобно, а все отталкивается от Базовой модели. Именно она всем рулит.
Для того, чтобы вместо SectionModuleV2 загружался Ваш модуль, необходимо определить уникальный идентификатор этого модуля (поле UId таблицы SysSchema) и подставить его для соответствующего раздела в поле SectionModuleSchemaUId таблицы SysModule. Например, в базовой версии уникальный идентификатор модуля SectionModuleV2 имеет значение "DF58589E-26A6-44D1-B8D4-EDF1734D02B4", а уникальный идентификатор модуля планирования (ForecastsModule) - "F38A00D3-94E1-46AB-89B5-2FCB685754C4", и соответственно эти значения указаны в SysModule.
из комментария Олега, Лабьяк теперь понял, что вы желаете. Могу здесь только добавить одно, так как в системе по умолчанию нет готовой Хранимой процедуры по регистрацию раздела и привязки к нему основной страницы редактирования. То в добавление к комментарию Олега, могу вам только посоветовать разобраться со структурой таблицы SysModule. Что в каком поле храниться, и что за что отвечает. На примере существующих разделов вам будет понятно. От себя скажу, что я всегда иду от обратного. Сначала регистрирую вручную в системе все свои страницы редактирования, детали. А уже после приступаю к регистрации разделов. Так более удобно, понятно. Но не забываем что после Регистрации всех страниц редактирования, деталей, разделов не забываем их подгрузить в Админке на закладке Конфигурация --> Данные. Чтобы при переносе своих доработок с Develop конфигурации на Рабочую конфигурацию у вас при загрузке загрузились бы схемы страниц, схемы данных, SQL скрипты. Я так же не забываю всегда это делать.
В модуле страницы на BPMonline 7.6, который унаследован от модуля Базовая схема карточки, переопределил функцию commandLineVisible из модуля MainHeaderModule следующим образом:
сommandLineVisible:function(){ var isCommandLineVisible =false; this.set("IsCommandLineVisible", isCommandLineVisible); this.reloadCommandModule(); }
Но не работает. Окно командной строки с надписью "Что я могу для вас сделать GO" продолжает оставаться на экране. Что я делаю неправильно ?
я вам еще в предыдущем посте писал, что разбираться нужно с модулем MainHeaderModule, и следовательно замещать требуется модуль MainHeaderModule, а в замещенном модуле перегружать и править функцию сommandLineVisible, вот так нужно поступать. Только не забываем, что при замещение модулей в системе требуется в новый модуль переносить вручную верстку, зависимости, описание сообщений, и в замещенный модуль копируем полностью текст, находим требуемую функцию и правим. Подругому не у вас не получиться.
поэтому в карточке что зависит от базовой схемы карточки ничего перегружать (из функций) не нужно.
"Бузин Евгений" написал: А метку "Страница N из M" как можно перетащить на свою страницу?
Евгений поясните пожалуйста где вы видели данную метку. что-то у себя я такого не нахожу. В каком разделе, на какой странице редактирования или детали. Где данный функционал вами обнаружен? может мне уже пора обновляться :smile: Спасибо!!!
Здравствуйте, Михаил. У меня в задании - сделать страничку. И в её правом верхнем углу должна быть метка "Страница N из M". Значение N должно соответственно изменяться от странице к странице. Подобная страница (с такой меткой) была создана у нас в BPMonline 7.2. Но поскольку правила написания кода страницы на Javascript в 7.2 и в 7.6 различаются, то просто скопировать - не получится.
я конечно уже 7.2 подзабыл, но принцип программирования, он не сильно претерпел изменений. Если вам реально нужна помощь, сбросьте информацию какую конфигурацию 7.2 вы использовали, где в 7.2 была данная метка, и где в 7.6 вы желаете реализовать данный функционал. Я вам помогу или советом или кусок кода сброшу. Но если честно я немного плохо представляю, чем на практике полезна данная метка "Страница N из M".
немного конечно я так и не понял, что вы желаете. Я сегодня разверну 7.2 посмотрю о чем вы говорите. Но если вас не затруднит, не могли бы вы сбросить скриншот как бы вы желали в 7.6 это видеть. Пусть даже скриншот будет из 7.2. Спасибо!!!
Все теперь понял про, что идет речь. Это у вас были реализованы "мастер создания контактных лиц". Теперь чтобы мы могли далее говорить на одном языке. Уточните пожалуйста текущую версию 7.6, т.е название и билд. Я ознакомлюсь с данной конфигурацией. А после уже задам вопрос, где и что конкретно вы желаете реализовать. Я думаю по сравнению с 7.2 функционал в 7.6 сильно изменился.
Здравствуйте. Пишу модуль страницы на Javascript в BPMonline 7.6. В качестве родительской страницы установлена "Базовая схема карточки". У меня следующие проблемы:
1) Что нужно написать в модуле, чтобы добавить на страницу работающую метку "Страница N из M" ?
2) Что нужно написать в модуле, чтобы удалить с страницы окно "Что я могу для вас сделать? GO" ?
3) Что нужно написать в модуле, чтобы удалить с страницы маленькие круглые сервисные кнопки: "Дизайнер системы", "Справка", "Профиль", "Лента", "Уведомления", "Уведомления ленты" ?
4) Что нужно сделать для того, чтобы надпись к полю на странице находилась не слева от соответствующего ей поля, а сверху него ?
Заранее благодарю.
С уважением.
Чтобы решить все ваши проблемы вам требуется не использовать "Базовую схему карточки", а написать свой Модуль, разместить в данном модуле все требуемые поля, описать их логику работы. Пример можете подглядеть в сервисе "GoogleIntegrationSettingsModule". Это полностью рабочая страница созданная с нуля, где используется своя схема верстки, где используется свой алгоритм поведения полей.
Если вы желаете изменить стандартную логику поведения работы страниц, то вам придется править не только схему "BasePageV2" но и много других схем. Так как страницы в системе Генерируются, Поля в системе генерируются, и за каждое действие в системе отвечает свой Generator.
Этот путь гораздо сложнее и дольше, я бы написал с нуля свой Модуль страницы.
А всё-таки, если пойти по пути изменения стандартной логики, то что нужно сделать, чтобы удалить из страницы: окно "Что я могу для вас сделать? GO" и круглые сервисные кнопки ?
Евгений за формирование, отображение или скрытие отвечает сервис MainHeaderModule. вам требуется в нем разобраться как происходит генерация и построение "viewModel" и вам все будет понятно. если не получиться разобраться пишите подскажу какие функции переопределить и поправить. но это будет жесткое скрытие "Командной строки" и "Сервисных кнопок". Если именно это нужно, то еще раз повторюсь смотреть нужно сервис MainHeaderModule
Да, Михаил, мне нужно именно это (жёсткое сокрытие) и я сейчас как раз смотрю исходник этого модуля. Если будут затруднения, то буду задавать вопросы в этом посте. Ещё раз большое спасибо.
столкнулся вот с какой трудностью, создал модальное окно, разместил на модальном окне поля LookupEdit, TextEdit, CheckBox, Label. Выполнил верстку, Здесь проблем никаких не возникло. Описал viewModel, разместил все поля так как мне требуется. и вот какую проблемку обнаружил, сходу не нашел в чем проблема. На размещенном на ModalBox поле LookupEdit, требуется чтобы нашав на Иконку "Лупа" открылась модальная форма Выбора из справочника, для этого описал функцию "loadVocabulary". И в результате получаю следующее:
модальная форма до нажатие на Выбор из справочника:
модальная форма после нажатие на Выбор из справочника:
Во вложение прикладываю текст схемы модуля, модального окна.
Прошу подсказать, кто сталкивался, что требуется еще допилить, чтобы окно модальное "Выбор из справочника открывалось". Мое первое предположение, что нужно или на что-то дополнительно подписаться, или что-то опубликовать дополнительно и передать параметры.
не выдержала душа поэта, сам все решил. И теперь сделал так что при открытии N-ного количества LookupPage можно их открывать последовательно в цепочке, каждый теперь у меня LookupPage открывается и генерируется в своем DOM. можно свободно в цепочке возвращаться назад. по умолчанию террасофт такого не умел именно для объекта LookupPage. Теперь научил :smile:
И что, теперь проклятье потеряло силу и есть методика, как открыть два справочника для выбора значения подряд? И получив таким образом два параметра запустить процесс...
у меня была задача Создать N-ое количество Lookup страниц (причем модальных), на данных страницах размещены LookupEdit поля и не только. Задача была чтобы не закрывая 1 Модальную Lookup страницу открыть N-ное количество Lookup страниц, причем в цепочке, чтобы можно было вернуться обратно. Первая проблема где я с этим столкнулся это было вызов "Выбора" из LookupEdit размещенного на Модальной Lookup странице. не работало в стандартном исполнении. Посмотрел в примерах по конфигурации, думал есть где уже данная проблема решалась, оказалось, что нет. Я немного помыслил и решил помимо Выбора чтобы можно было открывать Модальные карточки редактирования (вернее в них проваливаться). Вот 1 день труда и моя идея воплотилась в жизнь и работает в моем проекте.
у меня была задача Создать N-ое количество Lookup страниц (причем модальных), на данных страницах размещены LookupEdit поля и не только. Задача была чтобы не закрывая 1 Модальную Lookup страницу открыть N-ное количество Lookup страниц, причем в цепочке, чтобы можно было вернуться обратно. Первая проблема где я с этим столкнулся это было вызов "Выбора" из LookupEdit размещенного на Модальной Lookup странице. не работало в стандартном исполнении. Посмотрел в примерах по конфигурации, думал есть где уже данная проблема решалась, оказалось, что нет. Я немного помыслил и решил помимо Выбора чтобы можно было открывать Модальные карточки редактирования (вернее в них проваливаться). Вот 1 день труда и моя идея воплотилась в жизнь и работает в моем проекте.
Добрый день Михаил!
Вы можете поделиться вашим решением?
Здравствуйте. Подскажите пожалуйста каким образом можно удалить созданные детали, которые уже не используются или же были созданы ошибочно? В Конфигурации удалил из папки всё. Однако, при добавлении ново созданных деталей в списке остаются и старые, которые были удалены.
Благодарю.
Сами разделы/детали (их страницы редактирования, а также объекты, на которые они ссылаются) Вы можете удалить из конфигурации.
При этом в базе данных останутся записи. Необходимо удалить записи с таблиц:
SysModule
SysModuleEdit
SysModuleEditLcz
на будущее совет прежде чем удалять Деталь, Страницу редактирования, или раздел из конфигурации, скопируйте все Uid каждой схемы.
постройте запросы к таблицам
- SysSchema
- SysModuleEntity
- SysModuleEdit
- SysModuleEditLcz
- SysDetails
- SysModule
- SysModuleLcz
Найдите все хвосты, где хранятся ссылки на удаляемые схемы, вычистите таблицы, а уже после удаляйте схемы через конфигурацию. Так будет надежнее. И не забывайте о "Данных", именно с помощью данных мы фиксируем и переносим наши созданные новые страницы. Там тоже нужно не забывать вычищать все.
в карточке Договор при нажатии на кнопку формирования печатной формы договора "Печать" - "Договор" нужно отправлять данные договора в АБС (интеграция), условно говоря, вызывать хранимую процедуру. Ну, одним словом, нужно переопределить функцию, которая вызывается при нажатии на данную кнопку
Здравствуйте. При разработке в BPMonline 7.6, хочу разместить на странице, которая унаследована от Базовая схема карточки (BasePageV2) из пакета NUI, кнопку. Внутри секции diff:[{}] модуля моей страницы поместил описание этой кнопки:
{ // Метаданные для добавления кнопки [Назад], по нажатию на которую // выполнется переход на предыдущую операцию: // Указать на то, что выполняется операция добавления элемента на страницу. "operation":"insert", // Указать имя системного контейнера на странице, в который будет добавлена кнопка. "parentName":"LeftContainer", // Указать, что кнопка добавляется в коллекцию элементов управления в контейнере, // имя которого указано в parentName. "propertyName":"items", // Мета-имя добавляемой кнопки. "name":"BackButton", // Дополнительные свойства кнопки: "values":{ // Тип добавляемого элемента - кнопка. "itemType": Terrasoft.ViewItemType.BUTTON, // Привязка заголовка кнопки к локализуемой строке схемы. "caption":" Back",//{ bindTo: "Resources.Strings.BackButtonCaption"}, // Привязка метода-обработчика нажатия кнопки. "click":{ bindTo:"OnBackButtonClick"}, // Настройка расположения кнопки на странице. "layout":{"column":1,"row":0,"colSpan":1}//, //"visible": true } }
Обработчик кнопки определён в секции methods: в модуле страницы. Модуль моей страницы компилируется без ошибок. После компиляции модуля выполняю компиляцию бизнес-процесса, который содержит элемент "Преднастроечная страница" к которому подключён мой модуль. Для запуска этого БП с моей страницей пробовал использовать браузеры: FireFox, GoogleChrome, IE. Все элементы на странице нормально визуализируются, кроме упомянутой выше кнопки. В консольном окне отладчика браузера нет никаких сообщений об ошибке. Вроде всё нормально, а кнопка не отображается. В окне Elements отладчика GoogleChrome - кнопки нет, а все остальные элементы страницы - есть. Исходник модуля моей страницы смотрел человек, хорошо знающий Javascript, и только руками разводил: "должна отображаться - всё написано правильно", а её нет. Может быть кто скажет - в чём причина?
можно скриншот вашей страницы как сейчас у вас визуализируется кнопка на экране. и схематически нарисуйте как вы хотите, а я вам подскажу что делать. и так же прошу скинуть полностью листинг модуля, где у вас не работает данная кнопка. посмотрим и на код.
Спасибо, Михаил.
Я вчера вечером сам решил этот вопрос. Я изменил имя у кнопки с BackButton на RetButton и она стала отображаться на странице. Ещё раз спасибо большое за поддержку.
SysUserInRole - потрібно завести архів ролей користувача, щоб можна було визначити чи входив користувач до складу підрозділу в заданий період.
Створив супутній об'єкт [SysUserInRoleHistory] для того, щоб у нього писати вилучені ролі користувача.
Далі спробував створити обробник для SysUserInRoleDeleting, але при натисненні відповідної кнопки обробник не створився.
Перевірив для декількох таблиць типу [Sys*] - ситуація аналогічна.
В самому об'єкті присутні повідомлення
SysUserInRoleInserted
SysUserInRoleSaving
SysUserInRoleSaved
SysUserInRoleDeleting
Але, як вже написав, при натисненні кнопки переходу до відповідного обробника в дизайнері процесів нічого не створюється. Спробував створити обробники вручну - не спрацьовують.
А почему не отслеживать изменения не через обработчик событий объекта, а через обычный бизнес процесс?
Начальный элемент - сигнал по событию добавления/изменения/удаления записи по объекту "Роль пользователя", а дальше уже стандартными элементами бизнес процесса организовать чтение записи, по которой запустился процесс, а также добавление записи о событии в созданный Вами объект.
а зачем удалять напрямую из базы. А как же проверка (перед удалением) имеет право пользователь выполнять удаление или нет. Если создавать триггеры, бизнес-процессы, то считаю, что будет полная каша. Лучше уже или C# или на худой конец, что-то небольшое выполнить на клиенте на JavaScript. Привыкать считаю нужно к хорошему, пока лучше чем C# в мире не придумали.