Добрый день.

Пытаюсь выбрать шаблон письма в элементе БП "Визирование", но список пуст. Если при этом перейти в расширенный режим, то в "Шаблоне письма визирующего" шаблон выбрать можно, но при отправке письма, информация о счете, что была добавленна с помощью макроса не заполняется. В чем может быть проблема? Объект счёт вроде указан, на счёт ссылка есть, но всё равно значения в письме пусты. Такая же ерунда если выбрать Договора, Заказы.

Скрины прилагаю.

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

Нравится

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

Добрый день!



Описанная Вами проблема связана с тем, что для указанного объекта нет созданных шаблонов. Вам необходимо, чтобы в поле "Источник макросов" в выбранном шаблоне был указан объект "Виза счета", а не "Счет": http://prntscr.com/jxkfg3

 

Анна Журавель,

Спасибо, заработало!

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

Не работает бизнес процесс "Получить количество уведомлений". 

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

Подскажите с чем это может быть связано?

и виляет ли это на отображение количества  уведомлений (сами уведомления появляются, но на колокольчику нету цифр)

Нравится

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

А какой текст ошибки в журнале процесса?

Его можно скачать, нажав кнопку [Download error description] (Скачать описание ошибки), которая появляется, если выбрать элемент, выполнившийся с ошибкой.

Алла Савельева,

System.Reflection.TargetInvocationException: Адресат вызова создал исключение. ---> Terrasoft.Common.ItemNotFoundException: Элемент с уникальным идентификатором "18ead718-9319-48cc-9eef-9e3344a5a338" не найден

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

Как у Вас развернуто приложение on-site или on-demand?

Алла Савельева,

Да. это базовый процесс. правок нет. и на on-site on-domain процесс не работает. Сейчас более актуальна проблема с on-site

yura.makarchuk,

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

Так как это базовый процесс и Вы его не изменяли, обратитесь в службу поддержки Terrasoft (их контакты можно найти на сайте или по e-mail support@terrasoft.ru) они помогут Вам с решением данной проблемы.

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

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



Хочу создать базу инструкций по работе с системой. Классическая документация от Террасофт нам не подходит т.к очень много функционала сделаного исключительно под собственные нужны.



Хочется использовать для этого Базу знаний, но работать в ней с текстами и графикой совершенно не удобно.



Подскажите, может быть есть какие-то дополнения или другие способы, которые могут расширить функционал БЗ? Особенно интересует возможность работы с текстами в HTML (форматирование текста, размер картинки и тд).

Нравится

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

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

На данный момент на странице записи базы знаний присутствует специальное поле с HTML форматированием, которое частично поддерживает работу с текстами в HTML (можно устанавливать разные шрифты, изображения). В приложении bpm’online для реализации такого поля используется CKEditor, это сторонняя разработка. Функционал базовых возможностей данного поля реализован в ядре приложения. 

Уточните, пожалуйста, какого именно функционала недостает, мы передадим информацию аналитикам продукта для рассмотрения возможности внедрения новой версии редактора.

Одеяненко Юлия,

Здравсвуйте! А где найти это специальное поле? Не вижу его у себя в редакторе.

На счет функционала: изменения размера картинок, работа с таблицами, якоря.

Andrey Aleksandrov,

имелось в виду поле, над которым специальная панель со шрифтами, списками, расположением текста и т. п. (на скриншоте в рамочке - 

http://prntscr.com/k0bv1u).

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

Спасибо, что помогаете улучшать наши продукты!

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

Добрый день.

Мы обновились на тестовой платформе до версии bpmonline 7.12.1. Когда я захотел обновить на тестовой платформе пакет своей разработки из SVN, то получил сообщение об ошибке " Невозможно установить пакет "InhouseDeNovoSharepoint" версии "1.0.0.1", так как зависимый пакет "SalesEnterpriseSoftkey_RUS" версии "7.8.0" не найден ни в одном из хранилищ системы контроля версий". Я посмотрел и, действительно, после обновления на тестовой платформе пропал пакет SalesEnterpriseSoftkey_RUS 7.8.0. Вместо него появился пакет SalesEnterpriseSoftkey_ENU 7.8.0. Скажите, это было как-то некорректно выполнено обновление на тестовой платформе или это ожидаемое поведение на версии 7.12.1? Заранее спасибо за ответ.

Нравится

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

Игорь, попробуйте установить пакет из svn на версию 7.12.0, а только потом обновите(уже с установленным пакетом). Нам такое помогло.

Добрый день, Игорь.

Есть два варианта решения проблемы с привязкой:

1. Для устранения ошибки в дескрипторе пакета "descriptor.json" необходимо изменить "SalesEnterpriseSoftkey_RUS" на "SalesEnterpriseSoftkey_Obsolete".

2. Необходимо обновить среду разработки до версии 7.12.0, после чего закоммитить в svn конкретный пакет, чтобы пакет SalesEnterpriseSoftkey_RUS переименовался в SalesEnterpriseSoftkey_ENU. После этого на облако удаётся подтянуть изменения из SVN.

Сидоров Александр Валерьевич,

 большое спасибо за Ваш ответ.

Антон Малий,

большое спасибо за Ваш ответ.

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

Добрый день, стоит задача вывести/встроить в карточку Звонка Клиента, аудио плеер для проигрывания аудио записи звонка разговора. На данном этапе в карточке звонка есть поле где указанно ссылка местоположения записи, и если пройти по данной ссылке то начинается автоматическое скачивание аудио фаила на компьютер и далее можно прослушать разговор с клиентом. Формат аудио фаила - *.mp4. Прикрепляю фото карточки звонка, отметил строку с ссылкой.

Запись звонка выполняется сторонним сервисом установленным на мобильном телефоне, на  Андроид , который (сервис) интегрирован с bpm online, и далее Сервис (сторонний) после завершения Звонка на мобильном телефоне, генерирует данную ссылку - место хранения аудио фаила (на облачном хранилище), и в итоге передает ее в bpm online.

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

Тестируем вариант вывести Аудио плеер по средством HTML в BPM, но пока не получилось, пробовали вот так (может кто подправит или добавит):

{

    "operation": "insert",

    "parentName": "Header",

    "name": "AudioPlayer",

    "propertyName": "items",

    "values": {

        "itemType": Terrasoft.ViewItemType.CONTAINER,

        "generator": function() {

            return {

                "selectors": {

                    "wrapEl": "#AudioPlayer",

                    "iframeEl": "id_AudioPlayer"

                },

                "className": "Terrasoft.HtmlControl",

                "html": "
                "src=\"\" type=\"audio/mp4\" />"

            };

        },

        "layout": {

            "colSpan": 12,

            "rowSpan": 1,

            "column": 0,

            "row": 0

        }

    }

}

generateAudioPlayer: function(audioUrl) {

    if (audioUrl.length >= 12) {

        var audioSource = document.querySelector("Source");

        if (audioSource) {

            audioSource.src = audioUrl;

            var audioBlock = document.querySelector("audio");

            audioBlock.style = "style=\"display:block;\"";

        }

    }

}

onEntityInitialized: function() {

    this.callParent(arguments);

 

    var callAudioUrl = ""; //Ссылка на файл звонка

    this.generateAudioPlayer(callAudioUrl);

}

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

Нравится

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

Можно сделать кнопку. Пример реализации в ContactPageV2:

define("ContactPageV2", [], function() {
	return {
		entitySchemaName: "Contact",
		methods: {
			onRecordPlayerClick: function() {
				Ext.getCmp("ContactPageV2AudioPlayerComponent").play();
			},
		},
		diff: /**SCHEMA_DIFF*/[
			{
				"operation": "insert",
				"name": "PlayRecordButton",
				"parentName": "GeneralInfoTab",
				"propertyName": "items",
				"index": 0,
				"values": {
					"itemType": Terrasoft.ViewItemType.COMPONENT,
					"className": "Terrasoft.Button",
					"style": Terrasoft.controls.ButtonEnums.style.GREEN,
					"classes": {"textClass": ["audio-player-button"]},
					"caption": "Прослушать",
					"click": {"bindTo": "onRecordPlayerClick"},
					"layout": {
						"colSpan": 12,
						"column": 0,
						"rowSpan": 1,
						"row": 1
					}
				}
			},
			{
				"operation": "insert",
				"name": "AudioPlayer",
				"parentName": "GeneralInfoTab",
				"propertyName": "items",
				"index": 1,
				"values": {
					"itemType": Terrasoft.ViewItemType.COMPONENT,
					"className": "Terrasoft.AudioPlayer",
						"selectors": {"wrapEl": "#AudioPlayer"},
						"sourceUrl": "https://www.computerhope.com/jargon/m/example.mp3"
				}
			},
 
..............

 

Я делаю проще. 

1) В diff вписываю контейнер

{
	"operation": "insert",
	"name": "AudioContainer",
	"values": {
		"afterrerender": {
			"bindTo": "prepareCallRecord"
		},
		"afterrender": {
			"bindTo": "prepareCallRecord"
		},
		"id": "AudioContainer",
		"visible": true,
		"itemType": 7
	},
	"parentName": "CallPageGeneralBlock",
	"propertyName": "items"
}

2) После его отрисовки вставляю туда дефолтный плеер

prepareCallRecord: function() {
	//вытаскиваем url записи
	this.setPlayer(url);
},
setPlayer: function(url) {
	var element = document.createElement("audio");
	element.addEventListener("click", function(e) { e.stopPropagation(); }, false);
	element.autoplay = false;
	element.controls = true;
	element.src = url;
	element.type = "audio/mpeg";
	actionsDiv.appendChild(element);
}

 

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

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

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

Нравится

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

Отфильтровать данные в справочнике можно несколькими способами:

1) прописать условия для правила [FILTRATION]

2) прописать нужные фильтры в описании колонки в свойстве lookupListConfig модели attributes

Как реализовать п. 1 и 2 описано в статье: https://academy.terrasoft.ua/documents/technic-sdk/7-12/primenenie-filtracii-k-spravochnym-polyam

3) реализовать с помощью пользовательской настройки бизнес-правило: https://academy.terrasoft.ua/documents/studio/7-12/nastroyka-biznes-pravil

 

Алла Савельева,

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

Мне надо не поле отфильтровать, а вот этот список множественного выбора, который появляется при нажатии на плюсик "+". Я изначально думал, что это тот же справочник, но на практике получилось, что это не так...

Alex Zaslavsky пишет:

Мне надо не поле отфильтровать, а вот этот список множественного выбора, который появляется при нажатии на плюсик "+".

Извините, не правильно поняла задачу(

Попробуйте реализовать таким образом: https://academy.terrasoft.ua/documents/technic-sdk/7-12/sozdanie-detali-s-vyborom-iz-spravochnika

В данном примере фильтрация реализована в методе openDocumentLookup

Обратите внимание на LookupMultiAddMixin, в методе «openLookupWithMultiSelect» происходит открытие окна выбора из справочника. Там можно отследить где подставляются фильтры.

VladKapitanchyk,

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

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

Добрый день.

Мы провели на тестовой платформе обновление bpmonline до версии 7.12.1 и после этого возникла проблема с одним бизнес-процессом. Этот бизнес-процесс запускался по расписанию, раз в 3 часа, а также часто вручную. Так вот, после обновления при запуске бизнес-процесса вручную он намертво "висит" в статусе "Выполняется". Когда же этот бизнес-процесс выполняется по расписанию, то выполнение происходит успешно. При этом, автоматический запуск по расписанию происходит не как ожидается (каждые 3 часа, 7 дней в неделю с 6 до 21 часов), а с перебоями, например, в субботу процесс запускался, а воскресенье уже нет (судя по журналу), сегодня начал работу не с самого утра. Я понимаю, что причина проблемы может быть разная и сказать что-либо судя по сообщению на форуме сложно, но, возможно, с подобной проблемой в версии 7.12.1 сталкивался не только я и это проблема как-то системно идентифицируется? Заранее спасибо за ответ.

Нравится

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

Добрый день!



С такими ошибками вроде не сталкивались. А какой элемент завис? Врчную его пробовали выполнить? По поводу работы в выходные, пинголвалка настроена? Сам планировщик не был перегружен?

Процесс компилируемый или интерпретируемый? На каком элементе зависает?

Наш подрядчик (занимается разработкой и внедрением bpmonline у нас) сказал, что Terrasoft что-то поломал в бизнес-процессах в новой версии и обещает это исправить в версии 7.12.2.

Процесс интерпретируемый (птичка "Компилировать" не установлена) и состоит всего из одного элемента - сценарий, который запускает код на C#. До обновления версии bpmonline все исправно работало как при запуске по таймеру так и при ручном запуске. Сейчас работает только по таймеру.

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

Добрый день!



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

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



По поводу ошибок с временем запуска сообщите, пожалуйста, в техническую поддержку bpm'online, описав при этом максимально подробно Ваш кейс.

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

 

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

Добрый день. Хочу добавить авторизацию по oauth. Как вывесить сервис для обработки коллбэка - информацию нашел. Подскажите, как автоматически авторизовывать пользователя, после того, как я его создал по данным из oauth?

Нравится

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

Добрый день, 

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

http(s)://[Адрес приложения bpm'online]/ServiceModel/AuthService.svc/Login

Header:

Content-Type: application/json

Body: 

{"UserName": "User01", "UserPassword":"User01"}

Полученные в HTTP-ответе cookie (BPMLOADER, .ASPXAUTH и BPMCSRF) необходимо использовать в дальнейших запросах к сервисам bpm'online, требующих аутентификационных данных

Header последующих запросов в bpm должен иметь вид: 

Accept: application/atom+xml
Content-Type: application/atom+xml;type=entry
Cookie: BPMSESSIONID=cxa54p2dsb4wnqbbzvgyxcoo; BPMCSRF=6yCmyILSlIE8/toyQm9Ca.; BPMLOADER=rqqjjeqyfaudfyk4xu404j5f; .ASPXAUTH=697...A292D8164;
BPMCSRF: 6yCmyILSlIE8/toyQm9Ca.
Показать все комментарии

Добрый час суток! Хочется узнать как можно добавить RadioButton в мобильное приложение на страницу ? 

Сам контрол я нашел https://academy.terrasoft.ua/jscoresdk/source/radiobutton.html вот тут. Как его использовать,чтобы оно работало с данными ( как отрендерить правильно ) ? К примеру у меня нужно чтобы можно было выбирать ответ с помощью radiobutton'ов,но сложность в том,что я пока не особо понимаю как это сделать. Спасибо заранее.

Нравится

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

Никита, здравствуйте!

Такой контрол существует (например, мы используем его на кастомной странице входа в демо-режим), но на данный момент его полноценная обработка в мобильном приложении не поддерживается.  Текущий механизм работы с карточками "не умеет" работать с таким интерфейсным элементом, также не реализована работа с данными

Также ссылка https://academy.terrasoft.ua/jscoresdk/source/radiobutton.html предназначена для доработка в веб-версии приложения.

Мы зафиксировали пожелание в департамент разработки.

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

 

подскажите пожалуйста,а checkBox я так понимаю тоже не поддерживается тогда?

Никита, 

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

В приложении check-box используется в реестре для решения задачи мультивыбора. Пример реализации можно посмотреть в блоке быстрой фильтрации для типа колонки "Справочник". 

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

Всем привет!

Прочитал статью по созданию быстрого фильтра в разделе. В статье описывается как создать фильтр по дате и по ответственному, но хотелось бы сделать еще дополнительные фильтры, например по номеру записи или по статусу (справочник). А еще интереснее по связанной записи из справочника. Может у кого есть пример как создать кастомный быстрый фильтр в разделе?

Нравится

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

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

По функциональной части: рекомендую переопределить в Section метод getFilters и там в зависимости от выбранного фильтра в разделе добавлять или удалять фильтры.

По части отображения: добавить свой контейнер в фильтры.

Вот пример для добавления галочки в раздел фильтров:

{
	"operation": "insert",
	"name": "CustomContainer",
	"parentName": "LeftGridUtilsContainer",
	"propertyName": "items",
	"index": 0,
	"values": {
		"id": "CustomContainer",
		"itemType": this.Terrasoft.ViewItemType.CONTAINER,
		"items": [],
                "wrapClass": ["filters-container-wrapClass"]
	}
},
{
	"operation": "insert",
	"name": "CustomFlag",
	"parentName": "CustomContainer",
	"propertyName": "items",
	"values": {
		"caption": {
			"bindTo": "Resources.Strings.CustomFlagCaption"
		},
		"bindTo": "CustomAttribute",
		"controlConfig": {
			"className": "Terrasoft.CheckBoxEdit",
			"checkedchanged": {
				"bindTo": "onCustomFlagChanged"
			}
		}
	}
}

UPD: Точно, ещё для того, чтобы фильтр применялся после изменения фильтра в разделе необходимо в приведённом выше примере в методе onCustomFlagChanged инициировать обновление реестра (this.reloadGridData();).

Так же на момент вызова метода getFilters аттрибут CustomAttribute не изменял своего значения, поэтому был введён новый аттрибут, значение которого менялось так же в методе onCustomFlagChanged.

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

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