Столкнулся со странной ошибкой во время выполнения UpdateQuery:

{
    "success":false,
    "responseStatus": {
        "ErrorCode":"FormatException",
        "Message": "Expected hex 0x in '{0}'.",
        "Errors":[]
    },
    "rowsAffected":-1,
    "nextPrcElReady":false
}

Кто-нибудь знает, в чем может быть причина? Буду благодарен за подсказки

Нравится

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

"Франчук Виталий" написал:Кто-нибудь знает, в чем может быть причина?

В типе колонки. Дебаггером пройдите по update.setParameterValue(поле, значение, тип) и посмотрите соответствие между указаным типом и тем, какое значение задаётся.

"Варфоломеев Данила" написал:
Франчук Виталий пишет:

Кто-нибудь знает, в чем может быть причина?

В типе колонки. Дебаггером пройдите по update.setParameterValue(поле, значение, тип) и посмотрите соответствие между указаным типом и тем, какое значение задаётся.


Вот функция, которая вызывает UpdateQuery:

updateGame: function(id, newTitle) {
    if (id && newTitle) {
  	window.console.log("New title:", newTitle);
	var updateQuery = Ext.create("Terrasoft.UpdateQuery", {
		rootSchemaName: "clrsGamesAvailable"
	});
	updateQuery.filters.addItem(this.createIdColumnFilter(id));
	updateQuery.setParameterValue("clrsGameTitle", newTitle, Terrasoft.DataValueType.TEXT);
 
	updateQuery.execute(function() {
		window.console.log("Game", id, "was updated.");
	});
    }
}

Там в значении параметра - строка (проверил). Есть аналогичная функция, которая создает объекты с еще двумя параметрами. Конкретно этот параметр задан также. Но с InsertQuery все работает, а с UpdateQuery - нет(

"Франчук Виталий" написал:Но с InsertQuery все работает, а с UpdateQuery - нет(

значит проверить фильтр. что this.createIdColumnFilter(id) формирует (надеюсь id - это guid).
плюс скорее всего после execute будет ошибка. id в коллбеке пропадёт

"Варфоломеев Данила" написал:
Франчук Виталий пишет:

Но с InsertQuery все работает, а с UpdateQuery - нет(

значит проверить фильтр. что this.createIdColumnFilter(id) формирует (надеюсь id - это guid).

плюс скорее всего после execute будет ошибка. id в коллбеке пропадёт

createIdColumnFilter: function(id) {
	return Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "Id", id);
}

Фильтр вроде как надо создаеться. Смотрел в теле запроса, который получился - там guid

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

Странно как то делаю по инструкции которая описана тут для 7,10
Создание детали с редактируемым реестром
и не работает деталь, не отображается и в консоли нет ошибок.

В 7,9 делал аналогично и работало....на что обратить внимание?

Нравится

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

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

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

В случае, если данная рекомендация не решит Вашей проблемы, пожалуйста, напишите письмо с детальным описанние проблемы в службу поддержки - support@terrasoft.ru

Андрей. в моем случае.
1. Создаю объект
2. Создаю деталь
3. Добавляю деталь через мастер раздела
4. Проверяю, появление детали, настраиваю колонки
5. Меняю код в детали который указан в инструкции
6. Детали нет в отображении раздела, а через мастер раздела она показывается и настроить можно.

в тех.поддержке мой тикет забрили т.к. я не разработчик

"Юсупов Марат" написал: Детали нет в отображении раздела

Деталь должна быть в карточке. В консоли тоже нет ошибок?

В консоли пусто по ошибкам.

Должно работать, попробуйте все еще раз почистить, перезапустить, итд. Редис, Кеш. Посмотрите в крайнем случае как сделаны базовые детали с ред. реесстром, может где-то опечатались. Если не поможет, попробуйте еще раз. Сделайте в соседнем разделе, тестовую деталь с ред. реестром. Без ошибок, без доступа к сайту, сложно что либо подсказать.

Коллеги, добрый день!
Та же проблема в 7.10
Пытаюсь создать деталь с редактируемым реестром на карточке ConfItem, по аналогии с деталью ServiceEngineer на ServiceItem.
Деталь видна только в мастере раздела ConfItem, а в отображении пусто.

Схема детали:

define("UsrServiceEngineerCiDetail", ["terrasoft", "ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"],
	function(Terrasoft) {
		return {
			entitySchemaName: "UsrServiceEngineerCI",
			attributes: {
				"IsEditable": {
					"dataValueType": Terrasoft.DataValueType.BOOLEAN,
					"type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
					"value": true
				}
			},
			mixins: {
				ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities",
				OrderUtilities: "Terrasoft.OrderUtilities"
			},
			messages: {},
			methods: {},
			diff: [
				{
					"operation": "merge",
					"name": "DataGrid",
					"values": {
						"className": "Terrasoft.ConfigurationGrid",
						"generator": "ConfigurationGridGenerator.generatePartial",
						"generateControlsConfig": {"bindTo": "generateActiveRowControlsConfig"},
						"changeRow": {"bindTo": "changeRow"},
						"unSelectRow": {"bindTo": "unSelectRow"},
						"onGridClick": {"bindTo": "onGridClick"},
						"initActiveRowKeyMap": {"bindTo": "initActiveRowKeyMap"},
						"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"}
							}
						],
						"listedZebra": true,
						"activeRowAction": {"bindTo": "onActiveRowAction"},
						"multiSelect": false
					}
				}
			]
		};
	});

Схема ConfItemPage:

define("ConfItemPage", [], function() {
	return {
		entitySchemaName: "ConfItem",
		details: /**SCHEMA_DETAILS*/{
			"UsrServiceEngineerCiDetail": {
					"schemaName": "UsrServiceEngineerCiDetail",
					"entitySchemaName": "UsrServiceEngineerCI",
					"filter": {
						"detailColumn": "UsrConfItem",
						"masterColumn": "Id"
					}
				}
		}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
	{
					"operation": "insert",
					"name": "UsrServiceEngineerCiDetail",
					"values": {
						//"itemType": this.Terrasoft.ViewItemType.DETAIL
						"itemType": 2,
						"markerValue": "added-detail"
					},
					"parentName": "GeneralInfoTab",
					"propertyName": "items",
					"index": 4
				}
]/**SCHEMA_DIFF*/,
		methods: {},
		rules: {},
		businessRules: /**SCHEMA_BUSINESS_RULES*/{}/**SCHEMA_BUSINESS_RULES*/
	};
});

Бакалов Павел очистите кэш. Иногда бывает что не отображается изза старых данных.
И еще момент смотрите в консоли ошибки.

Кэш и редис чистил - не помогает.

Напишите письмо с детальным описанние проблемы в службу поддержки - support@terrasoft.ru и предоставлением доступа к сайту. Пускай посмотрят на деталь по факту, дальше гадать что могло пойти не так на форуме сложно.

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

Добрый день!

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

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

Нравится

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

Добрый день!
При объявлении детали в фильтре указывается связь между с продажей, поэтому Продажа заполняется автоматически.
OpportunityCompetitor: {
schemaName: "OpportunityCompetitorDetailV2",
filter: {
masterColumn: "Id",
detailColumn: "Opportunity"
}
}

Так же можно использовать defaultValues в объявлении детали для заполнения полей в детали по умолчанию.
Например в детали Документы есть поля Контакт и Контрагент, которые тянутся из продажи, а какими значениями должны заполнятся указано в блоке defaultValues:
Document: {
schemaName: "DocumentDetailV2",
entitySchemaName: "Document",
filter: {
masterColumn: "Id",
detailColumn: "Opportunity"
},
defaultValues: {
Account: { masterColumn: "Account" },
Contact: { masterColumn: "Contact" }
}
}

Спасибо за помощь!

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

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

Подскажите, пожалуйста, никто не встречался с ошибкой при попытке заблокировать пакет в конфигураторе:
Ошибка
При работе с хранилищем произошла ошибка
sqlite[S14]: unable to open database file
SvnErrorCode: SVN_ERR_SQLITE_ERROR

Перед этим база восстанавливалась из бэкапа, все файлы из временных папок svn и TerrasoftPackages удалял.

Нравится

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

Александр, исходя из аналогичных кейсов - проблема на стороне SVN сервера, возможная причина - нет прав доступа на папку, в которой хранится база данных SVN сервера. Помогает обычно раздача прав на эту папку (http://fredericiana.com/2014/11/29/sqlite-error-open-database-file/ ) или переустановка SVN.

вероятнее всего NTFS права, на восстановленные файлы или каталог по отношению к пользователю из под которого работает служба SVN.
Попробуйте сделать Checkout из репозитория в ФС например при помощи стороннего клиента (н/п Tortoise SVN) Там возможно будут более информативные ошибки.

Так же проблемы могут быть с блокировками, попробуйте очистить папку db/locks в каталоге с базой данных репозитория.

Коллеги, спасибо за информацию.

Похоже, что проблема была из-за обновления пакетов с предыдущим удалением.
Я очистил временные папки с хранилищами svn (Svn и TerrasoftPackages) и авторизационными данными, после чего обновил все пакеты, ошибка ушла.

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

Коллеги, добрый день.
При переносе схемы(раздел Активности) с демоверсии на бой возникает ошибка сохранения:
String reference not set to an instance of a String. Parameter name: s.

что делать дальше?
Спасибо.

Нравится

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

Здравствуйте, Марина.

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

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

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

Добрый день!
Возвращаясь к filestream (топик https://community.terrasoft.ru/forum/topic/5410), можно его все-таки использовать в Террасофте для таблицы файлов или нет?
TS 3.4.1.
SQL 2014
Террасофт умеет работать с данными типа varbinary(max) filestream?

1) включили возможность файстрима на сервере
2)создали файловую группу для базы
3)в качестве проверки функциональности создали новую таблицу через sql, там поле varbinary(max) filestream-засунули туда данные через sql - ну тут все ок
4) добавили в таблицу tbl_Files новое поле FileData1 varbinary(max) filestream; (перед этим пришлось удалить триггер к этой таблице - на instead of delete)
5) Пошли в террасофт администратор, там взяли в таблице tbl_Files, полe FileData сменила на FileData1 (не меняя при этом тип, и не сохраняя в бд потом таблицу (потому как не видим типа varbinary в приложении), пошли в sq_Files - там выбрали FileData1 вместо FileData.
6) Зашли в террасофт, добавили файл, файл даже добавился файловую группу, но террасофт его не может потом прочесть, потому что видимо не подозревает про тип варбинари с признаком файлстрим

Есть пути решения?

Нравится

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

Работа с filestream обсуждалась тут и тут. Также тут обсуждают альтернативные реализации с хранением в другой базе.

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

Всем привет!

Задался вопросом переноса настроенных групп фильтров через SVN на другие среды.
Заметил, что при добавлении фильтра в таблице Sysprofiledata создается или модифицируется строка с ключом ContractSectionV2GridDataViewFilters с настройками. Ситуация вроде бы, похожа на ситуацию
с настройками колонок, но при переносе SQL скриптом, фильтр на другой среде не появляется.
Может кто-то подскажет, какие еще данные нужно переносить, чтобы обеспечить гарантированный перенос настроенных групп фильтров на рабочую среду через svn?

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

Нравится

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

Дмитрий, ContractSectionV2GridDataViewFilters - фильтры, примененные пользователем в разделе, которые отображаются при загрузке раздела. Они сохраняются в SysProfileData (и частично в кеше браузера пользователя).

Вам необходимо переносить данные таблицы [Object]Folder, где [Object] - название объекта раздела. Например, группы раздела "Контакты" хранятся в таблице ContactFolder.

Также необходимо перенести данные таблиц SysContactFolderRight (права доступа на группы), FolderFavorite (избранные группы).

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

Доброго времени суток!
Случайно убрали поле "Требуется обновление БД" в конфигурации, штатной настройкой полей не получается вернуть, подскажите как снова добавить поле. Заранее спасибо:smile:

Нравится

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

Здравствуйте, Олег.

Уточните пожалуйста как именно вы выполнили удаление данного поля? Прикрепите пожалуйста скриншот с текущим интерфейсом конфигурации.

Через настройку колонок попробуйте.

"Мария Ватулина" написал:

Здравствуйте, Олег.

Уточните пожалуйста как именно вы выполнили удаление данного поля? Прикрепите пожалуйста скриншот с текущим интерфейсом конфигурации.


скриншот в приложении

"Кисловский Михаил Андреевич" написал:

Через настройку колонок попробуйте.


"Шамшин Олег" написал: штатной настройкой полей не получается вернуть

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

Для восстановления колонки можем вам рекомендовать восстановить настройки профиля пользователя по умолчанию (прилагаю скрин). После восстановления перелогиниться.

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

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

Добрый день,

Задал фильтр по Дате = Текущая неделя.
Смотрю что в БД по фильтру в CustContractFolder
Запрос такой:

SELECT
        [CustContract].[Id] [Id]
FROM
        [dbo].[CustContract] [CustContract]
WHERE
        ([CustContract].[Number] = N'92319851'
        AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
        AND [CustContract].[ModifiedOn] CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

Почему время до 21:00 только?
Подскажите это настраивается?

Нравится

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

Укажите пожалуйста версию продукат.

Время до 21 — из-за того, что на сервере время по Гринвичу. Когда у них 21:00 — у Вас полночь и конец недели.

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

Спасибо. С временем понятно.

Заметили еще такую странность при фильтре по дате: даты в БД не обновляются.
Например сейчас хоть фильтр стоит в GUI пред. неделя, а даты по прежнему старые

AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

Это стандартное поведение фильтров по датам?

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

Страница раздела была обновлена, был новый вход. Открыт фильтр http://www.community.terrasoft.ru/system/files/2017-06-30_1531.png, условия фильтра не менялись, не сохранялись.

В БД же запрос прежний и даты прежние как 30.06

AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-06-25 21:00:00.000', 121)
AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-02 21:00:00.000', 121)))

я ожидал что будет вида '2017-07-02 21:00:00.000' по '2017-07-09 21:00:00.000', т.е. как в GUI предыдущая неделя.

После того как в фильтре нажал сохранить, в бд запрос обновился и стал отбирать как ожидается. Можно как то программно через БД инициировать "сохранить" по всем группам?

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

IIS APP остановил, редис почистил.
Все равно в БД по прежнему старый запрос.
В ГУИ BPMOnline фильтр работает верно, но в БД по другому.
Если нажимаю сохранить в фильтре, то в БД запрос обновляется на корректный.

"Антон Сидоров" написал:В ГУИ BPMOnline фильтр работает верно

В таком случае ничего менять не нужно.

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

Поэтому и интересует вопрос это нормальное поведение BPMOnline?
Можно как то программно через БД инициировать "сохранить" по всем группам, для актуализации запросов и в БД?

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

По фильтру Текущая неделя еще вопрос:
В БД записывается такой запрос при создании сегодня.

SELECT
	[CustContract].[Id] [Id]
FROM
	[dbo].[CustContract] [CustContract]
WHERE
	([CustContract].[Number] = N'92319851'
	AND ([CustContract].[ModifiedOn] >= CONVERT(DATETIME, '2017-07-23 21:00:00.000', 121)
	AND [CustContract].[ModifiedOn] < CONVERT(DATETIME, '2017-07-30 21:00:00.000', 121)))

т.е. в БД все верно с учетом часового пояса сервера +3.
Если ставлю дату на сервере 30.07.17 13:41.
Через интерфейс BPM не отображается (см. вложение), в БД - ок.

30.07.17 ещё не настало. У Вас часы идут неправильно.

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

Вероятно, логика системы не рассчитана на такое необычное поведение часов.

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

Добрый день.
Хотел бы сообщить, что с начала недели наблюдаются проблемы в работе .Net SDK.
Зависания при
- переходе между ссылками,
- скроллинге страницы,
- выделении текста.

Нравится

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

Здравствуйте, Игорь.

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

В Firefox работает вполне комфортно. Задержки наблюдаются при просмотре в свежем Google Chrome.

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