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

 

Кто-нибудь знает, возможно ли в модальное окно, описанное в данной статье, добавить детали?

Нравится

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

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

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

Добрый день.

Есть ли возможность извлечь из БД смену статусов заказов?

Например "Обработан", "В производстве" , "Отгружается", "Отгружен".

Статус показывается в кейсах на странице.

Обновление статусов приходит из SAP, можно взять из логов, распарсить их.

Но может быть есть более простой вариант?

Нравится

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

Поясните, что значит извлечь из БД смену статусов заказов. ловить момент когда изменен статус заказа? Тогда все зависит от того как настроена интеграция с sap. Судя по тому что описали прямой update в БД или web-сервис с классом update. Если сервис, то надо переделать на ESQ и тогда будет генерироваться сигналы на событие ихменения записи.

Алексей Следь,

Добрый день.

Приходит xml сообщение,  в котором прописан код статуса. И заказ обновляется в БД.

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

 

Самый простой вариант извлечь из БД это обычным select`ом. 

Объект по которому у Вас строятся кейсы может быть другой, но запрос будет примерно таким:

Select * from OrderStatus Where Id = 'Id_записи_заказа'



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

 

Также можете зарегистрировать деталь на основании объекта по которому у вас строятся статусы заказов, и выгружать данные экспортом в excel из детали. 

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

Добрый день. При обращении к 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?

Нравится

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

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

 

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

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 (конечно с примененными фильтрами).

 

 

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

Нашел решение, это возможно через Cast, а именно:

 

entitySchemaQuery.GetEntityCollection(userConnection).Cast&lt;Account&gt;();

После чего мы получаем IEnumerable<Account> с колонками, добавленными в 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 комментарий

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

 

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

 

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

 

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