Вопрос

Добрый день!

Есть БП с элементом преднастроенная страницы. Список параметров страницы в процессе работы изменился. Часть параметров была удалена (знаю, что так нельзя, но уже свершившийся факт). Тем не менее в процессе удаленные параметры закешировались и при настройке отображения страницы отображаются. Но при добавлении нового параметра на страницу, в списке параметров в БП новые параметры не отображаются. При создании нового элемента процесса новые параметры подтягиваются, но при попытке сохранения выдает ошибку.

Открываю метаданные страницы и вижу что с этим ID как раз прописан удаленный параметр данной страницы. Вопрос: как решить данную проблему и обновить список параметров для страницы?

У меня такой же вопрос

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

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

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

Пробовали удалить из процесса и добавить заново элемент с данной преднастроенной страницей?

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

Коллеги, подскажите, как в преднастроенной странице, которая в бизнес-процессах сделать зависимость полей?

Есть два поля "Страны" и "Города" оба поля лукапы. Как при выборе Страны фильтровать значения в поле "Города"?

 

У меня такой же вопрос

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

Евгений, посмотрите с 24 минуты https://academy.terrasoft.ru/webinar/qa-sessiya-po-funkcionalnosti-plat…

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

Настройка бизнес-правил для преднастроенных страниц реализована в версии 7.12.0. Вы можете настроить бизнес - правила для добавления фильтрации по аналогии с настройкой в мастере раздела.

Для Вашей задачи правило будет выглядеть примерно следующим образом: Если - то.

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос
Есть атрибут: 

"Amount": {
    dataValueType: Terrasoft.DataValueType.FLOAT,
    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN
}

Поле: 

{
    "operation": "insert",
    "name": "Amount",
    "values": {
        "layout": {
            "column": 0,
            "row": 2,
            "colSpan": 12
        },
        "bindTo": "Amount"
    },
    "parentName": "FinApplicationContent",
    "propertyName": "items"
}

Находятся на преднастроенной странице, не привязанной к какому-либо объекту. Страница показывается пользователю в ходе БП. Поля виртуальные,т.е. по результату ввода введенные данные просто попадают в процесс, без записи в какой-либо объект. 

Проблема: нельзя ввести с клавиатуры никакие символы, только ctrl+v.

Примечание: Если установить contentType: Terrasoft.ContentType.TEXT - то можно ввести символы. На странице есть одноименный параметр типа "Дробное число"

Как решить проблему с вводом в данное поле? Что не так?

 

У меня такой же вопрос

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

скорее всего вы обнаружили "дефект", надо бы отписать о нем в ТП
Тем временем, в вашем случае,:
1) попробуйте использовать

Terrasoft.DataValueType.MONEY

в сути то же самое FLOAT (может прокатить laugh)
2) попробуйте не задавать у атрибута явно тип

Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN

 

PS: Если что-то из этого Вам поможет, отпишитесь пожалуйста что именно.

 

 

Первое помогло! Огромная вам благодарность! Все еще стоит писать об этом в ТП?

Рад что удалось помочь.
Лучше написать с примером и точной версией приложения и Вашей версии поставки, скорее всего вы выявили "дефект" логики конкретной типовой конфигурации или самой платформы и неизвестно к каким еще "проблемам" это дефект может быть причастен.

"Amount": {
    dataValueType: Terrasoft.DataValueType.FLOAT,
    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
    precision: 2,
    size: 18
}

говорим спасибо вот этому куску в генераторе

if (column) {
	Ext.apply(floatEdit, {
		decimalPrecision: column.precision
	});
}

В очередной раз ломаем ноги о код террасофта и его "универсальность" и идем дальше

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

Добрый вечер.
Каким образом передавать параметры из БП в преднастроенную страницу? Требуется передавать, как значение справочника, так и какие-то текстовые/логические данные.
Видео, на которое постоянно ссылаются (http://www.community.terrasoft.ru/img/video/lms/28/story.html) по-моему уже не является актуальным. По-крайней мере я, повторив все шаги, результата не получил. Есть ли ещё материал, тема на форуме (не нашёл) с более подробным рассмотрением данного вопроса?

У меня такой же вопрос

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

Добрый день!

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

Также рекомендую ознакомиться с следующей темой http://www.community.terrasoft.ru/forum/topic/25237

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

Добрый день!

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

Сейчас показывается, что у страницы нет параметров:

http://shot.qip.ru/00SkLf-415RJco7V2/

Заранее спасибо за совет.

У меня такой же вопрос

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

Насколько я помню в схеме страницы, справа (где localizableStrings), есть пункт Parameters. Накидайте туда переменных, сохраните страницу и попробуйте заново добавить её в бп

Здравствуйте! Инструкция по использованию элемента и созданию страницы: https://academy.terrasoft.ru/documents/technic-sdk/7-10/sozdanie-detali…

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

В бизнес процессе вызываю преднастроенную страницу со своей логикой. Но после ее вызова в БП висит "Выполняется" на преднастроенной страницы. Как сделать чтобы преднастроенная страница считалась "Выполненной" и продолжить выполнение бизнес процесса?

У меня такой же вопрос

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

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

Для того, чтобы элемент [Преднастроенная страница] считался выполненным и процесс перешел к выполнению следующего элемента необходимо – в схеме страницы вызывать метод completeExecution().
Пример можно найти схеме страницы распределения лида - LeadManagementDistributionPageV2

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

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

Создала БП, в котором есть Преднастроенная страница.
БП срабатывает на создание обращения и по определенному условию открывает либо карточку редактирования, либо преднастроенную страницу.

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

Версия 7.10.0.1742

У меня такой же вопрос

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

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

Базовая логика приложения - элемент "Страница редактирования" создает в системе техническую активность. Элемент "Преднастроенная страница"/"Автогененрируемая страница" активность не создает. По этой причине при выполнении этих элементов активность создана не будет.

"Демьяник Алексей" написал:Базовая логика приложения - элемент "Страница редактирования" создает в системе техническую активность. Элемент "Преднастроенная страница"/"Автогененрируемая страница" активность не создает. По этой причине при выполнении этих элементов активность создана не будет.

Нужно менять логику, конечно. А то большие проблемы с ходом БП из-за этого.

"Демьяник Алексей" написал:

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

Базовая логика приложения - элемент "Страница редактирования" создает в системе техническую активность. Элемент "Преднастроенная страница"/"Автогененрируемая страница" активность не создает. По этой причине при выполнении этих элементов активность создана не будет.


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

"Zaitova Liubov" написал:а нет никакой возможности сделать так, чтобы активность все таки появлялась?

Нет, но можете не использовать преднастроенная\автогенерируемая, а к примеру, создать новую сущность в системе, её раздел и страницу, которая бы отображала всю нужную информацию для работы над БП, и сохранять её в системе, после чего открывать её на редактирование, таким образом у вас будет и служебная активность, и история работы с заменителем "преднастроенная\автогенерируемая" страницы, т.к. это будет физический объект. Со своим разделом, если это будет необходимым, и.т.д.

"Максим Шевченко" написал:Нет, но можете не использовать преднастроенная\автогенерируемая,

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

"Владимир Соколов" написал:Да, иногда необходимо ввести дату. Или выбрать сотрудника из списка. Или ввести число. Для каждой такой страницы создавать свой раздел?

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

С другой стороны, вы так же можете создать обычную активность в рамках вашего БП, а открываемую "преднастроенная\автогенерируемая" страницу, привязать к ней, тогда в самой записи будет кнопка продолжения процесса:

И далее по процессу данную активность можно будет завершить. Как вариант.

Проблему зарегистрировали.

"Максим Шевченко" написал:

С другой стороны, вы так же можете создать обычную активность в рамках вашего БП, а открываемую "преднастроенная\автогенерируемая" страницу, привязать к ней, тогда в самой записи будет кнопка продолжения процесса:


а как страницу можно привязать к активности?

"Максим Шевченко" написал:В любом случае зарегистрируем проблему, что пользователям хочется видеть служебную активность

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

"Владимир Соколов" написал:И любой может взять и заполнить данные в этой странице

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

Войдите или зарегистрируйтесь, чтобы комментировать

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

У меня такой же вопрос

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

Тут был дан ответ

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

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

Возникла следующая проблема: создали преднастроенную страницу (добавили нужные поля и кнопки). На странице должно быть 4 LOOKUP поля и 1 TEXT. Лукап поля должны заполняться автоматически и быть недоступными для редактирования. Заполнение полей должно происходить в процессе из объекта Юр. Лиц, но не получается заполнить эти поля (не отображаются на странице).

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

Можете подсказать, как решить данную проблему?

С уважением,
Дмитрий

 

define("RefillManagerPageV2", ["CustomProcessPageV2Utilities", "ConfigurationEnums"],
        function(ProcessPageUtilities, Enums) {
                return {
                        mixins: {
                                BaseProcessViewModel: "Terrasoft.CustomProcessPageV2Utilities"
                        },
                        attributes: {
                                "Account": {
                                        dataValueType: Terrasoft.DataValueType.LOOKUP,
                                        referenceSchemaName: "Account"
                                },
                                "Category": {
                                        dataValueType: Terrasoft.DataValueType.LOOKUP,
                                        referenceSchemaName: "AccountCategory"
                                },
                                "CurrentManager": {
                                        dataValueType: Terrasoft.DataValueType.LOOKUP,
                                        referenceSchemaName: "Contact"
                                },
                                "NewManager": {
                                        dataValueType: Terrasoft.DataValueType.LOOKUP,
                                        referenceSchemaName: "Contact"
                                },
                                "RefillReason": {
                                        name: "Reason",
                                        dataValueType: Terrasoft.DataValueType.TEXT
                                }
                        },
                        methods: {
        /*                      onEntityInitialized: function() {
                                        this.callParent(arguments);
                                        var processData = this.get("ProcessData");
                                        var processParameters = processData.parameters;
                                        if (processParameters) {
                                                this.set("CurrentManager", processParameters.CurrentManager);
                                                this.set("NewManager", processParameters.NewManager);
                                                this.set("Account", processParameters.Account);
                                                this.set("Category", processParameters.Category);
                                                this.set("RefillReason", processParameters.RefillReason);
                                        }
                                },*/

                               
                                getHeader: function() {
                                        return this.get("Resources.Strings.HeaderLcz");
                                },
                                initHeaderCaption: Ext.emptyFn,
                               
                                onNextButtonClick: function() {
                                        this.acceptProcessElement("NextCode");
                                },
                                onDiscardChangesClick: function() {
                                        this.cancelProcessElement("CancelCode");
                                },
                                loadVocabulary: function(args, tag) {
                                        var column = this.getColumnByName(tag);
                                        args.schemaName = column.referenceSchemaName;
                                        this.callParent(arguments);
                                }
                        },
                        diff: /**SCHEMA_DIFF*/[
                                {
                                        "operation": "remove",
                                        "name": "CloseButton"
                                },
                                {
                                        "operation": "remove",
                                        "name": "actions"
                                },
                                {
                                        "operation": "remove",
                                        "name": "SaveButton"
                                },
                                {
                                        "operation": "remove",
                                        "name": "DelayExecutionButton"
                                },
                                {
                                        "operation": "remove",
                                        "name": "ViewOptionButton"
                                },
                                {
                                        "operation": "insert",
                                        "parentName": "LeftContainer",
                                        "propertyName": "items",
                                        "name": "SendToApproveButton",
                                        "values": {
                                                caption: { bindTo: "Resources.Strings.SendToApproveButtonCaption" },
                                                itemType: Terrasoft.ViewItemType.BUTTON,
                                                classes: {textClass: "actions-button-margin-right"},
                                                style: Terrasoft.controls.ButtonEnums.style.GREEN,
                                                click: {bindTo: "onNextButtonClick"}
                                        }
                                },
/*                              {
                                        "operation": "insert",
                                        "parentName": "LeftContainer",
                                        "propertyName": "items",
                                        "name": "NotSendToApproveButton",
                                        "values": {
                                                caption: { bindTo: "Resources.Strings.NotSendToApproveButtonCaption" },
                                                itemType: Terrasoft.ViewItemType.BUTTON,
                                                classes: {textClass: "actions-button-margin-right"},
                                                style: Terrasoft.controls.ButtonEnums.style.RED,
                                                click: {bindTo: "onDiscardChangesClick"}
                                        }
                                },*/

                                {
                                        "operation": "insert",
                                        "parentName": "Header",
                                        "propertyName": "items",
                                        "name": "CurrentManager",
                                        "values": {
                                                "caption": { "bindTo": "Resources.Strings.CurrentManagerLcz" },
                                                "contentType": Terrasoft.ContentType.LOOKUP,
                                                "bindTo": "CurrentManager",
                                                "layout": { "column": 0, "row": 2, "colSpan": 12 },
                                                "enabled": true
                                        }
                                },
                                {
                                        "operation": "insert",
                                        "parentName": "Header",
                                        "propertyName": "items",
                                        "name": "NewManager",
                                        "values": {
                                                "caption": { "bindTo": "Resources.Strings.NewManagerLcz" },
                                                "contentType": Terrasoft.ContentType.LOOKUP,
                                                "bindTo": "NewManager",
                                                "layout": { "column": 0, "row": 3, "colSpan": 12 },
                                                "enabled": true
                                        }
                                },
                                {
                                        "operation": "insert",
                                        "parentName": "Header",
                                        "propertyName": "items",
                                        "name": "Account",
                                        "values": {
                                                "caption": { "bindTo": "Resources.Strings.AccountLcz" },
                                                "contentType": Terrasoft.ContentType.LOOKUP,
                                                "bindTo": "Account",
                                                "layout": { "column": 0, "row": 0, "colSpan": 12 },
                                                "enabled": true
                                        }
                                },
                                {
                                        "operation": "insert",
                                        "parentName": "Header",
                                        "propertyName": "items",
                                        "name": "Category",
                                        "values": {
                                                "caption": { "bindTo": "Resources.Strings.CategoryLcz" },
                                                "contentType": Terrasoft.ContentType.LOOKUP,
                                                "bindTo": "Category",
                                                "layout": { "column": 0, "row": 1, "colSpan": 12 },
                                                "enabled": true
                                        }
                                },
                                {
                                        "operation": "insert",
                                        "parentName": "Header",
                                        "propertyName": "items",
                                        "name": "RefillReason",
                                        "values": {
                                                "caption": { "bindTo": "Resources.Strings.RefillReasonLcz" },
                                                "contentType": Terrasoft.ContentType.LOOKUP,
                                                "bindTo": "RefillReason",
                                                "layout": { "column": 0, "row": 4, "colSpan": 12 },
                                                "enabled": true
                                        }
                                }
                        ]/**SCHEMA_DIFF*/,
                        userCode: {}
                };
        });

 

У меня такой же вопрос

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

Добрый день.

Для решения Вашей задачи необходимо:

1) Заполнить свойство Parameters в структуре схеме необходимыми Вам атрибутами.
2) Добавить элемент "Преднастроенная страница" в БП.
3) Убедиться, что у элемента появились необходимые параметры.
3) Заполнять в БП параметры элемента (пункт 2).

При открытии карточки атрибуты уже будут присутствовать.

"Мотков Илья" написал:

1) Заполнить свойство Parameters в структуре схеме необходимыми Вам атрибутами.


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

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

Наглядно показал на скриншоте.

Примеры работы с параметрами в js коде, Вы можете посмотреть в схеме LeadManagementDistributionPageV2

Тёскин Дмитрий Валерьевич,

Вы прикалываетесь? серьезно? в 

LeadManagementDistributionPageV2 нет параметров.

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

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

Добрый день.
Прошу помочь в решении следующей задачи.
Есть преднастроенная страница, в которой необходимо реализовать заполнение виртуального поля по условию.
При выполнении скрипта, указанного в dependencies, атрибут "OwnersString" заполняется , но в поле карточки значение не отображается.

Предоставляю упрощённый пример моего кода:

define("SxAssignmentPreconfiguredPageV2", ["CustomProcessPageV2Utilities"],
    function() {
        return {
            messages: {},
            mixins: {
                BaseProcessViewModel: "Terrasoft.CustomProcessPageV2Utilities"
            },
            attributes: {
                "IsAssignment": {
                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                    dataValueType: Terrasoft.DataValueType.BOOLEAN,
                    caption: { bindTo: "Resources.Strings.IsAssignmentCaption" }
                },
               "OwnersString": {
                   type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                   dataValueType: Terrasoft.DataValueType.String,
                   dependencies: [{
                       columns: ["IsAssignment"],
                       methodName: "onIsAssignmentChanged"
                   }]
               }

            },
            methods: {
                onIsAssignmentChanged: function(){
                    debugger;
                  if(this.get("IsAssignment"))
                      this.set("OwnersString", "Поле заполнено");
                },
                                        /**
                                 * @overridden
                                 * @returns {string}
                                 */
                                getHeader: function() {
                                        return "PreconfiguredPageV2";
                                },
                                /**
                                 * @overridden
                                 */
                                onEntityInitialized: function() {
                                        this.callParent();
                                },
                                /**
                                 * @overridden
                                 */
                                initHeaderCaption: Ext.emptyFn,
                                /**
                                 * @protected
                                 * @overridden
                                 */
                                initPrintButtonMenu: Ext.emptyFn,
                                /**
                                 * @overridden
                                 * @param {Object} args Параметры
                                 * @param {Object} tag Тег
                                 */
                                loadVocabulary: function(args, tag) {
                                        args.schemaName = this.model.attributes[tag].referenceSchemaName;
                                        this.callParent(arguments);
                                },
                                /**
                                 * @overridden
                                 */
                                onCloseCardButtonClick: function() {
                                        this.sandbox.publish("BackHistoryState");
                                },
                                /**
                                 * @protected
                                 */
                                onNextButtonClick: function() {
                                        this.acceptProcessElement("NextButton");
                                }
            },
            diff:[
                {
                    "operation": "remove",
                    "name": "CloseButton"
                },
                {
                    "operation": "remove",
                    "name": "actions"
                },
                {
                    "operation": "remove",
                    "name": "SaveButton"
                },
                {
                    "operation": "remove",
                    "name": "DelayExecutionButton"
                },
                {
                    "operation": "remove",
                    "name": "ViewOptionsButton"
                },
                {
                    "operation": "insert",
                    "parentName": "Header",
                    "propertyName": "items",
                    "name": "HeaderLabel",
                    "values": {
                        layout: {column: 0, row: 0, colSpan: 12},
                        "itemType": Terrasoft.ViewItemType.LABEL,
                        "caption": { "bindTo": "Resources.Strings.HeaderLabelCaption" },
                        "labelClass": ["new-record-header-caption-label"]

                        /*"classes": {
                            "labelClass": [
                                "t-label "
                            ],
                            "wrapClass": [
                                "label-wrap"
                            ]
                        }*/

                    }
                },
                {
                    // Метаданные для добавления кнопки [Следующий]
                    "operation": "insert",
                    "parentName": "LeftContainer",
                    "propertyName": "items",
                    "name": "NextButton",
                    "values": {
                        caption: {bindTo: "Resources.Strings.NextButtonCaption"},
                        itemType: Terrasoft.ViewItemType.BUTTON,
                        classes: {textClass: "actions-button-margin-right"},
                        style: Terrasoft.controls.ButtonEnums.style.GREEN,
                        click: {bindTo: "onNextButtonClick"}
                    }
                },
                {
                    "operation": "insert",
                    "name": "IsAssignment",
                    "parentName": "Header",
                    "propertyName": "items",
                    "values":{
                        bindTo: "IsAssignment",
                        caption : {bindTo: "Resources.Strings.IsAssignmentCaption"},
                        layout: {column: 0, row: 1, colSpan: 6}
                    },
                    "index": 0
                },
                {
                    "operation": "insert",
                    "name": "OwnersString",
                    "parentName": "Header",
                    "propertyName": "items",
                    "values":{
                        bindTo: "OwnersString",
                        caption :  {
                            "bindTo": "Resources.Strings.OwnersStringCaption"
                        },
                        layout: {column: 0, row: 2, colSpan: 6},
                        "contentType": 0,
                        "controlConfig": {
                            "className": "Terrasoft.TextEdit"
                        }
                    }
                }


            ]
        };
    });

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

У меня такой же вопрос

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

Ошибка в типе атрибута, у системного перечисления DataValueType нет значения "String", но есть значение TEXT.

Спасибо, помогло.

Войдите или зарегистрируйтесь, чтобы комментировать