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

Нравится

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

Для начала нужно в браузере пунктом меню «Inspect» открыть исходники нужного места в системе и выяснить, как называется схема страницы, которую Вы хотите доработать. Затем вносить изменения в её коде. Поскольку это не обычная карточка раздела, заполнение должно будет делаться программно.

Более точно можно сказать, если будет ясно, что именно куда именно добавить: в вышеупомянутый Вами LocalDuplicateSearchPageV2, в DuplicatesPageV2 или же ещё куда-то.

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

Добрый день!

На данный момент в базовой версии bpm'online  выполнять настройку колонок можно только для массового поиска дублей



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

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

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

Подскажите, что я делаю не так при работе с миксинами? Метод из миксина вызывается и выполняется, но в него не передаются параметры из схемы страницы.

Пробовал присваивать переменным значения CurrentContact и Owner - значения снова пустые. Пробовал прописывать this.get("CurrentContact") вместо "CurrentContact" - все равно пусто. Методы не из миксина работают.

Благодарен заранее за любую помощь!

 

onEntityInitialized: function() {
 
//присваиваем значение CurrentContact. Owner, который используется ниже, присваивается еще раньше
	this.set("CurrentContact", {
		value: this.get("Id"),
		displayValue: this.get("Name")
 
	});
 
//запускаем метод из миксина, он запускается и отрабатывает, но CurrentContact там пустой
	this.mixins.CustomCallMixin.initCallExtendedMenuButtonCollections(["CurrentContact", "Owner"], this.close);
 
//остальные методы отрабатывают нормально
	this.setJobTitle();
	this.fillEmailExtendedMenuButtonCollections(["CurrentContact", "Owner"]);
	this.fillCallExtendedMenuButtonCollections(["CurrentContact", "Owner"]);
	this.fillLinkedEntitiesMenuButtonCollections(["CurrentContact"]);
	this.callParent(arguments);
 
}

 

Нравится

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

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

define("AbCarInsurance1Section", ["AbEwaModelsHandlerMixin"], 
function() {
	return {
		entitySchemaName: "AbCarInsurance",
		mixins: {
			AbEwaModelsHandlerMixin: "Terrasoft.AbEwaModelsHandlerMixin",
		},
		attributes: {},
		messages: {},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			onEntityInitialized: function () {
 
				this.onSetContractInCard(contract);
			}			
 
		}
	};
});

где this.onSetContractInCard(contract) - мтод миксина

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

define("AbCarInsurance1Section", ["AbEwaModelsHandlerMixin"], 
function() {
	return {
		entitySchemaName: "AbCarInsurance",
		mixins: {
			AbEwaModelsHandlerMixin: "Terrasoft.AbEwaModelsHandlerMixin",
		},
		attributes: {},
		messages: {},
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/,
		methods: {
			onEntityInitialized: function () {
 
				this.onSetContractInCard(contract);
			}			
 
		}
	};
});

где this.onSetContractInCard(contract) - мтод миксина

Нигрескул Алексей,

спасибо за ответ

я в зависимости добавлял, просто не указывал этот кусок кода

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

Иногда возникает ошибка в элементах добавления/изменения данных, например

System.Data.SqlClient.SqlException (0x80131904): Transaction (Process ID 66) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction. в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) в System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) в System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption) в System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest) в System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry) в System.Data.SqlClient.SqlCommand.ExecuteNonQuery() в Terrasoft.Core.DB.DBExecutor.FailoverExecute[TResult](DbCommand command, Func`1 func) в Terrasoft.Core.DB.DBExecutor.<>c__DisplayClass110_0.<Execute>b__0(DbCommand command) в Terrasoft.Core.DB.DBExecutor.LoggingWrap[TResult](String sqlText, Func`2 queryExecutionAction) в Terrasoft.Core.DB.DBSecurityEngine.ExecuteSetEntitySchemaRecordOperationRightLevel(Insert recordRightsInsert, StoredProcedure setRecordPositionProcedure) в Terrasoft.Core.DB.DBSecurityEngine.SetEntitySchemaRecordOperationRightLevel(Guid adminUnitId, String schemaName, Guid administratedRecordId, EntitySchemaRecordRightOperation operation, EntitySchemaRecordRightLevel rightLevel, Boolean useDenyRecordRights, Boolean ignoreGrantRecordRight) в Terrasoft.Core.Process.Configuration.ChangeAdminRightsUserTask.AddRecordRight(DBSecurityEngine dbSecurityEngine, Entity entity, Dictionary`2 recordRight) в Terrasoft.Core.Process.Configuration.ChangeAdminRightsUserTask.InternalExecute(ProcessExecutingContext context) в Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context) ClientConnectionId:bf656cfe-f52c-45b5-a37b-f1f5295cf440 Error Number: 1205, State: 51, Class: 13

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

Можно ли продолжить БП с этого места:

1. Вручную?

2. Автоматически перезапустить упавший элемент с этого места?

Нравится

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

Посмотрите обсуждение по ручному перезапуску элемента процесса в этой теме.

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

Посмотрите обсуждение по ручному перезапуску элемента процесса в этой теме.

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

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

Добрый день !

Можно ли в данном дизайнере из раздела вывести в табличную часть  информацию из каждого документа ? Например : 

Документ с типом "КП", имеющий в себе поле " Сумма без НДС", а также имеющая справочное поле Запрос(объект) в котором есть поле Проект (объект). Также интересуют некоторые поля Проекта (Мат. компания,  Наименование проекта). 

Добавила вывод печатной формы в раздел, но она не активна (буквы серым шрифтом). Не могу понять в чём проблема. Есть ли такая возможность ?! Что я делаю не так..

Нравится

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

LilyG,

1. Консоль браузера обычно вызывается нажатием на клавишу F12.

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

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

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

5. Дизайнер отчетов и дизайнер печатных форм в данном случае одно и тоже.

Доброе утро.

Посмотрите, есть ли какие-то ошибки в консоли браузера. Возможно, там будет указано причину ошибки.

Когда я сталкиваюсь с проблемами в печатных формах Word, то пытаюсь определить проблему методом исключения, то есть убираю или добавляю последовательно выводимые значения в отчет.

А серым отображается отчет и в разделе, и в карточке?

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

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

Вот методом "тыка" как раз таки выяснилось, что просто поля выводятся  а в табличную часть печатной формы те же самые значения не попадают. Может, я ошибаюсь, и в табличную часть печатной формы должна попадать информация из таблицы в CRM ?   Допустим, из детали Запросы в карточке проекта. 

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

Я ошибаюсь или дизайнер отчетов 

https://academy.terrasoft.ru/documents/technic-sdk/7-14/dizayner-otchet…;  это нечто другое ? Возможно, мне стоит воспользоваться именно этим дизайнером а не дизайнером печатных форм ???

LilyG,

1. Консоль браузера обычно вызывается нажатием на клавишу F12.

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

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

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

5. Дизайнер отчетов и дизайнер печатных форм в данном случае одно и тоже.

Да, это два разных инструмента. Тот, что Вы указали, может генерировать отчёт, а затем его сохранить в PDF. Он более гибкий, чем Word, но и более сложный в настройке, иногда нужно писать скрипты (самая правая кнопка в окне дизайнера).

Например, стандартный отчёт «Знаменательные события контакта» очень похож на то, что Вы описали выше.

Зверев Александр,

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

спасибо ! Попробую воспользоваться BPMonlineReportDesigner

Зверев Александр,

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

Разве что смотреть в дизайнере существующие отчёты и делать аналогично.

Зверев Александр,

не подскажете какие и где их взять ? 

Например,  «Знаменательные события контакта» в разделе контактов, о которых я писал выше.

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

Добрый день

Есть у меня проект что я дорабатываю, на сегодня он работает на конфигурации 7.14.2. Препрод, 7.13.4 - Девелоп стенд, 7.14.2 - Продакшен. И только сегодня заметил что в консоли показывается что Инициализация WebSocket-ов произошла а подаешь команду для проверки Terrasoft.ServerChannel.ping() , вылетает на версии платформы 7.14.2 ошибка 

 

Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Terrasoft.Messaging.Common.SimpleMessage' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.

To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.

Path '', line 1, position 1.

   at Terrasoft.Common.Json.Json.Deserialize[T](String value, Func`2 func)

   at Terrasoft.Messaging.MicrosoftWSService.WebSocketHandlerExt.OnMessage(String message)

 

Хотя на 7.13.4 - Девелоперском стенде ВебСокеты работают. Настройки сокетов везде одинаковые. Везде настройки следующие 

- коммент убран

 

- коммент убран

Еще раз повторюсь на 7.13.4 все работает. 

Прошу помощи и подсказки что может быть не так и почему на 7.14.2 не работает. Или нужно до 7.14.3 обновится так как это был баг 7.14.2. Я как только не дебажил я понять не могу почему Пинг, Понг не проходит. А раз это не проходит ВебСокеты так же не работают корректно.

Нравится

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

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

Добрый вечер! Так же столкнулся с данной проблемой, в ТП ответили, что на конфигурации 7.14.2 не работает именно данная функция Terrasoft.ServerChannel.ping(), веб-сокеты работают, что бы проверить работоспособность веб-сокетов, создайте БП со стартовым таймером, если отработает, значит все ок. В ТП сказали, что в следующих версиях поправят функцию "Terrasoft.ServerChannel.ping()". 

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

Добрый день ! 

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

Вопрос: можно ли настроить всем (или определенным) пользователям колонки, которые будут высвечиваться ? 

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

 

Нравится

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

Добрый день!

Эти колонки настраиваются также, как и другие колонки в реестре.

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

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

Добрый день!

Эти колонки настраиваются также, как и другие колонки в реестре.

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

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

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

Спасибо большое, потеряла эту кнопку ! 

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

Добрый день,



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



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



Исчезает после перезагрузки странице.

Нравится

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

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

Судя по всему у товарища редактируемый реестр (грид) и нужно вызывать чтото типа 

this.reloadGridData();

после возвращения в реестр

Вам нужно, например через реализацию сообщений вызывать перезагрузку содержимого страницы в нужный момент времени, например через this.reloadEntity();

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

Судя по всему у товарища редактируемый реестр (грид) и нужно вызывать чтото типа 

this.reloadGridData();

после возвращения в реестр

Григорий Чех,

Спасибо всем.



Дело в том что я не мог понят в каком методе добавить этот this.reloadGridData();

разобрался, надо добавить в Метод onRender.

onRender: function() {

        this.reloadGridData();

},

в замещающею странице редактирование. 

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

Как можно создать объект с именем удаленного ранее (при этом удалена таблица из базы данных)? Сейчас при публикации такого объекта Oracle ругается что таблица не найдена или ее нет, но ее и правда нет же, ORM по идее должно же ее создать?

Вот ошибка:

ORA-00942: table or view does not exist

Нравится

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

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

Сначала убедитесь, точно ли на ту таблицу ругается, может, совсем и на другую. Если установлено on site, можно отловить запросы в базу.  И посмотрите на полный стек сообщения при ошибке.

Зверев Александр,

А где все это удалить? Как можно узнать в каких таблицах это прописано?

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

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

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

Если в БП из темы https://community.terrasoft.ru/articles/perebor-kollekcii-elementa-bp-c…  заменить "Что то делаем" на элемент БП "Выполнить задачу",

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

invoices об'null'яется.

Этого не происходит, если invoices объявить как статическую.

Расскажите, плиз, физический смысл и природу сего явления.

Нравится

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

Борис, природа явления описана тут:

scr_process_creation_designer_process_settings.png

[Сериализировать в БД] — установите признак, чтобы значения параметров выполняемого процесса были сохранены в базе данных. Сериализация необходима для продолжительных процессов. Например, если в процессе создана новая активность, которая должна быть завершена только через некоторое время, все параметры процесса будут сохранены и процесс сможет быть возобновлен в любое время, даже после выхода из системы.

Снятие признака [Сериализировать в БД] обозначает, что параметры данного процесса будут сохранены в памяти без сохранения в базе данных.

Важно

Если в процесс добавлены элементы, для которых установлено свойство [Сериализировать в БД], то это свойство будет установлено автоматически для всего процесса.

Зверев Александр,

invoices объявлена в методах БП с типом IEnumerator<ICompositeObject>, галочка "Сериализовать в БД" в БП установлена

Тут пишут, что коллекция не сериализируется.

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

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

Извините, если вопрос слишком тривиальный. 

Задача.

Есть статусы сделки как список:

- В работе

- Реализованы 

- Не реализованы

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

Пока не нашли, как изменять значение в поле при  исполнении бизнес-процесса.

Понимаю, что задачу можно решить и через организацию  "один ко многим" в справочнике.

Однако, предвижу, что это понадобится. 

Спасибо.

 

 

 

 

 

Нравится

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

В БП все очень просто смотрите описание в академии https://academy.terrasoft.ru/documents/technic-bpms/7-14/element-processa-izmenit-dannye также советую поискать видео по работе с БП

В БП все очень просто смотрите описание в академии https://academy.terrasoft.ru/documents/technic-bpms/7-14/element-processa-izmenit-dannye также советую поискать видео по работе с БП

Спасибо

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