Отредактировал процесс, сохранил как новый. Сделал актуальным.

В результате - и с тарый и новый процесс - оба актуальные.

Система при работе радостно использует именно СТАРЫЙ.

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

Нравится

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

Мы в какой-то из версии встречались с багом - при переносе на другой стенд переносился только флаг актуальности текущей версии, при этом не сбрасывались флаги с предыдущих версий. Мне приходилось убирать актуальность скриптом в БД, возможно вам тоже пригодится (это для MSSQL):

update "SysSchemaProperty" set "Value" = 'False'
  where "Name" = 'IsActiveVersion' and "SysSchemaId" IN (
 select "Id" from "SysSchema" where "Name" 
 IN (<Имя процесса>) 
);
 
 update "SysSchemaUserProperty" set "Value" = 'False'
  where "Name" = 'IsActiveVersion' and "SysSchemaId" IN (
 select "Id" from "SysSchema" where "Name" 
 IN (<Имя процесса>) 
);

 

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

Алла Савельева, на банальные вещи банальный  ответ - уже делал, не помогло.

BVG,

В разделе [Библиотека процессов] найдите нужный процесс и откройте его свойства.

На вкладке [Версии процесса] на детали версии отображаются все версии процесса, а также признак 'Актуальная версия'.

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

Мы в какой-то из версии встречались с багом - при переносе на другой стенд переносился только флаг актуальности текущей версии, при этом не сбрасывались флаги с предыдущих версий. Мне приходилось убирать актуальность скриптом в БД, возможно вам тоже пригодится (это для MSSQL):

update "SysSchemaProperty" set "Value" = 'False'
  where "Name" = 'IsActiveVersion' and "SysSchemaId" IN (
 select "Id" from "SysSchema" where "Name" 
 IN (<Имя процесса>) 
);
 
 update "SysSchemaUserProperty" set "Value" = 'False'
  where "Name" = 'IsActiveVersion' and "SysSchemaId" IN (
 select "Id" from "SysSchema" where "Name" 
 IN (<Имя процесса>) 
);

 

Добрый день!



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



Данное поведение системы было исправлено командой разработки в версии системы 7.13.0.

Виталий Жилин, СПАСИБО !!!!

 

Мотков Илья, понял, спасибо , у нас 7.12 к сожалению, но учту.

Алла Савельева, спасибо, для моей задачи не помогло, но зато нашел несколько других ошибок, что тоже полезно :))))

 

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

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

SVN  вдруг внезапно перестал обновлять конфигурацию из хранилища

выдавая такую ошибку :

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

причем копирование базы данных с прода на сервер разработки ничем  не помог.

Новые изменения зафиксировать невозможно потому что требует сперва обновить изменения

а "обновить сейчас"  нельзя потому что пр попытке это сдалать ошибка (см.первый скриншот)

"восстановить из хранилища" - так же выдает туже самую ошибку (см. первый скриншот)

з.ы.

напрямую из TortoiseSVN любые коммиты проходят без ошибок

Нравится

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

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

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

Александр Тыра, прошу прощения - это где?

Посмотрите в дизайнере объекта.

Зверев Александр, интересно то , что такой обьект (SysSchemaDataSource) в конфигураторе отсутствует. Или вы про какой то другой обьект ?

 

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

Зверев Александр, такого Uid нет. Ошибка именно в таком виде более не выдается - осталась только шапка про ошибку SQL

В таком случае проверьте, всё ли в порядке с недавно менявшимися схемами. А зачем Вы пишете жирным курсивом?

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

 

насчет схем - действительно нашел одну проблематичную. Именно она не обновляется, не восстанавливается  и не удаляется. Как ее убить ?

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

Если именно удалить, то всё можно через базу, но нужно соблюдать осторожность.

Зверев Александр, решил проблему иначе и проще. временно перенес сбойный модуль из пакета в CUSTOM что дало возможность восстановить пакет из хранилища :))) после чего всеошибки исчезли

 

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

В нативном пакете FinAppLanding есть процесс "Синхронизация анкетных данных с данными физ. лица " который падает на последней строке :

appFormToContactHelper.SynchronizeContactByAppForm(appFormId);

вызывая ошибку "Недостаточно прав для изменения записи в объекте" , конкретно :

System.Security.SecurityException: Недостаточно прав для изменения записи в объекте "Contact" at Terrasoft.Core.Entities.Entity.UpdateInDB(Boolean validateRequired) at Terrasoft.Core.Entities.Entity.InternalSave(Boolean validateRequired, Boolean setColumnDefValue) at Terrasoft.Core.Entities.Entity.Save(Boolean validateRequired, Boolean setColumnDefValue) at Terrasoft.Configuration.AppFormToContactHelper.AppFormToContact(Dictionary`2 columnValues, Guid appFormId) at Terrasoft.Configuration.AppFormToContactHelper.SynchronizationContact(Guid appFormId) at Terrasoft.Configuration.AppFormToContactHelper.SynchronizeContactByAppForm(Guid appFormId) at Terrasoft.Core.Process.AppFormToContactSyncProcessCustom1.AppFormToContactSyncScriptTaskExecute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context) The Zone of the assembly that failed was: MyComputer

Что с ним не так и как исправить ?

Нравится

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

Значит, у пользователя, под которым запущен БП, нет прав на изменение этого физ. лица или одного из полей. Проверьте права доступа на запись в разделе физ. лиц, есть ли права на изменение у этого пользователя или какой-то из его групп.

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

 это я уже догадался. Вопрос как узнать КТО ЭТОТ пользователь ?

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

В процессе пытаюсь получить UserConnection :

var userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection;

однако получаю ошибку :

System.NullReferenceException: Object reference not set to an instance of an object. at Terrasoft.Core.Process.AppFormToContactSyncProcessMethodsWrapper.AppFormToContactSyncScriptTaskExecute(ProcessExecutingContext context) at Terrasoft.Core.Process.ProcessFlowElement.Execute(ProcessExecutingContext context)

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

Нравится

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

Такое может быть, например, если метод вызван из БП, который запущен по расписанию, тогда никакой сессии не будет. В качестве решения, если это сервис - сделать UserConnection свойством класса с возможностью задать извне, и вызывать сервис как-то так.

var service = MyService();
service.UserConnection = userConnection;
service.MyMethod(param1, param2);

В самом бизнес-процессе UserConnection стоит получать как context.UserConnection или Get<UserConnection>("UserConnection"). Во встроенном процессе просто свойство UserConnection есть.

Такое может быть, например, если метод вызван из БП, который запущен по расписанию, тогда никакой сессии не будет. В качестве решения, если это сервис - сделать UserConnection свойством класса с возможностью задать извне, и вызывать сервис как-то так.

var service = MyService();
service.UserConnection = userConnection;
service.MyMethod(param1, param2);

В самом бизнес-процессе UserConnection стоит получать как context.UserConnection или Get<UserConnection>("UserConnection"). Во встроенном процессе просто свойство UserConnection есть.

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

добрый день.

прошу помощи зала: мне необходимо понять, разобраться и научиться программировать веб-страницы в BPM.

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

основы JavaScript известны. А вот структура и принципы формирования страниц и их редактирование в версии ВРМ мягко говоря плохо понятны. Где что находится и как это редактировать-исправлять. На сайте ничего такого не нашел.Там вообще сложно хоть что-то найти даже если оно там есть.

Как вы сами изучали ? Методом научного тыка ?

P/S.

помимо ниже следующего ещё что-то есть ?

https://academy.terrasoft.ru/api/jscoreapi/7.12.0/

https://academy.terrasoft.ru/documents/technic-sdk/7-13/sozdanie-web-ca…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/opisanie-platfo…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/integraciya-sto…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/otladka-klients…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/sozdanie-klient…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/kak-sozdat-polz…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/ispolzovanie-en…

https://academy.terrasoft.ru/documents/technic-sdk/7-13/web-object-ispo…

Нравится

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

Варфоломеев Данила, мда. Юмор оценил.

Есть бесплатные тренинги, в том числе и по разработке.

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

Добрый день!

Подскажите пожалуйста, как получить доступ к полям обьекта из кода с# если нам известен ID обьекта?

лезть в БД и тянуть селектом или есть какая-нибудь функция типа GetObjectByID ?

Нравится

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

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

Можно слегка упростить синтаксис :)

var _caseFile = new Terrasoft.Configuration.CaseFile(UserConnection);
_caseFile.FetchFromDB(recordId); 
var typeId = _caseFile.GetColumnValue("TypeId");
var name = _caseFile.GetColumnValue("Name");

 

В 5.Х была готовая функция для этой цели. Можно было указать объект, колонку и запись, получить в ответ значение колонки. Если в 7.Х нет, можно скопировать:

public static T GetEntityTypedColumnValue&lt;T&gt;(UserConnection userConnection, string schemaName, string columnName, Guid id) {	
	var schema = userConnection.EntitySchemaManager.GetInstanceByName(schemaName);
	var esq = new EntitySchemaQuery(schema);
	var queryColumnName = esq.AddColumn(columnName).Name;
	var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, schema.PrimaryColumn.Name, id);
	esq.Filters.Add(filter);
	var entities = esq.GetEntityCollection(userConnection);
	foreach (var entity in entities) {
return entity.GetTypedColumnValue&lt;T&gt;(queryColumnName);
	}
	return default(T);
}

Пример вызова в коде:

accountId = Terrasoft.Configuration.MsgServiceUtilities.GetEntityTypedColumnValue&lt;Guid&gt;(UserConnection, "Contact", "Account.Id", singleContactId);

 

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

Можно слегка упростить синтаксис :)

var _caseFile = new Terrasoft.Configuration.CaseFile(UserConnection);
_caseFile.FetchFromDB(recordId); 
var typeId = _caseFile.GetColumnValue("TypeId");
var name = _caseFile.GetColumnValue("Name");

 

Григорий, скорее всего, так вытянутся все колонки объекта, что может быть излишним.

Зверев Александр,Спасибо огромное!!!

 

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

 и вам спасибо за вариант !!! ситуации бывают разные  :))) это тоже пригодится

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

Попытался вставить  console.log("test") в текст модуля замещающего  FileDetailV2

получил ошибку 'console' is not defined

почему? как исправить?

Нравится

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

показалось что нашел решение в примерах сообщества = есть вариант (правда непонятно почему не работает классика - она в примерах так же присутствует) :


 
window.console.log("test")

однако он позволяет обойтись без ругани BPM на ошибки не работая фактически - в консоль ничего не выводится все равно

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

Зверев Александр, прошу прощения , я видимо неточно выразился. НЕРАБОТАЕТ имеется ввиду что BPM отказывается вообще его воспринимать в коде - выдает ошибку 'console' is not defined при попытке сохранить модуль. Вариант window.console.log такой ошибки не выдает - хотя и не выводит ничего в консоль. Естественно - я пользуюсь панелью разработчика.

Значит, в Вашем браузере такого объекта не предусмотрено.

Пробуйте обратиться через window.console.log()

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

Подскажите пожалуйста чего не хватает? 

В дизайнере страницы я добавил виджет "веб-страница". В настройках виджета одно единственное поле - веб адрес страницы. Ради теста вставил туда www.yandex.ru однако после сохранения и релогона на месте виджета отображается пустое поле, а в HTML коде на его месте написано

Нравится

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

Вот ссылки на документацию на Академию

https://academy.terrasoft.ua/documents/base/7-13/paneli-itogov?document…

https://academy.terrasoft.ua/documents/base/7-13/blok-itogov-web-strani…

Если вы все делаете так как описано на Сайте Академии то прошу прислать скриншоты Настройки "Блока Итогов Web-Страница"

Вот ссылки на документацию на Академию

https://academy.terrasoft.ua/documents/base/7-13/paneli-itogov?document…

https://academy.terrasoft.ua/documents/base/7-13/blok-itogov-web-strani…

Если вы все делаете так как описано на Сайте Академии то прошу прислать скриншоты Настройки "Блока Итогов Web-Страница"

Власов Михаил Викторович,

 более менее разобрался. BPM таким образом блочит все внешние ресурсы. Типа он лучше меня знает что опасно, а что нет. Внутри доверенных доменов - все открывается.

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

Подскажите пожалуйста в чем проблема и кк ее решить. Я настроил по инструкции Visual Studio, выгрузил проект, запустил на компиляцию. В итоге - 250 ошибок следующего содержания (например) :

Ошибка    CS0121    Неоднозначный вызов следующих методов или свойств: 'Terrasoft.Configuration.ExchangeUtility.IsEmpty(Microsoft.Exchange.WebServices.Data.PhysicalAddressEntry)" и "Terrasoft.Configuration.ExchangeUtility.IsEmpty(Microsoft.Exchange.WebServices.Data.PhysicalAddressEntry)"    Terrasoft.Configuration.Dev    C:\wwwroot\DEV\Terrasoft.WebApp\Terrasoft.Configuration\Autogenerated\Src\ExchangeContactSyncProvider.Exchange_Entity.cs

Нравится

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

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

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

Это не мои методы я еще ничего не писал. Это ругается на базовые методы самого Террасофта. 11 ошибок такого рода я смог исправить в ручную (когда забыли подставить Terrasoft вместо System например), в оставшихся типа вышеприведенного примера непонятно чего подставлять потому что в качестве конфликтных он пишет два идентичных навания

Terrasoft.Configuration.ExchangeUtility.IsEmpty(Microsoft.Exchange.WebServices.Data.PhysicalAddressEntry)

BVG,

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

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

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

Добрый день! Столкнулся со следующей проблемой. Cайт работает по протоколу https. При настройке подключения к сайту в интерфейсе плагина ReportDesigner, для указанной строки подключения не подтягивается конфигурация для входа.

Подскажите, если ли какие-то дополнительные настройки для работы плагина с сайтом на https.

Нравится

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

Подключился в BPMonlineReportDesigner к демо-сайту, по https пускает нормально.

Настройки разных веб-сервисов сайта для работы по http и https прописываются в config-файлах, находящихся в папках Terrasoft.WebApp\ServiceModel\http\ и Terrasoft.WebApp\ServiceModel\https\.

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

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

Александр, спасибо за рекомендацию. Все получилось

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