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

Нравится

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<Insert>();
   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 уже довольно старая.

 

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

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

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

Нравится

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

Добрый день!

 

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

 

В целом на данном community обсуждаются вопросы с продуктами Creatio, поэтому если рассматривать решение данной задачи в CRM есть функциональность сводных таблиц, которая должна покрыть эту бизнес задачу, рекомендую ознакомиться с ней тут - https://academy.terrasoft.ru/documents/base/7-16/blok-itogov-spisok

 

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

 

https://academy.terrasoft.ru/documents/service-customer-service/7-5/nas…

Добрый день!

 

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

 

В целом на данном community обсуждаются вопросы с продуктами Creatio, поэтому если рассматривать решение данной задачи в CRM есть функциональность сводных таблиц, которая должна покрыть эту бизнес задачу, рекомендую ознакомиться с ней тут - https://academy.terrasoft.ru/documents/base/7-16/blok-itogov-spisok

 

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

 

https://academy.terrasoft.ru/documents/service-customer-service/7-5/nas…

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

Добрый день! Недавно задался таким вопросом. А возможно ли в bpm использовать DI, как, например, в ASP.NET? Нагуглить ничего не смог, поэтому обращаюсь сюда.)

Нравится

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

Тимофей, в ядре используется, есть пространство Terrasoft.Core.DI. 

В конфигурации примеров его применения нет.

 

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

Всем привет, подскажите кто-то сталкивался с такой проблемой?

 

Нравится

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

Александр, ошибка «sectionGroupName» связана с параметром webApplicationPath.
Это путь к веб-приложению, из которого будет вычитана информация по соединению с БД. Необязательный параметр. Если не указан — соединение будет установлено с базой, указанной в строке соединения в файле App.Config приложения. Если указан — соединение будет установлено с БД из файла ConnectionStrings.config веб-приложения. Используется для всех операций, в которых участвует БД.

В Вашем случает аргументом параметра является не корневая директория приложения (пример: C:\Bpmonline\WebApp\CRMBPM), которая содержит файл ConnectionStrings.config, а C:\Bpmonline\WebApp\CRMBPM\Terrasoft.WebApp, что является некорректным.

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

Спасибо.

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

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

 

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

Нравится

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

Легче всего взять готовые шаблоны из https://marketplace.terrasoft.ua/template/templates-developing-custom-details-creatio

Легче всего взять готовые шаблоны из https://marketplace.terrasoft.ua/template/templates-developing-custom-details-creatio

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

Здравствуйте, коллеги!

Не получается правильно собрать https://github.com/miyconst/Cyriller, когда подкладываю DLL в пакет и пытаюсь использовать, сообщает:
Сервер обнаружил ошибку при обработке запроса. Сообщение об исключении: "Не удалось загрузить файл или сборку "Cyriller, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" либо одну из их зависимостей. The system cannot find the file specified.".

Как можно отследить, какой зависимости не хватает?

Нравится

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

У библиотеки Cyryller есть свои библиотеки от которых она зависит, это ни как не относится к зависимостям пакетов в приложении Creatio. Убедитесь, что вы вложили так же Cyryller.Model.dll и Cyryller.Rule.dll

У библиотеки Cyryller есть свои библиотеки от которых она зависит, это ни как не относится к зависимостям пакетов в приложении Creatio. Убедитесь, что вы вложили так же Cyryller.Model.dll и Cyryller.Rule.dll

А вообще, судя по Github, библиотека с открытыми исходниками. Лучше будет не подключать как внешнюю, а создать в 7.Х пакет и перенести всю логику  в его cs-схемы, при необходимости адаптировав. Если всё пойдёт хорошо, можно будет в маркете опубликовать. 

Кстати, да, хорошая идея.

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