привет,

 

возникла след проблема - загрузил в отдельный пакет-проект reference assembly, пересобрал ассембли локально и хочу снова загрузить. для этого я удаляю старую дллку с помощью Configuration страницы, загружаю новую, нажимаю Compile All кнопку. после этого все равно остается старая дллка и я не могу проверить новые фиксы/ функционал и тд. в чем может быть проблема? 

 

использую локальную разработку, .net core 3.1 приложение в докере, file mode - false.

Нравится

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

Добрый день.

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

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>

Cherednichenko Nikita,

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

но все равно осталась проблема вызова рест ендпоинта. не получается сделать вызов если код находится в библиотеке (reference assembly), а не в исходнике кода (source code).

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

 

using System.ServiceModel;
using System.ServiceModel.Web;
using System.ServiceModel.Activation;
using Terrasoft.Web.Common;
 
[ServiceContract]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class GreetingService : BaseService
{
    [OperationContract]
    [WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)]
    public string Test()
    {
 
        return "test output";
    }
}

в чем может быть проблема? или рест сервисы в reference assembly не поддерживаются/надо что-то еще добавить?

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

Привет,

 

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

На данный момент код выполняется в бизнес процессе как script task.

теперь мне его надо сохранить в базу данных. как это сделать? 

Прочитав статью Добавить данные https://academy.terrasoft.ua/docs/user/biznes_processy/spravka_po_eleme… я не уверен что это то, что мне нужно. 

 

Спасибо!

Нравится

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

попробовать через c# скрипт достучатся до пропети веб сервиса где лежит результат и там уже через Entity/Insert/CustomQuery.

попробовать через c# скрипт достучатся до пропети веб сервиса где лежит результат и там уже через Entity/Insert/CustomQuery.

Стас Гаврилюк,

спасибо за помощь. получилось сделать с помощью Entity.

 

var warehouseSchema = UserConnection.EntitySchemaManager.FindInstanceByName(WarehouseTableName);
var entity = warehouseSchema.CreateEntity(connection);
 
var entityExists = entity.FetchFromDB(conditionColumnName: WarehouseRefColumn, conditionValue: instance.Ref);
 
entity.SetDefColumnValues();
entity.SetColumnValue(WarehouseCityColumn, instance.CityDescription);
entity.Save();

 

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

Добрый день. 

Когда БП запускаешь из серверного кода при помощи конструкции:

var schema = UserConnection.ProcessSchemaManager.GetInstanceByName(@"Process1");

То будет в дальнейшем вызвана актуальная версия БП или та, чьё имя полностью совпадает с написанным в поиске схему, независимо от того, является она актуальной или нет?

Нравится

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

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

 

Спасибо за обращение.

 

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

 

С уважением,

Анастасия 

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

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

https://academy.terrasoft.ua/api/netcoreapi/7.18.0/api/Terrasoft.Core.P…

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

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

Как привязать значения справочников вместе со страницами редактирования?

 

 

Нравится

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

Добрый день.

Для того чтобы перенести значения справочников, а также привязки справочника к странице, Вам нужно дополнительно переносить "Данные" из конфигурации.
Именно в данных хранится нужная вам информация.
Пример данных для страницы Контакты:

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

Информация из академии:
Привязать данные к пакету 

я допускаю что дело не в привязке к пакету, а биндингу справочных значений к страницам. тогда нужно копать в сторону внесения правок в SysModuleEdit(тут для страницы конкретное значение справочника) SysEntityModuleEntity(тут указывается uid справочника) пример можно посмотреть как сделано для Activity и тут

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

Добрый день, подскажите как можно настроить визуализацию коллекции на преднастроенной странице? Есть БП который читает коллекцию и преднастроенная страница с параметром “Сериализуемый список составных значений” и нужными полями. Не могу понять как вывести теперь нужный список на страницу визуально. Заранее спасибо.

Нравится

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

Добрый день Виталий,

 

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

 

С уважением,

Олег

Oleg Drobina,

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

Пробовал код с документации:

var list = Get<ICompositeObjectList<ICompositeObject>>("ReadDataUserTask1.ResultCompositeObjectList");

var sb = new StringBuilder();

foreach (ICompositeObject item in list) {

   if (item.TryGetValue<string>("Name", out string value)) {

       sb.Append(value).Append( " | ");

   }

}

Set<string>("ProcessSchemaParameter1", sb.ToString());

return true;

 

И тот что в  треде, не могу понять что упускаю.

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

Добрый день. Мне необходимо при нажатии кнопки сохранять данные в формате excel и скачивать этот файл. Данные получаю из веб сервиса в формате JSON.

Есть ли такая возможность?

Нравится

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

Добрый день, подскажите почему падает докер контейнер с глобальным поиском? Делал по инструкции, версия 3.0 https://academy.terrasoft.ua/docs/user/razvertyvanie_onsite/nastrojka_k…
Ошибка на шаге 3 "Перейдите в папку с компонентами /opt/compose/elasticsearch и выполните команду": docker-compose up -d

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

Нравится

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

Добрый день!

Согласно скриншоту, ваш контейнер в состоянии “Exited (1)”

1) посмотрите логи контейнера;

 

2) Exit Code 1: указывает на сбой из-за ошибки приложения.

Обычно, указывает, что контейнер остановился либо из-за ошибки приложения, либо из-за неправильной ссылки в Dockerfile на файл, которого нет в контейнере.

Про этот код ошибки, можно прочитать в открытых источниках: https://betterprogramming.pub/understanding-docker-container-exit-codes…

 

3) docker-compose --verbose up - эта команда покажет вам логи установки контейнеров и вы сможете увидеть все этапы установки. 

Добрый день!

Согласно скриншоту, ваш контейнер в состоянии “Exited (1)”

1) посмотрите логи контейнера;

 

2) Exit Code 1: указывает на сбой из-за ошибки приложения.

Обычно, указывает, что контейнер остановился либо из-за ошибки приложения, либо из-за неправильной ссылки в Dockerfile на файл, которого нет в контейнере.

Про этот код ошибки, можно прочитать в открытых источниках: https://betterprogramming.pub/understanding-docker-container-exit-codes…

 

3) docker-compose --verbose up - эта команда покажет вам логи установки контейнеров и вы сможете увидеть все этапы установки. 

Жмурко Сергей,

спасибо в моем случае выдал Exit Code 1, а в логах удалось найти что на сервере не хватает 2Гб оперативной памяти

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

Нравится

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

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

Обычно подобные ошибки возникают при кастомизация и для выявления их причины необходимо проводить отладку. Без этого нельзя ничего сказать о решении. В любом случае стоит провести полную генерацию/компиляцию, это либо решит проблему, либо даст понять, что дела в какой-то из схем и прочее.

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

Добрый день!

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

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

Используем oData для работы с API.

Пример запроса:
 

-header 'Accept: application/json' \
--header 'Content-Type: application/json; charset=utf-8; IEEE754Compatible=true' \
--header 'ForceUseSession: true' \
--header 'BPMCSRF: UX.Xa1Suc01arS7jMhppkO' \
--data-raw '{
"ProductId": "e85b3371-79e5-4606-9e1c-70976a09c040",
"OrderId": "102b0d66-3744-44de-95b9-fb5ee806bc04",
"Name": "Yeremenko Test",
"BaseQuantity": "1",
"Quantity": "1",
"UnitId": "917f764e-62e6-df11-971b-001d60e938c6",
"CurrencyId": "915e8a55-98d6-df11-9b2a-001d60e938c6",
"PriceListId": "fa689c95-c63c-4908-8fd2-19a95e0425bd",
"CurrencyRate": "1",
"TaxId": "c7ec6b33-a9d6-df11-9b2a-001d60e938c6"
}

 

Нравится

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

Добрый день! Не совсем понимаю что вы хотите сделать. Разве вы уже не указали id продукта, у которого уже посчитана цена. 

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

Добрый день всем ! Начинаю работать с creatio и мне поступило задание создать кейс из нескольких стадий и отредактировать каждую стадию. В Академии вроде и расписано все, но расписано то, что и так понятно, а то, что действительно нужно - отсутствует. Есть ли какие-либо другие способы ознакомиться с этой средой ?

Нравится

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

Кирилл, здравствуйте!
Помимо статей на академии есть бесплатные тренинги: https://academy.terrasoft.ru/trainings
Настройка кейсов доступна в отдельном модуле: https://academy.terrasoft.ru/online-courses/nastroyka-keysov-v-creatio

Знакомство с платформой бывает сложным, но это проходит.

Есть видео ресурсы ещё. Если английским владеете, то партнёры неплохое сделали https://youtu.be/pyjm3_1POEo

Кирилл, здравствуйте!
Помимо статей на академии есть бесплатные тренинги: https://academy.terrasoft.ru/trainings
Настройка кейсов доступна в отдельном модуле: https://academy.terrasoft.ru/online-courses/nastroyka-keysov-v-creatio

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