Коллеги подскажите пожалуйста можно ли использовать описанный ниже подход и не будет ли в будущем проблем с поддержкой сервиса. Если есть более корректные способы реализации - буду благодарен

 

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

 

Планируем следующую реализацию.

Пользователь отправляет Get запрос на анонимный веб сервис и он возвращает ему html страничку с формой и кнопкой отправить где будет Get запрос на этот же сервис но с другими параметрами запроса

Нравится

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

Добрый день.

Вы можете воспользоваться примером из академии:
https://academy.terrasoft.ua/docs/developer/komponenty_prilozheniya/len…

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

Добрый день, при настройке IDE и после прохождения гайда 
https://academy.terrasoft.ua/docs/developer/instrumenty_razrabotki/vnes…
вылазит исключение при запуске тестовой либы
 

Нравится

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

Добрый день,

 

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

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

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

Подскажите, как можно переопределить класс с атрибутом DefaultBinding?

Если я делаю класс наследник с атрибутом [Override] то он не вызывается, если я еще раз задаю классу атрибут то выходит ошибка

Ошибка создания экземпляра класса "Terrasoft.Configuration.FileImport.IImportStageFactory" ---> Ninject.ActivationException: Error activating IImportStageFactory
More than one matching bindings are available.

 

Класс родитель:

Создание из фабрики:

Класс наследник:

 

Нравится

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

Добрий день!

 

Необходимо создать свой AppEventListener и в нем перебиндить ваш класс к необходимому интерфейсу.

public class UsrAppEventListener : AppEventListenerBase
{
    public override void OnAppStart(AppEventContext context) {
        base.OnAppStart(context);
        ClassFactory.Bind<IImportStageFactory, UsrImportStageFactory>();
    }
}

 

Добрий день!

 

Необходимо создать свой AppEventListener и в нем перебиндить ваш класс к необходимому интерфейсу.

public class UsrAppEventListener : AppEventListenerBase
{
    public override void OnAppStart(AppEventContext context) {
        base.OnAppStart(context);
        ClassFactory.Bind<IImportStageFactory, UsrImportStageFactory>();
    }
}

 

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

Знайшов після переходу на com тільки це: https://academy.creatio.com/api/netcoreapi/7.17.0/index.html

Чи є новіша версія? Якщо так, буду вдячний :)

Нравится

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

Доброго дня!

 

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

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

 

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

шчо?

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

После установки пакета, необходимо запустить сервис написанный на C#.

Может кто в курсе как можно это реализовать?

Нравится

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

в теории можно попробовать поставить через sql скрипт, который выполниться после установки пакета, задачу - job в scheduler на исполнение бп с нужным тебе кодом c# я бы туда копал.

Добрый день!

Вы можете запустить бизнес процесс по сигналу после установки пакета:

С уважением,
Богдан

Bogdan,

если установка задействует уровень entity

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

 В кастомном веб-сервисе есть метод создания договора, иногда срабатыват, а иногда нет, и пишет ошибку:
Terrasoft.Core.ProcessRunBySignalException: Ошибка при запуске процесса "Типовой договор", инициируемого событием "начальный сигнал". 

Кто-нибудь сталкивался с этим? Пытался найти процесс такой, но безуспешно.

Нравится

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

код метода создания договора можно?

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

Доброго времени суток!

Есть Бп в кором я выбираю коллекцию записей из Продукт в счете, для того чтоб потом их передать в 1с в формате json. Мне нужно выбрать поле "Code" из Продуктов чтоб потом записать  его отдельно. Выбрать я его смогла, проблема в том что я не понимаю в каком формате его нужно передать (коллекция записей?).  Буду благодарна за помощь.

Нравится

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

Добрый день, Анастасия.

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

Реализовать Вашу бизнес задачу пользовательскими средствами не получится. Для реализации необходимо использовать элемент скрипттаску и внутри кодом вычитывать значения из коллекций, соединять их по нужному признаку и передавать в веб-сервис как единую коллекцию. Либо же изменить веб-сервис таким образом, чтобы он принимал 2 разные коллекции. 

Подготовил несколько полезных ссылок с академии, в которых происходит работа с коллекциями внутри скрипттаски. Вы можете получать две такие коллекции, а потом с помощью C# создать свою коллекцию кастомных объектов(предварительно создав этот объект в конфигурации), где и объединять их. После записать данную коллекцию кастомных объектов в параметр процесса и с него брать значения для сервиса. Таким образом у Вас будет только один источник данных.
Либо же прямо в скрипттаске использовать запросы к БД, например, через EntitySchemaQuery и внутри вызывать веб-сервис с параметрами.

https://community.terrasoft.ru/questions/rabota-s-kollekciyami-v-bp
https://academy.terrasoft.ru/docs/7-16/developer/back-end_development/operatsii_s_dannymi_back_end/dostup_k_dannym_cherez_orm#reference-2158

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

Нравится

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

Добрый день, у нас есть чистая версия service 7.18.4 на Centos, которая работает через docker. При первой компиляции уже есть желтые предупреждения, весь лог предупреждений будет ниже. В поддержке ответили что это не влияет на систему, но мы выяснили что все таки влияет. Далее опишу БП в котором это не работает, у нас есть кубик с вопросом пользователю, если добавить только его в систему то все работает и сохраняется. Окей, дальше мы добавляем сценарий у которого есть только return true; и дальше такой процесс не публикуется и выходят те же предупреждения что и при первой компиляции.
Для всех предупреждения
Имя файла: Microsoft.Common.CurrentVersion.targets
Код MSB3277
Строка 2084
Вот описание предупреждений:
Found conflicts between different versions of "System.Resources.ResourceManager" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Collections" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Diagnostics.Debug" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime.Serialization.Xml" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime.Serialization.Primitives" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Linq" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime.Serialization.Json" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Collections.Concurrent" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Threading.Tasks" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Data.Common" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Collections.NonGeneric" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

Found conflicts between different versions of "System.Threading.ThreadPool" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime.InteropServices" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.IO.Compression" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime.Extensions" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Threading" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Text.RegularExpressions" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "netstandard" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Runtime" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.Xml.ReaderWriter" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.IO.FileSystem" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.
Found conflicts between different versions of "System.ComponentModel" that could not be resolved. These reference conflicts are listed in the build log when log verbosity is set to detailed.

Помню в сборке 7.17.4 мы отключали предупреждения, чтобы оно нормально компилировалось. После этого процессы публиковались. Вы можете попробовать сохранить процесс без публикации, а потом нажать Компилировать в конфигурации. Может, это поможет. Если нет - то добавление ошибки 2084 в исключения компиляции сборки должно помочь.

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

 

Добрый день, в отчёте ошибок компиляции присутствует скролл, скажите нет ли там ошибок, а не предупреждений?

Дима Вовченко,

проверил ещё раз, только предупреждения с кодом 

MSB3277

Евгений Шевченко,

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

Дима Вовченко,

да обращались,уже месяц общаемся пока толку нет

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

Всем доброго дня! 

В БП есть параметр Коллекция записей с вложенными параметрами, который приходит по вебсервису. Вопрос в том как правильно прочитать эту коллекцию в задании-сценарии и достать нужные параметры?

Нравится

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

Попробуйте может через CompositeObject получить коллекцию
Get<ICompositeObjectList<ICompositeObject>>("Ваш_параметр.ResultCompositeObjectList")

Литвинко Павел пишет:

Попробуйте может через CompositeObject получить коллекцию
Get<ICompositeObjectList<ICompositeObject>>("Ваш_параметр.ResultCompositeObjectList")

Здравствуйте,  получилось немного не так:

 

var list = Get<ICompositeObjectList<ICompositeObject>>("Units");
foreach (ICompositeObject item in list) {
    
    if (item.TryGetValue<string>("Name", out string value)) {
        Set<string>("ProcessSchemaParameter1", value);
   }

}

Спасибо за помощь!)

Показать все комментарии
Добрый день, подскажите как можно сменить порт 5000 при запуске creatio командой: 
COMPlus_ThreadPool_ForceMinWorkerThreads=100 dotnet Terrasoft.WebHost.dll

Нравится

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

Добрый день

В файле appSettings.json, в корневой папке

Добрый день

В файле appSettings.json, в корневой папке

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