Здраствуйте! Хочу сделать autoLogin для bpmonline 7.6. То есть, чтобы при переходе на сайт сразу открывался сайт, а не окно авторизации. Для этого хочу в модуле LoginModule, который находится в папке ..Terrasoft.WebApp\Resources\ui\Terrasoft\amd переписать метод onLoginButtonClick, передав логін, пароль Supervisor. Но проблема в том, что после изменения LoginModule.js в етой папке и после полной перезагрузки страницы изменения не вступает в роботу. Подскажите пожалуйста как зделать чтобы bpmonline увидел изменения етого файла. Или какойто альтернативный способ ришения проблемы?

Нравится

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

Здравствуйте.
В прикреплённом файле - рекомендации по настройке сквозной авторизации. Также обращаю Ваше внимание на то, что сайт должен быть не в "корне" IIS, а, как минимум, на уровень ниже.

Спасибо! Но всьоже, почемо после изменения LoginModule.js изменения не вступает в роботу?

Здравствуйте.
Очистите кэш браузера, поскольку дескриптор модуля LoginModule.js динамически не изменяется, а его предыдущая редакция хранится в кэше.

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

Добрый день!

Настроил БП, который по входящему email создает лид. Все прекрасно работает за исключением одной детали: не получается привязать email активность к лиду. В карточке активности БП заполняет поле Лид, это видно из карточки активности. Но, в карточке лида, на детали Email данная активность не отображается. Во вложении - скрины.

Что я не учел? Подскажите, пожалуйста.

Нравится

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

К отображению в этой детали применяются два фильтра Activity.TypeId = ConfigurationConstants.Activity.Type.Email (это Id = "e2831dec-cfc0-df11-b00f-001d60e938c6") и Activity.LeadId = Lead.Id
соотвественно проверьте эти два поля для вашей активности email

И еще нюанс - если руками создать в деталь запись - все видно? тогда предложил бы запросом вытащить обе записи (ручную и созданную в бп) и посмотреть в чем разница
SQLExecuterPage в помощь если облако

Кстати еще предположение на основании рисунка детали - а если там колонок побольше вытащить? Может пуст этот заголовок с датой

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

Добрый день коллеги! Подскажите пожалуйста, какими способами можно динамически добавлять/удалять css-классы для сгенерированной и отрисованой страницы?
Например, были добавлены следующие дифы для контейнера, и кнопки, которую он будет содержать:

        {
                "operation": "insert",
                "name": "SignButtonsContainer",
                "parentName": "HeaderContainer",
                "propertyName": "items",
                "values": {
                        "itemType": Terrasoft.ViewItemType.CONTAINER,
                        "visible": true,
                        "wrapClass": ["sign-container"],
                        "items": []
                }
        },
        {
                "operation": "insert",
                "parentName": "SignButtonsContainer",
                "propertyName": "items",
                "name": "SignBtnInsurance",
                "values": {
                        "itemType": Terrasoft.ViewItemType.BUTTON,
                        "caption": {"bindTo": "sign_insurance"},
                        "hint": {"bindTo": "Resources.Strings.sign_insurance"},
                        "imageConfig": {"bindTo": "Resources.Images.sign_insurance_image"},
                        classes: {
                                wrapperClass : "sign-btn",
                                imageClass   : "sign-img",
                        },
                        "visible": true
                }
        },

в итоге, для кнопки были сгенерированы стандартные классы: t-btn-wrapper, t-btn, t-btn-style-default и кастомный, описанный в дифе - sign-btn.

Вопрос : как можно динамически (при отрисованной странице) добавить свой кастомный класс, описанный в LESS, или удалить существующий?
Заранее спасибо!

Нравится

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

Javascript-ом:
document.getElementById('YourElement').className += ' class_two' //add or anything
или JQuery
$('#YourElement').addClass('class_two'); //add
$('#YourElement').removeClass('class_one'); //remove

Спасибо за оперативный ответ! Подскажите пожалуйста, глобальный объект JQuery всегда доступен, или его надо подключать на страницу специальным образом?

JQuery нужно прописать каждый раз, где он необходим.

Не могли бы Вы сбросить пример подключения на страницу JQuery?

попробуйте просто подключить его в зависимости схемы:
к примеру:

define("LeadPageV2", ["BusinessRuleModule", "jQuery"],
  function(BusinessRuleModule) {

Спасибо!

Подскажите пожалуйста, где посмотреть, какая версия Jquery используется?

В пакете NUI, в самой схеме jQuery посмотрите, там написано.

спасибо!

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

Доброго времени суток!
Возможно ли присоединить схему по обратным связям к схему, которая в свою очередь тоже была присоединена по обратным связям?
К примеру: необходимо отфильтровать справочное поле Контакт, и вывести туда все контакты, входящие в определенную группу пользователей. Т.е. присоединить SysAdminUnit, а к ней SysUserInRole.
Конечно можно вместо справочника Контакт использовать Объект администрирования, и проблема отпадет. Данная фильтрация приведена для примера. Интересует возможность построения таких связей.

Нравится

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

Здравствуйте, Олег.

Предложенным Вами способом решить данную задачу не получится. Вот здесь Вы можете посмотреть решение похожей задачи.

Спасибо

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

В карточке лида необходимо, чтобы при выборе "Компьютерная техника" поле "Контакт" лочилось. Вставляю это:

rules: {
                "QualifiedContact": {
                    QualifiedContactEnabled: {
                        ruleType: BusinessRuleModule.enums.RuleType.BINDPARAMETER,
                        property: BusinessRuleModule.enums.Property.ENABLED,
                        conditions: [{
                            leftExpression: {
                                type: BusinessRuleModule.enums.ValueType.ATTRIBUTE,
                                attribute: "LeadType"
                            },
                            comparisonType: Terrasoft.ComparisonType.NOT_EQUAL,
                            rightExpression: {
                                type: BusinessRuleModule.enums.ValueType.CONSTANT,
                                value: "4EB933C2-D7BB-4711-8D57-3E59C2BCDC0F"
                            }
                        }]
                    }
                }
            }

Вроде все как в примере из SDK, однако поле не блокируется. Причем при изменении параметра ComparisonType на EQUAL поле блокируется (т.е. кусок кода работает). В чем может быть проблема?

Нравится

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

Добрый день!

Укажите Id записи из справочника "LeadType" в нижнем регистре, все символы с маленькой.

"Зарицкий Олег Васильевич" написал:

Добрый день!

Укажите Id записи из справочника "LeadType" в нижнем регистре, все символы с маленькой.


Блин.. Пол дня голову ломал) Спасибо огромное!

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

Добрый день

Подскажите, пожалуйста, можно ли отобразить на одной вкладке Контакты две детали и , если -да, то каким образом? Интересует детали КЕ и Записи (не Файлы и ссылки и не Заметки)

Нравится

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

Татьяна, эти вопросы уже обсуждались. См. тут и тут.

Добрый день.
Вот что у меня получилось:

в карточке Контакт на детали Записи я сделала две детали:
1) Записи
2) КЕ (здесь данные должны браться из детали КЕ этого Контакта)

В итоге: почему-то нет данных в лайоте КЕ, хотя они на самом деле есть на детали КЕ Контакта. В чем может быть моя ошибка?

Что сделала:

в итоге:

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

Вероятно, какая-то ошибка в коде, который осуществляет привязку внутренней детали. Попробуйте провести отладку, смотрите примеры по ссылке выше и как аналогичные детали сделаны в системе.

нужно ли чистить Redis? И где правильно - Страница реестра конфигурационных единиц или Страница реестра конфигурационных единиц ?

И где правильно - "Страница реестра конфигурационных единиц в контакте " или "Страница реестра конфигурационных единиц" ?

Татьяна, я ведь уже объяснял, чем отличается «Страница реестра конфигурационных единиц в контакте» от «Страница реестра конфигурационных единиц». Там разная логика фильтрации, они обе правильные, но для разных целей.

И если ошибка в коде, чистка редиса не поможет.

понятно, значит мне нужна «Страница реестра конфигурационных единиц в контакте» .

Вам видней...

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

Добрый день.
Подскажите, пожалуйста, как настроить права на редактирование определенного справочника конкретному сотруднику? Т.е. не у сист.администраторов по умолчанию нет доступа на редактирование никаких справочников. Мне нужно дать Иванову доступ к справочнику Модели КЕ. Заранее спасибо

Нравится

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

Здравствуйте, Татьяна.

Вы можете предоставить Иванову право на операцию "Доступ к справочникам".

При этом объекты всех справочников необходимо администрировать по операциям и предоставить доступ всем сотрудникам только на операцию Чтения объектов всех справочников.
Иванову же добавить доступ на редактирование необходимого Вам справочника.

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

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

var wmi = GetObject("winmgmts:!\\\\.\\root\\cimv2");
var nac=wmi.ExecQuery("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled = True");
for (nac = new Enumerator(nac);!nac.atEnd(); nac.moveNext()){
var ip = (nac.item().ipAddress(0));    
}

Не знаю поможет ли... Может есть другие варианты?

Нравится

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

Здравствуйте.
Можно получить IP пользователя при обработке запроса от пользователя.

HttpContext.Current.Request.GetClientIP()

Ограничения:
в данном случае IP будет тот с которого реально получен запрос (это важно при работе пользователя из-за прокси).

"Александр Зубков" написал:

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

Можно получить IP пользователя при обработке запроса от пользователя.

HttpContext.Current.Request.GetClientIP()

Ограничения:

в данном случае IP будет тот с которого реально получен запрос (это важно при работе пользователя из-за прокси).

Спасибо Александр! Использовали другой метод, но получили, как раз то что нужно!

HttpContext.Current.Request.UserHostAddress

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

Здравствуйте! Использую версию BPMOnline 7.7.
Подскажите пожалуйста, как можно объяснить, а главное исправить странное поведение webSockets:
При запуске BPM устанавливается подключение, в консоли, как положено, появляется сообщение

WebSocket-connection opened for url:ws://myServer:MyPort/0/Nui/ViewModule.aspx.ashx

Буквально через несколько секунд простоя появляется следующее сообщение:
 
Tue Mar 01 2016 21:07:43 GMT+0300 (RTZ 2 (зима)) Channel closed. Reconnect..

После этого следующая страница открывается значительное время - примерно от 10 секунд. Как раз после повторного подключения сокетов.
Причем при постоянном переключении между страниц такого не происходит.

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

Нравится

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

Здравствуйте, Александр!

В данной ситуации необходимо проверить настройки WebSocket на сервере и в файлах Web.config. Также рекоммендую проверить, нет ли на этом порту других приложений, которые мешают поддержанию соединения.

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

Здравствуйте, Павел!
На сервере развернуто не одно приложение. Для каждого в TerrasoftWebAPP в конфиге указан свой сокет.

"Павел Баштовой" написал:В данной ситуации необходимо проверить настройки WebSocket на сервере и в файлах Web.config.

Сейчас настройки выглядят следующим образом:

<wsService type="Terrasoft.Messaging.SuperWSService.SuperWSService, Terrasoft.Messaging.SuperWSService" defaultPort="21850" encrypted="false" portForClientConnection="44310" maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120" />

Параметр defaultPort для всех сайтов разный, а portForClientConnection одинаковый.
Если возможно, предоставьте, пожалуйста, пример правильной настройки.

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

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

Здравствуйте.
Так, на вскидку сложно ответить. Попробуйте остановить проблемные приложения и "просканить" порты, которые используются их web-соккетами на предмет доступности.

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

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

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

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

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

Используем справочники (Country, City, Rgion, Distinct).

Нравится

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

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

Редактирование/удаление можно решить на уровне прав доступа к записям - раздача их в БП после создания записи. Думаю, что администратор системы всё равно должен иметь эту возможность

Здравствуйте, Владимир. Спасибо за ответ. По поводу изменения прав по событию "после добавления записи" - понятно.
Поясните подробнее про фильтрацию в карточке города. Конкретно где именно ставить фильтр. В каком файле? Справочники вызываются при добавлении адресов. Лукап "город" => кнопка добавить.

Уточните, пожалуйста, Вы хотите реализовать невозможность привязки города к стране непосредственно в самом справочнике (например, при добавлении нового значения), или в карточке "Листинга", "Объекта", "Контрагента" и т.д. при выборе города, чтоб не выбиралась определенная страна?

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

В карточке контрагента или контакта, при добавлении адреса вручную, в деталь "Адреса". Приложил 6 скриншотов. С 1- по 6. На 6-ом выбор страны для города, вот тут не должно быть отфильтрованной страны.

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

Аналогичный вопрос уже рассматривается в теме:

http://www.community.terrasoft.ru/forum/topic/15497#comment-59669

И рассматривается в SDK:

http://academy.terrasoft.ru/documents/docs/technic/SDK/7.7.0/LookupFilt…

Спасибо!

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