Коллеги, здравствуйте.

Подскажите, пожалуйста, смогу ли я создать новый раздел на портале Customer Portal по базовому объекту, например, "Активность" и, соответственно, настроить страницу портала, автоматизацию и пр? В академии я вижу такие формулировки, которые, как кажется, могут относиться к моему вопросу, но смысл их мне неочевиден:

1. Дополнительные разделы: возможность создания 3 (трёх) кастомных разделов для ваших портальных пользователей. Кастомный раздел — новый раздел, дополнительно созданный в системе, но без возможности наследования функционала базовых разделов - https://www.terrasoft.ru/portal/price



2. Пользовательские разделы портала создаются с нуля и должны иметь минимальную связь с данными разделов основного приложения - https://academy.terrasoft.ru/docs/user/drugie_reshenija/portal/obzor_po…

 

Нравится

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

Здравствуйте, Игнат!



Клиентский портал (Customer Portal) действительно позволяет настраивать и использовать до трех пользовательских разделов на портале.



Пользовательский раздел сначала нужно создать в приложении и затем на его основе создать портальную версию этого раздела. Разделы [ Обращения ] и [ База знаний ], также доступны пользователям клиентского портала, а для пользователей продукта Creatio Bank Customer Journey будет доступен раздел [ Заявки ]. Дополнительно можно вывести на портал раздел [ Документы ], если он доступен в основном приложении.



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

 

А можно ли в кастомном разделе отображать деталь с Активностями, связанными с этой записью раздела?

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

Добрый вечер ! Как настроить бизнес правила для группы полей которые находятся во вкладке.

Пример

На странице раздела есть вкладка под названием "Карточка" Code (ProjectMap)

в "Карточка" есть 5 групп полей .

Нужно чтобы  (Если)

поле "Название проекта" (Поле не находится в той же вкладке) НЕ Заполнено 

ТО

Делать поле редактируемым 

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

Пробывал следующим образом : Тип "Поле" заменяю на "Атрибут" тут пишу Code(ProjectMap) (Система определяет его ) после сохраняю обнавляю, но б.правило не отрабатывает . 

Для теста попробывал сделать редактируемым какое-то НЕ Атрибут а обычное Поле - всё ок , всё робит .

 

Нравится

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

Добрый день!

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

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

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

Yanina Ryssjanova,

 

Добрый день. Полей много - всего  45  ))) 

Просто скрывать для этой задачи к сожалению не получится ) Информация должна быть видимым (( ,спасибо за отклик! 

Tigran Gevorgyan пишет:

Yanina Ryssjanova,

Добрый день. Полей много - всего  45  ))) 

Просто скрывать для этой задачи к сожалению не получится ) Информация должна быть видимым (( ,спасибо за отклик! 

Сделайте 2 вкладки. На одной одно состояние (редактируемое), на другое - другое. Прячьте ненужную вкладку с помощью правил

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

 

Да, как вариант подойдёт , но в этом случае тоже потребуется для отображении значений полей в 2 вкладках 45 правил . Решил созданием 45 правил , пока не решут вопрос с разрабом. Всем спасибо .

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

Создан шаблон. В нем есть макрос Status# - "Статус обращения" при рассылке направляется получателю на английском языке - EN.

В шаблон был добавлен язык RU - но статус по прежнему направляется на языке EN. Выбрать RU по умолчанию нет возможности, возможности удалить EN и оставить RU также нет.

Приходиться каждый раз заходить в шестеренку и менять вручную. Как сделать RU  по умолчанию только для этого шаблона?

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

Нравится

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

Евгения, здравствуйте.



Насколько мне известно, [#Status#] берёт локализованное значение из справочника стадий, опираясь на язык общения контакта, потому не играет роли сам язык шаблона.



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

 

Дополнительно на команде разработки есть задача на доработку этого функционала.

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

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

Есть 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, без всякого наследования...возможно это аукнется в одном из обновлений, но таков путь...

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

Документация отсутствует. Требуется найти все права и выданные доступы, а так же участие, исследуемой роли на возможное присутствие в БПроцеесах и Бправилах. Можно ли какой то шаг сделать средствами платформы? Кто то сталкивался с задачей?

Нравится

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

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

 

Но информация хранится в базе данных, и при желании можно попробовать написать скрипт, который будет вытягивать эти данные из системных таблиц, например, SysEntitySchemaOperationRight, SysEntitySchemaColumnRight, SysEntitySchemaRecordDefRight и т.д.

 

Готовых скриптов по решению этой задачи также нет.

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

Добрый день!

Переименовал объекты имеющие отношения к разделу. 

Поправил название объекта и полей  на страницах. 

На разделе меню вид есть. но в нем нет раздела меню Открыть мастер раздела.

На странице нет вообще меню Вид.

На нетронутых разделах все имеется в наличии. 

При загрузке получаю предупреждение

- all-combined.js:41 Колонка Id не объявлена в ViewModel элемента меню

Что то мне подсказывает, что проблема связана с этим. 

Сам раздел и страницы грузятся без проблем.

Будьте добры помогите с проблемой!

Нравится

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

Добрый день, Максим!

Рекомендую сделать полную генерацию всех схем и компиляцию приложения в разделе Конфигурация.

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

Как можно удалить файл в ходе БП ?

Пример: 

Нужно в  ходе БП удалить все файлы кроме файла который загрузили в конце (По дате ) Изображение удалено.

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

Нравится

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

Добрый день.

 

Можно в БП реализовать такую логику 2-мя стандартными элементами.

1. С помощью элемента 'Чтение данных' получить Id последней загруженной записи:

2. С помощью элемента 'Удаление данных':

Добрый день.

 

Можно в БП реализовать такую логику 2-мя стандартными элементами.

1. С помощью элемента 'Чтение данных' получить Id последней загруженной записи:

2. С помощью элемента 'Удаление данных':

Спасибо 

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

Добрый день, форумчане!

Пытаюсь создать свой провайдер для работы с чатом. Вот по этой статье.

Получить сообщения проблем не вызывает. Но при отправке, ошибка.

Полез в дебаг, и обнаружил что при отправке сообщения. Source устанавливает в признак 2  - сторонний разработчики. Имя канала пусто. Хотя сам id моего канала есть.

   {

        Facebook = 0,

        Telegram = 1,

        ThirdParty = 2,

        WhatsApp = 3

    }

Происходит попытка собрать worker для ThirdParty. Но так как его нет, а есть мой канал Test. Отправка падает.

Если при получении сообщения я задаю канал прям в ChannelName. От при отправке из фронта в обратную сторону. такого параметра я не вижу. Теоретически имя канало должно вытягиваться из провайдера канал или самого имени канала. Но такого кода в методе public OmnichannelMessagingServiceResponse SendMessage(MessagingMessage message) 

Уже перелопатил весь код. Не могу найти ответ. Либо это не доработка террасофта, либо я чего то не понимаю.

При получении сообщения мы задаем канал вот тут

ChannelId = message.ChannelId, 
				MessageDirection = MessageDirection.Incoming,
				MessageType = messageType,
				// Указывает на источник канала (сторонние разработчики).
				Source = ChannelType.ThirdParty, 
				// Имя провайдера. В дальнейшем будет использоваться как идентификатор провайдера.
				ChannelName = "Test" 

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

Будьте добры. помогите с вопросом. Код прошерстил. Связь в коде нашел только с Source. ChannelName при вызове SendMessage приходит пустой.

При дебаге я подменил значение   ChannelName на Test. все заработало. Но кода для заполнения канала нет. В том числе и со стороны фронта. Где бы это могло храниться, не нашел так же. Нашел все связи OmniChat и прочее. 

В общем я в тупике. помогите если кто то в теме!

Нравится

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

Здравствуйте, мы расширили список провайдеров и теперь не обязательно использовать ThirdParty = 2,

сейчас список следующий:

Facebook, Telegram,  ThirdParty, WhatsApp, Skype, Viber, Instagram, WeChat, Line, Blackberry, Hangouts, Slack, Snapchat, Signal, Kakaotalk, Discord, Imo, Kik, Qq,    iMessage,  WebSite, VK, OK, Twitter, Workplace, Teams



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



Test - название канала, а провайдер ThirdParty. Исходя из этого необходимо добавить реализацию для отправки сообщений на провайдер ThirdParty. Пример есть в схеме OmnichannelMessagingAppEventListener (метод BindOutcomeMessageWorker).

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

Алёна Доля,

 

Добрый день!

Я правильно понимаю, что вот эта часть инструкции не валидна? Т.е. какой бы мы провайдер не зарегистрировали, все равно при отправке сообщения будет использоваться ThirdParty?

Негрий Максим Михайлович,

 У MessageManager, есть по две реализации каждого метода. Например:

        /// <summary>

        /// Save message

        /// </summary>

        /// <param name="message">Message from messenger.</param>

        public void Receive(UnifiedMessage message) {

            MessageIncomeWorker.Receive(message);

        }

        /// <summary>

        /// Save message

        /// </summary>

        /// <param name="message">Message from messenger.</param>

        /// <param name="messenger">messenger name.</param>

        public void Receive(UnifiedMessage message, string messenger) {

            MessageIncomeWorker.Receive(message, messenger);

        }

В своем сервисе необходимо использовать метод принимающий вторым параметром строку с именем мессенджера(в случае академии Test). Если же использовать метод без второго параметра, то будет описанная проблема и в этом случае нужно использовать Source имя мессенджера из добавленных.

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

Сделал сервис для .netcore по стате https://academy.terrasoft.ru/docs/developer/back-end_development/config…

Обращаюсь к сервису из вкладки браузера после входа в систему http://172.23.1.117/rest/UsrCustomConfigurationService/SomeMethod

но получаю сообщение 404 (Creatio развернуто в докере, докер перезапускал, все компилировал). Прошу подсказать что еще можно сделать чтоб сервис заработал?

 

 namespace Terrasoft.Configuration.UsrCustomConfigurationService
{
    using System;
    using System.Collections.Generic;
    using System.Security;
    using System.ServiceModel;
    using System.ServiceModel.Activation;
    using System.ServiceModel.Web;
    using System.Web.SessionState;
    using Terrasoft.Common;
    using Terrasoft.Core;
    using Terrasoft.Core.DB;
    using Terrasoft.Core.Factories;
    using Terrasoft.Core.ServiceModelContract;
    using Terrasoft.Web.Common;
    using Terrasoft.Web.Http.Abstractions;
 
     #region Class: UsrCustomConfigurationService
 
    [ServiceContract]
 
     [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
 
    public class UsrCustomConfigurationService: BaseService
    {
        #region Methods: Public
        /* Метод веб-сервиса. */
        [OperationContract]
        [WebInvoke(Method = "GET", UriTemplate = "SomeMethod", 
            BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json)]
        public string SomeMethod() {
            
            var httpContext = HttpContext.Current;
            return "12345";
        }
        #endregion
    }
    #endregion
}

 

Нравится

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

Столкнулись с похожей проблемой -- нам помогла перезагрузка :)

Столкнулись с похожей проблемой -- нам помогла перезагрузка :)

Вадим Курунов,

Спасибо, помогло! Надеюсь в следующих релизах такое не потребуется

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

Добрый день

 

При установке приложения  IIT E-Signature for Creatio возникли ошибки. Логи во вложении. 

Как исправить?

 

 

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

Нравится

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

Ольга, добрый день!

Данное решение не актуально и  ранее было снято с публикации.

Оно не доступно больше на маркетплейсе.

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