Доброго дня!

Установили 7.15.4, но после ввода логина-пароля на странице ничего не происходит, а консоль "краснеет". Сам файл /ServiceModel/AuthService.svc в папке есть .. Как это исправить, есть идеи?

 

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

Нравится

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

Добрый день.

 

Пройдитесь ещё раз по инструкции по разворачиванию приложения bpm'online on-site, возможно, требуется донастроить какой-то компонент либо же серверу приложений на что-то не хватает доступа.

Также посмотрите файлы логов, часто там можно найти информацию о непосредственной причине проблемы. Их можно найти на сервере в папке Temp/BPMOnline.

Разобрался, спасибо!

Не хватало модуля IIS "Авторизация по HTTP" и WCF

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

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

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

В папке Assemblies библы лежат, а вот по указанным путям - пустые файлы:

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

Итого порядок действий:

1. Загрузил библиотеки через конфигуратор

2. Выгрузил в файловую систему наработки

3. Мердж в гите

4. Залил девелоп на тестовый сервер через файловую систему

5. Компиляция

Нравится

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

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

 

Ошибка может возникать из-за нехватки установленных компонентов, либо их версия не соответствует требуемой. 

Проверьте, что на веб-сервере установлены .NET Core SDK 3.1.301 и .NET Framework SDK v 4.7.2., а также Microsoft Visual C++ 2010.

 

Ссылки на скачивание есть в официальной документации:

https://academy.terrasoft.ru/docs/user/razvertyvanie_onsite/server_pril…

 

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

На форуме есть много разных примеров, но ни один из них не заработал на нашей версии. Нужно, чтобы деталь представляла собой таблицу, колонки которой - это колонки объекта, к которому привязана деталь, а каждая строка - это объекты, связанные через деталь с редактируемой страницей (допустим, деталь счета на странице контактов, где каждая строка - это счет текущего контакта). Нужно, чтобы при нажатии на плюс возле названия детали, добавлялась строка, которую пользователь может заполнить. Сейчас при нажатии плюса открывается страница редактирования детали, а нужно, чтобы деталь редактировалась напрямую в Grid'e. 

Financial Services, v7.15

Нравится

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

опишите то как вы добавляете от создания объекта до создания детали, включая примеры кода

Dima Avdoshin,

Я создал объект, привязал его к детали, добавил деталь на страницу. В схему детали добавил следующий код:

define("Schema5Detail", ["ConfigurationGrid", "ConfigurationGridGenerator", "ConfigurationGridUtilities"], function() {
	return {
		entitySchemaName: "BankAccount",
		attributes: {
            "IsEditable": {
                dataValueType: Terrasoft.DataValueType.BOOLEAN,
                type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                value: true
            }
        },
		details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
		diff: /**SCHEMA_DIFF*/[
            {
                "operation": "merge",
                "name": "DataGrid",
                "values": {
                    "className": "Terrasoft.ConfigurationGrid",
                    "generator": "ConfigurationGridGenerator.generatePartial",
                    "generateControlsConfig": { "bindTo": "generatActiveRowControlsConfig" },
                    "changeRow": { "bindTo": "changeRow" },
                    "unSelectRow": { "bindTo": "unSelectRow" },
                    "onGridClick": { "bindTo": "onGridClick" },
                    "activeRowActions": [
                        {
                            "className": "Terrasoft.Button",
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "save",
                            "markerValue": "save",
                            "imageConfig": { "bindTo": "Resources.Images.SaveIcon" }
                        },
                        {
                            "className": "Terrasoft.Button",
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "cancel",
                            "markerValue": "cancel",
                            "imageConfig": { "bindTo": "Resources.Images.CancelIcon" }
                        },
                        // {
                        //     "className": "Terrasoft.Button",
                        //     "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                        //     "tag": "remove",
                        //     "markerValue": "remove",
                        //     "imageConfig": { "bindTo": "Resources.Images.RemoveIcon" }
                        // },
                        {
                            "className": "Terrasoft.Button", // последняя кнопка в коде
                            "style": this.Terrasoft.controls.ButtonEnums.style.TRANSPARENT,
                            "tag": "card",
                            "markerValue": "card",
                            "imageConfig": { "bindTo": "Resources.Images.RemoveIcon" }
                        },
                    ],
                    "initActiveRowKeyMap": { "bindTo": "initActiveRowKeyMap" },
                    "activeRowAction": { "bindTo": "onActiveRowAction" },
                    "multiSelect": false
                }
            }
        ]/**SCHEMA_DIFF*/,
		methods: {},
		mixins: {
			ConfigurationGridUtilites: "Terrasoft.ConfigurationGridUtilities"
		}
	};
});

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

Возьмите прекрасное дополнение с Marketplace и используйте готовые шаблоны https://marketplace.terrasoft.ru/template/templates-developing-custom-d…

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

большое спасибо, но, увы, это дополнение поддерживается только начиная с 7.16, а у меня установлена 7.15.

Нельзя как-то в коде настроить, в каком порядке отображать колонки объекта на гриде?

Гусейн Гулиев,

Вам проще будет обновиться до новой версии :-)

Гусейн Гулиев пишет:

это дополнение поддерживается только начиная с 7.16, а у меня установлена 7.15.

что-то мне подсказывает, что это дополнение просто появилось, когда была версия 7.16, и никто его на ранних не тестировал.  



Ну, и даже с этим дополнением иногда нужно перекомпилировать и очистить Redis, чтобы заработало, как надо

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

Добрый день.



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

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

Добрый день!

Есть объект "Заявка", в нём поле "Анкета", мне нужно на страницу редактирования раздела заявки (вроде так называется, наследуется от BaseModulePageV2 ( NUI )) вывести поля анкеты.

Что я сделал: добавил в код страницы редактирования заявки и раздела заявки кусок:

dataModels: /**SCHEMA_DATA_MODELS*/{

                "AppQ": {

                    "entitySchemaName": "ApplicationQuestionnaire",

                    "primaryColumnValue": {

                        "bindTo": "ApplicationQuestionnaire"

                    }

                }

            }/**SCHEMA_DATA_MODELS*/,

 

В diff'е страницы редактирования заявки прописал несколько полей по типу:

{

                    "operation": "insert",

                    "name": "TscAppFilingMethod",

                    "values": {

                        "bindTo": "AppQ.AppFilingMethod",

                        "layout": {

                            "column": 0,

                            "row": 0,

                            "colSpan": 12,

                            "rowSpan": 1

                        },

                        "enabled": false

                    },

                    "parentName": "AppQInfoGroupGridLayout",

                    "propertyName": "items"

                }

Дальше происходит следующее:

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

Когда поля не отображаются в консоль выводится следующее сообщение:

Заголовок для подписи "AppFilingMethod" не был найден.

Невозможно найти колонку по конфигурации: "{"bindTo":"AppQ.AppFilingMethod","layout":{"colSpan":12,"rowSpan":1,"column":0,"row":0},"enabled":false,"name":"AppFilingMethod"}" .

Отображаются эти ошибки как на странице раздела, так и на странице редактирования.

Нужно как-то проинициализировать AppQ на странице раздела или я не прав? Подскажите, пожалуйста. 

Использовать запросы и выводить виртуальные поля очень не хочется.

Нравится

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

eduard-t,

Добрый день.



Похоже, что никак. У нас в системе нет понимания как в таком кейсе будет работать сохранение и редактирование таких полей, соответственно могут возникнуть проблемы. В Ext мы официально и не поддерживаем несколько датасорсов, кроме как на преднастроенных страницах.



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

Или же придется использовать запросы. Например, можно решить так:

 

1.    Добавляем виртуальный атрибут нужного типа в секцию атрибутов:

attributes: {



    "AlternativeMobilePhone": {

        dataValueType: this.Terrasoft.DataValueType.TEXT,

        type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

        caption: "Alternative mobile phone",

        value: null

    },

            

2.    Выводим его на странице в секции дифов:



{

    "operation": "insert",

    "name": "AlternativeMobilePhone",

    "values": {

        "layout": {

            "colSpan": 12,

            "rowSpan": 1,

            "column": 0,

            "row": 2,

            "layoutName": "ContactTab"

        },

        "bindTo": "AlternativeMobilePhone"

    },

    "parentName": "ContactTab",

    "propertyName": "items",

    "index": 4

},

            

3.    Пишем функцию получения нужных данных и установки в вируальные атрибуты\атрибут:



getContactInfo: function() {

    var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

        rootSchemaName: "Contact"

    });



    esq.addColumn("Phone");



    esq.filters.add("ContactFilter", this.Terrasoft.createColumnFilterWithParameter(

        this.Terrasoft.ComparisonType.EQUAL, "Id", this.get("Contact").value));

    esq.getEntityCollection(function(result) {

        if (result.success) {

            var collection = result.collection;

            if (collection && collection.collection.items.length > 0) {

                var item = collection.collection.items[0];



                this.set("AlternativeMobilePhone", item.get("Phone"));



            }

        }

    }.bind(this));

},

            

4.    При инициализации карточки вызываем этот метод:



onEntityInitialized: function() {

    this.callParent(arguments);

    this.getContactInfo();

},



5.    Для случаев изменения контакта в рантайме, делаем подписку на его изменение и вызов этого же метода получения нужной информации, делается это в блоке атрибутов:



"AnyName": {

    "value": false,

    "dataValueType": Terrasoft.DataValueType.BOOLEAN,

    "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

    "dependencies": [

        {

            "columns": ["Contact"],

            "methodName": "getContactInfo"

        }

    ]

},

Добрый день. 



Попробуйте добавить в values свойство caption и указать конкретное название:

"layout": {

                            "column": 0,

                            "row": 0,

                            "colSpan": 12,

                            "rowSpan": 1,

                           "caption":"MyCaption"

                        }



После этого ошибка должна уйти. Или же проверьте есть ли заголовок данной колонки в объекте. 

Mykhailo Storozhuk,

Добрый день. Проблема не в этом, caption нормально подтягивается (из заголовка колонки анкеты), если колонка загружена, но колонка не загружается если заходить через раздел.

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

Обновляю страницу, и всё подтягивается:

Как сделать, чтобы подтягивалось без обновления страницы?

eduard-t,

Добрый день.



Похоже, что никак. У нас в системе нет понимания как в таком кейсе будет работать сохранение и редактирование таких полей, соответственно могут возникнуть проблемы. В Ext мы официально и не поддерживаем несколько датасорсов, кроме как на преднастроенных страницах.



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

Или же придется использовать запросы. Например, можно решить так:

 

1.    Добавляем виртуальный атрибут нужного типа в секцию атрибутов:

attributes: {



    "AlternativeMobilePhone": {

        dataValueType: this.Terrasoft.DataValueType.TEXT,

        type: this.Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

        caption: "Alternative mobile phone",

        value: null

    },

            

2.    Выводим его на странице в секции дифов:



{

    "operation": "insert",

    "name": "AlternativeMobilePhone",

    "values": {

        "layout": {

            "colSpan": 12,

            "rowSpan": 1,

            "column": 0,

            "row": 2,

            "layoutName": "ContactTab"

        },

        "bindTo": "AlternativeMobilePhone"

    },

    "parentName": "ContactTab",

    "propertyName": "items",

    "index": 4

},

            

3.    Пишем функцию получения нужных данных и установки в вируальные атрибуты\атрибут:



getContactInfo: function() {

    var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {

        rootSchemaName: "Contact"

    });



    esq.addColumn("Phone");



    esq.filters.add("ContactFilter", this.Terrasoft.createColumnFilterWithParameter(

        this.Terrasoft.ComparisonType.EQUAL, "Id", this.get("Contact").value));

    esq.getEntityCollection(function(result) {

        if (result.success) {

            var collection = result.collection;

            if (collection && collection.collection.items.length > 0) {

                var item = collection.collection.items[0];



                this.set("AlternativeMobilePhone", item.get("Phone"));



            }

        }

    }.bind(this));

},

            

4.    При инициализации карточки вызываем этот метод:



onEntityInitialized: function() {

    this.callParent(arguments);

    this.getContactInfo();

},



5.    Для случаев изменения контакта в рантайме, делаем подписку на его изменение и вызов этого же метода получения нужной информации, делается это в блоке атрибутов:



"AnyName": {

    "value": false,

    "dataValueType": Terrasoft.DataValueType.BOOLEAN,

    "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

    "dependencies": [

        {

            "columns": ["Contact"],

            "methodName": "getContactInfo"

        }

    ]

},

Mykhailo Storozhuk,

Большое спасибо! Не знал про существование ProfileSchema, это как раз то, что нужно.

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

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

 

Есть задача: Сразу после авторизации пользователя выводить ему системное сообщение с текстом (Текст каждый раз может меняться, своего рода оповещение пользователя о возможном обновлении системы, недоступности или любом другом объявлении).

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

Подскажите пожалуйста, в какую часть кода вставлять эту проверку? Где найти этот момент после авторизации? Может навесить на нажатие кнопки "Войти"?

 

Заранее благодарю!

Нравится

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

Артур, добрый день!

 

Вот пример, нужно только создать сис. настройки:

1. Схема UsrBaseViewModule:

 define("UsrBaseViewModule", [], function() {

    Ext.define("Terrasoft.configuration.UsrBaseViewModule", {

        override: "Terrasoft.configuration.BaseViewModule",

        alternateClassName: "Terrasoft.UsrBaseViewModule",

        

        initHomePage: function(callback, scope) {

            this.callParent(arguments);

            this.showStartMessage(scope);

        },

        

        showStartMessage: function(scope) {

            Terrasoft.SysSettings.querySysSetting(["IsShowIntroMessage", "IntroMessageText"], function(result) {

                if (result && result.IsShowIntroMessage) {

                    if (result.IntroMessageText) {

                        Terrasoft.showMessage(result.IntroMessageText);

                    }

                }

            }, scope);

        }

    });

    return Terrasoft.UsrBaseViewModule;

});

 

2. Схема BootstrapModulesV2 (нужна для загрузки первой):

define("BootstrapModulesV2", ["UsrBaseViewModule"], function() {

    return {};

});

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

Они оба замещающие объекты или нет?

Артур, только вторая схема замещена, первая создаётся как новый модуль.

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

Добрый день!

Есть запрос, Terrasoft.Core.DB.Select, вот кусок:

                    .Distinct().Column("bslc", "Id").As("LinkId")

                    .Column("bslc", "Code").As("Code")

                    .Column("cardProfile", "TextValue").As("Name")

                    .Column("priority", "IntegerValue")

При попытке выполнить, ругается на выделенную строку, так как тип колонки NCLOB (Oracle.DataAccess.Client.OracleException: 'ORA-00932: inconsistent datatypes: expected - got NCLOB').

Если выполнять этот запрос из БД, то так:

                    SELECT DISTINCT

                        "bslc"."Id" "Id",

                        "bslc"."Code" "Code",

                        TO_CHAR("cardProfile"."TextValue") "Name",

                        "priority"."IntegerValue"

не ругается.

Можно ли в Terrasoft.Core.DB.Select использовать TO_CHAR() и как это сделать?

Нравится

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

Добрый день.



Нет, нельзя. В системе не предусмотрено данной реализации. 



Для приведения к определенному типу Вы можете использовать cast'ы. Более подробно описано в документации на академии. 

Например, тут

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

После редактирования страницы и нажатия на пользовательскую кнопку, я передаю её guid (точнее, ид создаваемого в ней объекта) в бизнес-процесс. Но так как  перед вызовом не было нажато "сохранить", объекта с этим guid нет. Я могу эмулировать действие нажатия кнопки "сохранить" из кода? Не хочется вручную создавать объект по данным из страницы, так как пользователь может потом нажать "сохранить". И да, можно ли как-то убрать эту кнопку насовсем, или перехватить вызываемый ей метод, чтобы в коде при определённых обстоятельствах просто не вызывать this.CallParent?

Нравится

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

Думаю, можете вызвать тихое сохранение при нажатии на пользовательскую кнопку: 

this.save({isSilent: true});

 

Думаю, можете вызвать тихое сохранение при нажатии на пользовательскую кнопку: 

this.save({isSilent: true});

 

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

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



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



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

Нравится

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

на страницу, в секцию атрибутов добавить, если надо вкл/выкл по условию

attributes: {
            
            "ButtonEnabled": {
                "dataValueType": Terrasoft.DataValueType.BOOLEAN,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "value": false
            }

Вызов функции на кнопке

  onButtonClick: function(){ 
                this.SomeFunc();

Сама кнопка в DIFF            

    {
                "operation": "insert",
                "name": "Button",
                "values": {
                    "itemType": 5,
                    "caption": {
                        "bindTo": "Resources.Strings.ButtonCaption"
                    },
                    "click": {
                        "bindTo": "onButtonClick"
                    },
                    "style": "blue",
                    "enabled": {
                        "bindTo": "ButtonEnabled"
                    },
                    "layout": {
                        "colSpan": 12,
                        "rowSpan": 1,
                        "column": 0,
                        "row": 0,
                        "layoutName": "Tab72b43268TabLabelGridLayoutfb645753"
                    }
                },
                "parentName": "Tab72b43268TabLabelGridLayoutfb645753",
                "propertyName": "items",
                "index": 0
            },

В LocalizableString

ButtonCaption    - Текст на кнопке

Если расположение кнопки не имеет значения, то можно использовать меню в "Действиях" 

 

			getActions: function() {
				var actionMenuItems = this.callParent(arguments);
				actionMenuItems.addItem(this.getButtonMenuItem({
					"Caption": {"bindTo": "Resources.Strings.MyButtonCaption"},
					"Click": {"bindTo": "onMyButtonClick"}
				}));
				return actionMenuItems;
			},

 

на страницу, в секцию атрибутов добавить, если надо вкл/выкл по условию

attributes: {
            
            "ButtonEnabled": {
                "dataValueType": Terrasoft.DataValueType.BOOLEAN,
                "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
                "value": false
            }

Вызов функции на кнопке

  onButtonClick: function(){ 
                this.SomeFunc();

Сама кнопка в DIFF            

    {
                "operation": "insert",
                "name": "Button",
                "values": {
                    "itemType": 5,
                    "caption": {
                        "bindTo": "Resources.Strings.ButtonCaption"
                    },
                    "click": {
                        "bindTo": "onButtonClick"
                    },
                    "style": "blue",
                    "enabled": {
                        "bindTo": "ButtonEnabled"
                    },
                    "layout": {
                        "colSpan": 12,
                        "rowSpan": 1,
                        "column": 0,
                        "row": 0,
                        "layoutName": "Tab72b43268TabLabelGridLayoutfb645753"
                    }
                },
                "parentName": "Tab72b43268TabLabelGridLayoutfb645753",
                "propertyName": "items",
                "index": 0
            },

В LocalizableString

ButtonCaption    - Текст на кнопке

Oleg,

Кнопка добавилась, и даже отображается в инспекторе, но при этом она  абсолютно невидима. В enabled установлено true.

В вашем коде изменил только родительский контейнер и, соответственно, layoutName. У других элементов на странице тот же родитель

Гусейн Гулиев,



В LocalizableStrings добавили? 

Oleg,

Спасибо большое, Олег. Хотел ответить "захардкодил", потом заметил, что захардкодил неправильно, но оставлю тут этот неправильный пример, на случай если кто столкнется в будущем.

{
	"operation": "insert",
	"name": "Button",
	"values": {
		"itemType": 5,
		"caption": {// Правильно: "caption" :"Check out",
			"bindTo": "Check out" // неправильное использование bindTo
		},
		"click": {
			"bindTo": "onButtonClick"
		},
		"style": "blue",
		"enabled": true,
		"layout": {
			"colSpan": 8,
			"rowSpan": 1,
			"column": 16,
			"row": 6,
			"layoutName": "Tab84fbfd75TabLabelGridLayout489fb6f3"
		}
	},
	"parentName": "Tab84fbfd75TabLabelGridLayout489fb6f3",
	"propertyName": "items",
	"index": 6
},

 

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

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

Нравится

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

У меня работает таким образом

 

			onEntityInitialized: function(){
 
				this.on("change:CardStatus", function() {
				this.set("CardClosingReason", null);
				this.set("CardSuspendingReason", null);
		//	this.set("CardClosingReason", {value: null});
			}, this);
			},

 

Нужно также перехватывать событие изменение выбранного поля справочника

У меня работает таким образом

 

			onEntityInitialized: function(){
 
				this.on("change:CardStatus", function() {
				this.set("CardClosingReason", null);
				this.set("CardSuspendingReason", null);
		//	this.set("CardClosingReason", {value: null});
			}, this);
			},

 

Oleg, большое спасибо, это то что надо. А где вы этому научились?

Может, где-то есть документация по работе с ExtJS в Creatio? Я обращался за материалам к террасофт, мне сказали, что не могут предоставить курсы/треннинг, охватывающие именно это. 

Где я могу узнать список всех возможных событий с примерами подписки на них? Если синтаксис this.on можно прочитать в туториалах по ExtJS, то аргументы "event":"sender" для Creatio я просто понятия не имею, где посмотреть. Заранее спасибо за ваш ответ

Гусейн Гулиев,

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



ОГРОМНЕЙШЕЕ СПАСИБО тем, кто выклыдывает реальные примеры кода - это помогает гораздо больше, чем 1000 строк теории.

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

Я правильно понимаю, что CardStatus в вашем примере - это код поля типа "справочник" на странице, верно? Который в diff указывается как bindTo?

 

О нет. Документации нет) Исходники, подсматривания в примеры, вотэтовотвсё. 

Немного помогает практикум по разработке на платформе. https://academy.terrasoft.ua/trainings

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

Добрый день!

 

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

Хочу преобразовать объект в зависимости от наличия определенных ключевых слов в теме письма.

Нравится

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

contains и тернарный оператор типа такого

"12".Contains("1") ? true : false (любой тип может быть не только бул) 

 

 

Dima Avdoshin,

"[#Выбрать обращения под закрытие от ТБ.Коллекция записей:Тема#]".Contains("VPN")?true : false - т.е. если я пропишу это в условном направлении то если тема будет содержать VPN то процесс пойдет по этому маршруту правильно?  Можно узнать где можно найти про про эти операторы работы с текстом в Creatio?

Алексей Демин,

это с# , формулы поддерживают его код и функциии целиком и полностью

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