Добрый день, подскажите, можно ли сделать так, чтобы логическое "Отображать в расписании" всегда было выбрано при создании новой активности. Но и была возможность убрать галочку.

Нравится

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

Алёна, самый простой способ (если не прибегать к использованию кода):

Создать бизнес-процесс, который при создании активности(стартовый сигнал) будет устанавливать "галочку" в поле "Отобразить в расписании".

Это, собственно, вариант по-быстрому)

А почему не сделать замещающий объект и там поставить значение по умолчанию?

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

спасибо, попробую

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

Добрый день!

Имеем работающий экземпляр bpm`online sales team 7.10 (on-site) на сервере Windows Server 2012 R2.

Планируем установку еще одного экземпляра bpm`online sales team на том же сервере. Сейчас в Web.config прописано

Нужно ли для корректной работы вебсокетов во втором приложении portForClientConnection поменять на другой порт, например, на portForClientConnection="2011" и необходимы ли какие-либо еще настройки?

Нравится

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

Здравствуйте, Рината!

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

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

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

1. В детали "Участники активности" не знаю что выбрать в колонке детали и колонке объекта. Пробовала разные варианты - не получается.

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

2. Во всех активностях есть вкладка "Файлы и примечания". Что выбрать в детали "Файлы и ссылки Активности"?

и как добавить пункт "Примечания"?

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

Нравится

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

1) я обычно делаю таким образом:

2) Добавление детали . Примечание ,кажется это группа полей "Примечание"+ текстовое поле,у которого скрыт заголовок. Или же надо посмотреть, как кодом прописать добавление примечания на страницу.

Пример со страницы активности(ActivityPageV2, пакет UIv2).  Для текстового поля "Примечания". Обратите внимание  на controlConfig и images. 

{

                    "operation": "insert",

                    "parentName": "ActivityNotesControlGroup",

                    "propertyName": "items",

                    "name": "Notes",

                    "values": {

                        "contentType": Terrasoft.ContentType.RICH_TEXT,

                        "layout": {"column": 0, "row": 0, "colSpan": 24},

                        "labelConfig": {

                            "visible": false

                        },

                        "controlConfig": {

                            "imageLoaded": {

                                "bindTo": "insertImagesToNotes"

                            },

                            "images": {

                                "bindTo": "NotesImagesCollection"

                            }

                        }

                    }

                }

 

Матвеева Светлана,

Спасибо, попробую!

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

Я хочу в процессе создать активность, в которой дата=текущая дата, а время - конкретное. Но стандартные элементы позволяют либо выбирать текущую дату (без времени), либо текущую дату и время. А как объединить текущую дату и конкретное время, которое я могу выбрать?

И как задать в параметрах дату на следующий день (на завтра)?http://prntscr.com/g4x2g2

Нравится

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

Вам требуется это сделать прямо в БП, или же у Вас автогенерируемая страница и ввод пользователем ?

выбрать текущую дату и прилепить к ней время

пишет:

Вам требуется это сделать прямо в БП, или же у Вас автогенерируемая страница и ввод пользователем ?

 Да, мне это нужно в процессе сделать

Дмитрий Степанов пишет:

выбрать текущую дату и прилепить к ней время

 В этом-то и вопрос, как прилепить то?

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

Стоит следующая задача: если в карточке контакта изменилось текущее значение поля [Статус] на 'Reject', задать пользователю вопрос вида: "Вы, действительно, хотите установить 'Reject' статус", если пользователь отвечает да, тогда должен запускаться БП, который изменит статусы других, связанных объектов, если нет, тогда статус должен возвращаться в предыдущее состояние.

Сейчас это реализовано достаточно костыльным способом.

Для поля [Статус] создано dependencies, в котором реализован вызов следующего метода:

               var status = this.get("BTContactStatus");

                if (this.Ext.isEmpty(status)) {

                    return;

                }

                if (status.value === "f7ade63f-213d-4daa-a73d-75684c4bd689") {

                    var message = "Do you want set 'Reject' status?";

                    this.showConfirmationDialog(this.Ext.String.format(message, 1), function (result5) {

                        if (result5 === Terrasoft.MessageBoxButtons.NO.returnCode) {

                             var entity = Ext.create("Terrasoft.EntitySchemaQuery", {

                                rootSchemaName: "Contact"

                            });

                            entity.addColumn("BTContactStatus");

                            entity.filters.addItem(entity.createColumnFilterWithParameter(

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

                            entity.getEntityCollection(function(result) {

                                if (result.success) {

                                    if(result.collection.getCount() < 1) {

                                        this.set("BTContactStatus", null);

                                        return;

                                    }

                                    this.set("BTContactStatus", result.collection.getByIndex(0).get("BTContactStatus"));

                                }

                            }, this);

                        }

                    }, ["yes", "no"]);

                }

В методе описан сценарий, когда пользователь на вопрос отвечает 'Нет', а если пользователь на вопрос отвечает 'Да', в методе ничего не происходит, но в системе реализован процесс, который запускается по сигналу изменения статуса у контакта на 'Reject'.

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

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

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

И насколько целесообразно в данной задаче использовать валидацию для поля или есть другие способы решения данной задачи?

 

 

 

Нравится

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

Для контроля изменения в поле - необходимо установить на него dependencies (свойство конфигурационного объекта атрибута)

https://academy.terrasoft.ru/documents/technic-sdk/7-10/atributy-svoystvo-attributes

н/п установим метод обработчик для поля "Contact"

attributes:{
...
"Contact": {
	dependencies: [
		{
			columns: ["Contact"],
			methodName: "ContactChangeHandler"
		}
	]
}
...
},

вашу логику вынести в метод обработчик

в котором задайте интересующий вас вопрос пользователю

Terrasoft.utils.showMessage({
	caption: "Ваше сообщение пользователю",
	//набор используемых кнопок из списка стандартных для диалоговых окон
	buttons: ["yes", "no"],
	//метод-обработчик выполненных пользователем действий
	handler: function(code) {
		//если пользователь нажал "Да"
		if (code === "yes") {
			//ToDo
		//если пользователь нажал "Нет"
		//проверять необходимо явно, т.к. окно можно и просто закрыть
		} else if (code === "no") {
			//ToDo
		//логика "по умолчанию"
		} else {
			//ToDo
		}
	},
	defaultButton: 0,
	//контекст в котором будет вызвана функция обработчик handler
	scope: this
});



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

н/п создав специальный атрибут

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

в начале же вашего метода-обработчика изменения ориентируйтесь на его значение. 

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