Коллеги подскажите как правильно, настроить git для разработки в creatio?

Нравится

4 комментария
Лучший ответ

Перевести разработку в режим разработки в файловой системы. Потом выгрузить пакеты. И получившиеся пакеты уже синхронизировать в git. Так же тренер по курсам террасофта говорил что можно указать в параметрах адрес выгрузки пакетов, в таком случае должны будут выгрузиться туда только пакеты в которых Вы разрабатываете

Перевести разработку в режим разработки в файловой системы. Потом выгрузить пакеты. И получившиеся пакеты уже синхронизировать в git. Так же тренер по курсам террасофта говорил что можно указать в параметрах адрес выгрузки пакетов, в таком случае должны будут выгрузиться туда только пакеты в которых Вы разрабатываете

Стандартно интеграции с Git нет, только с SVN. Если выгружать в файловую систему, можно к папке на диске подключить любую систему контроля версий, но с сайтом это автоматически не интегрируется.

Спасибо за ответы. Но я хотел спросить у кого настроен Git, у кого есть практика использования git настроили только на папку PKG или как то по другому? Мы настроили на весь проект, но при работе почему то модифицируется те файлы которые мы не трогали например DLL. По этому я и спросил как именно настраивали git. 

Если речь о скомпилированных в dll файлах конфигурации, то, по идее, они меняются при каждой публикации, если поменялись их исходники.

Показать все комментарии

Всем салют!

Подскажите, пожалуйста, как формируется id обращения в BPM?

https://*****.ru/0/Nui/ViewModule.aspx#CardModuleV2/CasePage/edit/61b75e60-765c-43a2-9d7d-c32c674929c9

 

вот эта часть 61b75e60-765c-43a2-9d7d-c32c674929c9 

Хотелось бы понять, как она формируется и есть ли возможность перекодировать, что бы из ссылки узнать номер обращения?  

 

Нравится

2 комментария
Лучший ответ

Это внутренний идентификатор. Почитайте в интернете про GUID (Globally Unique Identifier). Генерируется вроде по функции Guid.new()

И насколько я знаю нет, перекодировать на номер обращения нельзя. Этот Id используется далее в системе, где происходит ссылка на обращение.

Это внутренний идентификатор. Почитайте в интернете про GUID (Globally Unique Identifier). Генерируется вроде по функции Guid.new()

И насколько я знаю нет, перекодировать на номер обращения нельзя. Этот Id используется далее в системе, где происходит ссылка на обращение.

Этот идентификатор генерируется случайным образом, чтобы его можно было при необходимости сформировать хоть в базе, хоть на веб-сервере, хоть в браузере перед вставкой в поле Id. Это универсальный механизм для всех разделов, деталей, справочников и почти всех таблиц системы, за редким исключением.

 

В первых версиях 5.Х пробовали формировать Id подряд, но вскоре отказались. Артефакты с тех времён можно увидеть в старых справочниках, например, ContactType. Там у трёх из четырёх записей Id отличаются одним символом.

Показать все комментарии

После установки пакета создается резервная копия конфигурации, где она хранится?

Нравится

1 комментарий

Андрей, эта логика реализована в веб-сервисе /0/ServiceModel/PackageInstallerService.svc/CreateBackup, он реализован на уровне ядра. Насколько понял, сохранение происходит в системную папку для временных файлов на веб-сервере, создаются файлы с именами DeleteList.txt, AppInfo.txt, AppDependentPackagesUIdsInfo.txt.

 

Информация, в том числе и  лог о результатах загрузки пакета, пишется в подпапки внутри папки PackageInstallation, у меня она была в C:\Windows\Temp\3\IIS APPPOOL_MySiteName\Default.

Показать все комментарии

Добрый день!

 

После настройки БП в котором текущему пользователю открывается "Страница редактирования" для просмотра информации из базы знаний, заметил что процесс продолжает выполняться, т.к. элемент "Открыть страницу редактирования" не выполняется. Согласно рекомендаций данного комьюнити было добавлено условие в поле "Когда считать элемент выполненным?", а именно: "ID заполнено". При этом процесс все равно продолжает выполняться на этом элементе. Почему, мне непонятно.Изображение удалено.

Цель: от пользователя не ожидается никаких действий с данной страницей (редактирование/сохранение/закрытие страницы и т.д.), он может как перейти на другой раздел, так и закрыть браузер.

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

 

P.S. такая же проблема присутствует и на элементе процесса "Преднастроенная страница". Согласно документации элемент должен выполняться после нажатия "Закрыть" на преднастроенной странице, но несмотря на нажатие на "Закрыть" процесс продолжает выполняться на этом элементе дальше.

Нравится

7 комментариев

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

Насколько понимаю, этот пункт относится к сохранению новой записи, а поскольку она уже существует в базе, Id всегда чем-то заполнен.

 

В Вашем случае можно, например, сделать на карточке JS-логику при открытии, добавляющую или меняющую запись в каком-то вспомогательном объекте (или служебное поле прямо в той же записи того же объекта, что открылась), а на это событие добавить срабатывание сигнала в разрабатываемом БП.

 

Зверев Александр пишет:

Насколько понимаю, этот пункт относится к сохранению новой записи, а поскольку она уже существует в базе, Id всегда чем-то заполнен.

В Вашем случае можно, например, сделать на карточке JS-логику при открытии, добавляющую или меняющую запись в каком-то вспомогательном объекте (или служебное поле прямо в той же записи того же объекта, что открылась), а на это событие добавить срабатывание сигнала в разрабатываемом БП.

Да, я в принципе ID и выбирал исходя из того, что он и так всегда заполнен, а значит условие однозначно выполнится и таким образом выполнит элемент. Это может быть и другое поле, ключевое здесь признать элемент выполненным просто при открытии страницы, без каких либо действий со стороны пользователя.

И да, хотелось это сделать средствами базовых элементов бизнес процесса, без конфигурации страниц, если конечно это возможно.

Александр О пишет:

Да, я в принципе ID и выбирал исходя из того, что он и так всегда заполнен, а значит условие однозначно выполнится и таким образом выполнит элемент. Это может быть и другое поле, ключевое здесь признать элемент выполненным просто при открытии страницы, без каких либо действий со стороны пользователя.

Так у Вас проверило условие, оно выполняется, вот и пошло дальше ещё до открытия страницы пользователем.

 

Возможно, поможет автогенерируемая страница с нужной информацией пользователю? Но там выполнение стоит на элементе, пока пользователь не нажмёт кнопку, отличную от отмены.

Александр О,  добрый день.

 

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

Эдуард Р,

По сути, наиболее подходящие решения уже были предоставлены выше. С помощью средств разработки можно реализовать более гибкую логику, но если нужно обойтись без разработки, то подойдут варианты, которые выше предложили коллеги.

 

1. Присылать пользователю уведомление из процесса в коммуникационную панель со ссылкой на страницу, которую он должен посмотреть. Минут этого варианта в том, что пользователь может открыть перечень уведомлений и не пройти по ссылке, при этом счётчик уведомлений сбросится, и пользователь в дальнейшем может забыть перейти по ссылке.

2. Показать пользователю автогенерируемую страницу и вывести в нее всю необходимую информацию из записи. Задача будет висить в коммуникационной панели пока не выполнится, но для выполнения всё равно нужно добавить в нее любую кнопку и назвать, к примеру, "Сохранить". Страница выполнится только когда пользователь нажмёт на эту кнопку.

 

Однако не уверен, есть ли смысл реализовывать отдельно автогенерируемую страницу, если Открыть страницу редактирования работает точно так же - пользователь жмёт "Сохранить" и элемент выполняется. Всё, что требуется от пользователя - один клик.

Эдуард Р,  вы можете попробовать отобразить страницу, которая автоматически закроется через указанное в таймере время. Притом, если страница будет открыта на момент истечения времени таймера, она будет оставаться на экране до тех пор, пока её не закроют вручную.

Это должно решить вашу проблему. На скриншоте пример реализации на BPMN с использованием  таймера на одну минуту и "включающего или" (в обоих условных потоках указано литеральное true).



.

Показать все комментарии

Добрый день!

 

Хотелось бы узнать существуют ли какие то правила поиска внутри самого комьюнити, т.к. пересматривать иногда сотни статей является очень трудозатратным? Имеются ввиду правила поиска, по аналогии с правилами в поисковике (знаки, комбинации знаков).

Например: необходимо найти точную фразу "Установить результаты по обращению". При поиске по такой фразе находит страницы с отдельными словами, но не со всей фразой целиком:

Изображение удалено.

Нравится

1 комментарий

Александр, если функциональности внутреннего поиска не хватает, можно в Google написать запрос и там же site:community.terrasoft.ua, так можно будет искать по сайту и при этом использовать все параметры расширенного поиска, поиск за период и подобное.

Показать все комментарии

Коллеги, доброго времени суток!



Есть необходимость вывести дополнительную информацию в виде колонки реестра раздела для каждой записи.

 

Кейс: 

в реестре раздела Контрагенты вывести дополнительную колонку с названием "Контакты", и для каждой записи выводить имена всех Контактов соответствующего Контрагента (из детали "Контакты контрагента").

 

Изображение удалено.

Необходимо, чтобы контакты отображались даже когда строка неактивна, то есть также, как данные других колонок (всегда).

Обычным способом такую колонку добавить не получается.

Изображение удалено.

Если есть варианты, как реализовать этот кейс другим путем, буду рад их рассмотреть.

Заранее спасибо за помощь!

 

Нравится

6 комментариев
Лучший ответ

Дмитрий, причина отсутствия колонок в изначальном вопросе в том, что в раздел можно выводить с детали только обобщённые значения: количество, сумму, среднее, минимум, максимум.

Дмитрий Анисько пишет:

то на мой взгляд проще добавить строковое поле в объект Контрагент и обновлять его на все нужные события для поддержания актуальности данных.

Лучше всего именно так. На уровне встроенного БП объекта детали или отдельным БП заполнять новое текстовое поле в объекте раздела. Можно ещё триггером в базе, но это Вам не подойдёт.

Дмитрий Анисько пишет:

Может быть Вы знаете, как можно добавить колонку в реестр именно на этапе формирования вью-модели?

 Даже если такое возможно, рисков больше, чем преимуществ. От большей нагрузки на сервер и базу, когда для каждой видимой в реестре строки будет отдельный запрос, до неполной функциональности, когда такая колонка не будет полноценно работать в выгрузке в Excel, итогах, печатных формах, OData и прочих интеграциях.

Здравствуйте!

 

Базовыми средствами, не прибегая к разработке, Вы не сможете реализовать подобный функционал.

Вариантов решения такой задачи несколько, например:

1. Добавляем view с 2 колонками - Guid и string. Средствами sql формируем запрос, который в первую колонку будет возвращать Id контрагента, во вторую все "склеенные" в одну строку имена относящихся к нему контактов

2. В контрагенте добавляем колонку-справочник на нашу view (не забываем про галочку контроля целосности)

3. На событии OnInserting контрагента копируем значение колонки Id в колонку из п.2

4. Дальше пользуемся базовой настройкой колонок

 

Манипуляции из пп. 2-3 нужны для того, чтобы сохранить прямую связь

Лопатин Константин,



Большое спасибо за ответ, но указанный способ не подходит.

Нужно сохранить поддержку всех 3-х субд, а создавать View для каждой - не очень удобно. Да и если идти подобным путем, то на мой взгляд проще добавить строковое поле в объект Контрагент и обновлять его на все нужные события для поддержания актуальности данных.

 

Может быть Вы знаете, как можно добавить колонку в реестр именно на этапе формирования вью-модели? Может вы знаете, что можно попробовать переопределить, чтобы изменить стандартное поведение?

 

Дмитрий, причина отсутствия колонок в изначальном вопросе в том, что в раздел можно выводить с детали только обобщённые значения: количество, сумму, среднее, минимум, максимум.

Дмитрий Анисько пишет:

то на мой взгляд проще добавить строковое поле в объект Контрагент и обновлять его на все нужные события для поддержания актуальности данных.

Лучше всего именно так. На уровне встроенного БП объекта детали или отдельным БП заполнять новое текстовое поле в объекте раздела. Можно ещё триггером в базе, но это Вам не подойдёт.

Дмитрий Анисько пишет:

Может быть Вы знаете, как можно добавить колонку в реестр именно на этапе формирования вью-модели?

 Даже если такое возможно, рисков больше, чем преимуществ. От большей нагрузки на сервер и базу, когда для каждой видимой в реестре строки будет отдельный запрос, до неполной функциональности, когда такая колонка не будет полноценно работать в выгрузке в Excel, итогах, печатных формах, OData и прочих интеграциях.

Коллеги, большое спасибо за ответы.

Принимая во внимание лишнюю нагрузку на бд, есть смысл остановиться на варианте со строковым полем.

Дмитрий Анисько пишет:

Коллеги, большое спасибо за ответы.

Принимая во внимание лишнюю нагрузку на бд, есть смысл остановиться на варианте со строковым полем.

Дело, конечно же, Ваше, но я, если честно, так и не понял каким образом уменьшится нагрузка на БД если сравнивать view и обновление колонки после каждого чиха на событийном слое

 

Нужно сохранить поддержку всех 3-х субд, а создавать View для каждой - не очень удобно

Тоже не вижу особой проблемы с учетом того, что синтаксис аналогичный.

Лопатин Константин пишет:

Дело, конечно же, Ваше, но я, если честно, так и не понял каким образом уменьшится нагрузка на БД если сравнивать view и обновление колонки после каждого чиха на событийном слое

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

Показать все комментарии

Добрый день!

Подскажите, пожалуйста, мы хотим, чтобы у нас в Итогах раздела был расчетный показатель, который пересчитывается при перемещении по папкам в соответствии с условием, накладываемым фильтром папки. Реализовано ли это для элемента «Расчетный показатель»?

 Версия 7.15.1.1295

 Спасибо!

Нравится

1 комментарий

Ольга, в стандартном блоке итогов «Показатель» выбранная группа учитывается. Правда, проверял на 7.16.1, но в 7.15.1 должно быть тоже.

Или Вы имели в виду «Расчетный показатель» из дополнения «Calculated metrics»? Там не так?

Показать все комментарии

Коллеги, добрый день. 

 

Нужна ваша подсказка. 

Требуется в уведомлении агентам отправлять информацию о том, какая группа исполнителей назначена на тикет. 

Для этого читаем обращение, получаем id группы ответственных, далее требуется сравнить этот id c ролью(?), чтобы вычитать информацию про группу. 

Вопрос в том, как называется объект, который содержит информацию о группах? Из чего делать вычитку? 

Нравится

3 комментария
Лучший ответ

Sunrise challenge,

Да, в элементе читать данные посмотрите таблицу с названием 'Объект администрирования'.

Добрый день.

 

Таблица, которая содержит информацию о пользователях, организационных и функциональных ролях, называется SysAdminUnit.

Алла Савельева,

Можно ли обратиться к ней из дизайнера процессов? Не вижу в списке объектов, из которых можно читать данные. 

Sunrise challenge,

Да, в элементе читать данные посмотрите таблицу с названием 'Объект администрирования'.

Показать все комментарии

Добрый день! Установили Геймификацию на наш тестовый стенд on-site. Добавил доступ некоторым сотрудникам. Но никак не могу открыть Мастер игр, не отображается в Дизайнере системы.

Нравится

3 комментария

Добрый день, Никита!

 

уточните, пожалуйста, продукт и версию для воспроизведения ошибки.

Ирина Лазоренко,

Добрый день!

Продукт: Service enterprise

Версия: 7.15.3.1649

Никита, добрый день,

 

на чистой сборке указанного продукта и версии пункт Мастер игр отображается всегда в Дизайнере системы в блоке Настройка системы под пунктом Мастер мобильного приложения.

 

Уточните, возможно у вас, установлены другие дополнения, которые добавляют новые пункты в Дизайнер системы? Пришлите список таких приложений.

Показать все комментарии

Здравствуйте.

Вопрос в следующем. Меняется процесс обработки обращений. Добавляются новые стадии и новые процессы по стадиям. Но при этом условия кейса остаются прежними. В системе имеется достаточное количество незавершенных обращений.

Версионности, как у бизнес-процессов, у кейсов нет. Как лучше ввести новый кейс, не сломав все открытые обращения? 

Нравится

7 комментариев

как вариант добавить поле версии в продажу (просто поле), и сделать что бы кейс на это поле оринтировался при отображении (отображать кейс по этому полю справочному, кстати поле должно быть справочное)

Здравствуйте, Алексей!



Предположим, в разделе настроена первая версия кейса (далее DCMv1) с определенным набором активностей для каждой стадии.

По записи в разделе был запущен кейс и созданы новые активности согласно DCMv1.

Далее кейс изменен на вторую версию (далее DCMv2) с другим набором активностей.

В результате активности, которые были созданы по DCMv1, отвязываются от кейса и становятся обычными задачами, которые привязаны к сущности. Если перейти на другую стадию и обратно – к обычным задачам добавляются еще новые активности, согласно новому кейсу DCMv2.

Это базовая логика приложения, сделанная для того, чтобы предотвратить потерю запланированных задач.

Александр Тыра,

Условие запуска кейса уже занято.

Илья, если в ходе кейса только задачи, то да, все будет хорошо. А если в задачах запускается подпроцесс? То он скорее всего зависнет иди перейдет в состояние отменен. Риск только в процессах, которые запускается по шагам кейса.

Здравствуйте, Алексей!

 

У Вас при смене кейса процессы отменяются или зависают? Стандартно запущенные  процесы по кейсу отменяются при смене стадии в кейсе.

У нас зависло много процессов в статусе выполняется. Причина - кейс перешел в состояние отменен и удалил за собой все данные по запущенным процессам. Процессы зависли в статусе выполняется. А вот почему кейс отменился ни я, ни техподдержка не выявили.  Единственное в тот день переносили обновления, в том числе и кейса. Но эта версия не подходит по времени. Разница в 7 часов. в 13 часов ставились обновления. Кейс отменился в 20 часов.

Алексей, если кейс не менялся после этого, то узнать, кто поменял состояние, можно по значению колонки «Изменил». Если такое происходит не раз, можно настроить журнал изменений для выяснения, что происходит: меняет пользователь, процесс по таймеру, интеграция или кто-либо иной. А если речь конкретно о разделе обращений, там есть вкладка «Обработка» в карточке, где можно включить показ системных сообщений. Возможно, там что-то интересное.

Показать все комментарии