Добрый день.
Стоит задача отобразить в разделе Планирование:
- продукты в разрезе контрагентов
и
- Контрагентов в разрезе Ответственных.
Вопрос:
Как можно создать подобную иерархическую структуру в разделе Планирование с расчётом итоговых показателей по каждому родителю?

Версия Бандл SalesOmnichannal+MarketingCampaign 7.5.0.1422

Нравится

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

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

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

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

А можно хотя бы направление, в котором двигаться?

Требуется реализовать возможность добавления подчинённых элементов средствами системы и полноценной работы с ними, а также автоматический пересчёт родительских элементов при изменении дочерних. Ввиду этого, как минимум, рекомендую начать работу с добавления записей и вычисления их Id дочерных/подчиненных элементов. В целом же вся реализация достаточно объемна и выполняется исключительно написанием скриптов.

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

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

Подскажите как узнать количество записей попавших под http запрос вида:

https://xxxxxx.bpmonline.com/0/ServiceModel/EntityDataService.svc/ListingCollection?$filter=length(Owner/Name) gt 0
записи у которых заполнено поле ответственный.

Добавление /$count приводит к результату, если нет $filter, т.е. объем всей коллекции.

Максим.

Нравится

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

При попытке интеграции с MS Exchange возникла ошибка на этапе настройки синхронизации с почтовым ящиком. При сохранении новой настройки выдает ошибку: "Базовое соединение закрыто: Не удалось установить доверительные отношения для защищенного канала SSL/TLS".

Нравится

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

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

Вам необходимо установить в системной настройке "Игнорировать некорректные сертификаты сервера Exchange" признак true и повторно выполнить настройку почтового ящика.

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

В BPMonline 7.6 написал на Javascript модуль детали. В качестве родительской схемы модуль имеет схему "Базовая схема детали с реестром". Нужно зарегистрировать написанную мной деталь в справочнике деталей. Как это сделать в BPMonline 7.6. ?

Нравится

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

Добрый день, создайте деталь на основе существующего объекта с помощью соответствующего мастера, о котором можно почитать в SDK:
Создание детали.

После этого деталь можно будет использовать на страницах, о чем вы тоже можете почитать в разделе SDK:
Настройка детали

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

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

1. Я конечно рекомендую пользоваться мастером, а потом менять содержимое модуля, во избежание человеческого фактора и ради облегчения работы. Т.к. мастер, к примеру, сразу установит необходимые привязки на закладку данных.
Но если есть такая необходимость, можете зарегистрировать деталь в таблице SysDetail:

INSERT INTO SysDetail(Caption, DetailSchemaUId, EntitySchemaUId)
VALUES('Имя детали', 'B9956976-1FF5-4352-9534-AD87CA7EEA04', '080C9917-7EC9-42E5-86FF-75A683D4F124')

Где Caption - Имя детали;
DetailSchemaUId - UId детали;
EntitySchemaUId - UId объекта в котором деталь хранит свои данные.

2. Да, мастер раздела может брать детали из любых пакетов.

Спасибо.

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

 

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

Маю задачу розробити інструмент для надання полям форми статусу "обов'язковий" для учасників певних ролей. Іншими словами, треба створити інструмент, який на формі присвоював би атрибуту обов'язковості для визначених полів значення true.
Сам по собі інструмент передбачає певний ступінь універсальності, тому я спробував продумати можливість керування не тільки атрибутом обов'язковості.

Приблизно склав собі архітектуру даних:
[RulesSchema] - правила для схем, фіксують схеми (на основі BaseEditPage), для яких встановлюються правила
[RulesRoleInSchema] - ролі, долучені до правила схеми
[RulesOperatedFields] - керовані поля схеми
[RulesAttribute] - атрибути, для яких мають виконуватись дії правил (присвоєння значень)

І спостеріг наявність у списку таблиць наступні:
[Attribute] - Признак
[AttributeValue] - Значение признака
[AttributeReferenceSchema] - Схема для признака

Структура таблиць дає можливість зберігати значення різних типів атрибутів по схемах.
Я якраз збирався сам щось подібне створювати для своєї задачі.

Отже, зараз потрібно визначитися, що це за таблиці і чи можна ними скористатися для своїх цілей.

Нравится

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

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

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

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

Доброго времени суток!
Переходим на bpm с другой crm.
В старой был стандартный функционал по приему лидов с форм на сайтах.
Если что то подобное в bpm?
Если нету, то можно ли создать REST сервис на который будут приходить данные с сайтов?
Буду рад если кто поделится ссылочкой на доки где это описано.

Нравится

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

Добрый день!
Данный функционал присутсвует в версии 7.6 в виде лендинга в продукте Bpm'online Marketing.
Более детально о его реализации Вы можете почитать в документации по ссылке(со страницы 167):
http://academy.terrasoft.ru/documents/docs/product/bpm'online%20marketi…

Такая функциональность есть в bpm'online sales.

У нас bpm’online real estate
Как можно это добавить?

Виктор, уточните, пожалуйста, версию продукта.

Версия 7.6.0.1693

Виктор, для продуктовой линейки 7.6 данный функционал реализован только в продукте Marketing.

Я так понимаю подключить его отдельно нельзя?

Да, все верно. Это один из объектов конкретного продукта.

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

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

Нужна помощь с правильным созданием сложного справочника.
Создал объект(несколько текстовых и справочных полей) зарегестрировал его как справочник, в разделе Справочники. В реестре не помещаются все поля.
Как правильно создать и зарегестрировать (в какие таблицы и что нужно вставить) страницы справочника что бы он работал в старом интерфейсе, как многие базовые например Формы собственности.
Также интересует что нужно сделать что бы пользователь работая со справочным полем, при выборе значения из справочника, мог добавлять и изменять записи.

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

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

Нравится

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

По данному вопросу есть статья на SDK - http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/CreateMast…

Также прикрепил пример создание данного справочник
dvuhurovnevyyspravochnik.doc

"Мотков Илья" написал:

По данному вопросу есть статья на SDK - http://academy.terrasoft.ru/documents/docs/technic/SDK/7.6.0/CreateMaste...

Также прикрепил пример создание данного справочник

dvuhurovnevyyspravochnik.doc


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

Добрый день!

Выполните update записи в SysLookup.

Колонка - SysGridPageSchemaUId.

Вы можете взять за пример уже существующий справочник - "Результаты активностей по категориям" и зарегистрировать собственный по аналогии.

"Безродный Андрей" написал:

Добрый день!

Выполните update записи в SysLookup.

Колонка - SysGridPageSchemaUId.

Вы можете взять за пример уже существующий справочник - "Результаты активностей по категориям" и зарегистрировать собственный по аналогии.

Спасибо. Добавил запись в таблицу SysLookup, Id добавленной записи поместил в колонку SysLookupId таблицы Lookup записи справочника зарегестрированного через раздел "Справочники" и все заработало.

Подскажите пожалуйста, есть ли пример как на странице редактирования старой версии отфильтровать одно поле по значению другого: области по странам, города по областям?

Здравствуйте. У меня схожая проблема. Нужно сделать справочник в котором есть доп поля. А стандартная страница редактирования позволяет оперировать только полями название и описание.
Вот хотелось бы сделать чтобы при клике на кнопку "открыть наполнение" или на заголовок справочника в списке справочников открывалась типа такой страницы

Страницу(PageSchemaManager) в конфигураторе уже создал. но как сделать чтобы она открывалась в нужном месте?
Кстати. из примера на скрине в свойствах справочника "Стадии продаж" поле Страница реестра пустой:confused:

Здравствуйте.
Нет необходимости изменять PageSchemaManager.
Вам необходимо создать "страницу" справочника и унаследовать её от "Базовая страница справочника" и указать её в свойствах справочника как страницу реестра.

у меня не появляется моя страница в выборе "страница реестра". а сделать так
"Выполните update записи в SysLookup." не могу, так как нет доступа к базе.. что можно сделать?

Дмитрий, здравствуйте.

Есть 2 варианта как это можно сделать:
1) Вы можете сообщить в техническую поддержку какие идентификаторы схем Вам необходимо узнать и, с полученной информацией, выполнить запрос через [SQL Сценарии]

2) Так же, Вы можете запросить анонимизированную копию базы, и самим узнать необходимые Вам данные. А далее, все так же, выполнить запрос через [SQL Сценарии].

Теперь. Сделал как сказано выше.

"Дашкевич К." написал:

Спасибо. Добавил запись в таблицу SysLookup, Id добавленной записи поместил в колонку SysLookupId таблицы Lookup записи справочника зарегестрированного через раздел "Справочники" и все заработало.

Страница справочника стала открываться.

Но при нажатии на кнопку добавить открывается новая страница с такой ошибкой.

Exception Message: Object reference not set to an instance of an object.
Exception Type: System.NullReferenceException
Exception Source: Terrasoft.WebApp
 
Exception Stack Trace:
   at Terrasoft.WebApp.ViewPage.get_UId()
   at Terrasoft.UI.WebControls.Page.InitializeProfile(ProfileKeyEventArgs e, Boolean forceInit)
   at Terrasoft.WebApp.ViewPage.OnInitComplete(EventArgs e)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 
SessionID: fgg0y2gegvcer3vclyuuv1fp
Request URL: /0/ViewPage.aspx?Id=00000000000000000000000000000000&recordId=00000000-0000-0000-0000-000000000000&entitySchemaUId=84cf4e7e-4615-4211-ac78-34ff81008182&treeGridId=PageContainer_TreeGrid&SysModuleEditId=00000000-0000-0000-0000-000000000000&folderId=
Request Path: /0/ViewPage.aspx
Request UrlReferrer: https://omega.bpmonline.com/0/ViewPage.aspx?editMode=true&Id=63b42d80-5585-4b6a-9617-f747e4b2f314
Request Type: GET
User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0
User Host Address: 213.5.130.62
User: Supervisor
Is Authenticated: True
Authentication Type: Forms
Is Secure Connection: True
 
Application Version: 7.5.0.1007

Попробовал что пишут на форуме. но в моем случае не помогло
http://www.community.terrasoft.ru/forum/topic/12438

Запись, связанная с данным справочником в таблице [SysLookup] выглядит следующим образом

Дмитрий, в схеме реестры нужно добавить событие Init страницы

Элементы: Начальные.Сообщение, Задание сценарий, Промежуточные генерирующие.Сообщение. (Смотрите приложенное изображение)
В элемент Задание сценарий, добавить код:

EditPageUId = new Guid("6f58a076-d374-4a27-a451-b29595b05be9");
return true;

Uid нужно взять из метаданных схемы страницы редактирования (Дополнительно - Открыть метаданные).

Спасибо)

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

Добрый день!
Интересуют следующие моменты относительно прав на группы (например, группы обращений)

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

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

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

Нравится

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

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

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

2. Права на группу изменяются в настройке прав на группу. Скриншот прилагаю:
Права

Добрый день!
Спасибо, но я не спрашивала, где надо менять права на группу - мне это известно...
Мой первый вопрос звучал так
1.
Скажите, пожалуйста, можно ли сделать так, чтобы пользователь-системный администратор не видел такие группы ( они как бы личные - в их доступе явно прописан только создатель группы)
Или быть может можно сделать так, чтобы пользователь-системный администратор по умолчанию не видел эти группы, а видел бы при выборе какого-то действия "отобразить все группы"?
Правильно я понимаю,
что ответ на мой первый пункт - "Нет, такой явной возможности сейчас нет" ?
Понятно, что права системного администратора не надо ничем ограничивать. Но было бы удобно, если бы у него в разделе бы не было бы видно сразу полного дерева групп, создаваемых разными пользователями. Было бы удобно, если бы те группы, на которые бы у него не было бы явного доступа, по умолчанию бы не отображались, а отображались бы при включении определенной галки..

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

Здравствуйте, Дарья! По первому пункту, Вы понимаю совершенно верно, "Нет такой явной возможности сейчас нет", но как по мне случай очень частный, и особой необходимости в таком функционале нет.
По второму вопросу, Вы можете ограничить права на остальные группы, и тогда он сможет создавать новые группы строко в определенной ветке дереве, в которой Вы оставите ему права. Как ограничить права уже подсказал Алексей....

Добрый день!
По первому пункту была такая возможность в 3.х - было очень удобно. Собственно, поэтому и спрашивала.
По второму пункту - ну вы же предлагаете убрать у них право на чтение групп?)
понятное дело, что если пользователь не видит группы, то и создавать внутри них он ничего не сможет. Мой вопрос был не про это. Я бы хотела, чтобы пользователь видел группы, все какие ему необходимо - разные ветки групп, но новые группы создавал только в определенной ветке.
Но так понимаю, простого способа для этого нет?

Нет, я предлагаю оставить права на чтение, но убрать на изменение и удаление, установив для группы %ваш объект% требуемые настройки администрирования(по записи)

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

Здравствуйте, Дарья!

Как вариант в правах на операцию "Чтение любых данных" Вы можете понизить права роли "Системные администраторы", запретив таким образом просмотр всех данных. При этом пользователи с ролью "Системные администраторы" будут видеть записи согласно распределению прав в разделе "Доступ к объектам".

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

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

Если в блоке define модуля родителя уже есть список зависимых модулей при копировании в модуль - потомок они будут перенесены. Нужно ли их дополнительно вручную в блок dependencies в меню справа добавлять эти модули? Какая разница между разделом справа и просто списком в объявлении define?

Также, при добавлении элемента в LocalizableString в модуле-потомке с тем же именем, что и в модуле-родителе при компиляции появляются предупреждения со смыслом: переменная с таким именем уже существует и будет скрыта, измените имя переменной или используйте слово new для объявления новой. Как переносить данный раздел в замещающий модуль, если возникают данные ошибки?

Нравится

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

Евгения, добрый день!

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

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

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

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

Спасибо за ответ. Да, речь шла именно о модуле, не о схемах.
Вопрос про локализуемые строки все еще открыт. Создала замещающий модуль (не схему), родительский модуль указала. Но строки при этом в интерфейс не подгрузились (версия системы 7.2). Возможно в этой версии автоматической подгрузки нет? Вопрос про обращения к этим строкам, вызывать локализуемые строки из модуля-родителя нужно как-то специфически, вроде обращения к parent? Где-то можно посмотреть примеры подобные? Потому что через resource идет обращение к локализуемым строкам текущего модуля.

Спасибо

Евгения, добрый день!

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

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

Альтернативным решением может быть разве что создания строк с новыми названиями и замена их везде в коде модуля.

Спасибо за ответ. Вопрос исчерпан.

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

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

Создал замещающую схему страницы BaseProjectPageV2, ее код ниже. При добавление записи действие работает нормально, но при редактирование записи пропадает подпись и не вызывается функция, в консоле появляется ошибка "Uncaught TypeError: Cannot read property 'apply' of undefined". Пробовал замещать ProjectPageV2, такая же ошибка, в разделе действие добавленное таким способом работает корректно.
В чем может быть проблема?
BPM Sales + Marketing Версия 7.6.0.996

Код замещающей схемы:

define("BaseProjectPageV2", [], function() {
        return {
                entitySchemaName: "Project",
                attributes: {},
                messages: {},
                details: /**SCHEMA_DETAILS*/{}, /**SCHEMA_DETAILS*/
                methods: {
                        getActions: function() {
                                var actionMenuItems = this.callParent(arguments);
                                actionMenuItems.addItem(this.getActionsMenuItem({
                                        "Caption": {"bindTo": "Resources.Strings.ProjectActivityImportCaption"},
                                        "Click": {"bindTo": "openProjectActivityImportSetting"},
                                        "Enabled": true
                                }));
                                return actionMenuItems;
                        },
                        openProjectActivityImportSetting: function() {
                                console.log("click");
                        }
                },
                diff: /**SCHEMA_DIFF*/[]/**SCHEMA_DIFF*/
        };
});

Нравится

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