Добрый день, коллеги! Может кто-то сталкивался с подобной проблемой

 

После обновления црм 7.15 до 7.18.1.2800.

В Бизнес процессах в которых присутствует интерактив - 

"Вопрос пользователю, Открыть страницу редактирования, Автогенерируемая страница, Преднастроенная страница" на этих элементах происходит ошибка:

Значение с именем "GroupType" не найдено

 

Terrasoft.Common.ItemNotFoundException: Значение с именем "GroupType" не найдено at 
Terrasoft.Core.Entities.EntityColumnValueCollection.GetByName(String name) at 
Terrasoft.Core.Entities.Entity.GetIsColumnValueLoaded(String valueName) at 
Terrasoft.Core.Entities.EntityUtilities.SafeGetColumnValue[TValue](IEntity source, String 
columnValueName, TValue defaultValue) at 
Terrasoft.Core.Process.SysProcessElementToDoListener.OnElementNotificationChanged(Object sender, 
EntityAfterEventArgs eventArgs, EntityChangeType entityChangeType) at 
Terrasoft.Common.CollectionUtilities.ForEach[T](IEnumerable`1 source, Action`1 action) at 
Terrasoft.Core.Entities.Entity.OnInserted(EntityAfterEventArgs e) at Terrasoft.Core.Entities.Entity.
<InsertToDBAsync>d__302.MoveNext() --- End of stack trace from previous location where exception was
 thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at
 Terrasoft.Core.Entities.Entity.InsertToDB(Boolean skipLookupColumnValues, Boolean validateRequired)
 at Terrasoft.Core.Entities.Entity.<InternalSaveAsync>d__288.MoveNext() --- End of stack trace from 
previous location where exception was thrown --- at 
System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at 
System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at
 Terrasoft.Core.Entities.Entity.InternalSave(Boolean validateRequired, Boolean setColumnDefValue) at 
Terrasoft.Core.Entities.Entity.<SaveAsync>d__300.MoveNext() --- End of stack trace from previous location
 where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at
 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
at Terrasoft.Core.Entities.Entity.Save(Boolean validateRequired, Boolean setColumnDefValue) at 
Terrasoft.Core.Process.ProcessNotificationManager.Create(ProcessElementNotification notification) at 
Terrasoft.Core.Process.CommonProcessUtilities.ExecuteAndPublishDurationMetric(ProcessActivity 
source, Action action, String operationName) at Terrasoft.Core.Process.ProcessActivity.
<PublishNotification>b__111_0() at Terrasoft.Core.Process.ProcessActivity.RunInCultureScope(Action 
action) at Terrasoft.Core.Process.ProcessUserTask.AfterInternalExecute() at 
Terrasoft.Core.Process.ProcessActivity.ExecuteItem(ProcessExecutingContext context) at 
Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

 

Упоминание этого поля есть в:

\Terrasoft.WebApp\bin\Terrasoft.Core.xml

\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Core.xml

В версии 7.17 таких ошибок не было.

Нравится

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

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



Также, думаю, имеет смысл через Workspase Console провести генерацию и сборку

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

Алексей Клещевников,

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



 

Аскар Абильгазин, создавал бизнес процесс такого вида - ошибка по-прежнему появляется 

Аскар Абильгазин,

Алексей Клещевников,

В случае если в кастомных пакетах вы ранее не меняли функционал затрагивающий данные элементы ПБ или работу ПБ в целом, то тут могу посоветовать писать в саппорт Creatio.



Если это не результат внесенных вами изменений - решение данного вопроса может надолго затянуться и не факт, что найденное вами решение положительно скажется на будущих обновлениях

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

Добрый день.

Есть необходимость на преднастроенной странице отображать список пользователей (по ФИО) входящих в выбранную организационную роль.

Какие условия бизнес-правила страницы необходимо указать? 

Нравится

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

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

 

Если правильно понимаю задачу, то базовыми элементами не получиться отображать список пользователей с фильтрацией по определенной организационной роли без дополнительных кастомизации логики. По поводу кастомизации есть несколько тем где поднимались подобные вопросы,  надеюсь Вам это будет полезно. https://community.terrasoft.ru/questions/spravochniki-v-prednastroennoy… и https://community.terrasoft.ua/questions/neskolko-voprosov-po-prednastr…

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

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

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

Вопрос следующий: потребовалось переназначить это действие на другого пользователя. Каким образом это можно сделать? 

 

Нравится

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

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

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

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

Доброго времени суток, коллеги подскажите пожалуйста есть ошибка которая часто повторяется когда переходишь по преднастроенным старницам нажимаешь на кнопку для перехода к следующей странице в строке браузера урл меняется на следующую страницу при этом переход не осуществляется страница остается текущая в консоли появляется следующая ошибка Cannot set property 'showNextPrcEl' of undefined  (скрине 1). Сделал замещение в модуле CustomProcessPageV2Utilities что бы посмотреть что приходит в объекты currentState и newState в методе completeExecution оба не пустые (скрин 2). в БП процесс движется к следующему элементу если есть или если он конечный то завершается без ошибок. Подскажите  что может быть и как поправить заранее благодарен

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

Нравится

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

Дмитрий, тут Вы писали, что это ещё связано с элементом привязки процесса к объекту. Или « Cannot set property 'showNextPrcEl' of undefined» само по себе, а остановки при попытке привязки сами?

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

Добрый день,

Есть несколько преднастроенных страниц (использую в БП). Необходимо настроить валидацию определенных полей (напр. только цифры).

Пробовала настроить по аналогии с валидацией на странице раздела, но на преднастроенной странице валидация не срабатывает.

Явно, я что-то упускаю срецифическое для преднастроенных страниц? Просьб направить в правильном направлении.

Пример метода, которй я использую:

            setValidationConfig: function() {

               this.addColumnValidator("CrpINN", this.innValidator);

            },

                innValidator: function(value) {

                var invalidMessage = "";

                var isValid = true;

                var number = value || this.get("CrpINN");

                isValid = (Ext.isEmpty(number) ||

                    new RegExp("^[0-9]{8}$").test(number));

                if (!isValid) {

                    invalidMessage = this.get("Resources.Strings.InvalidINNCodeFormat");

                }

                return {

                    invalidMessage: invalidMessage

                };

            },

      

Заранее спасибо.

 

 

Нравится

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

судя по всему проблема в том, что преднастроенная страница и обычная страница раздела унаследованы от разных родителей. Следовательно в зависимости преднастроенной нужно добавить тот модуль, в котором реализован функционал валидации. Беглым поиском нашел BaseSchemaViewModel, однако не уверен на 100%.

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

Вадим Косарев,

 Спасибо! Я обязательно разберусь с зависимостями.

 

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

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

Все оказалось гораздо проще  - для преднастроенной страницы необходимо указать поле+сослаться на основную страницу. Все заработало.

 

setValidationConfig: function() {

             this.addColumnValidator("CrpPortalProductRequest1.CrpINN", this.innValidator);

            },

                innValidator: function(value) {

                

                var invalidMessage = "";

                var isValid = true;

                var number = value || this.get("CrpPortalProductRequest1.CrpINN");

            

                isValid = (Ext.isEmpty(number) ||

                    new RegExp("^[0-9]{8}$").test(number));

                if (!isValid) {

                    invalidMessage = this.get("Resources.Strings.InvalidINNCodeFormat");

                }

                return {

                    invalidMessage: invalidMessage

                };

            },

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

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

Первым элементом бизнес-процесса идет преднастроенная страница, в которой сверху отображается список значений, которые пользователь может установить для изменения, а внизу идет деталь, которая должна отображать список с выделенными записями реестра + по логике работы процесса у пользователя должна быть возможность добавить ещё дополнительные записи в этой форме, если он это выбрал не все нужные записи на этапе запуска БП.



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

Меня интересует, возможно, у кого-то был опыт решения таких задач.

То есть можно ли создать 'виртуальную' деталь, в которой данные не будут храниться ни в одной таблице, так как они нужны только для работы отдельного экземпляра процесса?

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

Нравится

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

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

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

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

Создана преднастроенная страница.

При открытии два обязательных поля

Проблема. Обязательность первого поля не работает. Система позволяет сохранить данные с незаполненным полемИзображение удалено.

В конфигурации страницы добавлен признак обязательности

Так же на атрибут повешен признак isRequired: true

Однако это не дает ровным счетом ничего

Так же, ни последующая валидация при сохранении, ни правила не помогли

Если кто сталкивался с подобным, подскажите как выходили из ситуации

Спасибо

 

Нравится

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

Попробуйте для установки обязательности поля использовать бизнес-правила. 

Подробнее почитайте о пользовательской функциональности настройки бизнес-правил и настройке бизнес-правил в схемах в конфигурации.

Алла Савельева, Пробовал бизнес-правила. Не помогло.

Спасибо

Дубов Андрей Владимирович,

Приведите пример Вашего кода

Без изучения кода карточки сложно сказать.

Как обходной вариант, на уровне БП проверять значение, если пусто, показывать сообщение и карточку повторно, пока не заполнит правильно.

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

Коллеги, здравствуйте. Возникла проблема - веб-сервис возвращает значения, однако мы не можем их увидеть на преднастроенной странице в bpmonline - в соответствующих полях отображаются 0 (если числовое) и пустота (если строковое). Другие веб-сервисы отображаются корректно, проблема только с одним конкретным. При этом, сам веб-сервис работает корректно, т.е. формирует и отправляет нужный запрос на bpmonline, а дальше мы не можем его отобразить. Используем простой бизнес-процесс, в котором элементы веб-сервис и преднастроенная страница. Будем признательны за помощь

Нравится

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

Добрый день,

Проблема может быть в типах данных. Если бы вы предоставили скриншоты вашего БП, вам бы быстрей помогли с вашей проблемой.

Добрый день,

Проблема может быть в типах данных. Если бы вы предоставили скриншоты вашего БП, вам бы быстрей помогли с вашей проблемой.

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

1. Фильтрация лукапа такое же как и в обычной карточке?

Вот такой код:

"UsrLookup2": {
                lookupListConfig: {
                    filter: function() {
                        var filters = new Terrasoft.createFilterGroup();
                        filters.name = "CategoryFilter";
                        filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
                        filters.isEnabled = true;
                        filters.addItem(Terrasoft.createColumnFilterWithParameter(
                            Terrasoft.ComparisonType.NOT_EQUAL, "МоеПоле", ""));
                        //filters.addItem(Terrasoft.createIsNotNullFilter("МоеПоле"));
                        return filters;
                    }
                }
            }

Не срабатывает - в окне выбора остаются записи которые должны были пропасть, кроме того в запросе к БД - нет такого фильтра

2. Можно ли по нажатии на кнопку прорисовать новое поле? нажимать можно неограниченное кол-во раз, создать много полей, задизейблить и потом откривать - не вариант

Нравится

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

Радчук Виталий Владимирович,

По фильтрации лукапа: строчку 

filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
замените на

filters.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;

И уберите вот эту строчку 

filters.isEnabled = true;

И ещё почитайте этот пост.

По второму вопросу смотрите статью на академии.

По фильтрации попробуйте вместо Вашего кода написать таким образом:

"UsrLookup2": {
                lookupListConfig: {
                    filter: function() {
                        var filters = new Terrasoft.createFilterGroup();
                        filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
                        filters.isEnabled = true;
                        filters.add("CategoryFilter", Terrasoft.createColumnFilterWithParameter(
                            Terrasoft.ComparisonType.NOT_EQUAL, "МоеПоле", ""));
                        //filters.addItem(Terrasoft.createIsNotNullFilter("МоеПоле"));
                        return filters;
                    }
                }
            }

 

По второму вопросу посмотрите обсуждение здесь.

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

По первому - не помогло. Еще заметил, что не могу запустить серверный код! ошибка 500, вот код: 

	var config1 = {
					serviceName: "ShowReport1CService",
					methodName: "CreateReport3",
					callback: function(response) {
						var result = response.CreateReport3Result;
					},
					data: {
					},
					scope: this,
					timeout: 1000000
				};
				ServiceHelper.callService(config1);

и на стороне сервера

[OperationContract]
		[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped,
		ResponseFormat = WebMessageFormat.Json)]
		public string CreateReport3()
		{
			return "asd";

В чем моя ошибка?

Радчук Виталий Владимирович,

По фильтрации лукапа: строчку 

filters.logicalOperation = Terrasoft.core.enums.LogicalOperatorType.AND;
замените на

filters.logicalOperation = this.Terrasoft.LogicalOperatorType.AND;

И уберите вот эту строчку 

filters.isEnabled = true;

И ещё почитайте этот пост.

По второму вопросу смотрите статью на академии.

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

Добрый день!

Есть БП с элементом преднастроенная страницы. Список параметров страницы в процессе работы изменился. Часть параметров была удалена (знаю, что так нельзя, но уже свершившийся факт). Тем не менее в процессе удаленные параметры закешировались и при настройке отображения страницы отображаются. Но при добавлении нового параметра на страницу, в списке параметров в БП новые параметры не отображаются. При создании нового элемента процесса новые параметры подтягиваются, но при попытке сохранения выдает ошибку.

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

Открываю метаданные страницы и вижу что с этим ID как раз прописан удаленный параметр данной страницы. Вопрос: как решить данную проблему и обновить список параметров для страницы?

Нравится

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

Добрый день, Дмитрий!



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

Пробовали удалить из процесса и добавить заново элемент с данной преднастроенной страницей?

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