Вопрос

Прошу подсказать каким образом можно добавить пункт меню в меню действий детали (там где три точечки).

И где нужно писать обработку при выборе этого пункта.

Ответ

Для добавления или изменения элементов в меню "Действия" детали, Вам необходимо смотреть в сторону замещения метода addToolsButtonMenuItems в схеме детали.

Базовую реализацию данного метода, Вы можете увидеть в схеме BaseGridDetalV2(NUI).

Нравится

Поделиться

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

Вопрос

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

Ответ

Для этого необходимо переопределить метод getCreatedOnText() модуля SocialFeedUtilities. Поскольку модули в системе bpm'online расширять нельзя (можно только полностью заместить), необходимо создать замещающий клиентский модуль в пользовательском пакете, указать в качестве родительского модуля SocialFeedUtilities, полностью скопировать текст из аналогичного модуля в пакете ESN (вкладки "Исходный код" и "LESS") и заменить текст метода getCreatedOnText на такой:

getCreatedOnText: function() {
    var cultureSetting = Terrasoft.Resources.CultureSettings;
    var value = this.get("CreatedOn");
    if (value) {
        var datePart = Ext.Date.dateFormat(value, cultureSetting.dateFormat);
        var timePart = Ext.Date.dateFormat(value, cultureSetting.timeFormat);
        return Ext.String.format("{0} {2} {1}", datePart, timePart,
            FormatUtilsResources.localizableStrings.In);
        }
    return "";
}

Также необходимо в самом начале текста исходного кода добавить зависимость модуля от FormatUtilsResources, чтобы иметь доступ к локализированной строке FormatUtilsResources.localizableStrings.In модуля FormatUtils:

define("SocialFeedUtilities", ["FormatUtilsResources", "ESNFeedUtils", "ESNFeedModuleResources", 
    "FormatUtils", "ESNConstants", "NetworkUtilities", "ModalBox", "ServiceHelper", "MaskHelper", 
    "performancecountermanager", "css!SocialFeedUtilities"],
    function(FormatUtilsResources, ESNFeedUtils, resources, FormatUtils, ESNConstants, 
        NetworkUtilities, ModalBox, ServiceHelper, MaskHelper, performanceManager) {...

 

Нравится

Поделиться

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

Вопрос

Как реализовать поиск по нескольким колонкам в разделе в мобильном приложении. Например, в разделе Контакты через поле поиска искать и по фио, и по zip-коду (существующая в объекте Contact колонка) 

Ответ

- Запустить мастер мобильного приложения

- Открыть рабочее место по умолчанию («Основное рабочее место»)

- Перейти к настройкам раздела

- Нажать «Сохранить»

- Создать ClientUnit-схему

- Добавить в нее след. код:

Terrasoft.sdk.GridPage.setSearchColumns("Contact", [“Name”, “Zip”]);

- Открыть MobileApplicationManifestDefaultWorkplace в пакете Custom

- Прописать свою схему для раздела «Контакты»:

{
    “Models”: {
        “Contact”: {
            "PagesExtensions": [
                "Имя_созданной_схемы"
            ]
        }
    }
}

 

Нравится

Поделиться

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

Вопрос:

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

Сигнал изменение записи в объекте "сеанс пользователя". Фильтруем по времени входа больше 6 вечера, меньше 9 утра. Читаем данные — отправляем на емейл. По этому сигналу БП не срабатывает. Возможно выбрал не тот объект?

Ответ:

В стартовом сигнале задано условие на изменение записи. Необходимо изменить данное условие на "Добавление записи".



Обратите внимание, поле "завершение сеанса" будет заполняться только в случае, если пользователь корректно вышел из системы 

Если пользователь просто закроет вкладку, то данное поле заполнится спустя некоторое время. Зависит от настроенной у Вас длительности сессии. 

Нравится

Поделиться

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

Вопрос

Как при отправке письма из системы проверить, что письмо действительно дошло до почтового сервера? Есть ощущение, что не все пользователи получают письма с запросом оценки обращения, хотя ошибок в процессах и логах системы нет, объекты "E-mail" присутствуют в обращениях.

Ответ

Вам необходимо выполнить вход на почтовый сервер и проверить на нем папку "Исходящая почта". Данное решение справедливо для почты IMAP-Gmail или Exchange. 

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

Нравится

Поделиться

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

Вопрос

Как добавить в мобильное приложение стандартную деталь и вывести в нее специфичную колонку?

Ответ

1. Переходим в "Мастер мобильного приложения" (/0/Nui/ViewModule.aspx#SectionModuleV2/SysMobileWorkplaceSection)

2. Открываем нужное рабочее местое (по умолчанию DefaultWorkplace) нажимаем кноку ##RU=Настроить разделы;EN=Set up sections##

3. Выбираем нужный раздел, например "Контакты", и нажимаем кнопку "##RU=Настроить детали;EN=Details setup##"

4. Добавляем деталь:

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

5. Переходим в раздел "Конфигурация" (/0/WorkspaceExplorerModule.aspx)

6. Добавляем новую схему типа "Module" с именем UsrContactCareerModuleConfig

7. Пишем в ней примерно такой код:

Terrasoft.sdk.GridPage.setPrimaryColumn("ContactCareer", "JobTitle");
Terrasoft.sdk.RecordPage.addColumn("ContactCareer", {
        name: "JobTitle",
        position: 1
    }, "primaryColumnSet");
Terrasoft.sdk.RecordPage.removeColumn("ContactCareer", "Contact", "primaryColumnSet");

Где ContactCareer - имя таблицы, которая соответствует нашей детали;

      JobTitle - имя колонки, которую нужно тобразить

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

8. Подключаем данную схему в манифесте мобильного приложения MobileApplicationManifestDefaultWorkplace:

Находим блок модели ContactCareer и там в PagesExtensions добавляем наш модуль UsrContactCareerModuleConfig

Примерно так:

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

 

Нравится

Поделиться

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

Вопрос

На странице редактирования активности типа email нужно включить возможность редактирования заголовка, но она в режиме disabled и мы не видим, где это можно включить.

Ответ

Для возможности редактирования заголовка для активностей типа “email”, нужно создать “замещающий клиентский модуль” и указать родительским объектом схему  “EmailPage” из пакета NUI.

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

Скопировать в созданный модуль код из схемы “EmailPage”. И закомментировать бизнес-правило отвечающее за возможность редактирования поля “Заголовок”.

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

Сохранить и опубликовать модуль. В результате поле “Заголовок” стает редактируемым.

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

 

Нравится

Поделиться

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

Вопрос

С помощью мастера разделов был создан раздел в пакете Coustom. Есть ли способ перенести схемы данного раздела в другой пользовательский пакет? (работаем на on-demand).

Ответ

В меню [Конфигурация], вкладка [Действия] Вы можете выбрать “Экспорт в файл”. После чего, на вкладке [Пакеты] выбрать интересующий пакет и выполнить действие “Импорт из файла”.

Нравится

Поделиться

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

Симптомы

Сделал скрипт автонумерации в InvoicePageV2, работает только для контакта Zherlygin, в остальных случаях запрос присылает null. 

Данные с профайлера. 

Object {value: "b7f3b127-51be-494e-b184-58fe18c0e781", displayValue: "Кривошеева Екатерина", primaryImageValue: "00000000-0000-0000-0000-000000000000"}
 
exec sp_executesql N'
SELECT
NULL [Id],
NULL [UsrInvCounter],
NULL [PhotoId],
[Photo].[Name] [Photo.Name]
FROM
[dbo].[SysEmpty] [Contact] WITH(NOLOCK)
LEFT OUTER JOIN [dbo].[SysImage] [Photo] WITH(NOLOCK) ON ([Photo].[Id] = [Contact].[Id])
WHERE
NULL = @P1',N'@P1 uniqueidentifier',@P1='B7F3B127-51BE-494E-B184-58FE18C0E781'
 
 
 
Object {value: "410006e1-ca4e-4502-a9ec-e54d922d2c00", displayValue: "Жерлыгин Дмитрий", primaryImageValue: "00000000-0000-0000-0000-000000000000"}
 
exec sp_executesql N'
SELECT
[Contact].[Id] [Id],
[Contact].[UsrInvCounter] [UsrInvCounter],
[Contact].[PhotoId] [PhotoId],
[Photo].[Name] [Photo.Name]
FROM
[dbo].[Contact] [Contact] WITH(NOLOCK)
LEFT OUTER JOIN [dbo].[SysImage] [Photo] WITH(NOLOCK) ON ([Photo].[Id] = [Contact].[PhotoId])
WHERE
[Contact].[Id] = @P1',N'@P1 uniqueidentifier',@P1='410006E1-CA4E-4502-A9EC-E54D922D2C00'

Причина

Не правильно розданы права доступа для объекта Contact.

Решение

Перераздать права.

Нравится

Поделиться

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

Вопрос

Как создать произвольный html виджет (widget) для Итогов.

Ответ

1. Создать модуль с кодом:

define("UsrMySimpleWidget", ["ext-base", "terrasoft", "sandbox", "BaseFiltersGenerateModule",
"UsrMySimpleWidgetResources"], function(Ext, Terrasoft, sandbox, BaseFiltersGenerateModule, resources) {
 
           function getViewModel() {
                return Ext.create("Terrasoft.BaseViewModel", {
                     entitySchema: "Activity",
                     methods: {
                           getChart: function(key) {
                                sandbox.publish("GenerateChart", key);
                           },
                           load: function() {
                           }
                     }
                });
           }
 
           function generateMainView(renderTo) {
 
                var resultConfig = Ext.create("Terrasoft.Container", {
                     id: "tableOtchetMetkiParamContainer",
                     selectors: {
                           wrapEl: "#tableOtchetMetkiParamContainer"
                     },
                     renderTo: renderTo
                });
                return resultConfig;
           }
 
           function fillDom() {
                var htmlAdded = "<div>hello world!</div>";
                Ext.get("tableOtchetMetkiParamContainer").setHTML(htmlAdded);
           }
 
           var render = function(renderTo) {
 
                var viewConfig = generateMainView(renderTo);
                var viewModel = getViewModel();
 
                fillDom();
 
                viewConfig.bind(viewModel);
                viewConfig.render(renderTo);
           };
 
           return {
                schema: "Activity",
                methods: {
 
                },
                userCode: function() {
 
                },
                init: function() {
 
                },
                filterChanged: function(filter, eOpts) {
 
                },
                render: render
           };
     }
);

2. Добавить виджет на панель Итогов и выбрать вышесозданную схему.

Нравится

Поделиться

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

подскажите пожалуйста - вы ничего не упустили? или это скелет в котором половина пропущена? При попытке сохранить модуль JS выдает кучу ошибок чуть ли не в каждой строке

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