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

 

Необходимо отобразить статические группы в реестре раздела, в списке групп. Разделы могут быть двух типов:

  1. кастомного раздела;
  2. коробочного раздела, в котором по умолчанию отсутствуют статические папки (например, Договоры).

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

 

Заранее спасибо!

Нравится

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

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

 

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

 

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

Чтобы добавить группу в избранные, выберите ее и кликните по кнопке btn_com_folder_favorite.png.

 

Избранные группы отображаются в дереве как вложенные в группу “Избранные”. Кроме того, избранные группы становятся доступными в меню [ Фильтр ].

 

Примеры доступны по ссылке.

 

Надеюсь, информация была полейной.

Алла, спасибо, но указанное вами справедливо не для всех разделов - в кастомных разделах и части коробочных разделов (например, Contracts) в интерфейсе отсутствует возможность добавить статическую группу.



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



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

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

Добрый день, пока глубоко не погружались в то как работает ML в Creatio, но из документации не понял - есть ли возможность прогнозировать даты?

Кейс для примера: у наших продуктов есть логистические статусы, изменение которых логируется (статус, дата начала). Хотелось бы загрузить это все в ML и по каждому продукту делать две прогнозные даты:

1. В какую дату будет следующий логистический статус (например в производстве).

2. В какую дату будет конечный логистический статус (например передан клиенту).

 

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

 

 

Другой кейс. В нашем Service Enterprise, который использует ДИТ в разделе Обращения имеется поле Время разрешения. Значение может рассчитываться множеством параметром, в т.ч. в зависимости от SLA. Но пользователям хотелось бы показывать две даты: время разрешения по SLA (а оно всегда большое) и время разрешения прогнозное (на основании исторических данных похожих обращений).

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

Нравится

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

Добрый день! 

Нужно сделать двунаправленный фильтр для полей Тип проекта и Вид процесса проекта в мобильном приложении.

 

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

 

Мне удалось сделать фильтр при изменении значении поле Вид процесса проекта фильтровать значение поле Тип проект в мобильном приложении.

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

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

Таблица Project содержет в себе поля

PsProcessType - вид процесса проекта и

ProjectSubType - тип проекта.

Соответственно данные этих полей берется из двух объектов справочников: 

PsProjectProcessType - Вид процесса проекта,

PsProjectSubType  - Тип проекта.

Объект PsProjectSubType содержит в себе связывающий двух столбец PsProjectProcessType.

Нравится

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

Добрый день,

 

Если связь между PsProjectProcessType и PsProjectSubType это связь один ко многим, то можно использовать MutualFiltration. Простой пример: фильтровать город по стране и наоборот. В таком случае код будет такой:

Terrasoft.sdk.Model.addBusinessRule('Contact', {
	ruleType: Terrasoft.RuleTypes.MutualFiltration,
	triggeredByColumns: ['Country'],
	filteredColumn: 'City',
	filteringPropertyName: 'Country'
});

В данной конфигурации есть два действия фильтрации:

 

Прямое: при выставлении поля-родителя фильтруемому полю выставляется фильтр (если поле-родитель заполнено)

Обратное: при выставлении фильтруемого поля, полю родителю автоматически выставляется значение (так как оно одно)

 

triggeredByColumns – имя колонки-родителя (один-ко-многим) в модели карточки

filteredColumn – имя фильтруемой колонки (один-ко-многим)  в модели карточки

filteringPropertyName – имя колонки-родителя в модели фильтруемого поля

Спасибо Oleg Drobina,

Реализовал фильтр следующим образом.

Terrasoft.sdk.Model.addBusinessRule('Project', {
    ruleType: Terrasoft.RuleTypes.MutualFiltration,
    triggeredByColumns: ["PsProcessType", "ProjectSubType"],
    connections: [
        {
            parent: "PsProcessType",
            child: "ProjectSubType",
            connectedBy: "PsProjectProcessType"
        }
    ]
});

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

Oleg Drobina, 

можете ответить на данный вопрос?

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

Добрый день!

Не срабатывает фильтр в мобильном приложении. На странице отображения списка проектов MobileProjectGridPageSettingsDefaultWorkplace хочу отобразить проекты без родительского проекта по колонке ParentProject (родительский проект)

Добавил конфигурационный модуль MobileProjectModuleConfig. Описал фильтр.

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

Потом добавил данный модуль в файл MobileApplicationManifestDefaultWorkplace в блок ModelExtensions.  Можете подсказать что я не так делаю.

 

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

Нравится

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

 Добрый день,

 

Сделал всё аналогично, кроме того, что не добавлял созданный модуль в ModelExtensions, а только в PagesExtensions. Код один в один с Вашим:

Terrasoft.sdk.Module.addFilter("Project", Ext.create("Terrasoft.Filter", {
    type: Terrasoft.FilterTypes.Group,
    subfilters: [
		Ext.create("Terrasoft.Filter", {
			compareType: Terrasoft.ComparisonTypes.NotEqual,
			property: "ParentProject",
			value: null
		})
	]
}));

Еще для чистоты эксперимента вывел в реестр проектов колонку Parent item и в результате, после перелогина в мобильное приложение после создания модуля и привязки его в манифесте к PagesExtensions, загрузились только записи с заполненным Parent item:

Попробуйте полностью перелогиниться в мобильное приложение.

Спасибо большое, фильтр работает!

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

Приветствую!

Создал пакет проект (пробовал и через шаблон bpmonline и через clio create pkg)

При компиляции из студии изменения не подхватываются, clio restart делаю после build, приходится всю конфигурацию компилировать

 

Подскажите , может кто сталкивался? в какую сторону смотреть?

Нравится

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

Добрый день,

 

Для того, чтобы приложение подтягивало сборку из Пакета-Проекта, нужно:

  1. Название dll сборки Пакета-Проекта,  должно совпадать с названием пакета.
  2. dll сборка Пакета-Проекта должна находится в соответсвующей директории: 
    • TS.Conf/PackageName/Files/Bin/ (для Framework
    • TS.Conf/PackageName/Files/Bin/netstandard (для .NetCore)
  3. Для .NetCore флаг Feature-UseSeparateDirectoryToLoadPackageAssemblies (в Terrasoft.WebHost.dll.config) должен быть включен:

    <add key="Feature-UseSeparateDirectoryToLoadPackageAssemblies" value="true" />
  4. Cборка должна быть помечена аттрибутом:

    [assembly: PackageReferenceAssembly(RefAssemblyMarker.All)]

    и добавить: using Terrasoft.Core.Attributes;

    Это делается в AssemblyInfo.cs (папка Properties - Properties\AssemblyInfo.cs )

    Если используется, новая версия проекта *.csproj, то в нем AssemblyInfo.cs генерируется автоматически на основании проекта.

    Для того, чтобы небыло конфилктов автогенерируемой AssemblyInfo.cs с созаной вручную, нужно в проекте *.csproj, отключить автогенерацию AssemblyInfo.cs.

    Для этого в проект *.csproj, надо добавить запись:

    <PropertyGroup>

               .........................................

               <GenerateAssemblyInfo>false</GenerateAssemblyInfo>

               .......................................

    </PropertyGroup>

 

Пример AssemblyInfo.cs

using System.Reflection;
using System.Runtime.InteropServices;
using Terrasoft.Core.Attributes;
 
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: PackageReferenceAssembly(RefAssemblyMarker.All)]
[assembly: AssemblyTitle("cliogate")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("cliogate")]
[assembly: AssemblyCopyright("Copyright ©  2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
 
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components.  If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
 
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("e24226f9-c177-458f-af34-9338e2699983")]
 
// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version
//      Build Number
//      Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.1.1.2")]
[assembly: AssemblyFileVersion("1.1.1.2")]

 

Если эти рекомендации не помогли решить проблему, обратитесь по адресу support@creatio.com, так как без прямого доступа сложно определить, в чем проблема.

 

С уважением,

Дарий

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

Добрый день,

 

При использовании глобального поиска у нас на портале не работают фильтры.

 

Т.е. поиск в глобальном поиске без фильтров и с испольозванием фильтров дают один и тот же результат. Фильтр не сужает результаты поиска.

 

Это так и должно быть?

Нравится

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

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

 

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

 

С уважением,

Мирослава

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

 

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

 

С уважением,

Мирослава

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

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

Добрый день, установили приложение Выделение цветом записей в разделе Заказы, установилось успешно (логи прикрепляю), но при переходе в раздел не выводит записи вовсе и ошибка в консоле. У нас sales enterprise edition cloud, версия  8.0.3.2908

 

 

 

 

 

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

Нравится

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

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

Проверил данное решение на базовой сборке sales enterprise edition cloud, версия  8.0.3.2908. Кейс не воспроизводится.



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

 

Спасибо, действительно не вывела колонку, поправила и все успешно работает.

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

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

 

Добавил действие в меню в страницу редактирования - скрин ошибок в комментарии:

 

            onMyButtonClick: function() {

                var Id =  this.get("Id");

                //console.log(Id);

                var args = {

                    sysProcessName: "ZbsAddTreatSessions",

                    parameters: {

                        TreatmentProgramId: Id

                    }

                };

                processModuleUtilities.executeProcess(args);    

            },

            getActions: function() {

                   var actionMenuItems = this.callParent(arguments);

                console.log(11);

                // Добавление линии-разделителя.

                actionMenuItems.addItem(this.getButtonMenuItem({

                    Type: "Terrasoft.MenuSeparator",

                    Caption: ""

                }));

                console.log(22);

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

                actionMenuItems.addItem(this.getButtonMenuItem({

                    // Привязка заголовка пункта меню к локализуемой строке

                    // схемы.

                      Caption: {bindTo: "Resources.Strings.CreateTreatSessionsCaption"},

                    // Привязка метода-обработчика действия.

                    Click: {bindTo: "onMyButtonClick"}

                }));

                console.log(33);

                 // Возврат дополненной коллекции действий раздела.

                return actionMenuItems;

            },                        

 

Нравится

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

Вот текст ошибки:

user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:83/0/core/hash/ng-core/src/polyfills-es5.js?hash=b2d23…

 line: 1

 column: 16702

 message: Uncaught TypeError: Cannot read properties of undefined (reading 'apply') 

 date: Fri Aug 12 2022 00:19:01 GMT+0600 (East Kazakhstan Time)

 stack: TypeError: Cannot read properties of undefined (reading 'apply')

    at constructor.callModelMethod (http://localhost:83/0/core/hash/Terrasoft/controls/mixins/bindable.js?h…)

    at constructor.<anonymous> (http://localhost:83/0/core/hash/Terrasoft/controls/mixins/bindable.js?h…)

    at constructor.fire (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…)

    at constructor.continueFireEvent (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…)

    at constructor.fireEventArgs (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…)

    at constructor.fireEvent (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…)

    at constructor.onClick (http://localhost:83/0/core/hash/Terrasoft/controls/menu/basemenuitem.js…)

    at HTMLLIElement.eval (eval at cacheableFunctionFactory (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…), <anonymous>:6:13)

    at HTMLLIElement.wrap (http://localhost:83/core/7b05a4f154493931757b1cca921fc8a9/ExtJs/extjs-b…)

    at t.value (http://localhost:83/0/core/hash/ng-core/src/polyfills-es5.js?hash=b2d23…)

Добрый день,

 

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

Oleg Drobina, 

огромное спасибо, у меня получилось благодаря Вашей подсказке!

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

Добрый день! 

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

Нравится

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

Добрый день,

 

Спасибо за обращение.

 

Инструкция по выгрузке существующих орг. и функциональных ролей описана в данном посте.

 

С уважением,

Анастасия

Добрый день,

 

Спасибо за обращение.

 

Инструкция по выгрузке существующих орг. и функциональных ролей описана в данном посте.

 

С уважением,

Анастасия

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

Здравствуйте. Определил 2 поля в одной позиции, поставил условие для visible. Из-за статики рендерится только одно из полей, которое в дифе стоит первым. Переместить поля не вариант, так как мне нужно определить 2 разные формы на старнице в зависимости от условий.

Нравится

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

Владислав, добрый день!

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

 

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



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

Есть справочники "А" и "Б". При открытии страницы только один из справочников автозаполняется, на этом я и строил условия visible.

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

Нет, пришлось "чистить" все существующие поля под visible, после чего поигравшись с рассположением проблему решить удалось. Мне надо было отобразить 2 разные формы в зависимости от условия

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