Добрый день. При обращении к API по url /0/ServiceModel/EntityDataService.svc/$metadata или другим url. Выдает ошибку Internal Server Error. Unable to find property 'ITdsToday' on type 'Terrasoft.Configuration.Case'. Please make sure that the property name is correct.

Может кто подсказать в чем проблема и куда копать?

Нравится

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

Добрый день.

Уточните следующею информацию:
1) Тело запроса
2) Скрин настроек колонки ITdsToday в объекте Case.
3) Какие другие url возвращают такую ошибку?

 

Mykhailo Storozhuk,

1)В тело пустое кидаем.

2)В БД есть столбец, но в конфигураторе у пакета Case в объекте Case нет такого св-ва.
3)Например /0/ServiceModel/EntityDataService.svc/CaseCollection или /0/ServiceModel/EntityDataService.svc/ContactCollection 

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

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

Mykhailo Storozhuk,

Запустили компиляцию, выдает Внутренняя ошибка компилятора (код ошибки: 1) В чем может быть причина?

Уточните версию приложения. 

Mykhailo Storozhuk,

Service Creatio Enterprise 7.12.2

Dmitriy Doronin,

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

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

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

Подскажите, каким образом можно записать в свойство caption элемента label многострочный текст? Параметр wordWrap в values не работает.

 

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

Нравится

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

Добрый день, Тимофей.

Похожий вопрос обсуждался тут.

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

Есть элемент, описанный как:

{
                            id: config.name + "ChatTextEdit",
                            markerValue: config.name,
                            className: "Terrasoft.MemoEdit",
                            classes: { wrapClassName: ["is-scrolling"] },
                            value: { bindTo: "ChatValue" },
                            keyup: { bindTo: "onMemoKeyPressed" },
}

К его дочернему элементу (который имее суффикс '-wrap', а полностью id элемента будет выглядить как 'ChatSendBoxChatTextEdit-wrap'), следует добавить CSS-класс "is-scrolling". Я пытаюсь сделать это через свойства classes: { wrapClassName: ["is-scrolling"] } в основном элементе, однако класс к элементу 'ChatSendBoxChatTextEdit-wrap' не добавляется, не подскажете что не так? Или есть другой способ как это сделать?

Нравится

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

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

В данном примере Вы добавили класс "is-scrolling"  к самому элементу, а не дочерним. Самым простым способом решения будет назначить Вашему элементу кастомный класс (например "MyContainer"), потом в стилях добавить запись ".MyContainer *" и прописать стили для всех дочерних элементов. 

 

.MyContainer *{
 
}

 

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

Добрый день!
Прошу помощи у знатоков серверной части Creatio. 
При работе с EntitySchemaQuery после указания фильтров и использования метода GetEntityCollection - мы получаем коллекцию сущностей какого-то конкретного объекта. Так вот вопрос. Возможно ли данную коллекцию сущностей (Entity) преобразовать к конкретному Entity (Например, Account или Contact) используя стандартный функционал?
Я знаю, что можно сделать что-то подобное:

var account = new Account(userConnection);

account.FetchFromDB(id);

 

Но, возможно ли сделать из этого коллекцию из нескольких результатов с фильтрами, например из ESQ?

Нравится

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

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

 

Вот таким образом можно из одной коллекции с помощью фильтров получать разные наборы данных, а потом уже работать со списком:

var collParameters = projectSchemesCollectionParameters.Where(p =>
    p.GetTypedColumnValue<string>("SchemeName") == 'Test name');
var collParametersList = collParameters.ToList();

 

 

Алла Савельева пишет:

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

Вот таким образом можно из одной коллекции с помощью фильтров получать разные наборы данных, а потом уже работать со списком:


 
var collParameters = projectSchemesCollectionParameters.Where(p =>
    p.GetTypedColumnValue<string>("SchemeName") == 'Test name');
var collParametersList = collParameters.ToList();

Спасибо, но это не то, о чем я спрашивал. Я имел ввиду что-то вроде этого:

 

entitySchemaQuery.GetEntityCollection(userConnection).Select(a =&gt; a as Account);

 

Тимофей Ромах,

Добрый день.

Подобная конструкция не будет работать - 

entitySchemaQuery.GetEntityCollection(userConnection).Select(a =&gt; a as Account);

 

  • При получении коллекции с помощью ESQ, вы будете работать уже с Enitity, используя его методы - например при получении значений из тех колонок, что вы вытянули через ESQ (конечно с примененными фильтрами).

 

 

      Но дочернего объекта по цепочке - не будет.

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

        Добрый день!

         

        Подскажите, пожалуйста.

        В разделе есть страница.

        На странице есть деталь.

        Деталь работает нормально.

        Но при добавлении (через "Настройка колонок") одного поля деталь перестает корректно работать.

        Редактировать записи невозможно.

        Разметка едет. Кнопки не работают.

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

        Нравится

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

        На это поле настроены бизнес правила видимости/доступности?

        Дмитрий Антохин,

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

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

        Есть ли какие-нибудь стандартные методы реализации постраничного вывода записей на детали? Или придется создавать свои?

        Нравится

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

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

        На странице детали есть (и было в 7.12) логическое свойство IsPageable (признак активности постраничной загрузки), но оно отвечает не за листание по страницам, а за отображение сразу только части записей с последующей подгрузкой снизу очередной порции. По умолчанию оно включено, на некоторых деталях, где записей не может быть много (например, дней недели в расписании), его отключают.

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

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

        Подскажите пожалуйста как можно настроить тестовые данные, для того что бы протестировать Delete с помощью библиотеки Terrasoft.TestFramework?

        Может у вас есть пример кода?
        Спасибо.

        Нравится

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

        Александр, для создания записей, как и везде в скриптах, можно воспользоваться функциональностью классов либо Entity, либо Insert, иногда используют их совместно, как в функциях, которые применялась для подготовки тестирования работоспособности Delete в ядре:

          public static void CreateSchemaDataInDB(UserConnection userConnection, EntitySchema entitySchema,
            params object[] values) {
           Entity entity = entitySchema.CreateEntity(userConnection);
           int columnIndex = 0;
           foreach (object value in values) {
            entity.SetColumnValue(entitySchema.Columns[columnIndex++], value);
           }
           var insert = entity.CreateInsert();
           insert.Execute();
          }
         
          public static void CreateSchemaDataInDB(UserConnection userConnection, EntitySchema entitySchema,
            TestData testData) {
           var inserts = new Collection&lt;Insert&gt;();
           foreach (var dataRow in testData) {
            Entity entity = entitySchema.CreateEntity(userConnection);
            foreach (TestDataColumnValue dataColumn in dataRow) {
             entity.SetColumnValue(dataColumn.GetColumnValueName(), dataColumn.Value);
            }
            inserts.Add(entity.CreateInsert());
           }
           using (DBExecutor dbExecutor = userConnection.EnsureDBConnection()) {
            foreach (Insert item in inserts) {
             item.Execute(dbExecutor);
            }
           }
          }

        Но конкретная реализация зависит от того, что Вы хотите создавать и удалять в ходе своего теста.

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

        А возможно не создавать реально данные в базе? а использовать какое-то темповое хранилище?? Или что бы проверить Delete мне необходимо создавать реальные данные в базе?? и Как в таком случае в тестах инициализировать UserConnection?

        Спасибо.

        В этой теме есть примеры как имитации данных в базе, так и с формированием реальных запросов, но без их запуска, со сравнением полученного SQL-кода. Там тестируют Select, можно так и с Delete.

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

         

        Я видел эту тему, но код который используется в нем у меня не компилируется так как не видно некоторых типов

        TestDBTypeConverter
        TestData
        TestData testData = UnitTestUtilities.GetTestDataWithStructure(entitySchemaManager, "Activity");

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

        у меня версия системы 7.12.2

         

        В 7.12 уже должны работать примеры из этой статьи, там есть ссылка на исходники SDK.

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

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

         

        Задача: открывать модальное окно с параметрами из объекта Specification (Характеристика), что бы просто показать информацию из него.

         

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

        Нравится

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

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

         

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

         

        Либо, если нужно только смотреть, можно создать многострочное поле, где вывести в каждой строке название и содержимое каждого параметра. А синхронизировать с деталью можно в БП на событиях её объекта.

         

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

        Добрый день.

         

        Не могу понять в чем дело, среда настроена на разработку в файловой системе файлы .cs выгружаются без проблем в папку  Autogenerated\Src, но файлы .js почему то нет. Можете помочь разобраться в чем дело?

        Нравится

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

        Здравствуйте! Вам не эта папка нужна, а Pkg. Разблокируйте пакет и в интерфейсе Конфигурации, сделайте действие - Выгрузить пакеты в файловую систему. Данный пакет выгрузится в данную папку. 

        Нигрескул Алексей,

        Нет, я именно про те которые выгружаются в 

        Autogenerated\Src там обычно хранятся файлы из тех пакетов которые недоступны для редактирования, у меня туда перестали выгружатся js файлы

         

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

        Михаил, Вы делаете то же, что автор этой темы?

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

        Нет. я просто включил разработку в файловой системе.

        Михаил, уточнил у разработчиков функциональности:

        Если надо посмотреть код js схемы это надо делать через веб-интерфейс, а смотреть его в Autogenerated\Src это лайфхак, а не фича.

        Как включить генерацию js кода в Autogenerated\Src (Обходное решение):

        1. Создается новый временный пакет
        2. В нем создается новая временная js схема
        3. Нажать на кнопку "Выгрузить в файловую систему" и в папке Autogenerated\Src появятся js файлы.
        4. Затем временный пакет со схемой можно удалить

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

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

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

        Подскажите пожалуйста нужна ли дополнительная настройка для того что бы отправлять данные в elasticsearch через log4net?

        Я использую библиотеку - log4net.Elasticsearch. В обычном консольном приложении все работает, но из creatio не отправляется.

        Спасибо.

        Нравится

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

        Александр, уточните, что именно Вы делаете? Установили какое-то дополнение к log4net? Это? Как именно подключили и работает там и не работает здесь?

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

        Да, я скачал библиотеку из NuGet - предварительно эту библиотеку я тестировал на отдельном консольном приложении логи писались корректно, потом добавил эту библиотеку в bpm, добавил в log4net.config аппендер - но он не пишет лог.

         

        Возможно, у Вас разные версии библиотеки log4net в отдельно установленной программе и в 7.Х. Тем более, используемая версия сайта 7.12 уже довольно старая.

         

        Видимо, ранее такую интеграцию кроме Вас никто не пробовал. Без доступа к развёрнутому и настроенному стенду сложно сказать, что не так.

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