Можно ли развернуть Bpmonline 7.X на windows 7 для тестирования демо-версии или обязательно на Windows Server 2012 Standard ?

Нравится

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

Искал на форуме, и нашел даже две похожие темы. Но развернутого ответа не было там, и одна датировалась 2009 годом.

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

Подскажите, пожалуйста, как это можно реализовать? Желательно, развернуто, так как вот только-только начал работать с платформой.

Нравится

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

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

Нравится

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

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

В текущей реализации приложения инструмент для редактирования мини-карточек отсутствует.

Единственный выход - замещение необходимой мини-карточки и внесение изменений.

https://academy.terrasoft.ru/documents/technic-sdk/7-9/sozdanie-mini-kartochki

"Новак Руслан" написал:

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

В текущей реализации приложения инструмент для редактирования мини-карточек отсутствует.

Единственный выход - замещение необходимой мини-карточки и внесение изменений.

https://academy.terrasoft.ru/documents/technic-sdk/7-9/sozdanie-mini-kartochki

Так, с этим, кажется, разобрался, спасибо. Сумел подправить карточку под свои нужды, но теперь при попытке создания контрагента выбивает exception "Uncaught An item with the same key has already been added"

Это же пишет и при попытке копирования любого контрагента.

Денис, какая версия продукта? Пришлите полный листинг кода замещающей схемы AccountMiniPage.

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

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

Пытались импортировать в систему взаимосвязи Юр. Лиц и не совсем получилось:
1) В Excel файле заполнили поля AccountA, AccountB, Relationtype, ReverseRelationType, IsActive
2) Импортировали файл в систему
3) Запись взаимосвязи создались, но визуального представления структуры не появилось.

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

Нравится

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

Здравствуйте, Дмитрий!

Диаграмма строится не на основании детали, а на основании значения поля ParentId объекта Account.

При заполнении детали вручную, происходит заполнения поля ParentId объекта Account, а при импорте это не происходит.

Для решения Вам необходимо этот же файл импортировать в объект Account и заполнить соответствующее поле.

Руслан, спасибо большое!

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

Приветствую. Столкнулся с такой проблемой:
Разбираюсь с BPM. Нужно добавить некоторые поля на страницы добавления \ редактирования контрагентов. Как я понимаю, делается это в "Мастере раздела" на вкладке "Страница". Суть в том, что при попытке открытия вкладки "Страница" идет бесконечная загрузка и выбивает ошибки в консоль.

message: Uncaught TypeError: Cannot read property 'name' of undefined
 date: Fri Feb 17 2017 17:25:49 GMT+0300 (RTZ 2 (зима))
 stack: TypeError: Cannot read property 'name' of undefined

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

Нравится

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

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

Данная ошибка может быть вызвана тем, что у Вас в системной настройке "Текущий пакет", указан пакет с некорректной зависимостью. В таком случае, необходимо изменить пакет на "Custom" и очистить кэш браузера. Также, ошибка может быть вызвана тем, что у Вас в схеме раздела дублируется колонка, которая уже указана в данной схеме в пакете выше.
На данный момент, сложно, только по одному скриншоту, точно определить причину возникновения указанной проблемы.
Если рекомендация с системной настройкой не исправит ошибку, то для более быстрого устранения проблемы рекомендую Вам обратится в службу поддержки support@terrasoft.ru.

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

Приветствую. Столкнулся с такой проблемой:
Разбираюсь с BPM. Нужно добавить некоторые поля на страницы добавления \ редактирования контрагентов. Как я понимаю, делается это в "Мастере раздела" на вкладке "Страница". Суть в том, что при попытке открытия вкладки "Страница" идет бесконечная загрузка и выбивает ошибки в консоль.

message: Uncaught TypeError: Cannot read property 'name' of undefined
 date: Fri Feb 17 2017 17:25:49 GMT+0300 (RTZ 2 (зима))
 stack: TypeError: Cannot read property 'name' of undefined

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

Нравится

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

Страница базовая? Какая версия продукта? Компиляция проходит удачно?
Посмотрите, указана ли первичная колонка

и указан объект в entitySchemaName

Если ошибка будет актуально, то скиньте код схемы.

Спасибо, разобрался уже, дело было в неверно указанном пакете, поставил Custom, все заработало.

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

Доброго времени суток!
Столкнулся с такой задачей, что необходимо отправить на визирование произвольный объект.
Например, есть раздел Командировка и необходимо осуществить возможность отправления записей этого раздела на визирование.
Собственно вопрос, кто знает где можно подсмотреть как происходит процесс визирования или может кто объяснить этот процесс?

Нравится

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

Добрый день, Михаил!

С информацией по базовой логике работы процесса Вы можете ознакомиться в руководстве пользователя, на примере процесса визирования заказов: https://academy.terrasoft.ua/documents/sales-commerce/7-9/process-vizir…
С информацией по использованию базовых элементов при построении процесса визирования можно ознакомится в руководстве по процессам. Например в теме: https://academy.terrasoft.ua/documents/technic-bpms/7-9/kak-ispolzovat-…
А в общем для создания собственного процесса Вы можете в качестве примера развернуть бесплатную демо-версию и в библиотеке процессов открыть на просмотр схему процесса. В результате сделать свой по аналогии. Для наглядности прикреплены скриншоты.

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

Здравствуйте.
Мне надо в карточке контакта (ContactPageV2) по нажатию кнопки (UsrAddBtn), добавить несколько значений детали (UsrLoyaltyDetail и к ней относящиеся объект и страница соответственно UsrLoyaltyObj, UsrLoyaltyDetailPage). Как это сделать?

Причем одно из полей детали, берется из поля ContactPageV2 (допустим из: UsrString).

Обработчик кнопки есть, что в него вписать?

Нравится

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

Здравствуйте,
Для чтения данных из колонок карточки, в контексте карточки можно использовать просто var myValue = this.get("UsrString")
Если данные нужно вытащить из другого объекта, можно было бы использовать EntitySchemaQuery:
https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/ispolzovanie-r…
Для записи значения детали, используйте InsertQuery, множество примеров использования можете посмотреть в базовой конфигурации, к примеру в схеме EmailPageV2 из UIv2:

var roleId = ConfigurationConstants.Activity.ParticipantRole.Participant;
var insert = this.Ext.create("Terrasoft.InsertQuery", {
rootSchemaName: "ActivityParticipant"
});
var id = Terrasoft.utils.generateGUID();
insert.setParameterValue("Id", id, Terrasoft.DataValueType.GUID);
insert.setParameterValue("Activity", activityId, Terrasoft.DataValueType.GUID);
insert.setParameterValue("Participant", contactId, Terrasoft.DataValueType.GUID);
insert.setParameterValue("Role", roleId, Terrasoft.DataValueType.GUID);

insert.execute();

Так же небольшой пример с пакетной записью есть здесь:
https://academy.terrasoft.ru/documents/technic-sdk/7-9/sozdanie-detali-…

Что не так, почему не срабатывает публикация сообщения:
При изменении поля в карточке клиента происходит событие:

сообщение
messages: {
			"GetLoyalty": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.PUBLISH
			}
		}

отправка

this.sandbox.publish("GetLoyalty", id1, [this.sandbox.id])

где id1 = { value: itemID, displayValue: Лояльный }

В карточке Детали, идет прием:
сообщение:

messages: {
			"GetLoyalty": {
				mode: Terrasoft.MessageMode.PTP,
				direction: Terrasoft.MessageDirectionType.SUBSCRIBE
			}
		}

подпись:

init: function() {
				var sandID = "CardModuleV2_dad159f3-6c2d-446a-98d2-0f4d26662bbe_ContactPageV2"; //sandboxID - карточки контакта
				this.callParent(arguments);
				this.sandbox.subscribe("GetLoyalty", function(recordId) {
					var id = {
						value: recordId.value,
						displayValue: recordId.displayValue
					};
					this.set("UsrLoyalty", id);
					}, this, [sandID]);
}

Где у меня промашка? Предполагаю, что как-то с айдишками накосячил.

"Михайловский Илья Викторович" написал:Где у меня промашка?

Зачем вы что-то отправляете в схему детали, все же намного проще. Если вам нужно то, что вы изначально написали в теме, а именно создание записи (новой строчки) для детали которая размещена на карточке ContactPageV2. То вам достаточно писать код только в схеме ContactPageV2.

Не нужно использовать песочницу, передавать сообщение между схемами. Просто сделайте Terrasoft.InsertQuery в объект детали с нужными данными.
И в колбеке, кстати вот как можно писать колбек во время вызова создания записи:

insert.execute(function(response) {
if (response && response.success) {
this.updateDetail({detail: "SupplyPayment"});
}
}, this);

напишите this.updateDetail({detail: "SupplyPayment"}); что вызовет перезагрузку детали, и отобразит созданные записи. Где SupplyPayment имя детали, так, как оно написано в схеме ContactPageV2 в блоке details.

"Максим Шевченко" написал:
Михайловский Илья Викторович пишет:

Где у меня промашка?

Зачем вы что-то отправляете в схему детали, все же намного проще. Если вам нужно то, что вы изначально написали в теме, а именно создание записи (новой строчки) для детали которая размещена на карточке ContactPageV2. То вам достаточно писать код только в схеме ContactPageV2.

Не нужно использовать песочницу, передавать сообщение между схемами. Просто сделайте Terrasoft.InsertQuery в объект детали с нужными данными.

И в колбеке, кстати вот как можно писать колбек во время вызова создания записи:

insert.execute(function(response) {

if (response && response.success) {

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

}

}, this);

напишите this.updateDetail({detail: "SupplyPayment"}); что вызовет перезагрузку детали, и отобразит созданные записи. Где SupplyPayment имя детали, так, как оно написано в схеме ContactPageV2 в блоке details.


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

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

onEntityInitialized: function() {
this.callParent(arguments);
// ваш код
}

делаете EntitySchemaQuery запрос к объекту контакта, с фильтром по Id, достаете нужные данные, и в колбеке делатете this.set( ... нужным колонкам карточки детали.

Id родительской записи из которой добавляется запись детали, в карточке детали можно получить по колонке связи, подозреваю колонка связи в объекте детали у вас контакт, возможно с приставкой Usr, значит получить её ид можно так:
this.get("UsrContact").value

Но как именно это сделать, не могли бы написать код?
Карточка конткта: UsrContactPageV2 (объект контакта: UsrContact)
поле из которого нужуно получить значение (справочное): UsrLoyalty
деталь: объект - UsrLoyaltyObj, карточка: UsrLoyaltyObj1Page
поле куда надо поместить в детале: UsrLoyalty

"Михайловский Илья Викторович" написал:не могли бы написать код?

Код написать не видя всей картины, всех полей объектов карточки и детали, нет, но выше достаточно информации для написания данной логики самостоятельно,
больше всего почитайте про https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/ispolzovanie-r…
если возникнут точечные трудности, обращайтесь. Так же если у вас достаточный пакет поддержки для консультаций по разработке, можете обратится в поддержку террасофт с предоставлением доступа к сайту: support@terrasoft.ru

"Максим Шевченко" написал:
Михайловский Илья Викторович пишет:

не могли бы написать код?

Код написать не видя всей картины, всех полей объектов карточки и детали, нет, но выше достаточно информации для написания данной логики самостоятельно,

больше всего почитайте про https://academy.terrasoft.ru/documents/technic-sdk/7-7-0/ispolzovanie-re...

если возникнут точечные трудности, обращайтесь. Так же если у вас достаточный пакет поддержки для консультаций по разработке, можете обратится в поддержку террасофт с предоставлением доступа к сайту: support@terrasoft.ru


Ну вот взял из примера:

// Получаем [Id] объекта карточки.
var recordId = this.get("Id");
// Создаем экземпляр класса Terrasoft.EntitySchemaQuery с корневой схемой [Contact].
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
    rootSchemaName: "Contact"
});
// Добавляем колонку с именем основного контакта контрагента, который относится к данному контакту.
esq.addColumn("Account.PrimaryContact.Name", "PrimaryContactName");
// Получаем одну запись из выборки по [Id] объекта карточки и отображаем ее
// в информационном окне.
esq.getEntity(recordId, function(result) {
    if (!result.success) {
        // обработка/логирование ошибки, например
        this.showInformationDialog("Ошибка запроса данных");
        return;
    }
    this.showInformationDialog(result.entity.get("PrimaryContactName"));
}, this);

Не работает, вернее выдает пустое сообщение...

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

"Максим Шевченко" написал:

Что-то я не понял как работает InsertQuery.
Есть деталь (UsrLoyaltyObj), со справочными полями (UsrLoyalty, usrParam)
Так деталь выглядит в карточке контакта:
Эта деталь на на странцие контакта
Ну и далее в обработчике кнопки:

var insert = Ext.create("Terrasoft.InsertQuery", {
					rootSchemaName: "UsrLoyaltyObj"
				});
				insert.setParameterValue("UsrLoyalty", "ТЕКСТ", Terrasoft.DataValueType.TEXT);
				insert.setParameterValue("UsrParam", "Parametr", Terrasoft.DataValueType.TEXT);
				insert.execute(function(response) {
					window.console.log(response);
				});
				this.reloadGridData();

Что именно указывать в рут схема? (Карточку контакта или карточку детали). и сет параметерс, думаю это заполнено верно. Но чего-то не хватает...

"Михайловский Илья Викторович" написал:Или есть какой-то способ узнать, айди контакта который открыл карточку?

Контакта, который открыл карточку? Вы про пользователя который работает в системе? Или все же про Id карточки контакта из которой открыта карточка детали? Если второе, то выше был ответ, this.get("... колонки связи с карточкой контакта, тоесть, колонка справочного типа "Контакт" в карточке детали. Если же про первое, то:
ar currentUserContactId = this.Terrasoft.SysValue.CURRENT_USER_CONTACT.value;

"Михайловский Илья Викторович" написал:Что именно указывать в рут схема? (Карточку контакта или карточку детали). и сет параметерс, думаю это заполнено верно. Но чего-то не хватает...

В rootSchemaName вы пишите имя объекта, В КОТОРЫЙ хотите добавлять запись, setParameterValue вроде верный, вначале имя колонки, второй параметр значение, третий, тип данных.

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

Добрый день, проблема заключается в том, чтобы отобразить мини-карточку при нажатии кнопки new, для добавления новой записи с возможностью установки значений, а для существующих записей отображать мини-карточку в режиме просмотра при наведении мышкой. Буду рад любым советам и идеям) Заранее большое спасибо всем откликнувшимся =)

Нравится

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

Здравствуйте, каким элементом в бизнес процессах можно обрабатывать входящие email сообщения? Необходимо, вытягивать email отправителя и если такой контакт есть в базе, то чтобы он автоматически подставлялся в это входящее сообщение в поле “привязать контакт”.

Нравится

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

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

Алгорит решения:
1. Стартовый сигнал по добавлению записи в объект Активности, где Тип = Email, Тип сообщения = Входящее.
2. Читать данные в активностях, где Id = Пункт 1. Id
3. Читать кол-во записей в контактах, где Email = Пункт 2. От кого
Условный поток: Если кол-во записей > 0 - изменить активносить
Поток по умолчанию: завершить процесс

Спасибо :smile:
А можно ли как-то сделать с помощью БП, чтобы в карточку контакта во вкладку “История” привязывалось полученное входящее сообщение? В блоке “Изменить данные” нет полей из вкладки “История” для установки id активности, а в "История раздела Контакты (представление)" есть только поле контакт :sad:

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

Для того, чтобы привязать активность (с типом Email) к контакту необходимо в активности заполнить поле Контакт.
В рамках процесса следует использовать элемент "Изменить данные". В активности заполнить поле Контакт интересующим значением.

Спасибо за ответ. В входящем сообщении контакт корректно отображается, то есть в активность подставляется. Но на странице соответствующего контакта на вкладке “история” активность не отображается,

!
с чем это может быть связано?

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

На детали "Активности" отображаются записи из раздела "Активности", у которых тип = Email. Активности с типом Email отображаются на детали "Email".

Базовая логика приложения скрывает деталь в двух случаях:

  1. У контакта тип "Сотрудник"
  2. У контрагента контакта тип "Наша компания"

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

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

.

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