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

Кто нибудь сталкивался с такой проблемой:

Сайт развернут локально. Создаем деталь мобильного приложения через мастер, схемы создались - https://prnt.sc/n6surw

Фиксирую в СВН  - http://prntscr.com/n6svs3

Фиксация проходит успешно - http://prntscr.com/n6svyk

Результат в Svn зафиксировались только метаданные - http://prntscr.com/n6swjg 

http://prntscr.com/n6sx1x 

http://prntscr.com/n6sx6r

 

Нравится

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

Попробуйте так. Фиксируйте в свн 2 раза подряд. Перый раз уедут метаданные, второй раз - все остальное. Мы с этим сталкиваемся регулярно, но решения пока нет...

Попробуйте так. Фиксируйте в свн 2 раза подряд. Перый раз уедут метаданные, второй раз - все остальное. Мы с этим сталкиваемся регулярно, но решения пока нет...

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

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

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

Пока не могу придумать логику как это сделать оптимально.

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

Если раздел продажи - то к "типу продажи" или "поставщику".

Если заказы то к продаже соответсвующей заказу.

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

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

Нравится

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

Денис Королев,

Проще всего это сделать с помощью элемента раздачи прав через бизнес-процесс (выше в комментарии Александра есть ссылка с описанием, как работать с данным элементом).

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

Всё вышеупомянутое можно регулировать правами доступа на записи в разделах. Включить нового пользователя в специальную группу (вдруг появится второй такой же), а этой группе выдать права на одни записи раздела и не выдать на остальные. При этом нужно учитывать, что новый пользователь тоже входит во «Все пользователи» и этой группе не надо давать права на те записи, которые Вы не хотите, чтобы он видел.

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

Более гибко можно в БП с элементом раздачи прав, стартующим при вставке записи.

А раздачу прав на старые записи в зависимости от значения поля в этом или связанном объекте можно сделать SQL-запросом в базе или тоже запущенным один раз БП.

Зверев Александр,

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

Денис Королев,

Проще всего это сделать с помощью элемента раздачи прав через бизнес-процесс (выше в комментарии Александра есть ссылка с описанием, как работать с данным элементом).

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

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

Добрый день!

Пробую при работе с SVN сделать отдельную ветвь разработки и далее откатиться на старый вариант кода.

Есть пакет p1 версии 1.0.1

Создаю новую ветвь 1.0.2 и делаю ее основной.

Но далее я не понимаю как необходимо переключать пакет в BPM Online на новую версию.

Нужно ли создавать новый пакет версии 1.0.2 в самой BPM Online руками, который полностью будет дублировать пакет версии 1.0.1 и располагаться рядом с ним.

Или можно все это сделать в самом SVN несколькими командами.

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

Новая версия пакета должна находиться в другом хранилище или нет?

 

Нравится

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

Смотрите документацию и обсуждения по работе с svn, например тут

Смотрите документацию и обсуждения по работе с svn, например тут

Григорий Чех,

 

Я верно понимаю, что все действия идут только на стороне SVN и на стороне BPM Online не потребуется дополнительно перенастраивать пакет?

Александр Кулиш,

Все верно, все действия идут на стороне svn. Вы можете использовать различную стратегию svn, более детально можете ознакомится тут: https://habr.com/ru/post/170589/

Дополнительных действий на стороне bpmonline делать не нужно, Вы просто настраиваете хранилище, и работаете с ним, более детально описано тут: https://academy.terrasoft.ru/documents/technic-sdk/7-13/rabota-s-paketami 

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

Подскажите, кто реально работает с bpm'online и СУБД PostgreSQL? На сколько стабильная работа система с ней и какие есть сейчас ограничения в сравнении с MS Sql? Так же хотел узнать какие сейчас продукты могут работать с этой СУБД и когда по карте будут работать остальные продукты?

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

Нравится

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

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

Нравится

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

У вас карточка открывается из БП? Нужно продебажится и проверить заходит ли в блок 

this.onCloseCardButtonClick();
Если сохранение идет в миникарточке и вам нужно чтобы она не закрывалась этот подход вам не подойдет

Заместите страницу редактирования лида и переопределите метод сохранения, как то так:

onSaved: function() {
		this._stopPerformanceAnalyzer();
		this.callParent(arguments);
		var response = arguments[0];
		this.hideBodyMask();
		if (!response.success) {
				return;
		}
		if (!this.get("NextPrcElReady")) {
			if (this.get("ProcessCardSavedArgument")) {
				this.onCloseCardButtonClick();
			}
		} else {
			if (!this.isNewMode()) {
				this.set("PrimaryColumnValue", this.get("Id"));
				//this.reloadEntity();				
			}
		}
	}
},
 
onCloseCardButtonClick: function() {
	this.hideBodyMask();
	this.callParent(arguments);
},

 

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

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

У вас карточка открывается из БП? Нужно продебажится и проверить заходит ли в блок 

this.onCloseCardButtonClick();
Если сохранение идет в миникарточке и вам нужно чтобы она не закрывалась этот подход вам не подойдет
Показать все комментарии

На прод среде имеется бизнес-процесс в пакете Custom. Я хочу изменить этот процесс, внести его в свой пакет разработки. Что собственно уже сделал на среде разработки. Однако при импорте на тестовую заметил, что этот БП не импортируется, так как такой уже есть в пакете Custom. Есть какие нибудь методы решения такой проблемы? только удаление из Custom на прод перед импортом? Или лучше всё таки новый бп создать?

Нравится

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

Добрый день!

Можно у себя на стенде перетащить БП в свой пакет (сменить пакет у БП), а при установке в прод ставить архивом изменяемые пакеты (включая Custom) через установку приложения (не импорт схемы)

Добрый день!

Можно у себя на стенде перетащить БП в свой пакет (сменить пакет у БП), а при установке в прод ставить архивом изменяемые пакеты (включая Custom) через установку приложения (не импорт схемы)

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

Добрый день!



Почему-то не получается прочитать данные из объекта view:

1) создал view

2) создал объект в системе

3) в БП выбрал "Читать данные" и выбрал созданный объект (видны все колонки)

4) выдается ошибка:



System.InvalidCastException: Specified cast is not valid.

   at Terrasoft.DB.MSSql.MSSqlTypeConverter.DBValueToGuid(Object value)

   at Terrasoft.Core.GuidDataValueType.GetValueForLoad(UserConnection userConnection, Object value)

   at Terrasoft.Core.Entities.EntityColumnValue.LoadValue(Object value)

   at Terrasoft.Core.Entities.EntityColumnValueCollection.ForceLoadColumnValue(String name, Object value)

   at Terrasoft.Core.Entities.Entity.LoadShallow(IDataReader dataReader, Dictionary`2 columnMap)

   at Terrasoft.Core.Entities.EntityCollection.LoadShallow(IDataReader dataReader, Dictionary`2 columnMap, Boolean needClear)

   at Terrasoft.Core.Entities.EntitySchemaQuery.GetEntitySchemaEntityCollection(UserConnection userConnection, IDataReader dataReader)

   at Terrasoft.Core.Entities.EntitySchemaQuery.GetEntityCollection(UserConnection userConnection)

   at Terrasoft.Core.Process.Configuration.ReadDataUserTask.InternalExecute(ProcessExecutingContext context)

   at Terrasoft.Core.Process.ProcessActivity.Execute(ProcessExecutingContext context)



В чем может быть проблема?

Нравится

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

Обычно такое встречается когда в View null попадает в колонку описанную как Guid (уникальный идентификатор), помогает преобразование

CAST(NULL AS UNIQUEIDENTIFIER) AS MIParentId

или

CAST(d.ContactId AS UNIQUEIDENTIFIER) AS MIParentId

 

Добрый день

Тип колонки в объекте View не совпадает с типом колонки представления базы данных.

Проверьте типы, конкретно Guid.

Обычно такое встречается когда в View null попадает в колонку описанную как Guid (уникальный идентификатор), помогает преобразование

CAST(NULL AS UNIQUEIDENTIFIER) AS MIParentId

или

CAST(d.ContactId AS UNIQUEIDENTIFIER) AS MIParentId

 

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

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

Место событий Entity, событие Saved, для которого был организован событийный подпроцесс. Последний со скриптом и сообщением которое запускает этот скрипт по событию. 

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

Нравится

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

Добавьте еще подписку на событие, перед сохранением.

Так же делаете подписку, скрипт.

В параметрах создайте нужные переменные нужных типов.

После чего в самом скрипте "перед сохранением", делайте так:

ContactOld = Entity.GetTypedOldColumnValue<Guid>("Contact");

Затем, в вашем скрипте "После сохранения" делайте сверку

if (ContactOld != Entity.GetTypedColumnValue<Guid>("Contact") { // }

Добавьте еще подписку на событие, перед сохранением.

Так же делаете подписку, скрипт.

В параметрах создайте нужные переменные нужных типов.

После чего в самом скрипте "перед сохранением", делайте так:

ContactOld = Entity.GetTypedOldColumnValue<Guid>("Contact");

Затем, в вашем скрипте "После сохранения" делайте сверку

if (ContactOld != Entity.GetTypedColumnValue<Guid>("Contact") { // }

Это можно сделать только в событийном процессе объекте перед сохранением записи

Entity.GetColumnOldValue("Name")

или

Entity.GetTypedOldColumnValue<String>("Name");

 

Добрый день!

На вход элемента скрипта обработки сохранения подается переменная ProcessExecutingContext context (https://monosnap.com/file/TP10NeOGRBkG4zXPFKxrVZM8Tvj4I6).

В ней есть public object ThrowEventArgs { get; set; }, которая приводится к объекту EntityAfterEventArgs. А в этом объекте уже есть массив измененных колонок: public EntityColumnValueCollection ModifiedColumnValues { get; set; }

Еще проще проверить что столбец изменен

var flag = Entity.GetChangedColumnValues().Any(col => col.Name == "Date");

Всем спасибо!

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

Доброго времени суток. Имеется раздел "Аукцион" , создал действие "Заполнить участников", при нажатии на кнопку добавляются в детали "Участники" записи определенным отбором. Дело в том что уже заполненный реестра детали отображается только при обновлении страницы. Похоже нужно использовать механизм сообщений  ? Подскажите пожалуйста как сделать так, чтобы без  без обновления страницы данные сразу высвечивались?

Нравится

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

Добрый день!

Деталь можно обновить следующим кодом:

this.updateDetail({detail: "DetailName"});

 

Добрый день!

Деталь можно обновить следующим кодом:

this.updateDetail({detail: "DetailName"});

 

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

Спасибо, добавил reloadAll: true и заработало)

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

Здравствуйте, подскажите, как в версии 7.13.0 можно отключить минимизацию и сборку скриптов в all-combined.js. 

Установка параметра "SeparatedJsFiles" в true в web.config в этой версии не помогает

 

Нравится

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

Добрый день!

Данная тема обсуждалась тут

Добрый день!

Данная тема обсуждалась тут

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

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