Приветствую!

Создал пакет проект (пробовал и через шаблон bpmonline и через clio create pkg)

При компиляции из студии изменения не подхватываются, clio restart делаю после build, приходится всю конфигурацию компилировать

 

Подскажите , может кто сталкивался? в какую сторону смотреть?

Нравится

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

Добрый день,

 

Для того, чтобы приложение подтягивало сборку из Пакета-Проекта, нужно:

  1. Название dll сборки Пакета-Проекта,  должно совпадать с названием пакета.
  2. dll сборка Пакета-Проекта должна находится в соответсвующей директории: 
    • TS.Conf/PackageName/Files/Bin/ (для Framework
    • TS.Conf/PackageName/Files/Bin/netstandard (для .NetCore)
  3. Для .NetCore флаг Feature-UseSeparateDirectoryToLoadPackageAssemblies (в Terrasoft.WebHost.dll.config) должен быть включен:

    <add key="Feature-UseSeparateDirectoryToLoadPackageAssemblies" value="true" />
  4. Cборка должна быть помечена аттрибутом:

    [assembly: PackageReferenceAssembly(RefAssemblyMarker.All)]

    и добавить: using Terrasoft.Core.Attributes;

    Это делается в AssemblyInfo.cs (папка Properties - Properties\AssemblyInfo.cs )

    Если используется, новая версия проекта *.csproj, то в нем AssemblyInfo.cs генерируется автоматически на основании проекта.

    Для того, чтобы небыло конфилктов автогенерируемой AssemblyInfo.cs с созаной вручную, нужно в проекте *.csproj, отключить автогенерацию AssemblyInfo.cs.

    Для этого в проект *.csproj, надо добавить запись:

    <PropertyGroup>

               .........................................

               <GenerateAssemblyInfo>false</GenerateAssemblyInfo>

               .......................................

    </PropertyGroup>

 

Пример AssemblyInfo.cs

using System.Reflection;
using System.Runtime.InteropServices;
using Terrasoft.Core.Attributes;
 
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: PackageReferenceAssembly(RefAssemblyMarker.All)]
[assembly: AssemblyTitle("cliogate")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("cliogate")]
[assembly: AssemblyCopyright("Copyright ©  2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
 
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
 
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("e24226f9-c177-458f-af34-9338e2699983")]
 
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.1.2")]
[assembly: AssemblyFileVersion("1.1.1.2")]

 

Если эти рекомендации не помогли решить проблему, обратитесь по адресу support@creatio.com, так как без прямого доступа сложно определить, в чем проблема.

 

С уважением,

Дарий

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

Настроен глобальный поиск 3.0.5. Создание сайта и поиска . Не работает. Ошибок на эластике и компонентах нет. 

 

Но в логах пишет:

2022-10-12 17:54:50,644 [94] ERROR IIS APPPOOL\creatio_01 OnError - Indexing request failed.

System.ArgumentException: SendIndexingRequest failed. IndexingApiUrl is incorect!

   at Terrasoft.GlobalSearch.Indexing.IndexingWebRequestFactory.CheckRequestData(IndexingRequestData message)

   at Terrasoft.GlobalSearch.Indexing.IndexingWebRequestFactory.CreateIndexingRequest(IndexingRequestData indexingRequestData)

   at Terrasoft.GlobalSearch.Indexing.IndexingActor.SendIndexingRequest(IndexingRequestData message)

   at Terrasoft.GlobalSearch.Indexing.IndexingActor.<.ctor>b__3_0(IndexingRequestData message)

 

С app-сервера телнетом на 81,82,83 и на эластик заходит.  

Нравится

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

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

 

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

 

С уважением,

Мирослава

Mira Dmitruk,

Из странного, в  инструкции:

 

et the values of the system settings:

 

“GlobalSearchUrl:” the full path to ElasticSearch, including the index. The web-api returns this value if you request it to add site search.

 

Example string for Docker: http://[SERVER2_IP_ADDRESS]:83/indexname.

 

Example string for Kubernetes: http://[GS-SEARCH-SERVICE_URL]/indexname.

 

Если вызвать в браузере, то:

 

http://[SERVER2_IP_ADDRESS]:83/indexname - говорит - 404

http://[SERVER1_IP_ADDRESS]:9200 /indexname - возвращает ответ. 

 

У нас на Docker развернуто.

Если указать в GlobalSearchUrl - for Kubernetes: http://[SERVER1_IP_ADDRESS]:9200 /indexname. то ошибка пропадает. Но поиск не работает

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

Добрый день,

 

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

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

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

 

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

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

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

Нравится

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 комментария
Лучший ответ

Доброго дня!

 

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

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

 

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

шчо?

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

Добрый день, необходимо написать веб сервис на 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&lt;int&gt;() &gt; 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 =&gt; 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&lt;int&gt;() &gt; 0;

P.S.: 

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

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

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

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

 

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

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

Нравится

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

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

 

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

Чтобы добавить записи в деталь, должна быть до этого сохранена основная запись.

Возможность обойти это можно посмотреть в детали Средства связи, но она совсем специфическая

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

При добавлении учетной записи ошибка "Обратитесь к системному администратору"

 

В консоле браузера есть ошибка:

all-combined.js:41 System.FormatException: The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.

   at System.Convert.FromBase64_Decode(Char* startInputPtr, Int32 inputLength, Byte* startDestPtr, Int32 destLength)

   at System.Convert.FromBase64CharPtr(Char* inputPtr, Int32 inputLength)

   at System.Convert.FromBase64String(String s)

 

Всё настроено по инструкции, базовая аутентификация работает

 

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

Нравится

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

Алексей,

 

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

 

Для более детального анализа проблемы просьба создать отдельное обращение на команду поддержки:

support@creatio.com

 

С уважением,

Глеб.

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

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

Экспорт списка записей по дефолту сохраняет данные тех полей которые настроены через вид, как сделать так чтобы выводились в Excel все поля без настройки через Вид и без доп приложений из маркета ? Есть ли вариант без разраба ? 

Нравится

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

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



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



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



С уважением,

Богдан

Можно настроить список в аналитике и экспортировать оттуда.



Можно добавить как справочник и экспортировать оттуда.



Можно в PowerBI получить данные через ODATA

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

Добрый день,

 

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

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

 

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

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

Спасибо

Нравится

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

Добрый день,

 

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

 

С уважением,

Дарий

Добрый день,

 

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

 

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

 

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

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

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

 

С уважением,

Дарий

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

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

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

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

 

Подскажите, есть ли в системе информация о том, какие именно записи (id)  были созданы в ходе импорта из Excel с помощью коробочной функциональности? 

 

Интересует информация как для коробочных, пример -  объект "ContactCommunication", так и для кастомных объектов.

 

Нравится

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

Добрый день!



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

 

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

 

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



С уважением,

Богдан

Bogdan,

Добрый день!

Благодарю за ответ!



Предоставленные опции не решают задачи:

1. Идентификации id созданной записи в детали;

2. Идентификации id созданной записи в кастомном разделе.

 

Есть ли способ сопоставлять конкретную операцию импорта и id созданных в ходе импорта записей перечисленных объектов?

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