Как решить проблему с "SyntaxError: Unexpected token "?

Нравится

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

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

Уточните, пожалуйста, как эта проблема влияет на корректную работу приложения?

P.S. Если по теме, то обновите версию приложения.

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

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

Уточните, пожалуйста, как эта проблема влияет на корректную работу приложения?

P.S. Если по теме, то обновите версию приложения.


На корректность это никак не влияет, просто хотелось бы не наблюдать данные ошибки в консоли.
Поэтому и задался вопросом, как это дело можно поменять.
Версия bpm 7.9.0.

"Кисловский Михаил Андреевич" написал:

Версия bpm 7.9.0.

В 7.9.1 не видел такого сообщения.

"Демьяник Алексей" написал:
Кисловский Михаил Андреевич пишет:

Версия bpm 7.9.0.

В 7.9.1 не видел такого сообщения.


У представителя "Программные технологии" есть демостэнд с PT connector.
Так вот там версия 7.8.0 и таких ошибок в консоли не видно и близко.
Просто интересно в чем проблема и хотелось бы убрать данный ряд ошибок.

Здравствуйте, Михаил.

Указанная ошибка плавающая, и на на работу приложения совершенно не влияет.

"Сергей Кy6риш" написал:

Здравствуйте, Михаил.

Указанная ошибка плавающая, и на на работу приложения совершенно не влияет.

С уважением,

Группа компаний Terrasoft


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

Попробуйте обновиться до версии 7.9.1, либо проведите отладку на версии 7.9.0

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

Добрый день, подскажите пожалуйста, где можно настроить, чтобы определенные поля, к примеру поле “примечания”, не блокировалось для редактирования после успешной дисквалификации лида?

Нравится

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

Добрый день!

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

Для этого:

1. В атрибутах в схеме LeadPage добавьте зависимость изменения поля QualifyStatus.
2. Задайте изменения на свой кастомный метод.
3. В этом кастомном методе Вам необходимо доставать значения Id QualifyStatus, и сравнивать это значение с необходимым из LeadConfigurationConst.LeadConst
http://prntscr.com/e3zp7o
4. Если выражение верно то вызвать еще один метод. В этом методе разрешить редактирования необходимых полей.

Благодарю за помощь :smile:
А не подскажите еще, пожалуйста, можно ли в бизнес-процессах запретить создание контакта при дисквалификации лида?

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

Поиск/создания/привязка контакта к лиду выполняется в БП “Квалификация лида 7.8.0”, элемент “Создать или обновить контакт согласно результату квалификации”.
Вы можете создать копию этого процесса и изменить логику БП согласно вашим задачам.

Спасибо, последовав вашему совету создали копию БП, немного изменив процесс, основной сделали неактивным, копию активировали, также создали копию БП “Управление лидом 7.8.0”, где подпроцесс квалификации заменили на нужную копию, и отключили оригинал. Но в итоге при квалификации все просто виснет, и по журналу видно, что процесс даже не запустился. Пробовали просто сделать копию БП “Управление лидом 7.8.0”, ничего не меняя и отключив основной процесс, чтобы проверить запустится ли, но все равно виснет, как это можно поправить?

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

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

Здравствуйте! Огромное спасибо за ответы! :smile:
А как можно проверить на стадию дисквалификации ли переводится лид в копии БП “Квалификация лида 7.8.0”?
Условный поток с формулой

[#Прочитать данные Лида.Первый элемент результирующей коллекции.Стадия лида#] == [#Справочник.Стадия лида.Дисквалифицирован#]

не срабатывает, если же вызывать отдельный БП на событие изменение стадии, то вызывается, но необходимо, чтобы контакт не создавался сразу в момент квалификации.
Можно ли как-то в сценарии “Создать или обновить контакт согласно результату квалификации” получить id стадии в которую переводится лид и там прописать уже условие, вроде:

if(QualificationProcessId != 128c3718-771a-4d1e-9035-6fa135ca5f70){ProcessContact();}?

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

Для решения задачи необходимо получить значение интересующей колонки текущего лида в элементе “Создать или обновить контакт согласно результату квалификации”.
Пример кода для ScriptTask во вложении.
В переменную temp будет записано значение колонки Id из найденной записи в элементе ReadDataUserTask1.
gettypedcolumnvalue.txt

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

Добрый день!

Подскажите, пожалуйста,как корректно вести работу неразработчикам с пакетами.
Допустим, есть две разных функционала. На каждый функционал свой пакет. Консультант создает объекты и колонки при помощи мастера разделов. Результаты должны сохраняться в разные пакеты по фукнциональности. Например, объект 1 в пакет 1, объект 2 в пакет 2. Консультанту необходимо постоянно менять системную настройку "текущий пакет" ?

Нравится

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

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

Мне кажется, данную задачу необходимо решать с другой стороны.
Прежде всего стоит обратить внимание и выяснить какова будет архитектура, какой будет функционал в каждом пакете, будут ли использоваться в 1 пакете объекты из 2 пакета и т.д.
Приведу кейс если пакеты находятся на одном уровне по иерархии: если в 1 пакете нужен использовать объект, которого нет в 1, но есть во 2 пакете. Тогда необходимо указывать дополнительную зависимость пакета, что является не логичным.

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

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

Рекомендую для начала изучить sdk по работе с пакетами - https://academy.terrasoft.ru/documents/technic-sdk/7-9/rabota-s-paketami

Если хотите все таки использовать разные пакеты, то можете попробовать сделать системную настройку «Текущий пакет» персональной (после проставления признака, необходимо под каждым пользователем установить соответствующий пакет). Лично не тестировал.

"Мотков Илья" написал:То есть много подводных камней и все зависит от того как Вы запланировали разработку в целом (что и где будет находиться). Если это функционалы, которые практически не зависят друг от друга (например, раздела «Заказы» и «Обращения»), поэтому в принципе можно и одним пакетом обойтись.

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

"Мотков Илья" написал:Если хотите все таки использовать разные пакеты, то можете попробовать сделать системную настройку «Текущий пакет» персональной (после проставления признака, необходимо под каждым пользователем установить соответствующий пакет). Лично не тестировал.

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

"Zaitova Liubov" написал:

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

Я предложил как вариант.
Вы можете фиксировать и переносить их частично. На среде разработки что-то разработали - зафиксировали (наприме, с помощь SVN). Потом перенесли на другую среду. Затем заново зафиксировали и перенесли. Так по-моему по такому принципу происходит разработка, а не по временным промежуткам.

"Zaitova Liubov" написал:

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

Изобразил на скриншоте. Ставите. Заходите под одним пользователем ставите значение, потом под другим пользователем и т.д.

"Мотков Илья" написал:Изобразил на скриншоте. Ставите. Заходите под одним пользователем ставите значение, потом под другим пользователем и т.д.

Не заметила. Спасибо!

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

Добрый день!

Я только начинаю изучать разработку на платформе bpmonline и прошу поделиться опытом)
Использует ли кто-нибудь какие-то плагины (например, AnkhSVN) для visual studio для работы с svn, чтобы можно было коммитить изменения не из файловой системы,а из самой IDE?
Если да, то какую можете посоветовать и вообще целесообразность использования таких плагинов. Вероятно, коммит из файловой системы или из самого приложния чем-то лучше/проще.

Нравится

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

Добрый день, Любовь.

Рекомендуем вам использовать VisualSVN, или связку TortoiseSVN + Tsvn, так как фиксация из файловой системы выполняется намного быстрее чем из приложения.

"Мария Ватулина" написал:

Добрый день, Любовь.

Рекомендуем вам использовать VisualSVN, или связку TortoiseSVN + Tsvn, так как фиксация из файловой системы выполняется намного быстрее чем из приложения.


Спасибо!
А есть разница в коммите из IDE и в коммите из файловой системы? То есть результат будет одинаковый? Просто мне интересно, почему в вебинарах говорили об svn клиенте, который работает с файловой системой, тогда как мне, как разработчику, было бы удобнее все делать в самой ide

Любовь, разницы нет. Результат будет одинаковым. Вы можете комитить изменения как из файловой системы, так и из IDE.

"Мария Ватулина" написал:

Любовь, разницы нет. Результат будет одинаковым. Вы можете комитить изменения как из файловой системы, так и из IDE.


Спасибо за ответы!

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

Добрый день!
Установлен bpm'online service enterprise v7.8. После обновления SQL Server 2014 до SP2 возникла проблема:
При редактировании записей пользователем supervisor выходит ошибка, например Недостаточно прав для изменения записи в объекте "Сервисные договоры".

Нравится

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

Добрый день, Ольга.

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

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

Распределение прав по разделам проверили, все на месте, во вложении скрин конкретно раздела "Сервисный договор"

Ольга, наличие лицензий необходимо проверить в пункте меню Управление лицензиями пользователей (см. скрин). В менеджере лицензий необходимо проверить выданы ли лицензии необходимым пользователям, в вашем случае лицензия service enterprise.
Если все лицензии выданы корректно, но прав на создание записей в разделах нет, обратитесь в Техническую поддержку для более детального анализа проблемы.

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

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

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

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

Нравится

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

Можно заместить деталь активностей и добавить ей фильтр на пустые "Контрагенты", так:

define("ActivityDetailV2", ["terrasoft", "ProcessModuleUtilities", "ConfigurationConstants"],
	function(Terrasoft, ProcessModuleUtilities, ConfigurationConstants) {
		return {
			entitySchemaName: "Activity",
			messages: {
			},
			attributes: {
			},
			methods: {
 
				getFilters: function() {
					var filters = this.callParent(arguments);
					filters.addItem(this.Terrasoft.createColumnIsNotNullFilter("Account"));
 
					return filters;
				}
			},
			diff: /**SCHEMA_DIFF*/[
			]/**SCHEMA_DIFF*/
		};
	}
);

БОЛЬШОЕ СПАСИБО!!!!
Очень выручили! Плюс в карму! :)

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

Можно привести пример метода обработчика нажатия на значение меню "Действия" в карточке, например, контрагента, который запускает какой-то процесс.

В академии есть пример - https://academy.terrasoft.ru/documents/technic-sdk/7-9/dobavlenie-deystv... , который показывает, как открывать карточку ил выводить значение. Можно ли пример с запуском БП. Самый простой.

Нравится

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

Всем доброго времени суток.

Версия 7.9.

На страницу Лида добавили свою кнопку "Распределить", запускающую определённый бизнес-процесс.

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

Вопросы в следующем:

1. Правильно ли я понимаю, что просто вызвать метод save перед вызовом БП недостаточно? То есть чтобы сохранить изменения перед вызовом БП нужно полностью выполнить всю операцию, как в методе save из схемы BaseEntityPage:

//Функция, выполняемая по клику на кнопку Распределения
onRunProcessProdLeadClick: function(config){

this.Terrasoft.chain(

                                        this.saveCheckCanEditRight,
                                        this.saveAsyncValidate,
                                        this.saveEntityInChain,
                                       
                                        function() {
                                                this.Ext.callback(callback, scope || this);
                                               
                                                // Запуск пользовательского бизнес-процесса.
                                ProcessModuleUtilities.executeProcess(args);
                                        }, this);
                               

                        },

Но в этом случае вываливается ошибка в консоли. Как правильно вызвать сохранение, если не через this.save()?

2. Как правильно вызвать сохранение на странице в совмещённом режиме (LeadSection)?

3. Можно ли сделать сохранение прямо внутри БП, с учётом изменённых данных на странице?

Нравится

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

1) Насколько я помню, есть метод onSaved(), отрабатывает после сохранения.
2) Нажатие кнопки "сохранить". Идет сообщение в карточку

this.sandbox.publish("OnCardAction", tag, [cardModuleSandboxId]);

там отрабатывает save
3) Не уверен. Скорее всего можно собрать измененные данные в объект, кинуть в бп в качестве параметра и там C# распарсить. Такая себе идея, если честно)

Данила,

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

Если я сделаю так:

this.save();
ProcessModuleUtilities.executeProcess(args);

то сохраниться не всегда успевает. Возможно есть какой-нибудь callback у this.save()?

2. Понятно, то есть если решим проблему с переопределением save в карточке, то можно будет вызвать БП из карточки через сандбокс.

"Смородинов Денис" написал:Возможно есть какой-нибудь callback у this.save()?

Не так вас понял. Исправляюсь)

onMyBtnClick: function() {
	this.save({
		callback: function() {
			debugger;
		},
		isSilent: true
	});
}

Касательно раздела. Как я уже писал Bpm кидает tag (равен "save"). Можно его подменить. Примерно:
В секции

onCardAction: function() {
	var tag = arguments[0] || arguments[3];
	var cardModuleSandboxId = this.getCardModuleSandboxId();
	if (tag === "save") {tag = "saveAndRunProc";} ///или сразу кидать название функции в pageV2, тогда модификация след. блока не потребуется
 
	this.sandbox.publish("OnCardAction", tag, [cardModuleSandboxId]);
},

В карточке ловить

onCardAction: function() {
	var action = arguments[0] || arguments[3];
 
	if (action === "saveAndRunProc") { this.onMyBtnClick();}
	else { this[action](); }
},

Данила, спасибо!

Работает.

"Варфоломеев Данила" написал:Касательно раздела. Как я уже писал Bpm кидает tag (равен "save"). Можно его подменить. Примерно:

Уже сделал по другому. Свой sandbox просто добавил и вызываю в карточке свою функцию, внутри которой save и вызов БП.

"Смородинов Денис" написал:Работает.

"Смородинов Денис" написал:Свой sandbox просто добавил и вызываю в карточке свою функцию

Отлично:smile:

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

Добрый день, подскажите,пожалуйста, какими средствами можно добавить в раздел "Контакты" быстрый фильтр (иконки календаря), подобный фильтру в разделе "Активности", чтобы можно было выбирать временной период за который отображать созданные "Контакты"?

Нравится

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

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

Вы можете реализовать быстрые фильтры в разделе Контакты средствами разработки.

Пример реализации можно посмотреть в схеме ActivitySectionV2.

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

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

Нравится

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

Добрый день, Александр!

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

Портал самообслуживания реализован исключительно для продукта "Service" и работу с обращениями.

Но, Вы можете попытаться реализовать необходимую логику руководстуясь инструкцией:
1) Права на объекты для портальных пользователей регулируются справочником "Объекты, доступны пользователям портала", как правило, данный справочник заполняется с помощью скрипта "InsertPortalUserCanReadRightsMSSql" - в нем необходимо указать перечень объектов на которые будут даваться права. (данные права никак не относятся к администрированию системы).
2) На необходимые объекты должны быть розданы права на операции и на записи для пользователей портала.
3) Разделы, схемы страниц и т.д на портал создаются отдельно, по подобию как реализовано с обращениями и базой знаний. Иструкцию как создать и зарегистрировать раздел для портала прикрепил "Установка+разделов+на+портале".

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

Спасибо за подробный ответ! Буду разбираться.

Михаил, тоже интересует вопрос создания разделов и схем страниц на портале. Можете прикрепить файл, который упоминали в предыдущем комментрии "Установка+разделов+на+портале"?

Арменчу Артём Александрович,

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

По указанной ссылке выдает 404 ошибку

Николай, прошу прощения. 



Новая ссылка:



http://tsrdp.tscrm.com/support/Pub/Adasyuk/Установка раздела на портале.zip

Арменчу Артём Александрович,

Ссылки по прежнему битые. 

Есть вопрос: Как на портале можно создать несколько рабочих  мест с различным набором разделов и своей главной страницей для разных ролей пользователей портала (по аналогии с партнёрским порталом самообслуживания Теrrasoft)

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