Есть у меня html-поле, "contentType": Terrasoft.ContentType.RICH_TEXT - всё стандартно.

Поле у меня ReadOnly, т.е. "enabled": false

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

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

В идеале нужно - чтобы размер совпадал с содержанием.

Нравится

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

Стилями, скорее всего, просто так не справится, rowSpan также неприменим к RICH_TEXT. Попробуйте сделать это при помощи JS.

Например, на oninput тега textarea повесить обработичк размера окна.

На странице есть div с классом html-editor, измення стиль этого div (style), можно менять высоту (height), например в том же обработчике oninput. С этим и можно работать, т.к. стандартных методов изменения высоты поля для RICH_TEXT не нашел. Да, не совсем изящно, зато работает smiley

 

Сделал в итоге на jQuery, там оказывается теперь есть функция height(), которая определяет размер элемента в пикселях.

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

Добрый день! При попытке установить пакет через WorkspaceConsole, выдает такую ошибку, может кто подскажет что она значит? (BPMonline7120Sales - название бд MSSQL)

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

Нравится

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

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

Не могли бы Вы предоставить строку подключения (app.config в workspace console) и логи консоли ?

Maksym Naumovets,

connectionString="Data Source=DULSKI\SQLEXPRESS; Initial Catalog=BPMonline7120Sales; Persist Security Info=True; MultipleActiveResultSets=True; User ID=BPM712Dulski; Password=BPM712Dulski; Pooling = true; Max Pool Size = 100; Async = true; Connection Timeout=500"

лог нет, не успел создаться наверно

Дульский Александр, пожалуйста, также укажите содержимое секции <db> в конфиге WorkspaceConsole.

Например  для MSSQL оно обычно такое: <db>

      <general connectionStringName="db" securityEngineType="Terrasoft.DB.MSSql.MSSqlSecurityEngine, Terrasoft.DB.MSSql" executorType="Terrasoft.DB.MSSql.MSSqlExecutor, Terrasoft.DB.MSSql" engineType="Terrasoft.DB.MSSql.MSSqlEngine, Terrasoft.DB.MSSql" metaEngineType="Terrasoft.DB.MSSql.MSSqlMetaEngine, Terrasoft.DB.MSSql" metaScriptType="Terrasoft.DB.MSSql.MSSqlMetaScript, Terrasoft.DB.MSSql" typeConverterType="Terrasoft.DB.MSSql.MSSqlTypeConverter, Terrasoft.DB.MSSql" binaryPackageSize="1048576" currentSchemaName="dbo" />

    </db>.

Maksym Naumovets,

<db>

<general connectionStringName="db" securityEngineType="Terrasoft.DB.MSSql.MSSqlSecurityEngine, Terrasoft.DB.MSSql" executorType="Terrasoft.DB.MSSql.MSSqlExecutor, Terrasoft.DB.MSSql" engineType="Terrasoft.DB.MSSql.MSSqlEngine, Terrasoft.DB.MSSql" metaEngineType="Terrasoft.DB.MSSql.MSSqlMetaEngine, Terrasoft.DB.MSSql" metaScriptType="Terrasoft.DB.MSSql.MSSqlMetaScript, Terrasoft.DB.MSSql" typeConverterType="Terrasoft.DB.MSSql.MSSqlTypeConverter, Terrasoft.DB.MSSql" binaryPackageSize="1048576" currentSchemaName="BPMonline7120Sales" />

</db>

<connectionStrings>

<add name="db" connectionString="Data Source=DULSKI\SQLEXPRESS; Initial Catalog=BPMonline7120Sales; Persist Security Info=True; MultipleActiveResultSets=True; User ID=BPM712Dulski; Password=BPM712Dulski; Pooling = true; Max Pool Size = 100; Async = true; Connection Timeout=500" />

</connectionStrings>

Александр, здравствуйте.

Скорее всего, ошибка вызвана тем, что Вы используете

неправильный параметр currentSchemaName="BPMonline7120Sales".

Для MSSQL он должен быть: currentSchemaName="dbo".

Maksym Naumovets,

Спасибо, проблема была в этом, т.к. привык настраивать Oracle, и по привычке dbo заменяется, а так же нужно было добавить в строку установки пакета параметр webApplicationPath, хотя в Oracle, этого параметра не требовало

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

Добрый день!

Хотим установить облачное решение. Вопросы по ограничениям.

1) как инициируется перезапуск iis и redis в этом случае? для on-site версии приходилось это делать часто

2) можем ли мы из консольного приложения/сервиса обращаться к облаку и запускать процессы/выполнять crud операции без ограничений?

3) заказчик хочет хранить файлы у себя на shared папке/ftp. можно будет это организовать с облачным решением? например, там где эта папка развернуть веб сервис, вызывать из bpmonline в облаке сервис, который вернет нам stream документа и вложить, например, в письмо. или при добавлении нового документа в систему опять вызывать сервис, складывать документ в shared папку и записать ссылку на документ.

 

Нравится

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

Добрый день!

 

1) Вы можете связатся с технической поддержкой Terrasoft для разовой очистки iis и redis или попросить установить задачу и они будут перезапускаться автоматически с указанным вами интервалом. 

2) Да, запуск процессов возможен, вы можете создать свой сервис и запускать процессы через process engine service. Выполнять  crud операции вы можете через настройки интеграции с API.

3) Рекомендую вам направить это вопрос на support@terrasoft.ru для предоставления более детальной информации.

С уважением, Ангелина

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

 Добрый день!



Возникла необходимость указания значений кастомных колонок при создании активности элементом "Выполнить задачу". Нужно, чтобы сразу при открытии пользователю карточки этой активности там уже были нужные значения в пользовательских колонках (На основе их будет приниматься решение о состоянии активности). Как я понял, пользовательскими средствами это сделать нельзя, нужно использовать мини-сценарий "После сохранения активности" в расширенном режиме. После этого я столкнулся с проблемой, которую описывает Михаил в посте https://community.terrasoft.ru/questions/vypolnit-zadacu-i-dobavit-dann…;то есть ограниченность контекста выполнения этого скрипта. На данный момент у меня не получается заставить работать даже простой



 

var userConnection = Get<UserConnection>("UserConnection");

Потому как "Get" не существует в данном контексте. Мне же хотелось использовать параметры процесса и запросы в базу в этом сценарии. По совету Михаила передал в текстовом виде параметр процесса в Переменную "Контекст выполнения" элемента, но не понимаю на данном этапе, как получить из него значение в сценарии и распарсить в GUID.



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

Нравится

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

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

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

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

Логвин Андрей Витальевич,

Добрый день, Андрей!



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

Андронов Олег Алексеевич,

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

Но если Вы всё же хотите именно в рамках сценария После сохранения Активности, то алгоритм примерно следующий:

Создать параметр процесса, заполнить, передать его в Контекст выполнения в Выполнить задачу, а в сценарии обращаться напрямую к параметру:

var TitleFromExecutionContext = ExecutionContext;//Здесь в ExecutionContext передали ранее параметр процесса

var update = new Update(UserConnection, "Activity")

        .Set("Title", Column.Parameter(TitleFromExecutionContext)).

        Where("Id").IsEqual(Column.Parameter(CurrentActivityId));

        update.Execute();

 

Удачи в реализации.

Андронов Олег Алексеевич,

Доброго дня, скажите, получилось ли решить Вашу задачу? Каким способом?

У меня сейчас такая же, и это совсем беда))

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

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

БП: Добавление новой записи Сотрудник – отправка e-mail. Процесс отрабатывает, завершается, но письма не уходят.

Что нужно еще донастроить?

Нравится

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

В элементе "Отправить email" стоит галочка "Игнорировать ошибки отправки"(в самом низу находится)? Если да, снимите, пересохраните процесс, и посмотрите имеются ли ошибки при поаторных запусках.

Добрый день, Птуха Юлия Анатолиевна!

Для корректной работы Вашего БП, пожалуйста, проверьте правильность настройки элемента процесса, [Отправить email] - http://prntscr.com/i8q51m

1. "От кого" - Нужно выбрать "Значение справочника" и попав в меню справочника, подтвердить заранее синхронизированный почтовый ящик.

2. "Кому" - Указать почтовый адрес получателя письма.

3. Добавить тему и текст письма.

Также как советовал, Варфоломеев Данила, попробуйте убрать галочку [Игнорировать ошибки при отправке] и после этого в журнале процессов, посмотреть описание ошибки.

 

Если Вы хотите сделать процесс отправки полностью автоматизированным, настройте БП по следующему примеру:http://prntscr.com/i8q5jq

1.Запуск процесса по сигналу http://prntscr.com/i8q5sd

2.Отпрвка email

Спасибо большое!

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

На демо-версии создается новый объект в WorkspaceExplorerModule.aspx , к обьекту добавляется справочник. При добавлении полей в справочник всплывает ошибка «Невозможно получить экземпляр схемы типа "Terrasoft.Configuration.UsrEntity22 Schema"»

Подскажите, в чем может быть проблема?

Нравится

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

Здравствуйте, Юлия!

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

Здравствуйте, Руслан!

Спасибо большое

 

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

Добрый день.

при работе с EntitySchemaQuery для реализации SQL конструкции CASE, WHEN, THEN, компания Террасофт реализовала класс EntitySchemaCaseNotNullQueryFunctionWhenItem . Прошу пожалуйста поделиться Примерами использования данного класса. Так называемыми Темплейтами. На Академии я данный примеров не нашел. Спасибо.

Нравится

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

Добрый день, Михаил!

С описанием класса можете ознакомится тут: https://academy.terrasoft.ru/api/SDKNETAPI/7.10.0/NetCoreAPI_Help.html#Terrasoft.Core~Terrasoft.Core.Entities.EntitySchemaCaseNotNullQueryFunctionWhenItem.html

Пример использования: 

 

Tsopa,

Спасибо огромное за предоставленный ответ. Только если бы вы внимательно читали мой вопрос, то вы бы увидели, что я прошу ссылку не на описание Класса. А привести пример использования данного класса. Реальный Пример из жизни. Так как я нашел описание Класса на Академии, но не нашел примеры его использования, вот и обратился на community. Спасибо.

Михаил, 

Существуют sql запросы вида: 

CASE WHEN (ID IS NULL) 
     THEN 'YES' 
     ELSE 'NO' 
END AS ID_Value,

Для реализации такого рода запросов используется класс EntitySchemaCaseNotNullQueryFunctionWhenItem.

Конкретных примеров использования в системе нет. Вы можете попробовать реализовать свой собственный пример.

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

Помогите плз. с проблемой:

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

Как можно зафиксировать изменения моего пакета? 

Нравится

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

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

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

Denys Diachenko,

Да, спасибо. Именно так я и поступил:

- создал новый пакет

- перенес все схемы в него

- зафиксировал изменения

- успешно выгрузил из SVN

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

Всем доброго времени суток! 

Подскажите, как реализовать следующий таск в гриде детали есть есть текстовое поле которое необходимо сделать гиперссылкой -  http://prntscr.com/hm7pnf

реализовал следующие методы:

getExternalURLLink: function() {
				return this.getLink(this.get("Number"));
			},
			onExternalLinkClick: function() {
				debugger;
				var value = this.get("Number");
				!Ext.isEmpty(value) && window.open(value, "_blank");
				return false;
			},
			getLink: function(value) {
				if (Terrasoft.isUrl(value)) {
					return {
						url: value,
						caption: value
					};
				}
			}
		},

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

Код детали приведен ниже:

define("ScCoinCommunicationDetail", ["ConfigurationGrid", "ConfigurationGridGenerator",
	"ConfigurationGridUtilities"], function() {
	return {
		entitySchemaName: "ScMeansOfCommunication",
		attributes: {
			"IsEditable": {
				dataValueType: Terrasoft.DataValueType.BOOLEAN,
				type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
				value: true
			}
		},
 
		mixins: {
			ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities"
		},
 
		methods: {
			getExternalURLLink: function() {
				return this.getLink(this.get("Number"));
			},
			onExternalLinkClick: function() {
				debugger;
				var value = this.get("Number");
				!Ext.isEmpty(value) && window.open(value, "_blank");
				return false;
			},
			getLink: function(value) {
				if (Terrasoft.isUrl(value)) {
					return {
						url: value,
						caption: value
					};
				}
			}
		},
 
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "merge",
				"name": "DataGrid",
				"values": {
					"className": "Terrasoft.ConfigurationGrid",
					"generator": "ConfigurationGridGenerator.generatePartial",
					"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
					"changeRow": {"bindTo": "changeRow"},
					"unSelectRow": {"bindTo": "unSelectRow"},
					"onGridClick": {"bindTo": "onGridClick"},
					"activeRowActions": [
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "save",
							"markerValue": "save",
							"imageConfig": {"bindTo": "Resources.Images.SaveIcon"}
						},
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "cancel",
							"markerValue": "cancel",
							"imageConfig": {"bindTo": "Resources.Images.CancelIcon"}
						},
						{
							"className": "Terrasoft.Button",
							"style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
							"tag": "remove",
							"markerValue": "remove",
							"imageConfig": {"bindTo": "Resources.Images.RemoveIcon"}
						}
					],
					"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
					"activeRowAction": {"bindTo": "onActiveRowAction"},
					"multiSelect": false
				}
			}
		]/**SCHEMA_DIFF*/
	};
});

Благодарю!

Нравится

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

"ConfigurationGrid" - на самом деле начинать надо было вот с этого. По простому - никак, т.к в редактируемом гриде нет быстрого способа сделать гиперссылочное поле.

Придётся смотреть как реализована деталь "График поставки и оплат" в заказе. Там "Добавить" - кликабельное поле. Вангую, что скорее всего сделано в виде невидимой кнопки. Как-то так.

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

Добрый день коллеги.

При попытке удалить Изменение из раздела "Изменения"

DELETE FROM [dbo].[Change]

Where Number = 'CR00001863'

получил ошибку типа:

The DELETE statement conflicted with the REFERENCE constraint "FK5Kbu9RCt70eQZWfPa41rONXsAM". The conflict occurred in database "NameDB", table "dbo.SysChangeRight", column 'RecordId'.

Залез в таблицу dbo.SysChangeRight - да, там есть записи с данным Id изменения.

Вопрос: достаточно ли будет удаления из таблицы dbo.SysChangeRight записей с Id.изменения, чтобы получить возможность выполнить верхний скрипт? 

Нравится

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

Необязательно. Вдруг есть ещё ссылки из других таблиц.

А вообще, в таблице SysChangeRight должна быть каскадная связь на поле RecordId, чтобы удаляло вместе с основной записью автоматически. Если нет, можно добавить, поставив галочку в объекте.

 

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

Ссылки из других таблиц были - (деталь: активности) - они удалились каскадно средствами дизайнера. Не удалились каскадно, средствами дизайнера, история по данному Изменению и Согласование данного изменения - это все я "навернул"  запросом в SQL. А дальше - проблема, описанная выше...

Если каскадной связи нет, можно удалить из SysChangeRight запросом.

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

Спасибо, действительно после удаления из таблицы SysChangeRight смог удалить и само изменение. 

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