Доброго времени суток коллеги, имею проблему уже 4 день не могу решить. У меня есть справочное поле "Продукт" при выборе просовывается деталь  в другими параметрами. Мне нужно, чтобы после выбора вида в справочном поле скажем "Первый продукт" Чтобы от проскролился вниз до прорисованного окна детали.  По Id не могу привязать, потому что там может быть любой другой продукт скажем 5-9  или вообще другое поле. Изображение удалено.

Имею следующий код: Изображение удалено.

Он работает, только я не могу запустить функцию, так чтобы она сработала после выбора справочного поля и после отрисовки деталя. Прощу помощи. Спасибо

Нравится

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

Ислам Ибрагимжанов,

Так вы и пишите функционал не для начинающих.

В карточке делаем сообщением, при получение этого сообщения запускаем скрол.

В детали делаем отправку сообщения на карточку. Сообщение можно отправить в init, initData, onAfterReRender, onGridDataLoaded.

В какой функции детали отправлять это уже вам надо разбираться, смотрите схемы BaseGridDetailV2, BaseDetailV2, GridUtilitiesV2.

Полозюков Евгений Петрович,

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

Ислам Ибрагимжанов,

Так вы и пишите функционал не для начинающих.

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

Здраствуйте. Всем доброго дня. У меня вопрос по ГЕЙМИФИКАЦИИ. Кому нужно обратиться по этому вопросу. Заранее спасибо.

Нравится

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

Добрый день, Мамиржон.

 

присылайты вопросы по дополнению и я постараюсь помочь с ответами.

Лазоренко Ирина, Добрый день. 

Шаги воспроизведения: скачиваем https://marketplace.terrasoft.ru/app/gamification-creatio, устанавливаем, раздаем доступа, заходим в мастер игр. Открывается новое окно но там только логотип продукта компании Террасофт. Мастер игр не открывается.

Сайт клиента:

Версия: bpm online 7/13, customer journey

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

Ирина, добрый день! Мы так же переписывались с Вами в личной переписке. Ожидали от Вас версии приложения, совместимой с нашей версией приложения. Очень надеемся на Вашу поддержку.

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

Доброго времени суток коллеги. Имею проблему. Есть филиалы(подразделы) и в зависимости, какой сотрудник создает контакт, в контакте в поле "Подразделения" нужно поставить "Подразделения" этого сотрудника. У меня несколько вопросов на счет этого. 

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

Уточнения  некоторых моментов:

      Во-первых) Чтобы сотруднику указать филиал где он работает. Я создал контакт, после создал сотрудника через этот контакт. Далее сделал справочное поле подразделения, и указал пару филиалов выбрал скажем "Новосибирск". 

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

Теперь вопрос: 

1) В первом случае этого достаточно чтобы у сотрудника выделялся филиал как "Новосибирск"? Если да, то   какой код прописать чтобы решить данную задачу или  схему БП.

2) Если нужно чтобы как во втором случае, прощу описать более подробно чтобы в дальнейшем не возникло проблем.

p.s(у меня версия 7.13 finance services) Прощу помочь решить логику, так как недавно начал знакомится. Спасибо.

Нравится

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

Решение делается на усмотрение разработчика проекта исходя из тз.

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

В вашем случае делайте как-нибудь в конце проекта поймете как правильно.

Решение делается на усмотрение разработчика проекта исходя из тз.

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

В вашем случае делайте как-нибудь в конце проекта поймете как правильно.

Второй подход, с одной стороны, позволяет в одном месте управлять филиалом сотрудника (в организационных ролях), но никто не мешает добавить сотрудника в несколько филиалов. Тогда возникает вопрос - что определять в таких случаях.



Если хотите выбрать Подразделения из организационных ролей, то в SysAdminUnitInRole найдёте все роли пользователя.  А затем в SysAdminUnit выберете те, у которых type=0 (за исключением All employees и All portal users). 

Полозюков Евгений Петрович,

Я поверхностно понял суть идею. Попробую спасибо.

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

Доброго времени суток коллеги. Имею справочник "Тип документа", при выборе определенного значения в логическом поле "Резидент" нужно автоматический проставляться галочка.

Изображение удалено. Попробовал через this.set("UsrTypeDoc").value, не получается. Прощу направить на верный путь. Спасибо

Нравится

7 комментариев
Лучший ответ
Если я вас правильно понял, вы хотите при изменении значения в поле "Тип документа" == "Биом паспорт"
Установить в поле Резидент = true, в противном случае false
 
Если так, то решение для вас будет такое:
 
В атрибутах:
UsrTypeDoc: {
	dataValueType: Terrasoft.DataValueType.LOOKUP,
	dependencies: [
		{
			columns: ["UsrTypeDoc"],
			methodName: "onChangeUsrTypeDoc"
		}
	]
},
 
в методах:
 
onChangeUsrTypeDoc: function() {
	var type = this.get("UsrTypeDoc");
	if (type && type.value === "уникальнынй идентификатор из БД равный значению Биом паспорта")
	{
		this.set("Резидент(указать на англ)", true);
	}
	else
	{
		this.set("Резидент(указать на англ)", false);
	}
}
 
 
Если же вы хотите при установке в поле Резидент галочки, изменить поле "Тип документа".
 
То решение будет аналогичным, но в обратном виде:
Резидент(указать на англ): {
	dataValueType: Terrasoft.DataValueType.BOOLEAN,
	dependencies: [
		{
			columns: ["Резидент(указать на англ)"],
			methodName: "onChangeResident"
		}
	]
},
 
в методах:
 
onChangeResident: function() {
	var resident = this.get("Resident");
	if (resident)
	{
		this.set("UsrTypeDoc", {value: "здесь ID из БД которое равно Биом паспорту", displayValue: "а здесь значение поля Name из БД"});
	}
	else
	{
		//очистить или установить другое значение, смотря что нужно в данном случае
	}
}

 

Если я вас правильно понял, вы хотите при изменении значения в поле "Тип документа" == "Биом паспорт"
Установить в поле Резидент = true, в противном случае false
 
Если так, то решение для вас будет такое:
 
В атрибутах:
UsrTypeDoc: {
	dataValueType: Terrasoft.DataValueType.LOOKUP,
	dependencies: [
		{
			columns: ["UsrTypeDoc"],
			methodName: "onChangeUsrTypeDoc"
		}
	]
},
 
в методах:
 
onChangeUsrTypeDoc: function() {
	var type = this.get("UsrTypeDoc");
	if (type && type.value === "уникальнынй идентификатор из БД равный значению Биом паспорта")
	{
		this.set("Резидент(указать на англ)", true);
	}
	else
	{
		this.set("Резидент(указать на англ)", false);
	}
}
 
 
Если же вы хотите при установке в поле Резидент галочки, изменить поле "Тип документа".
 
То решение будет аналогичным, но в обратном виде:
Резидент(указать на англ): {
	dataValueType: Terrasoft.DataValueType.BOOLEAN,
	dependencies: [
		{
			columns: ["Резидент(указать на англ)"],
			methodName: "onChangeResident"
		}
	]
},
 
в методах:
 
onChangeResident: function() {
	var resident = this.get("Resident");
	if (resident)
	{
		this.set("UsrTypeDoc", {value: "здесь ID из БД которое равно Биом паспорту", displayValue: "а здесь значение поля Name из БД"});
	}
	else
	{
		//очистить или установить другое значение, смотря что нужно в данном случае
	}
}

 

С точки зрения дальнейшей поддержки правильнее сделать в справочнике "тип документа" логическое поле "резидент". Затем создать БП (в 7.17 такое уже есть). Пример тут. У меня поля "Комплект" - логическое.

Литвинко Павел,

Спасибо

Трефилов Павел Сергеевич,

У меня версия 7.13

Трефилов Павел Сергеевич,Где  можно посмотреть пример?

Ислам, пример настройки такого бизнес-правила есть тут. Но в 7.13, насколько помню, оно ещё не поддерживалось. Значит, нужно кодом, как выше предложили. Либо, если мгновенное изменение в уже открытой карточке не важно, поле можно заполнять в бизнес-процессе (отдельном или встроенном в объект).

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

Доброго времени суток коллеги. Как поставить значение по умолчанию в справочнике, так чтобы можно было поменять вручную. Имею контакт "Должность" - "Разработчик".

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

Мне нужно чтобы во всех случаях стояло "Маркетолог". И менять этот параметр когда будет надобно, то есть чтобы он был не заблокирован.  Тут  описан способ, но я не понял куда нужно вписать  "Reserved" . Прощу помощи, спасибо

Нравится

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

Установить константу. И выбираешь из списка.

Значение по умолчанию

Установить константу. И выбираешь из списка.

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

Доброго времени суток коллеги. Столкнулся со следующей проблемой. При добавлении справочного поля в раздел "Обращении", возникает следующая ошибка(рис.1)Изображение удалено.

                                                             рис.1

При этом ошибка возникает, и с помощью мастера раздела и через конфигурационным(замещающим) способом. Прощу помощи, так как не смог найти ответа в интернете. Спасибо

Нравится

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

Хороший вопрос и что вы предлагаете анализировать? Приложите хотя бы код карточки.

та же самая ошибка при попытке публикации замещающего объекта "Case" (добавил логическое поле и пытаюсь публиковать но наверху красным цветом пишется этот же текст ошибки красным цветом)

Полозюков Евгений Петрович, Добрый день, код какой карточки? Выше показан скрин, возникающая с помощью мастера разделов. 

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

Полозюков Евгений Петрович пишет:

Если не получается через мастер добавьте руками в код карточки. 

 Так и там не могу добавить объект при публикации появляется ошибка "Invalid parameter binding"

Ислам Ибрагимжанов,

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

Полозюков Евгений Петрович, Какой способ решения данной проблемы? Есть ли возможность это исправить?

Ислам Ибрагимжанов,

Пишите в поддержку.

Полозюков Евгений Петрович,

Благодарю за уделенное время.

Ислам Ибрагимжанов,

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

 

Я так понимаю Вы используйте Oracle.

Такие проблемы могут быть при использовании 12-й версии ODAC.

 

Обходное решение - использовать ODAC v.11 :

1) Удалить ODAC v.12 

2) Установить ODAC v.11 x64

3) Если ошибка сохранится, установить ODAC v.11 x32, в свойствах пула приложения установить "Enable 32-bit applications" в "true", проверить кейс.

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

Есть много примеров реализации уведомление в панеле уведомлений в правой части, но все они описывают создание с ссылкой на раздел с в нем запись

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

Но как создать на C# (не в бизнес процессе) уведомление без этой ссылки, как это реализовано например у уведомлений об синхронизации с LDAP?

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

Нравится

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

Создаете в с# в таблице Remindings запись, вот и будет вам текст без ссылки. Откройте таблицу Remindings и посмотрите запись у которой дата 24.02.2021 в 17:57 и увидите какие поля должны быть заполнены чтобы получить такое уведомление.

Именно туда и ложил, потому что все уведомления там лежат только с указанием разных типов. Пробовал и такой способ   и такой . Смотрел в таблице "Reminding" как реализовано уведомление что на скрине, но без указания раздела его пользователь просто не видит, а с указанием делает гиперссылкой 

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

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

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

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

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

А исходные данные мне нужны чтобы понять куда вы смотрите и почему разницу не видите.

Данные из бд можно работая в SQL Server Management Studio  выгрузить в csv, можно выделить и скопировать в excel.

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

И приложите свой c# код создания уведомления и файл с двумя записями из Reminding.

От

Полозюков Евгений Петрович,

Ответ простой - в 7.13 нельзя создать уведомление без ссылки, потому это поправили в более поздних версиях

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

Есть анонимный веб сервис(разработанный мной). Спустя примерно пол часа после последнего обращения к нему новый запрос обрабатывается 30+ секунд а последующие запросы обрабатываются менее одной секунды. 

Такое ощущение, что веб сервис переходит в спящий режим 

 

Подскажите пожалуйста, что и как настроить, чтобы веб сервисы реагировали быстро на каждый запрос

Нравится

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

Да, приложение при простое засыпает.

В iis в ApplicationPools есть пул вашего приложения в AdvancedSettings есть настройка Idle Time-out(minutes) в ней укажите 0 и приложение не будет засыпать.

Да, приложение при простое засыпает.

В iis в ApplicationPools есть пул вашего приложения в AdvancedSettings есть настройка Idle Time-out(minutes) в ней укажите 0 и приложение не будет засыпать.

Полозюков Евгений Петрович, Благодарю

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

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

 

Логика Terrasoft.controls.mixins.Bindable.callModelMethod вызывает привязанный метод ExperimentVisibility к элементу страницы из раздела diff в параметре bindTo

 

{
  "operation": "merge",
  "name": "ConsumptionDetailcc99e44c",
  "values": {
     "visible": {
        "bindTo": "ExperimentVisibility"
     }
  }
},

Метод ExperimentVisibility проверяет установлено ли значение в схеме объекта страницы. На момент когда Bindable.callModelMethod вызывается, данные схемы объекта страницы еще не загружены логикой. Значение которое проверяется методом = undefined. 

Каким способом возможно мне проверить значение из схемы?

 

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

Нравится

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

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

А когда нужно изменить видимость, в своей логике вызывать функцию, которая меняет значение атрибута. Пример можно увидеть в схеме SocialMessageHistoryItemPageV2, где:

"CommentsVisible": {
	"dataValueType": this.Terrasoft.DataValueType.BOOLEAN,
	"type": this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
	"value": false
},
...
/**
 * Toggle comments block visibility and load first portion of comments if it is visible and empty.
 * @protected
 */
toggleCommentsVisibility: function() {
	if (this.get("CommentCount") < 1) {
		return;
	}
	var newVisibilityState = !this.get("CommentsVisible");
	this.set("CommentsVisible", newVisibilityState);
	if (newVisibilityState && this.get("ShownCommentMessagesCount") === 0) {
		this.onLoadNextComment();
	}
},
...
{
	"operation": "insert",
	"name": "ESNCommentsContainer",
	"parentName": "HistoryV2MessageFooterContainer",
	"propertyName": "items",
	"values": {
		"itemType": this.Terrasoft.ViewItemType.CONTAINER,
		"wrapClass": ["esn-comments-container"],
		"visible": {"bindTo": "CommentsVisible"},
		"items": []
	},
	"index": 1
},

 

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

Я сделал булев метод в methods:{ }, тот вычитывает атрибут entity и возвращает результат - равенство текста из свойства объекта моей подстроке.

Два метода: ExperimentVisible, ExperimentNonVisible, - проверяют результат что отдает первый метод и также возвращают булев результат.

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

 

Две кнопки были помещены в верхний контейнер страницы, там где есть зеленая базовая кнопка "Сохранить".

 

Во время загрузки страницы получаю всегда разный результат моих методов. Так как кнопки расположены в верхнем контейнере, привязанный к видимости кнопки метод проверяется прежде всего. Иногда в схему, доступную через this , Креатио загружает атрибут entity для проверки, иногда еще нет. Зафиксировал что иногда он еще и кэширует состояние схемы (тогда в this присутствуют данные не корректные а соответствуют схеме прежде открытой в браузере страницы).

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

 

Я пытался сделать более просто  - вместо чтения атрибута из this в моем методе написал загрузку объекта через EntitySchemaQuery и проверял мое свойство. Данные получались, но не были доступны через this страницы, они остались в scope запроса ESQ.

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

 

Нравится

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

А у Вас дело случайно не в том же, что и в недавней теме? Там в одних случаях работает логика для совмещённого режима, в других — для отдельной карточки. Если не в этом, то по изложению не очень понятно, что происходит, нужно производить в браузере отладку.

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