Добрый день!

Создала новый раздел с помощью Мастера разделов. При попытки сохранить запись в данном разделе ошибка:

The INSERT statement conflicted with the FOREIGN KEY constraint "FKWhoMIsUKnucr4tSOkBKuS3QHIo". The conflict occurred in database "013442-sales-enterprise", table "dbo.Contact", column 'Id'. The statement has been terminated.

 

Что я сделала не так? где и что требуется исправить? подскажите, пожалуйста!

 

Нравится

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

Добрый день!

Судя по ошибке, у Вас в созданном разделе присутствует справочное поле которое ссылается на объект "Контакт" и в это справочное поле Вы добавляете идентификатор не существующего контакта. 

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

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

Народ помогите:

Когда тыкаешь в реестре на лида, высвечиваются кнопки "Открыть","Копировать" ..... и "Квалификацировать".

С удалением кнопок отличных от квалификации проблем не возникло:

                    {

                       "operation": "remove",

                       "name": "DataGridActiveRowCopyAction"// это название из BaseSectionV2

                    }, 

Затык с кнопкой "Квалифицировать"

1) Не понимаю как она называется?

В BaseSectionV2 - я ее не нашел

В моем замещающем разделе LeadSection, есть QualificationProcessButton, но это кнопка в заголовке режима редактирования лида.

 

Нравится

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

Все, подсказали

Название кнопки "DataGridActiveRowQualificationProcessAction"

Последовский Роман,

Я зачищал кнопки в реестре кодом примерно таким образом:

            onRender: function() {

                var grid = this.getCurrentGrid();

                grid.activeRowActions = [];

                this.callParent(arguments);

            }

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

Версия 7.11

Всем привет.

Появилась необходимость remove стандартную кнопку "Квалификация" в разделе "Лиды", и использовать свою, которая отображается и в режиме добавления и режиме редактирования. Для реализации этого функционала добавил свою кнопку в замещающие схемы  LeadPageV2(отвечает за кнопку в режиме добавления) и в LeadSectionV2 (отвечает за кнопку в режиме редактирования). Кнопки сделал разного цвета. Вроде все работает.

Но проблема в следующем:

Если войти в режиме редактирования то отобразится "Красная кнопка" определенная в LeadSectionV2, но если обновить страницу F5, то в режиме редактирования кнопка поменяет свой цвет на синий - т.е кнопка определенная в LeadPageV2.

Встает вопрос: ведь логика обработки при нажатие на кнопку для каждого режима своя.

И пользователь случайно нажав F5, будет дезинформирован

 

 Изображение удалено.

Нравится

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

"ведь логика обработки при нажатие на кнопку для каждого режима своя."

неа. в секции есть метод onCardAction, при нажатии на кнопку он посылает в карточку сигнал а-ля: "кнопка нажата, у неё такой-то тэг, запусти this[tag]();" Ну и получается такая ситуация: кнопки 2, обработчик 1 (в page схеме)

Ответить

Варфоломеев Данила,

Окей обработчик один. А что быть с визуальной состовляющей? Цвета то разные

Последовский Роман пишет:

Цвета то разные

"style": "blue"  в values кнопки принудительно прописать можно

Варфоломеев ДанилаСПСБ

Варфоломеев Данила,

Спасибо за разьяснения

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

Помогите с обьяснением

Вот к примеру в схеме обьекта:

diff: /**SCHEMA_DIFF*/[

    {

        "operation": "insert",

        "name": "UsrSchema13Detail1dcd436c",

        "values": {

            "itemType": 2,

            "markerValue": "added-detail",

            "visible":{"bindTo": "myFunction"} //

        },

        "parentName": "Tabcf202d7cTabLabel",

        "propertyName": "items",

        "index": 5

    }

]

 "visible":{"bindTo": "myFunction"}  - Эта функция отрабатывает только в момент инициализации???

Как динамически поменять свойство видимости view элемента? 

Например у меня поменялся статус в справочнике представленным view элементом в разделе и мне нужно отобразить на странице деталь(по умолчанию она скрыта)

Нравится

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

"Как динамически поменять свойство видимости view элемента?" — Биндить на аттрибут.

" "visible":{"bindTo": "myFunction"}  - Эта функция отрабатывает только в момент инициализации???" — уж не знаю когда, но отрабатывает она по несколько раз при загрузке страницы (подозреваю, что при рендеринге и ререндеринге элемента)

Роман. "visible":{"bindTo": "myFunction"}  по факту делает одностороннее связывание. Вызов функции или же проверка атрибута будут происходить при любом изменении в модели (т.е. даже если вы поменяете соседнее тектосвое поле). И да, Данила подметил верно, при рендеринге и инициализации страницы вызов функции может произойти несколько раз, по этому не стоит громоздить в подобные функции много логики и точно не стоит в них хоть как-то менять остальную модель. 

Лучше всего проверять значения соседних полей и основываясь на их содержании менять возвращаемое значение. К примеру:

myFunction: function() {

      return this.get("UsrSTRING") === "123";

}

 

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

Фухх. Делаю настройку по донной инструкции: https://academy.terrasoft.ru/documents/technic-sdk/7-11/otladka-servernogo-koda

И вот когда подключаюсь к процессу и ставлю отладчик - он не ставится, выбивает следующее:

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

Нравится

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

На эту ошибку я напарывался раза три. 2 раза она просто так исчезала спустя некоторое время, 3 раз пришлось обновлять студию ибо абсолютно все инструкции из интернета не помогли. Внезапно в 2015 версии всё заработало как надо.

У товарища на 2010 студии прокатывала такая штука - он подключался, выдавалось предупреждение о символах, он компилил конфигу bpm, студия выкидывала предупреждение и всё внезапно фиксилось.

"по донной инструкции" — я не знаю, опечатка ли это, но да, вы правы) *тут должна быть гифка из пиратов карибского моря "все на дно!"*

Варфоломеев Данила,

да, это опечатка) Инструкция вроде нормальная, только по этой ошибке не все верно прописано).

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

у меня стоит самая новая 2017, некуда уже обновлять(

или качать 2015, 2010 и на них пробовать ещеfrown

честно говоря, ничего 100% рабочего не могу вам посоветовать.

если уж прям совсем надо, то можно ручками указать в "Сервис—>Параметры—>Отладка—>Символы" папку с символами (по сути вся папка с выгруженными из bpm ресурсами), студия минуты 2 подумает, подгрузит и всё должно отработать. Лично у меня прокатывало.

Беда в том, что такие действия надо будет совершать при каждой отладке

Варфоломеев Данила,

Благодарю, помогло!!! Невероятно, но факт!

Коллеги, можно символы microsoft вообще не подгружать!

На самом деле порядок таков:

1) Удаляем все файлы, кроме dll в Terrasoft.Configuration/bin

2) Подключаемся к процессу и ставим точку останова

3) Компиляция

Чубко Илья,

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

1) Удаляем все файлы, кроме dll в Terrasoft.Configuration/bin

Это наверно аналогичный шаг, по идее достаточно удалить только exe(в моем случае) Проблема в визуалке а не БПМ)))

Чубко Илья,

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

1) Удаляем все файлы, кроме dll в Terrasoft.Configuration/bin

Это наверно аналогичный шаг, по идее достаточно удалить только exe(в моем случае) Проблема в визуалке а не БПМ)))

Варфоломеев Данила, еще такое вот в отладке пишет:

        insert.GetSqlText()    Не удается получить значение локальной переменной или аргумента, так как оно недоступно по указателю инструкции, возможно, вследствие оптимизации.    string

и так ко всем переменным(((

Таже ситуация, не знаю что делать, делаю все по инструкции и ничего не помогает((

 

Попробуйте советы из комментариев выше.

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

Добрый день!

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

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

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

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

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



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

Есть кейс:

30 ролей, 40+ объектов у которых включено "Администрируется по записям". 

Нужно в каждом объекте прописать:

"Кто создает" роль1 "Кому дано право" роль1

"Кто создает" роль2 "Кому дано право" роль2

"Кто создает" роль3 "Кому дано право" роль3

и т.д.

Уровень доступа у всех одинаковый.

 

Нравится

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

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

Я так думаю надо перенести права, которые раздаются по-умолчанию при создании записи. В таком случае вам в таблицу SysEntitySchemaRecordDefRight. 

Максим Цынгаев, да интересует как автоматизировать проставление дефолтных пермишнов по записям?.



Грубо говоря: Пользователи с ролью "Москва" должны видеть только записи созданные пользователями с ролью "Москва",

А пользователи с ролью "Санакт-Петербург" . должны видеть только записи созданные пользователями с ролью "Санакт-петербург"

И таких ролей у меня 30 штук, а права нужно раздать на 40+ объектов (разделов).

Как пример: Раздел "Обращения" я раздаю на него права доступа "Администрируется по записям"

И 30 раз проставляю:

Кто создает "Москва" кому дано право "Москва"

Кто создает "Санакт-Петербург" кому дано право "Санакт-Петербург"

и т.д.

Хотелось бы как-то это автоматизировать.

 

Варфоломеев Данила,большое спасибо помогли, добавить записи получилось. то что нужно

INSERT ... SELECT, думаю, будет оптимальным решением

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

Настроили все по инструкции https://academy.terrasoft.ru/documents/marketing/7-8/nastroyka-vebsoket…

Указали открытый 85 порт.

Однако все равно валится ошибка.

Подскажите, что стоит посмотреть?

Нравится

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

А компонент на сервере для работы с Web-socket установлен? 

Терещенко Алексей,

Алексей, спасибо, действительно забыл :)

Vladimir Kov,

Однако проблема сохранилась:

WebSocket connection to 'ws://192.168.1.5/0/Nui/ViewModule.aspx.ashx' failed: Error during WebSocket handshake: Unexpected response code: 302

WrappedWebSocket @ VM2954:164

 

Vladimir Kov,

Сам недавно решал подобную проблему...

Попробуйте изменить portForClientConnection=0 и удалить параметры maxConnectionNumber="100" clearIdleSession="false" clearIdleSessionInterval="120". Они используются для настройки https.

Тоже на днях была похожая трабла. Рекомендую .Net Framework тебе обновить и заодно IIS проверить на текущую версию чтобы не ниже 8ой была. Порты кстати не так важно открывать из под localhost в dev tools хрома или мозилы в логах всё равно увидишь connection oppened for url бла-бла-бла.

Терещенко Алексей,

Попробовал, не помогло, пробую снова все поставить на 12 сервере.

 

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

Версии:

Необходимо произвести настройку внутреннего конфигурационного файла Terrasoft.WebApp\Web.config

Необходимо найти директиву

<wsService type="Terrasoft.Messaging

И установить ее со следующим набором параметров:

<wsService type="Terrasoft.Messaging.MicrosoftWSService.MicrosoftWSService,Terrasoft.Messaging.MicrosoftWSService" encrypted="false" portForClientConnection="0" />

PS: Конфигурационный файл вероятно уже содержит данную директиву, но с другим набором объектов и атрибутов,

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

его необходимо заменить на вышеуказанный!:

далее необходимо, найти директивы:

<add verb="GET" path="*ViewModule.aspx.ashx" …

и

<add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" …

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

В случае если такие директивы будут отсутствовать, необходимо добавить их в соответствующие ноды XML файла:

<system.webServer> 

<handlers>   

<add name="WSHandler" verb="*" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

<location path="." inheritInChildApplications="false">

<httpHandlers>

<add verb="GET" path="*ViewModule.aspx.ashx" type="Terrasoft.Messaging.MicrosoftWSService.WSHandler, Terrasoft.Messaging.MicrosoftWSService" />

Севостьянов Илья Сергеевич,

Спасибо Илья.

Первая часть соответствует, строку разкоментил.

Ошибка в консоли:

WebSocket connection to 'ws://192.168.1.5/0/Nui/ViewModule.aspx.ashx' failed: Error during WebSocket handshake: Unexpected response code: 302

WrappedWebSocket @ VM4580:164

init @ all-combined.js:983

channelClosedHandler @ all-combined.js:986

Что можно еще попробовать?

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

Данная ошибка иногда возникает из-за того, что настроена переадрессация через прокси или nginx.

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

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

Добрый день не подскажете как добавить связь с кастомным разделом в миникарточке активности , bpmonline 7.8

Прикрепленные файлы

Нравится

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

Вам в эту тему. первый комментарий. Uid схемы объекта в принципе легко, а вот UId колонки в активности нового кастомного раздела - это надо в метаданных покапаться. Ну ещё если прям совсем красиво, то можно переопределить EntityConnectionLinksResourceUtilities и добавить к новому пункту в связях иконку.

Варфоломеев Данила, Добрый день Данила добавил в таблицу EntityConnection записи

на место ColumnUId подставлял значения uid поля кастомного раздела из метаданных

в SysEntitySchemaUId подставлял значения как uid нового раздела, так и uid раздела активности  при этом в связях не добавилось новое значение, не подскажешь что может быть еще

Варфоломеев Данила,спасибо, разобрался оказывается не тот uid схемы указывал

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

Добрый день.

Кейс следующий - у пользователя должен быть доступ к чтению всех контрагентов (для дедубликации при обработке лида), но при этом не хотелось бы давать ему доступ ко всем записям в реестре, а тем более к их фильтрации. Вижу 2 возможных решения, хотелось бы с вами проконсультироваться:



1) Вшить в раздел Контрагенты фильтр или группу, которую нельзя снять. Идельно - дать пользователю возможность выбирать 1 из групп, но запретить любую прочую фильтрацию, или доступ к реестру без группы.

2) Сделать зеркальный раздел, который будет с иными правами доступа. Контрагенты будут доступны для чтения всем и будут использоваться для дедубликации, но не будет доступен в виде реестра пользователям. Контрагент Зеркало будет с ограниченными правами доступа и доступен в виде реестра. Данный вариант выглядит значительно сложнее в дальнейшем администрировании. 

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

Нравится

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

Данил. Вам стоит смотреть в сторону замещения метода initQueryFilters в разделе. Он будет фильтровать записи при загрузке раздела и физически снять его пользователи не смогут.

В лиде делать выбор не из объекта Контрагенты, а из объекта, построенного на VIEW (заодно и покажете только те поля, которые хотите показать).

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