Добрый день,

 

очень часто при установке пакета возникает ошибка установки. ошибка возникает при загрузке файлов локализации.

добавил файл с логами установки.

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

 

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

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

Прикрепленные файлы

Нравится

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

Добрый день,

 

Npgsql.PostgresException (0x80004005): 53300: sorry, too many clients already

Данная ошибка говорит о том что в БД приходит клиентов больше, чем максимальное количество возможных.



Когда подобные ошибки возникали на наших Cloud серверах их решили таким образом:

- Добавили дополнительные серверы, чем распределили большой поток коннектов между ними

- Увеличили лимиты по подключениям в porstgresql.auto.conf (правка лимитов в porstgresql.conf игнорируется)

- Реализовали мониторинг кол-ва подключений Postgre

 

Если проблему не получиться решить, прошу обратиться к нам в поддержку - support@terrasoft.ua

 

Спасибо.

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

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

Знайшов після переходу на com тільки це: https://academy.creatio.com/api/netcoreapi/7.17.0/index.html



Чи є новіша версія? Якщо так, буду вдячний :)

Нравится

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

Доброго дня!

 

Дуже дякуємо за вашу ідею.

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

 

Дякуємо, що допомагаєте нам покращувати продукт.

шчо?

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

Добрый день.

 

при разработке веб сервиса возникает следующая ошибка

The server encountered an error processing the request. The exception message is 'Дублирующиеся данные в объекте UsrAdressInCase'. See server logs for more details. The exception stack trace is:
 
at Terrasoft.Core.Entities.Entity.Load(Select select, IDictionary`2 columnMap) at Terrasoft.Core.Entities.Entity.InternalFetchFromDB(IEnumerable`1 columnsToFetch, IDictionary`2 conditions, Boolean useDisplayValues, Boolean performValuesCleanup) at Terrasoft.Core.Entities.Entity.FetchFromDB(EntitySchemaColumn conditionColumn, Object conditionValue, Boolean useDisplayValues) at Terrasoft.Configuration.UsrCustomConfigurationServiceNamespace.UsrCustomConfigurationService.checkglobal(String phone) at SyncInvokecheckglobal(Object , Object[] , Object[] ) at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object[] inputs, Object[]& outputs) at Terrasoft.Web.Common.ServiceModel.ThreadContextInitializer.Invoke(Object instance, Object[] inputs, Object[]& outputs) at System.ServiceModel.Dispatcher.DispatchOperationRuntime.InvokeBegin(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage5(MessageRpc& rpc) at System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc) at System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)

что это значит в контексте платформы креатио?

я использую следующий код

var usrAddressSchema = UserConnection.EntitySchemaManager.FindInstanceByName("UsrAdressInCase");
var usrAdressInContact = usrAddressSchema.CreateEntity(UserConnection);
exists = usrAdressInContact.FetchFromDB("UsrdDislocation", usrLookup1);

usrLookup1 - Guid ключ.

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

Нравится

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

Добрый день.



Метод FetchFromDB выполняет выборку только одной записи, и если записей по фильтру будет несколько, то будет такая ошибка.



Т.е. в вашем случае в таблице UsrAdressInCase есть более одной записи где UsrdDislocationId = usrLookup1.

Добрый день,

 

Есть несколько предположений:

 

1) Сообщение об ошибке идет напрямую от метода checkglobal и какой-то проверки в нём.

2) Есть настроенные правила поиска дублей по объекту UsrAdressInCase и при создании Entity система возвращает сообщение, что по какому-то правилу в системе идентифицирован дубль.

3) Есть какая-то дополнительная логика, которая паралелльно с Вашим действием CreateEntity тригерится и что-то выполняет (Entity event listener или бизнес логика на самом объекте).

Добрый день.



Метод FetchFromDB выполняет выборку только одной записи, и если записей по фильтру будет несколько, то будет такая ошибка.



Т.е. в вашем случае в таблице UsrAdressInCase есть более одной записи где UsrdDislocationId = usrLookup1.

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

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

Добрый день, необходимо написать веб сервис на c# и столкнулся с проблемой.

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

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

но при этом я получаю ошибку 

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

если програмно сделать запрос вида 

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

то я получаю такой ответ

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

то есть колонка вроде как есть.

 

в чем может быть проблема? 

 

спасибо!

Нравится

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

1. При работе с ESQ/Entity (в отличие от Select/Insert и т.п.), в фильтрах названия колонок типа справочник указываются без окончания "Id".

2. FetchFromDB, помимо того, что возвращает true/false в зависимости от того, найдена запись в БД или нет, еще и вытягивает все колонки сущности, что является избыточным для простой проверки наличия записи в таблице. 

Лучше тогда уж использовать что-то в этом роде:

var select = (Select) new Select(UserConnection)
    .Column(Func.Count(Column.Asterisk()))
    .From("UsrAdressInCase")
    .Where("UsrdDislocationId").IsEqual(Column.Parameter(usrLookup1));
 
bool exists = select.ExecuteScalar<int>() > 0;

P.S.: 

var exists = contact.FetchFromDB("MobilePhone", phone); - здесь тоже затягивается куча избыточной информации.

Добрый день,

 

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

 

С уважением,

Дарий

Добрый вечер.

usrLookup1 это Guid.

вот полный код

 

var contactSchema = UserConnection.EntitySchemaManager.FindInstanceByName("Contact");
var contact = contactSchema.CreateEntity(UserConnection);
var exists = contact.FetchFromDB("MobilePhone", phone);
 
if (!exists)
{
    return "1";
}
 
var usrLookup1 = (Guid)contact.GetColumnValue("UsrLookup1Id");
if (usrLookup1 == Guid.Empty)
{
    return "2";
}
 
var usrAddressSchema = UserConnection.EntitySchemaManager.FindInstanceByName("UsrAdressInCase");
 
//return string.Join(",", usrAddressSchema.Columns.Select(c => c.ColumnValueName));
var usrAdressInContact = usrAddressSchema.CreateEntity(UserConnection);
exists = usrAdressInContact.FetchFromDB("UsrdDislocationId", usrLookup1);
 
if (!exists)
{
    return "3";
}

если расскомментировать строку string.Join.... тогда получаю тот результат что выше.

я так же проверял какие колонки находятся в самой БД с помощью SQL запросов и там тоже есть UsrdDislocationId.

1. При работе с ESQ/Entity (в отличие от Select/Insert и т.п.), в фильтрах названия колонок типа справочник указываются без окончания "Id".

2. FetchFromDB, помимо того, что возвращает true/false в зависимости от того, найдена запись в БД или нет, еще и вытягивает все колонки сущности, что является избыточным для простой проверки наличия записи в таблице. 

Лучше тогда уж использовать что-то в этом роде:

var select = (Select) new Select(UserConnection)
    .Column(Func.Count(Column.Asterisk()))
    .From("UsrAdressInCase")
    .Where("UsrdDislocationId").IsEqual(Column.Parameter(usrLookup1));
 
bool exists = select.ExecuteScalar<int>() > 0;

P.S.: 

var exists = contact.FetchFromDB("MobilePhone", phone); - здесь тоже затягивается куча избыточной информации.

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

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

Спасибо за замечание №1, я этого не знал.

 

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

При попытке отправить email из БП, получаю ошибку.

 

В чем может быть проблема?

 

Код ошибки:

Terrasoft.Mail.Sender.EmailException: Почтовый ящик не существует.

 

Код задания-сценария БП:

var emailClientFactory = ClassFactory.Get(new ConstructorArgument("userConnection", UserConnection));

    var activityEmailSender = new ActivityEmailSender(emailClientFactory, UserConnection);

    activityEmailSender.Send(activityId);

Нравится

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

Добрый день!



Рекомендую проверить значение в поле "Отправитель" (Sender) в созданной активности. В поле Sender должно быть указано значение зарегистрированного почтового ящика в системе с возможностью отправки писем.

Также пользователю, под которым запускается процесс, необходим доступ на отправку писем с ящика.

Добрый день!



Рекомендую проверить значение в поле "Отправитель" (Sender) в созданной активности. В поле Sender должно быть указано значение зарегистрированного почтового ящика в системе с возможностью отправки писем.

Также пользователю, под которым запускается процесс, необходим доступ на отправку писем с ящика.

Алёна Доля,

Огромное спасибо.

Проблема была в общем доступе к ящику

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

Добрый день,

 

Хочу поменять колонку идентификатора обьекта. У меня есть две Guid колонки и я хотел изменить илентификатор обьекта с одной на другую. Но при изменении этого параметра я получаю ошибку - is in a primary key

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

 

В базе данных нету записей в этой колонке, но есть внешние ключи на эту таблицу. 

Как я могу поменять идентификатор колонки?

Спасибо

Нравится

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

Добрый день,

 

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

 

С уважением,

Дарий

Добрый день,

 

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

 

На данный момент возможно несколько обходных путей, если мы создадим объект, который не имеет в качестве родителя BaseEntity или любого другого базового объекта:

 

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

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

- Если на объект ссылаются другие объекта - тогда, к сожалению, изменить ключ будет невозможно, либо можно создать новый объект и сослаться на него из зависимых таблиц

 

С уважением,

Дарий

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

А что делать в первых двух случаях, если колонка Id наследуется из обьекта BaseEntity? я же не могу в данном случае переименовать оригинальную колонку вродебы?

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

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

Подскажите как правильно его удалить , в какие таблицы смотреть, что бы пропала эта ошибка? В SysModuleVisa и SysModule нет записи, который бы указывал на этот объект

Стак трейс

 

2022-09-21 12:47:13,882 [79] ERROR IIS APPPOOL\BPM-ProdCopy ClientUnitSchemaDesignerService SaveDesignItem - System.AggregateException: Произошла одна или несколько ошибок. ---> System.AggregateException: Произошла одна или несколько ошибок. ---> Terrasoft.Common.ItemNotFoundException: Элемент с именем "BudgetVisa" не найден

   в Terrasoft.Core.ManagerItemCollection`1.GetByName(String name)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(String schemaName, ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.Compare(IEnumerable`1 oldSchemasInfo, IEnumerable`1 newSchemasInfo, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.GetConfigurationSchemasState(String metaInfoFilePath, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.d__27.MoveNext()

   --- Конец трассировки внутреннего стека исключений ---

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.CheckIfGenerationErrorsOccured()

   в System.Threading.Tasks.Task.Execute()

   --- Конец трассировки внутреннего стека исключений ---

   в System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)

   в System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)

   в Terrasoft.WebApp.ConfigurationBuild.WebConfigurationBuilder.BuildChanged()

   в Terrasoft.Core.ServiceModel.Designers.Commands.ClientUnitSchemaSaveCommand.Execute(ClientUnitDesignSchemaDto dto)

   в Terrasoft.Core.ServiceModel.Designers.Services.BaseDesignerService`1.InternalSaveDesignItem(TDesignItemDto designSchemaDto)

   в Terrasoft.Core.ServiceModel.Designers.Services.BaseDesignerService`1.SaveDesignItem(TDesignItemDto designSchemaDto)

---> (Внутреннее исключение #0) System.AggregateException: Произошла одна или несколько ошибок. ---> Terrasoft.Common.ItemNotFoundException: Элемент с именем "BudgetVisa" не найден

   в Terrasoft.Core.ManagerItemCollection`1.GetByName(String name)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(String schemaName, ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.Compare(IEnumerable`1 oldSchemasInfo, IEnumerable`1 newSchemasInfo, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.GetConfigurationSchemasState(String metaInfoFilePath, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.d__27.MoveNext()

   --- Конец трассировки внутреннего стека исключений ---

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.CheckIfGenerationErrorsOccured()

   в System.Threading.Tasks.Task.Execute()

---> (Внутреннее исключение #0) Terrasoft.Common.ItemNotFoundException: Элемент с именем "BudgetVisa" не найден

   в Terrasoft.Core.ManagerItemCollection`1.GetByName(String name)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(String schemaName, ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.MarkEntitySchemaChildrenAsChanged(ICollection`1 notChangedSchemasInfo, ICollection`1 changedSchemasInfo)

   в Terrasoft.Core.ClientContentGeneration.SchemaInfoComparer.Compare(IEnumerable`1 oldSchemasInfo, IEnumerable`1 newSchemasInfo, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.GetConfigurationSchemasState(String metaInfoFilePath, IEnumerable`1 packages)

   в Terrasoft.Core.ConfigurationBuild.ConfigurationBuilder.d__27.MoveNext()<---

<---

 

Нравится

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

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

 

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

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

 

Если ошибка не исчезнет, прошу обратиться к нам в поддержку отправив нам письмо на почту support@terrasoft.ua.

 

Спасибо.

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

Необходимо уведомлеть сотрудников при публикации статьи в Базе знаний.

Добавить возможность упоминания группы сотрудников при публикации нового материала в Базе знаний не получилось. В окне Ленты через @ получается выделить только конкретного пользователя, а  группу или роль, например "менеджеры" выделить нельзя? Есть ли возможность расширения функционала "@"

 

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



Может кто-то решал эту проблему  (Уведомления при публикации статьи в Базе знаний) бизнес-процессом? 



спасибо.



P.S. кроме этого при публикации в Ленте Канала, можно ли "вставить ссылку"? По базе в Каналах есть канал Новости, там реализовано внедрение гиперссылки.  Но при новой публикации это сделать не возможно.Изображение удалено.

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

 

Нравится

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

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

Поэтому я решил обойти отсутствие гиперссылки и решил ее просто скопировать.

1 в базе знаний открываем статью

2 выбираем гиперссылку и создаем ее

3 копируем и вставляем созданную гиперссылку в нашу Ленту в Канале

Добрый день.



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



Для этого нужно создать процесс со стартовым сигналом по событию добавления новой записи и элементом “Добавить данные” в котором будут добавляться данные в таблицу "Reminding".



Подробнее:

https://community.terrasoft.ua/questions/kak-sozdat-uvedomlenie-iz-proc…



https://community.terrasoft.ua/questions/biznes-process-po-otpravke-uve…

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

Есть раздел. Как вызвать функцию при переходе в другой раздел.

 

Нравится

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

Я создал новый раздел в Creatio 7.18, как получить к нему доступ через EntityDataService.svc? Если да, нужно ли что-то конкретное сделать при создании нового раздела? Мне посоветовали скомпилировать Я запустил "Перекомпилировать все" но все таки не отображается в EntityDataService.svc.

Я могу получить доступ только к тем объектам, которые там были по умолчанию.

 

Нравится

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

Добрый день.

 

EntityDataService.svc работает с объектами, а не с разделами.

Вам нужно использовать объект по которому построен раздел.

Пожалуйста, проверьте есть ли объект раздела в EntityDataService.svc.

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