Добрый день.

Хотел бы узнать, почему я не могу заместить схему ConditionalSequenceFlowPropertiesPage.



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



p.s. Другие схемы из пакета CrtProcessDesigner для замещения достпуны

p.p.s Проверил на нескольких средах

 

Нравится

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

Добрый день, Александр!

 

Проверили на базовой версии сайта:

1. Создали пакет, добавили зависимости.

2. Выбрали Replacing View Model.

3. В Parent object есть возможность выбрать схему ConditionalSequenceFlowPropertiesPage:

 

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

 

 

 



Kalymbet Anastasia,

Добрый день!

Мне нужно заместить не CampaignConditionalSequenceFlowPropertiesPage, которую вы выделили, а ConditionalSequenceFlowPropertiesPage, находящуюся в пакете CrtProcessDesigner. 

Зависимость добавлена, другие схемы из пакета можно заместить, например SequenceFlowPropertiesPage, однако нужная мне недоступна.

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

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

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

Активність використовується як обов'язковий крок перед переходом на наступну стадію. В історії закриття активностей фіксується не фактичний час закриття, а планова тривалість активності. 

Прикрепленные файлы

Нравится

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

Добрий день, Ігорю!

 

Колонка "Завершення" відображає час за наступною формулою:

Дата старту ("Початок") + Планова тривалість = "Завершення"

 

Для точнішого відображення часу завершення ви можете налаштувати початок та планову тривалість в "кейсах" розділу, а також виставити точний час вручну на сторінці запису активності.

 

Гарного дня!

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

Добрый день,

Возникла проблема со связью между разделами Продажи и Документооборот, были созданы бизнес процессы и необходимые справочные поля, однако все безуспешно. Связь данных разделов должна быть схожей со связью между разделами Лиды и Продажи, логика работы бизнес процессов практически одинаковая, различие в том что в случае связи между разделами Лиды - Продажа через созданный лид создается запись продажи, а в случае связи между разделами Продажа - Документооборот через созданную продажу должен создаваться договор. Подскажите пожалуйста как можно решить данную проблему, может у кого то была схожая ситуация. Заранее благодарю.

Нравится

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

Добрый день!



Подскажите с каким результатом завершается процесс создания связи Продажи и Документооборота.

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

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

Добрый день.

Возникла проблема:

Из одной CRM системы, при определённых условиях, должен происходить POST-запрос на веб-сервис, находящийся на другой CRM системе.

Запрос на авторизацию и получение BPMCSRF-куки происходит успешно

Сам запрос выполняется и результат приходит

Однако

На стороне той CRM, где располагается веб-сервис, не выполняются сохранения записей через esq или прямой доступ. 

На уровне логов приложения после каждого такого запроса в BusinessProcess.log записывается следующая ошибка:

ERROR DB\ad Process HandleExecutionError - Error while executing element Name = CheckCanManageLookupsScriptTask UId = 68ff5026-4dc9-4027-aa1f-3592709a9d82 SchemaElementUId = bdca0c6b-eb97-4d14-83df-aa53b214c463

System.Security.SecurityException: Current user does not have sufficient permissions to run "CanManageLookups"

   at Terrasoft.Core.DB.DBSecurityEngine.CheckCanExecuteOperation(String code)

   at Terrasoft.Configuration.BaseLookup_BaseEventsProcess`1.CheckCanManageLookupsScriptTaskExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.ExecuteItem(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)




Но эта проблема возникает только при запросе из CRM-системы

Если кидать идентичный запрос через Postman, то всё работает корректно и добавление записей в бд системы происходит успешно



Проверял на системе, где располагается веб-сервис, на который делается запрос, наличие прав на операции, а в частности на CanManageLookups и оно там есть (пользователь LicenseRequester). Прилагаю скринИзображение удалено.



Других ошибок в логах приложения не пишется.

В чём может быть проблема, почему могут быть проблемы при запросе из одной CRM на другую

Также стоит отметить что это происходит не со всех CRM-систем, а только с конкретных.

Есть CRM-системы, с которых запросы летят и всё отрабатывает корректно.



В чём могут быть возможные проблемы? Может в UserConnection?

Буду очень благодарен если кто-то выразит свои мысли насчёт такой проблемы

 

Нравится

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

Добрый день. 

 

1. Нужно сделать такую фичу: Есть текстовое поле в объекте, в нем будет записан номер телефона. Нужно добавить возможность при клике на это поле чтобы к номеру который записан, поставился префикс(сам префикс нужно подставить из значения справочника, которое указано в этой же записи в объекте и чтобы пошел вызов уже на телефонию с номером и префиком. То есть нужно сделать поле типа https://prnt.sc/674k8tmq1urH и возможность склеивать с префиксом. Какие стили нужно добавить на поле с номером телефона, чтобы в нем появилась возможность звонка? И какой метод, чтобы склеивать номер после клика на звонок? Есть пример документации или реализации?

 

2. Такая же задача, только для миникарточки клиента https://prnt.sc/sjPhFjMk58Jm Какой метод и схему нужно переопределить, чтобы добавить в миникарточку возможность подставить в номер префикс и отправить запрос на звонок уже с подставленным префиксом к номеру.



Это все относиться к телефонии Asterisk. 

Спасибо!

Нравится

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

Добрый день!

Для первой задачи в diff (в схеме ContactPageV2) для вашего поля нужно добавить следующее параметры:

"values": {
					"showValueAsLink": true,
					"linkclick": {
						"bindTo": "onCallClickWithPrefix"
					},
					"href": {
        				"bindTo": "UsrTestReq",
        				"bindConfig": {"converter": "getUsrTestReqLink"}
					},

При этом в методах нужно добавить:

getUsrTestReqLink: function(value) {
				return {
					url: value,
					caption: value
				};
			},
			onCallClickWithPrefix: function(number) {
				/*
					Getting the needed prefix;
					var prefix = ---
				*/
				number = 'prefix' + number;
				return this.callContact(number, this.$Id, this.$Account);
			}

Для второй задачи рекомендую обратить внимание на уже имеющуюся кнопку звонка в схеме ContactMiniPage пакета CrtUIv2:

{
				"operation": "insert",
				"name": "ContactButtonsContainer",
				"parentName": "HeaderContainer",
				"propertyName": "items",
				"values": {
					"visible": {"bindTo": "isViewMode"},
					"wrapClass": ["header-buttons"],
					"itemType": Terrasoft.ViewItemType.CONTAINER,
					"items": [
						{
							"name": "CurrentContactCallButton",
							"itemType": Terrasoft.ViewItemType.BUTTON,
							"imageConfig": miniPageResources.resources.localizableImages.CallButtonImage,
							"extendedMenu": {
								"Name": "Call",
								"PropertyName": "CurrentContact",
								"Click": {"bindTo": "prepareCallButtonMenu"}
							}
						},

При нажатии на номер срабатывает метод extendedCallMenuItemClick схемы CallExtendedMenu, который и вызывает событие звонка через this.sandbox.publish("CallCustomer"

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

Добрый день!

Для первой задачи в diff (в схеме ContactPageV2) для вашего поля нужно добавить следующее параметры:

"values": {
					"showValueAsLink": true,
					"linkclick": {
						"bindTo": "onCallClickWithPrefix"
					},
					"href": {
        				"bindTo": "UsrTestReq",
        				"bindConfig": {"converter": "getUsrTestReqLink"}
					},

При этом в методах нужно добавить:

getUsrTestReqLink: function(value) {
				return {
					url: value,
					caption: value
				};
			},
			onCallClickWithPrefix: function(number) {
				/*
					Getting the needed prefix;
					var prefix = ---
				*/
				number = 'prefix' + number;
				return this.callContact(number, this.$Id, this.$Account);
			}

Для второй задачи рекомендую обратить внимание на уже имеющуюся кнопку звонка в схеме ContactMiniPage пакета CrtUIv2:

{
				"operation": "insert",
				"name": "ContactButtonsContainer",
				"parentName": "HeaderContainer",
				"propertyName": "items",
				"values": {
					"visible": {"bindTo": "isViewMode"},
					"wrapClass": ["header-buttons"],
					"itemType": Terrasoft.ViewItemType.CONTAINER,
					"items": [
						{
							"name": "CurrentContactCallButton",
							"itemType": Terrasoft.ViewItemType.BUTTON,
							"imageConfig": miniPageResources.resources.localizableImages.CallButtonImage,
							"extendedMenu": {
								"Name": "Call",
								"PropertyName": "CurrentContact",
								"Click": {"bindTo": "prepareCallButtonMenu"}
							}
						},

При нажатии на номер срабатывает метод extendedCallMenuItemClick схемы CallExtendedMenu, который и вызывает событие звонка через this.sandbox.publish("CallCustomer"

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

добрый день.

спасибо за помощь. мы делаем изменения на странице заказов Order и там нету метода 

this.callContact

можете подсказать как получить его в заказе или другой способ?

спасибо!

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

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

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

стадии правильно выбрана 

Нравится

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

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



Напишите, пожалуйста, нам на почту (support@creatio.com) с детальным описанием данной проблемы и с предоставлением скриншотов, мы постараемся помочь вам как можно скорее. 



С Уважением, 

Орхан

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

Есть необходимость поменять значение в HeaderCaption в карточке записи (FormPage) в Freedom UI.

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

Если что я имею ввиду именно Page Title

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

Пробовал в коде страницы, через операцию merge в секции viewConfigDiff, в таком виде

{

     "operation": "merge",

    "name": "PageHeader",

    "values": {

          "caption": "#ResourceString(NumberAttribute_2cnaww2)#",

    }

}



Но не помогло

Также в секции handlers в методе для запроса crt.HandleViewModelInitRequest пытался указать явное значение для локализованной строки и указать эту строку в свойстве caption, но не помогало

Может есть какой-то правильный способ указания HeaderCaption на странице, где именно нужно указать значения поле (не name). Поле является числом. Может кто знает и может помочь?

Нравится

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

Добрый день Павел,

 

Самый простой вариант это изменить колонку, которая является Displayed value в настройках объекта, по которому отображается страница:

Тогда в page title автоматически будет отображаться значение из этой колонки (динамически даже после изменения значения на странице, оно будет подтягиваться в заголовок). Но тут есть один ньюанс: в данном свойстве можно выбрать колонки только текстового типа, числовой тип тут указать нельзя. Поэтому можно поробовать такой подход:

 

1) Создать текстовую колонку, которую выбрать в свойстве displayed value

2) На странице задать логику, что при изменении значения в числовой колонке будет еще записывать это же значение в текстовую колонку с п.1 

3) Вывести на страницу текстовую колонку с п.1, но скрыть ее.

 

В теории так тоже будет работать, но нужно проверить.

Спасибо, как раз такое сделал и помогло. Создал новую колонку, придал ей строковый тип, перенёс данные из числовой колонки в строковую с конвертацией, числовую удалил. Строковую новую колонку назначил displayValue и всё заработало как нужно

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

Добрый день.

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

Кнопка отображается но не выполняет те действия что прописаны для нее.

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

 

onTakeToWorkButtonClick: function () {

this.set("Srv_ApplExecutor",Terrasoft.SysValue.CURRENT_USER.displayValue);}

 

Но если на кнопку повесить скрипт открытия диалогового окна, 

onTakeToWorkButtonClick: function () {

                this.showInformationDialog("!!!!");}

то все работает, окно появляется. 

 

Не могу понять, почему данные не загружаются в поле страницы, возможно есть какме-то идеи?

Спасибо.

 

Нравится

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

Добрый день!

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

В этом случае необходимо использовать другой способ обновления записи, например через UpdateQuery:

if (activeRow) {
                    this.showInformationDialog("!!!!");
					var update = Ext.create("Terrasoft.UpdateQuery", { rootSchemaName: "Account" });
					update.filters.add("IdFilter", 
                    	update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", activeRow));
                	update.setParameterValue("UsrTestString", "Some test", Terrasoft.DataValueType.TEXT);
                	update.execute();
                }

 

Добавил в скрипт ActiweRow, но не помогло

methods: {

            

            onTakeToWorkButtonClick: function () {

                

                var activeRow = this.get("ActiveRow");

                    if (activeRow) {

                    return    this.set("Srv_ApplExecutor",Terrasoft.SysValue.CURRENT_USER.displayValue);

                    }    

               }

        },

Добрый день!

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

В этом случае необходимо использовать другой способ обновления записи, например через UpdateQuery:

if (activeRow) {
                    this.showInformationDialog("!!!!");
					var update = Ext.create("Terrasoft.UpdateQuery", { rootSchemaName: "Account" });
					update.filters.add("IdFilter", 
                    	update.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", activeRow));
                	update.setParameterValue("UsrTestString", "Some test", Terrasoft.DataValueType.TEXT);
                	update.execute();
                }

 

Дима Вовченко,

Добрый день. 

Спасибо за совет.  Попробую реализовать. 

Но так как я с не давних пор начал работать с системой, есть несколько уточняющих вопросов:

1. 

update.filters.add("IdFilter", 

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

 

2.

сpdate.createColumnFilterWithParameter

(Terrasoft.ComparisonType.EQUAL, "Id", activeRow));

Id - аналогичный вопрос как в п.1. 

 

Спасибо.

 

 

Разобрался, работает. 

IdFilter не трогал, под остальные подставил свои данные и норм. 

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

Добавил this.reloadEntity(), не помогло

Есть же еще варианты по обновлению страницы после нажатия на кнопку?

 

 

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

Привет. Пытались установить приложение Field surveys for Creatio, на версию Creatio 8.0.3.2908, не установилось.

При этом на тестовой среде, где версия 7.18.5.1500 приложение установлено и работает.

Во вложении лог. Можете подсказать, что нужно сделать, до установить, чтобы приложение установилось на 8ю версию?

 

Прикрепленные файлы

Нравится

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

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



Загрузили обновленную версию на маркетплейс.

Попробуйте установить приложение еще раз.

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

Увидел деталь с несколькими страницами, как это возможно реализовать? (при редактировании детали)

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

Нравится

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

Добрый день!

 

В данном случае следует настроить типизацию.

На данный момент, в системе не предусмотрена полноценная типизация деталей, однако, существует одна хитрость.

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



После создания раздела его необходимо скрыть (просто убрав его со всех рабочих мест).



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

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