I am trying to start the process and for the first time I am faced with the problem of setting parameters in the BP in an object of the Process class. Why does it go into the "if" block with verification, but an error occurs when assigning?Изображение удалено.

Нравится

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

Hello Mikhail,

Following the link below you can find a community post with a similar problem and an example of starting BP from the server-side. Using this code example you can probably fix the error.

 

https://community.creatio.com/questions/calling-business-process-parame…



Hope this helps.

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

Пытаюсь запустить процесс и ни первый раз сталкиваюсь с проблемой задания параметров в БП в объекте класса Process. Почему в блок "if" с проверкой заходит, а при присвоении возникает ошибка?

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

Нравится

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

Михаил, добрый день!

В вашем случае для запуска процесса стоит попробовать использовать FlowEngine, привожу пример его использования:

using Terrasoft.Core;

using Terrasoft.Core.Process;

using Terrasoft.Core.Process.Configuration;

 

ProcessSchema schema = UserConnection.ProcessSchemaManager.GetInstanceByName("LeadManagement");

//schema = UserConnection.ProcessSchemaManager.GetInstanceByUId(leadManagementProcessUId);

 

//different engines for interpretable and compiled BP

bool canUseFlowEngine = ProcessSchemaManager.GetCanUseFlowEngine(UserConnection, schema);

if(canUseFlowEngine) {

    var flowEngine = new FlowEngine(UserConnection);

    var param = new Dictionary<string, string>();

    param["LeadId"] = Entity.Id.ToString();

    flowEngine.RunProcess(schema, param);

} else {

    Process process = schema.CreateProcess(UserConnection);

    process.SetPropertyValue("LeadId", Entity.Id);

    process.Execute(UserConnection);

}        

FlowEngine считается устаревшим или я ошибаюсь?

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

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

Задача: изменить механизм копирования записи сущности – не копировать (или очищать после копирования) справочные поля, ссылающиеся на деактивированные записи справочников.

Желательна реализация без прямого указания (или с минимальным указанием)  имён полей в коде.

Такой подход приводит к полному копированию, включая значения полей, для которых установлен запрет копирования при копировании записи:

var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "Lead");
esq.AddAllSchemaColumns();
var entity = esq.GetEntity(UserConnection,id);
Entity newEntity = (Entity)entity.Clone();

Буду благодарен за «наводки».

Нравится

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

Добрый день!

Рекомендую вам ознакомится с этим обсуждением. Не совсем понимаю, что вы подразумеваете под деактивированными записями, однако в приведённом обсуждении есть пример, на котором должно действовать свойство "Копировать данные при копировании записи". Если же не поможет, то стоит смотреть на реализацию кнопки "Копировать" в записи раздела.

Добрый день.

Спасибо за информацию. Помогла.

Под декативированными записями я понимаю записи, у которых поле RecordInactive=true (описание).

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

Как изменить высоту текстового поля? Мне необходимо из 1-строчного поля сделать 4-строчное поле.

Нравится

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

Сделать тип "неограниченной длины", а потом растянуть поле в дизайнере. 

Сделать тип "неограниченной длины", а потом растянуть поле в дизайнере. 

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

Какие сборки Linux рекомендуются к установке помимо Debian? Распространяется ли поддержка на сборку с использованием альтернативных версий Linux (Ubuntu, Astra и др.)

Нравится

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

Работоспособность приложения была протестирована именно на Linux Debian, поэтому гарантировать корректную работу функционала мы можем только для этого дистрибутива. Однако приложение может быть успешно установлено и на другие дистрибутивы, есть кейсы с дистрибутивами Ubuntu, Astra Linux, CentOS и т.д.

 

Но конкретно поддержка распространяется только на Debian.

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

Добрый день! Подскажите, пожалуйста, где сделать кнопку "Настроить права доступа" в панели итогов в разделе Единое окно активной? На одном проекте активна, а на другом нет. Не понимаю, где искатьИзображение удалено.

Нравится

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

Добрый день.

Может прав нет у УЗ под которой вы авторизованы?

Добрый день, Алёна



В нашей системе вы можете настраивать права доступа по объектам. В данном случае как объект мы рассматриваем раздел "Единое окно".



Если для данного объекта не используется ограничение доступа по записям, то все пользователи имеют полный доступ ко всем итогам в системе. Это значит, что кнопка [Настроить права доступа] в меню действий будет неактивной (серой).

 

Если ограничение по записям используется, то права доступа на отдельные панели итогов настраиваются по действию [Настроить права доступа] меню действий.

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

Здравствуйте! Поймали необъяснимый баг.

Есть C# в котором замещается метод CreateReport из ReportHelper

Приведу пример:

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text.RegularExpressions;
using System.Web;
using Terrasoft.Common;
using Terrasoft.Core;
using Terrasoft.Core.Factories;
using Terrasoft.Reports;
using System.Web.Script.Serialization;
using Terrasoft.Core.Entities;
 
namespace Terrasoft.Configuration.ReportService
{
	[Terrasoft.Core.Factories.Override]
	class OnellectReportHelper : ReportHelper
	{
		public override string CreateReport(string entitySchemaUId, string reportSchemaUId, string templateId,
				string recordId, string reportParameters, bool convertInPDF) {
			string key = base.CreateReport(entitySchemaUId, reportSchemaUId, templateId, recordId, reportParameters, convertInPDF);
			string reportName = "Метод генерации названия файла";
			if (!reportName.IsNullOrEmpty())
			{
				object reportObj = UserConnection.SessionData[key];
				var report = (ReportData)reportObj;
				report.Caption = Uri.EscapeDataString(reportName);
				UserConnection.SessionData[key] = report;
			}
			return key;	
		}
	}
}

Так вот под Windows проблем нет, все отрабатывает корректно, но некоторые клиенты стали жаловаться, что именование файлов работает как в коробке. Выяснилось, что они используют Safari. Если запустить генерацию печатных форм в Chrome, то название формируется согласно замещающему методы.

 

Не могу понять, куда копать. Mac-а для отладки под рукой нет. По идее код можно вставить на любой среде и тогда все печатные формы должны выгружаться с названием из переменной reportName. Может кто-то проверит под маком и Safari, повторится ли баг?

Нравится

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

Мы для тестов под Mac использовали облачный сервис. Например, https://www.macincloud.com

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

Я нашел проблему. Почему-то Safari берет название не из метаданных файла, а из caption, которое было сгенерировано на фронте. Метод downloadReport из PrintReportUtilities, передается caption с фронта.

		downloadReport: function(caption, key) {
			var report = document.createElement("a");
			report.href = "../rest/ReportService/GetReportFile/" + key;
			report.download = caption;
			if (this.Ext.isIE) {
				report.target = "_blank";
			}
			document.body.appendChild(report);
			report.click();
			document.body.removeChild(report);
		}

Получилось обойти это, изменив объект printForm в методе generatePrintForm в BasePageV2

generatePrintForm: function(printForm) {
   printForm.$Caption = "Имя файла";
   return this.callParent(arguments);
}

Правда с получением названия отчета из бекэнда пришлось повозиться, так и не смог по нормальному вызвать callParent внутри callService, т.к. название отчета получал через сервис. Забил на это дело с вызовом callParent и полностью скопировал код метода generatePrintForm из PrintReportUtilities, без всякого наследования...возможно это аукнется в одном из обновлений, но таков путь...

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

Добрый день. Необходимо обновить поле Тип контакта на существующих контактах. Сделала выгрузки контактов с Id, т.к. по ФИО могут дублироваться. Создала новый файл который содержит колонку Id, ФИО, Тип. Делаю импорт и данные не обновляет в системе. Пишет что такой ID уже есть, дубликат, данные не загружены. Как мне обновить данные поля? Возможно я что-то неверно делаю. Спасибо.

Нравится

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

А вы указали Id как поле в настройке проверки дублей при импорте?

Добрый день!

 

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

Поэтому для того что бы обновить значения поля "Тип контакта" Вам необходимо при импортировании данных на  странице [ Параметры дублей ] использовать в качестве условия Id контакта.

 

Детальнее об обновление данных с помощью импорта Вы можете ознакомиться на Академии по ссылке:

 

https://academy.terrasoft.ru/docs/user/bazis_platformy/dannye/excel_imp…

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

Добрый день!

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

actionMenuItems.addItem(this.getButtonMenuItem({.......}})

Нравится

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

создаёте набор подпунктов меню:



var subMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");

var subMenuCaption = "Test";



subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 1",

                   Click: {"bindTo": "subTest1Click"}

                    }));

subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 2",

                   Click: {"bindTo": "subTest2Click"}

                    }));



А затем весь набор в действия:



var subMenuItem = this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        Caption: subMenuCaption,

                        Id: this.Terrasoft.generateGUID(),

                        Items: subMenuItems,

                        MarkerValue: subMenuCaption

                    }

                });



 actionMenuItems.addItem(subMenuItem);

создаёте набор подпунктов меню:



var subMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection");

var subMenuCaption = "Test";



subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 1",

                   Click: {"bindTo": "subTest1Click"}

                    }));

subMenuItems.addItem(this.getButtonMenuItem({

                   Caption: "sub test 2",

                   Click: {"bindTo": "subTest2Click"}

                    }));



А затем весь набор в действия:



var subMenuItem = this.Ext.create("Terrasoft.BaseViewModel", {

                    values: {

                        Caption: subMenuCaption,

                        Id: this.Terrasoft.generateGUID(),

                        Items: subMenuItems,

                        MarkerValue: subMenuCaption

                    }

                });



 actionMenuItems.addItem(subMenuItem);

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

 спасибо большое!

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