Коллеги добрый день.

Сделал angular модуль по инструкции и подбросил его как файловый контент по инструкции и выполнил сборку через WokspaceConsole:

Terrasoft.Tools.WorkspaceConsole.exe -operation=BuildConfiguration -workspaceName=Default -webApplicationPath=C:\inetpub\wwwroot\BPM7172 -destinationPath=C:\inetpub\wwwroot\BPM7172\Terrasoft.WebApp -confRuntimeParentDirectory=C:\inetpub\wwwroot\BPM7172\Terrasoft.WebApp -force=true -logPath=C:\wc\log

Изображение удалено.

 

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

При обновлении пакетов из файловой системы он почему-то потребовал у меня наличие пакета "Desktop" - добавил его.

Структура файлов модуля вот такая:

Изображение удалено.

В descriptor.json:

{
    "bootstraps": [
        "src/js/bootstrap.js"
     ]
}

В bootstrap.js:

(function() {
    require.config({
        paths: {
            "angular-desktop-component": Terrasoft.getFileContentUrl("angular-Desktop", "src/js/angular-desktop-component.js"),
        },
		shim: {
				"angular-desktop-component": {
				deps: ["ng-core"]
			}
		}
    });
})();

Создал далее в пакете "Desktop" модуль "MIDesktopPage", добавил в него код по инструкции:

define("MIDesktopPage", ["angular-desktop-component"], function () {
	/**
	 * @inheritDoc Terrasoft.BaseModule#render
	 * @override
	 */
	return {
		methods: {
			init: function () {
				this.callParent(arguments);
			},
			render: function (renderTo) {
				this.callParent(arguments);
				const component = document.createElement("angular-desktop-component");
				component.setAttribute("id", this.id);
				renderTo.appendChild(component);
			}
		}
	};
});

Вызвал загрузку модуля по кнопке:

callbackDesktop: function (response) {
				this.sandbox.loadModule("MIDesktopPage", {
					id: "selectDataModule_id",
					renderTo: "centerPanel"
				});
			}

В итоге мне выбивает ошибку:

Изображение удалено.

Если нажать на 404 ошибку ссылается на отсутствие файла, который почему-то запрашивается вот отсюда:

Изображение удалено.

Если подбросить компонент по пути выше, то он ругается на MaximumCallStack - сомневаюсь что оно там лежать должно вообще. Прошу помочь разобраться что работает не так и почему, компиляции и прочие манипуляции не помогают. В самом модуле ангуляр ничего нету кроме черного квадрата в css.

Заранее благодарю откликнувшихся.

Нравится

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

Добрый день,

 

Нет, компонент там не должен лежать, откуда он вызывается в консоли (где 404 ошибка). Я тоже при создании компонента получал сначала это сообщение, пока не подключил компонент к модулю AccountSectionV2 с названием, как указано в параметре paths файла bootstrap.js, не обновился из файлового контента и не перезагрузил приложение (тесты проводил на сборке 8.0.2). После этого ошибка пропала и модуль стал грузиться нормально. Так по Вашим скриншотам ошибки не вижу, разве что где-то в названии затесалась какая-то буква ("о" или "а", например) на кириллице.

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

Существует ли возможность создание пользователя, функциональной или организационной роли с помощью бизнес процесса (или иным способом пр. скриптом в БП)?

 

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

 

Нравится

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

Добрый день.



Описанную логику можно реализовать с помощью ScripTask элемента в бизнес процессе.

Подробнее про элемент процесса [Задание-сценарий]:

https://academy.terrasoft.ua/docs/7-17/user/biznes_processy/spravka_po_…



Также вы можете создавать пользователя с помощью событийного слоя, подробнее на сайте:

https://academy.terrasoft.ua/docs/7-17/developer/back_end_razrabotka/bi…



Также рекомендую ознакомиться с другим постом, в нем подробно рассматривалась логика добавления пользователя:

https://community.terrasoft.ua/questions/zapusk-processa-po-sozdaniyu-p…

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

Добрый день. Было установлено приложение Invoice payment schedule for Creatio, в котором есть поле Плановая дата, которое автоматически заполняется в Исходном коде InvoicePaymentScheduleManager пакета InvoicePaymentsSchedule. Можно ли убрать эту логику? 

Нравится

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

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

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

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



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

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

Коллеги, доброго дня!

Эксплуатируем систему уже 5 лет, накопились бизнес-процессы, которые более пользователями не используются. Смотрю в сторону того, чтобы их удалить, дабы не смущать людей и новых разработчиков. Хотелось поинтересоваться у знающих и опытных, насколько целесообразны такие процедуры, какие есть подводные камни и неочевидные выгоды.

Нравится

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

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

Владимир Соколов,

Старые версии бизнес процессов можно удалять через конфигурацию. Для того, чтобы понять, какую версию БП нужно удалить - необходимо знать Название версии БП (не заголовок). Его можно посмотреть в Дизайнере процессов, открыв данную версию. На вкладке "Настройки" в пол "Имя".

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

Добрый день!

 

Был ли у кого-то опыт отображения конструктора процесса в карточке объекта?

Для того, чтобы пользователь мог сам настроить бизнес процесс по обработке определенного объекта, и наглядно видел схему в карточке объекта.

 

В стиле того, как это сделано в "кампаниях" продукта маркетинг

Нравится

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

Вадим, добрый день!

Чисто технически возможно реализовать что-то подобное на схему кампании, однако, для этого необходимо большое  количество трудозатрат. Наподоби вкладки "Обработка" в обращениях, "Схема кампании" является уникальным функционалом для раздела. Для его повторение необходимы навыки разработки, системой не предусмотрено повторение такого пользовательскими средствами. Если же вы всёже желаете это реализовать, то необходимо будет проанализировать содержимое пакетов Campaigns, CampaignDesigner, CampaignElements и тд.

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

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

Добрый день!

Выполняю автонумерацию записей по статье:

 https://academy.terrasoft.ru/docs/developer/elements_and_components/bas….

На клиентской части все работает.

На серверной части Номер записи не формируется,

стал разбираться - не срабатывает действие [сгенерировать номер по порядку],

класс объявлен, но никакой обработки в нем нет:

public partial class GenerateSequenseNumberUserTask

    {

    }



Как на данный момент формируется автонумерация через БП?

Версия 7.17.4.

Нравится

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

Реализация лежит в файле GenerateSequenseNumberUserTaskPartial

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

Добрый день.

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

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

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

Ошибка при добавлении в таблицу с правами в консоли на скрине. 

Изображение удалено.  Права все выданы как и на операции так и по записям - 100%.

*Компилировал, генерировал схемы, чистил редис.

**Что интересно, для все старых схем права работают.

 

Нравится

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

Посмотрите, есть ли ваши объекты в справочнике "список объектов, доступных пользователю портала"

Посмотрите, есть ли ваши объекты в справочнике "список объектов, доступных пользователю портала"

Трефилов Павел Сергеевич,

Spasibo!

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

При создании сценария через JMeter создаются обращения и переводятся в работу. Необходимо чтобы и наряды переходили в статусы дальше, но через штатные решения jmetr'а решения не было найдено. Пришла идея что возможно нужно что-то отключить в системе, потому что отправляя запросы со сгенерированными через jmeter guid для нарядов система заменяет на автоматически созданные. У кого какие есть идеи? Возможно ли отключить проверку и ставить свои значения?

Нравится

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

Можете написать свой сервис и в методе этого сервиса менять статус обращения и сохранять обращение без валидации полей.

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

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

Нужно смотреть, какие запросы к DataService или другим стандартным сервисам Вы отправили. Например, в Fiddler или встроенными средствами браузера.

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

Доброго дня, имеется bpm которая при GET запросе 0/ServiceModel/EntityDataService.svc/ContactColletion возвращает xml с контактами, можно ли GET запросом возвращать JSON и если да, то где про это написанно? Если нельзя, то как вернуть JSON для oData 3?

Нравится

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

Добавьте header к запросу

Accept: application/json;odata=verbose

Добавьте header к запросу

Accept: application/json;odata=verbose

я смог сделать это в постмане, но все же не понятно, мб подскажете возможно ли в террасофте возвращать json по обращению к uri, если можно сделать это не переписывая сервис, буду благодарен за подсказку)

условно я иду по адресу /0/ServiceModel/EntityDataService.svc/ContactCollection и мне падает 

 

{

    "d": {

        "results": [

            {

                "__metadata": {

                    "id": "http://localhost:85/0/ServiceModel/EntityDataService.svc/ContactCollect…",

                    "uri": "http://localhost:85/0/ServiceModel/EntityDataService.svc/ContactCollect…",

                    "type": "Terrasoft.Configuration.Contact"

                },

                "Photo": {

                    "__deferred": {

                        "uri": "http://localhost:85/0/ServiceModel/EntityDataService.svc/ContactCollect…"

                    }

                },

                "Owner": {

                    "__deferred": {

                        "uri": "http://localhost:85/0/ServiceModel/EntityDataService.svc/ContactCollect…"

                    }

...и т.д.

Насколько понял, только заголовком. Такой формат здесь не поддерживается: «ContactCollection?$format=json». А в OData 4 по умолчанию идёт JSON.

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

Понимаю конечно, что с SAPом сравнивать не очень хорошая идея, но все же. При работе с SAP дл переноса обновлений можно выставить всем пользователям уведомление через систему о планируемых работах, а на период работы выгнать из системы и заблокировать на вход в систему всех пользователей (кроме ИТ). Очень удобная вещь, позволяет перенести обновление без риска потери данных за период сессии у пользователя и практически убирает весь негатив польхователей на тормоза в системе на период её компиляции.

Попробовал в Creatio заблокировать всех пользователей на вход, но такого функционала просто нет - можно решить БП. Уведомления тоже можно сделать БП, Закрытие активной сессии по идее тоже не проблема. 

Собственно вопрос - кто как работает и оповещает пользователей о технических работах в системе?

Нравится

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

Ну помимо предложенного способа с Бп, есть таблицы в базе данных. Можете подсоединится, вытянуть активных пользователей и уже как-то уведомить их письмом на почту, в мессенджер и т.д Сделать это можно прямо на сервере где развернут IIS простой консолькой на c#, запуск консольки делать планировщиком Windows по таймеру или триггеру

Ну помимо предложенного способа с Бп, есть таблицы в базе данных. Можете подсоединится, вытянуть активных пользователей и уже как-то уведомить их письмом на почту, в мессенджер и т.д Сделать это можно прямо на сервере где развернут IIS простой консолькой на c#, запуск консольки делать планировщиком Windows по таймеру или триггеру

Мы рассматриваем вариант возможной реализации подобной функциональности в базовой логике наших продуктов.

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

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