Добрый день!

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

Как мне лучше реализовать эту задачу:

1) виндовый сервис

2) бп с таймером(скрин). но тут я боюсь, что таймер как-то некорректно будет работать, например, если прекращается активность пользователей, то таймер будет работать или нет?

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

Нравится

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

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

Добавление происходило через мастер мобильного приложения.

Так же автоматом создало 3 схемы и замещающий манифест в текущем пакете.

При попытке добавить файл мы наблюдаем следующее, возможность добавить файл полностью отсутствует!!!

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

Хотелось бы спросить чего по настоящему недостает в автосгенерированном мастером коде, для отображения списка вариантов по клику на + в детали файлов.

Опять же, пример который был описан на Академии по добавлению такой детали к разделу Контакт не увенчался успехом, а просто напросто свалил приложение с ошибкой синхронизации, что говорит о том, что скорее сего был как-то ошибочно замещен манифест данного приложения.

Вобщем коллеги, обращаюсь за помощью к вам.

Думаю не мне одному интересно как с этим справиться.

Нравится

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

Михаил, здравствуйте!

Данная деталь является специфической, так как добавление и хранение данных отличается от других деталей. Поэтому нужно на уровне кода добавлять данную деталь. Инструкция давненько лежит на SDK и которая не раз была направлена пользователям системы - https://academy.terrasoft.ru/documents/technic-sdk/7-11/mobilnoe-priloz…

Цитата на Академии:

"Деталь "Файлы и ссылки" доступна во всех разделах bpm'online (см. "Файлы и примечания") и в разделе [Продажи] ([Opportunities]) мобильного приложения" - это ответ на Ваш вопрос по поводу раздела "Продажи".

Удалите через мастер эту деталь и выполните согласно инструкции:

- До 7.11.2 - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-deta…

- 7.11.2 и выше - https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-deta…

Примечение. Манифест проще всего создать через мастер (создается автоматически при сохранении текущих настроек).

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

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

 

Хорошего дня!

 

Добрый день! 

В версии bpm'online 7.11.3 добавлена возможность добавить деталь "Файлы и ссылки" в любой раздел мобильного приложения (если для аналогичного раздела деталь существует в основном интерфейсе) через мастер мобильного приложения.

Для этого требуется зайти в мастер мобильного приложения – выбрать раздел – выбрать настройку страницы - добавить встроенную деталь, которая будет ссылаться на соответствующий объект – сохранить настройку - выполнить синхронизацию мобильного приложения.

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

Коллеги, нужна помощь.

В inputBox пытаюсь вывести колонку DateTime.

Сам вывод получился как то вот так:

Terrasoft.utils.inputBox("Make task value", function(result, arg) {
	if (result === Terrasoft.MessageBoxButtons.YES.returnCode) {
		alert(result);
	}
}, [{
		className: "Terrasoft.Button",
		caption: "Next",
		returnCode: "yes"
	}, "Cancel"],
	this,
	{
		name: {
			dataValueType: Terrasoft.DataValueType.TEXT,
			caption: "Caption",
			customConfig: {
				className: "Terrasoft.MemoEdit",
				height: "77px"
			},
			isRequired: true
		},
		startDate: {
			dataValueType: Terrasoft.DataValueType.DATE_TIME,
			caption: "Start date",
			customConfig: {
				className: "Terrasoft.Container",
				value: {"bindTo" : "startDate"},
				items: [
					{
						className: "Terrasoft.DateEdit",
						id: "newStartDateEdit",
						width: "50%"
					},
					{
						className: "Terrasoft.TimeEdit",
						id: "newStartTimeEdit",
						width: "50%"
					}
				]
		}
	}
}

Выглядит это дело вот так:

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

 

При клике на кнопку Next закрывается форма и консоль в red-style с содержимым:

Uncaught TypeError: b[c].control.getValue is not a function

    at i.updateCustomControl (all-combined.js:formatted:79169)

    at i.onStateChanged (all-combined.js:formatted:78983)

    at i.fire (all-combined.js:formatted:6223)

    at i.continueFireEvent (all-combined.js:formatted:7144)

    at i.fireEventArgs (all-combined.js:formatted:7129)

    at i.fireEvent (all-combined.js:formatted:7120)

    at i. (all-combined.js:formatted:79078)

    at i.fire (all-combined.js:formatted:6223)

    at i.continueFireEvent (all-combined.js:formatted:7144)

    at i.fireEventArgs (all-combined.js:formatted:7129)

 

Кто сталкивался или кто знает как решить этот вопрос?

Нравится

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

потестил, он пытается взять value контейнера (этого сделать конечно же нельзя). А по другому никак, ибо Date_Time - это по сути контейнер из 2х других контролов. Можно попробовать раздробить

startDate: {
	caption: "Start date",
	dataValueType: Terrasoft.DataValueType.DATE_TIME,
	value: {"bindTo" : "startDate"},
	customConfig: {
		className: "Terrasoft.DateEdit"
	}
},
startTime: {
	caption: "Strat time",
	dataValueType: Terrasoft.DataValueType.DATE_TIME,
	value: {"bindTo" : "startDate"},
	customConfig: {
		className: "Terrasoft.TimeEdit"
	}
}

 

Пробовали, className: "Terrasoft.TimeEdit" напрочь отказывается показывать. В консоли сообщение о том что присутствует недопустимое значение.

В любом случае логика контролов с типами DATE_TIME и TIME фейлятся в inputBox, похоже это деффект платформы:



DATE_TIME

TIME

Господа, не знаю, что у вас там не работает... У меня завелось вот так:

Terrasoft.utils.inputBox("Make task value", function(result, args) {
	if (result === Terrasoft.MessageBoxButtons.YES.returnCode) {
		//alert(result);
		debugger;
		console.log(args);
	}
}, [{
		className: "Terrasoft.Button",
		caption: "Next",
		returnCode: "yes"
	}, "Cancel"],
	this,
	{
		kappa: {
			dataValueType: Terrasoft.DataValueType.TEXT,
			caption: "Caption",
			customConfig: {
				className: "Terrasoft.MemoEdit",
				height: "80px"
			},
			value: "",
			isRequired: true
		},
		startDate: {
			caption: "Start date",
			dataValueType: Terrasoft.DataValueType.DATE,
			value: new Date(),
			customConfig: {
				className: "Terrasoft.DateEdit"
			}
		},
		endDate: {
			caption: "Start time",
			dataValueType: Terrasoft.DataValueType.TIME,
			value: new Date(),
			customConfig: {
				className: "Terrasoft.TimeEdit"
			}
		}
});

Правды выглядит это всё сомнительно

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

 

ps. 12 часов ночи, чем я, блин, занимаюсь...

Так. всё. я вконец упоролся, но таки сделал.

Хочется передать привет товарищу из террасофта, который лепит затычки в Terrasoft.utils.controls.getControlConfigByDataValueType. Там в свитчере:

    switch (a) {
    case Terrasoft.DataValueType.TEXT:
        b = {
            className: "Terrasoft.TextEdit"
        };
    //тут куча других типов
    //....
    //А для 3х оставшихся сделать поленились
    case Terrasoft.DataValueType.GUID:
    case Terrasoft.DataValueType.DATE_TIME:
    case Terrasoft.DataValueType.BLOB:
        b = null
    }

Ну и то, что в итоге получилось у меня:

Terrasoft.utils.inputBox("Make task value", function(result, args) {
	if (result === Terrasoft.MessageBoxButtons.YES.returnCode) {
		//alert(result);
		debugger;
		console.log(args);
	}
}, [{
		className: "Terrasoft.Button",
		caption: "Next",
		returnCode: "yes"
	}, "Cancel"],
	this,
	{
		kappa: {
			dataValueType: Terrasoft.DataValueType.TEXT,
			caption: "Caption",
			customConfig: {
				className: "Terrasoft.MemoEdit",
				height: "80px"
			},
			value: "",
			isRequired: true
		},
		DateTimer: {
			dataValueType: Terrasoft.DataValueType.DATE_TIME,
			caption: "Start date",
			value: new Date(),
			customConfig: {
				className: "Terrasoft.Container",
				getValue: function() {
					//debugger;
					var dateValue = this.items.items[0].value;
					var timeValue = this.items.items[1].value;
					dateValue.setHours(timeValue.getHours());
					dateValue.setMinutes(timeValue.getMinutes());
					return dateValue;
				},
				items: [
					{
						className: "Terrasoft.DateEdit",
						id: "newStartDateEdit",
						value: new Date(),
						width: "50%"
					},
					{
						className: "Terrasoft.TimeEdit",
						id: "newStartTimeEdit",
						value: new Date(),
						width: "50%"
					}
				]
			}
		}
});

 

Варфоломеев Данила, отдельное вам спасибо!)

Кстати, как насчет вывода в InputBox справочных полей (Terrasoft.DataValueType.LOOKUP)

Есть идеи ?

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

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

На тестовом стенде мобильного приложения есть возможность прикладывать файлы в разделе продаж. Мне бы хотелось добавить такую возможность к активностям. Есть ли такая возможность и как это можно сделать? 

Спасибо.

Нравится

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

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

 

Для решения вашей бизнес цели рекомендую воспользоваться статьей https://academy.terrasoft.ru/documents/technic-sdk/7-11/dobavlenie-deta…

 

В версии bpm'online 7.11.3 добавлена возможность добавить деталь "Файлы и ссылки" в любой раздел мобильного приложения (если для аналогичного раздела деталь существует в основном интерфейсе) через мастер мобильного приложения.

Для этого требуется зайти в мастер мобильного приложения – выбрать раздел – выбрать настройку страницы - добавить встроенную деталь, которая будет ссылаться на соответствующий объект – сохранить настройку - выполнить синхронизацию мобильного приложения.

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

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

Добрый день.

Портал самообслуживания. Есть справочник "Шаблоны Email сообщений". В нём есть запись "Шаблон регистрации пользователя портала". Там указан такой вот текстовый шаблон: 

 

Здравствуйте, [#Адресат.ФИО#]!

 

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

 

#RegistrationUrl#

 

С уважением,

Служба поддержки



Когда пользователь, например, с ФИО Иванов Иван Иванович регистрируется на портале самообслуживания, то ему приходит на его почту в точь-точь такое текстовое письмо выше.

 

Как сделать так, чтобы в письме было не так — Здравствуйте, [#Адресат.ФИО#]!, а именно вот так — Здравствуйте, Иванов Иван Иванович! (ну или другое ФИО, которое должно автоматически проставляться, когда новый пользователь заполнил специальную форму для регистрации)?

Нравится

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

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

 

Решением проблемы в данном случае будет изменение макроса с [#Адресат.ФИО#] на [#Recipient.Name#].

В процессе разработки мы ушли от поля Адресат и пришли к Recipient (судя по всему из-за мультиязычности).

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

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

Подскажите возможен ли экспорт реестра данных в формат xls и/или xlsx.

Нравится

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

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

В текущей реализации приложения экспорт возможен только в формат *.csv, но реализация экспорта в *.xlsx запланирована на версию 7.12.

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