Всех приветствую.

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

Интересует пользовались ли уже реализованными в базовой версии методами или разрабатывали свои и почему был сделан такой выбор?

Нравится

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

Например, был опыт с попытками починить календарь в 3.3.2, когда при нестандартных настройках начала недели в Windows вел себя странно.

 

Алла, а в чём твой вопрос по нынешнему календарю? Есть какие-то пожелания по доработке в новых версиях «коробки» или в отдельных дополнениях?

 

Зверев Александр,

 

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

Алла, есть справочник:

В продуктах Creatio service enterprise, customer center и bank customer journey в справочнике [Календари] можно настроить разные виды календарей, используемых в процессе обслуживания клиентов, в соответствии с условиями их сервисных договоров. Например, если ваши клиенты и сотрудники службы поддержки находятся в разных часовых поясах, настроенный календарь позволит избежать рассогласования при обработке обращений. В продуктах Creatio customer center и bank customer journey справочник используется при заполнении страницы сервиса, а в продукте Creatio service enterprise — сервисного договора.

В продукте Creatio sales enterprise в справочнике [Календари] можно настроить разные виды календарей, используемых при планировании визитов торговых представителей. Справочник используется приложениями Field force и Pharma, доступными в Creatio marketplace, при заполнении профиля пользователя и страницы врача.

Зверев Александр,

 

Во-первых, меня интересовала версия 7.16 (в тегах было указано), а не 3.3.2) Во-вторых, как и больше, чем полгода назад интересует реализованы ли базовые функции для работы с календарями, например, по определенному календарю за определенный интервал времени определить количество рабочих дней, получить все рабочие вторники или получить количество выходных, кроме субботы и воскресенья.

P.S. Сейчас меня интересует последняя актуальная версия 7.17.

Как можно получить рабочий ли день в новом расчете сроков (без устаревшей и неподдерживаемой библиотеки CalendarUtils)? Если по дню недели — то так. У нас есть таблица DayType. У неё есть признак NonWorking. C таблицей dayofweek она связана через DayInCalendar. Напрямую публичного метода, который выдавал бы этот признак, у нас нет. Примеры можно посмотреть в методах FillWeekTemplate и FillDayOffInfo в классе CalendarDataStore.

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

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

Кейс:

1.Настроена РФС

2. Присоединяемся к процессу для отладки.

3. вносим правки в исходный код.

4. Нажимаем build и получаем ошибку получения доступа к компилируемому файлу в Autogenerated/Src.



Подскажите можно ли это исправить/настроить или это нормальное поведение?



сейчас решаю Остановкой отладки -> Build -> Присоединение к процессу -> Buil (Т.к. точки останова отрабатывают только после компиляции во время отладки )

 

Нравится

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

Доброго времени суток! Дайте полный доступ для IIS_IUSRS для всех файлов и папок корневой папки где расположено приложение, по идее должно помочь - https://prnt.sc/sdebqs

Доброго времени суток! Дайте полный доступ для IIS_IUSRS для всех файлов и папок корневой папки где расположено приложение, по идее должно помочь - https://prnt.sc/sdebqs

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

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

следовал за инструкцией:

https://academy.terrasoft.ru/documents/technic-sdk/7-16/instrumenty-otladki-servernogo-koda

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

компиляция завершается успешно.



Версия BPM - 7.15.4.3055

Нравится

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

Добрый день.

 

Проверьте, файлы с исходным кодом могли выгрузиться в '...Terrasoft.WebApp\Terrasoft.Configuration\Src'.

 

Подробнее это обсуждалось в этом посте.

Добрый день.

 

Проверьте, файлы с исходным кодом могли выгрузиться в '...Terrasoft.WebApp\Terrasoft.Configuration\Src'.

 

Подробнее это обсуждалось в этом посте.

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

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

Нравится

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

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

 

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

 

Но, к сожалению, это не всегда возможно.

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

 

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

 

Но, к сожалению, это не всегда возможно.

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

Запускаю из вне процесс

Имя процесса: UsrProcessWidgetTableExample

Параметр который надо вернуть: ProcessSchemaParameterJson

 

https://<url>/0/ServiceModel/ProcessEngineService.svc/UsrProcessWidgetTableExample/Execute?ResultParameterName=ProcessSchemaParameterJson

 

Сам процесс состоит из одного квадратика с кодом:

Set("ProcessSchemaParameterJson","test123");
return true;

 

Получаю ответ:

(
    [headers] => HTTP/1.1 200 OK
Cache-Control: private
Content-Type: application/xml; charset=utf-8
Server: Microsoft-IIS/10.0
Set-Cookie: BPMSESSIONID=3m.............vy; path=/0; secure; HttpOnly
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Date: Thu, 30 Apr 2020 08:21:02 GMT
Content-Length: 81
 
 
    [body] => <string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">null</string>
    [cookie] => Array
        (
            [BPMLOADER] => obz3y12.....etundy
            [.ASPXAUTH] => 68F1414ABB.......B6435F4185
            [BPMCSRF] => PEJj1P......mOjTe
            [UserName] => 83|117......111|114
        )
 
)

 

То есть всегда получаю null.

Вопрос: как запустить процесс из другого сервиса и вернуть в ответ строку? (или что я делаю не так?)

Нравится

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

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

Зверев Александр, 

Спасибо за ответ. Это печально )

В 7.17.1 должен появиться возврат результата из нынешних интерпретируемых БП, в академии будут инструкции по запуску из клиентского и серверного кода.

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

Добрый день!

В окне вывода Visual Studio отображается следующая ошибка:

Вызвано исключение: "System.IO.FileNotFoundException" в Terrasoft.Tools.WorkspaceConsole.exe

Запустил монитор процессов, он показывает что не получается найти файл Terrasoft.Tools.Common.resources.dll:

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

Помогите, пожалуйста, разобраться. Спасибо!

Нравится

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

Может кто нибудь скинуть файл Terrasoft.Tools.Common.resources.dll для 7.15.4.3055?

Руслан Хасанов,

Запросите его у службы поддержки Terrasoft.

Алла Савельева,

Подскажите, пожалуйста, есть у вас этот файл в каталогах приложения?

Руслан Хасанов,

Такого файла не вижу(

Алла Савельева,

Похоже что я что то не так делаю опять. А у вас проект на VS запускается успешно (на версии  7.15.4.3055)? 

Здравствуйте, Руслан!

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

Рекомендую проверить наличие правильных References в вашем проекте.

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

Подскажите, можно ли через метод SetColumnValue, присвоить значение справочного поля равное null?

 

Нравится

2 комментария
Лучший ответ
Можно через:
entity.SetColumnValue("OwnerId", null);
или
entity.ForceSetColumnValue("OwnerId", null);

При сохранении, возможно, придется отключить валидацию, если поле обязательное

Прим: для справочных полей необходимо явно дописывать "Id" в конце названия колонки.

Алла, да, можно. Например, в ContactCareerSchema:

var contactSchema = entitySchemaManager.GetInstanceByName("Contact");
var contactEntity = contactSchema.CreateEntity(UserConnection);
if (contactEntity.FetchFromDB(Entity.GetTypedColumnValue&lt;Guid&gt;("ContactId"))){
	contactEntity.SetColumnValue("AccountId", null);
	contactEntity.SetColumnValue("DepartmentId", null);
	contactEntity.SetColumnValue("JobId", null);
	contactEntity.SetColumnValue("JobTitle", String.Empty);
	contactEntity.SetColumnValue("DecisionRoleId", null);
	contactEntity.Save();
}

А если речь о клиентском коде, и там такое бывает. В BaseSchemaViewModel есть функция:

/**
 * Clears the values of the columns of the schema by setting null. Clears the parameter of changed values.
 * @protected
 */
clearEntity: function() {
	Terrasoft.each(this.columns, function(column, columnName) {
		if ((column.type === Terrasoft.ViewModelColumnType.ENTITY_COLUMN) &amp;&amp; !column.isCollection) {
			this.setColumnValue(columnName, null, {preventValidation: true});
		}
	}, this);
	this.changedValues = {};
},

 

Можно через:
entity.SetColumnValue("OwnerId", null);
или
entity.ForceSetColumnValue("OwnerId", null);

При сохранении, возможно, придется отключить валидацию, если поле обязательное

Прим: для справочных полей необходимо явно дописывать "Id" в конце названия колонки.
Показать все комментарии

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

Есть задача по интеграции сайта со сторонним приложением. На стороне реализовано api с рядом запросов. Но реализация сторонних запросов такова, что мне приходится в бизнес процессе вызывать запросы в цикле. Может кто-то подскажет вариант вызова вэб-сервиса в тексте задания-сценария БП?

Нравится

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

Ольга, можно либо самостоятельно реализовать логику вызова сервиса кодом (пример есть тут), либо настроить нужный веб-сервис в разделе обычным образом, а затем взять код запуска в схеме WebServiceUserTask и скопировать его в функцию в разрабатываемом БП вместе со всеми вспомогательными функциями и параметрами, которую затем запускайте в своём скрипте в цикле. Вот основная логика оттуда:

if (ServiceUrl == Guid.Empty || string.IsNullOrEmpty(ServiceMethod)) {
	return true;
}
string serviceUrl = (new Select(UserConnection)
	.Column("URL")
	.From("WebServiceURL")
	.Where("Id").IsEqual(new QueryParameter("Id", ServiceUrl)) as Select)
	.ExecuteScalar&lt;string&gt;();
HttpWebRequest webRequest = CreateWebRequest(serviceUrl, ServiceMethod);
string Request = @"&lt;soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"" xmlns:web=""http://www.webserviceX.NET/""&gt;
&lt;soap:Header/&gt;
	&lt;soap:Body&gt;";
Request += RequestBodyInternal;
Request += @"
	&lt;/soap:Body&gt;
&lt;/soap:Envelope&gt;";
webRequest.ContentLength = Request.Length;
using (Stream stream = webRequest.GetRequestStream()) {
	using (StreamWriter streamWriter = new StreamWriter(stream)) {
		streamWriter.Write(Request);
		streamWriter.Close();
	}
}
using (WebResponse response = webRequest.GetResponse()) {
	using (StreamReader rd = new StreamReader(response.GetResponseStream())) { 
		Responce = rd.ReadToEnd();
	}
}
PrepareResponceResult();
if (!IsLoggingRequestAndResponce) {
	Request = string.Empty;
	Responce = string.Empty;
}
return true;

 

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

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

При установке приложения Дополнение "Excel reports builder",  получаем ошибку  Изображение удалено. , скрин прилагаю.

Система в он сайте.

Какие причины, как решить?

 

Нравится

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

Добрый день.

 

Ваш скрин не прикрепился.

Так а скрин-то где?)

Сидоров Александр Валерьевич,

В стране Мальборо, наверное))))

Алла Савельева,

)))

Сергей,

 

по предоставленному логу видно, что ошибки возникли при компиляции конфигурации. Само дополнение устанавливается без ошибок.

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

Добрый день!

 

В описании приложения "Calculated metrics for Creatio" на сайте marketplace.terrasoft.ru, указано что настройка вычисляемых показателей (сумма, разность, отношение, произведение для двух-четырех переменных и любого количества констант) возможна не только в дашбордах, но и на страницах разделов и деталей.

В инструкции пользователя описан принцип настройки только для блока итогов "Расчетный показатель". Настройки вычисляемых показателей для страниц разделов и деталей не описаны.

Прошу подсказать, каким образом данные параметры можно настроить на страницах разделов и деталей?

Нравится

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

Добрый день, Дмитрий,

 

блок итогов "Расчетный показатель" доступен не только в дашбордах, но и в мастере настройки страницы раздела/детали в группе настроек Элементы страницы (вместе с другими стандартными блоками итогов Показатель, Шкала и др.).

Ирина Лазоренко, спасибо за пояснения! Было бы не плохо добавить это в подробную инструкцию пользователя)

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

Расчетный показатель не работает на ПРОД (версия 7.15.4.3055).

Я настроил расчет показателя по простой формуле (a / 60), для пересчета длительности звонков из секунд в минуты. Но данный показатель не рассчитывается 

Хотя на ПП среде заказчика (версия 7.16.0.4449) аналогичный Расчетный показатель считается корректно http://prntscr.com/s34nyt&nbsp;

Прошу помочь с данной проблемой.

Дмитрий, добрый день,

 

на чистой сборке 7.15.4 расчетный показатель по формуле a / 60 работает корректно. Уточните, пожалуйста, ошибка возникает только при указанной формуле или всегда, в том числе и для базовых формул?

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

 

 

 

 

 

Опытным путем установили что проблема с полем "Длительность" в разделе "Звонки". По нему расчетный показатель на ПРОД (7.16.0.4449) не считается даже для базовых формул. В то время как для поля "Время разговора" расчетный показатель работает корректно. Вопрос можно считать закрытым.

Спасибо.

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