Приветы, помогите как написать запрос на esq или select

SELECT TOP 1000 aa.[Id]

      ,aa.[AddressTypeId]

      ,aa.[Address]

      ,aa.[AccountId]

      ,aa.[SxSubwayStationId]

  FROM [BetaPressBPM].[dbo].[AccountAddress] aa, [BetaPressBPM].[dbo].[Account] a

  aa.AccountId = a.Id and a.Id = 'AcountId_Value' 

  and aa.AddressTypeId='FB7A3F6A-F36B-1410-6F81-1C6F65E50343'

 

Нравится

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

Тут зависит от того, где будет писаться запрос: на сервере или у клиента. 

Если у клиента: https://academy.terrasoft.ru/documents/technic-sdk/7-11/ispolzovanie-entityschemaquery-dlya-chteniya-dannyh-iz-bd

Если на сервере: https://academy.terrasoft.ru/documents/technic-sdk/7-11/crud-operacii-na-servere

Для TOP 1000 нужно использовать RowCount на сервере или rowCount на клиенте.

Все остальное достаточно подробно и с примерами описано на академии по ссылкам выше.

Золотарев Артем Андреевич,

Спасибо,

Мы нашли вот такую возможность https://prnt.sc/ix4znc

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

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

 

Вот ссылка, где описаны бизнес-правила, создаваемые из кода, а не мастера: https://academy.terrasoft.ua/documents/technic-sdk/7-12/biznes-pravila-i-ih-primenenie Там еще 5 вложенных статей (посмотрите в левой части в содержимом).

Там достаточно подробно описано применение с примерами.

Золотарев Артем Андреевич,

Посмотрел, спасибо. В коде не разобрался как указать что справочник и конкретное значение справочника. И есть вот такая задача (хак нужен):

Дано

 

Есть самописная страница на которую добавлена ссылка из cti panel и вроде как удобно пользователям

 

Найти

Как ее зарегистрировать в бд так, чтобы у нее появился редактор визуальный, бизнес правила, кейсы и тп

Не совсем ясно в чем не разобрался и на какой справочник надо указывать.

У обычной самописной страницы не получится вызвать визуальный редактор. Мастер разделов работает со связкой Объект-Раздел-Страница. 

Золотарев Артем Андреевич,

Вид адреса у нее

http://practice-clone.local/0/Nui/ViewModule.aspx#CardModuleV2/SxCandid…

подменили все как положено, но из меню <вид> -> <открыть дизайнер страницы>  ничего не открывается, хотя вроде как связка соблюдена

Вероятнее всего страница редактирования не привязана к сущности.

Посмотрите подобный вопрос по ссылке: https://community.terrasoft.ua/questions/registracia-stranicy-redaktirovania-obekta

Там в комментариях достаточно хорошо описали порядок действий.

Золотарев Артем Андреевич,

Да, там не соответствие корневых схем... 

https://prnt.sc/j1pqw3 вот как такое кодом сделать в rules? есть пример

Пример бизнес-правил есть тут: https://academy.terrasoft.ru/documents/technic-sdk/7-12/primer-primeneniya-pravila-filtration, а пути к колонкам пишуться как в EntitySchemaQuery

Золотарев Артем Андреевич,

Угу, спасибо

 

Вот у меня есть БП созданное мастером, такое же нужно перенести на самописную страницу

                "BpDicWorkAddr": {

                    "efe924fb-a8b5-4522-870f-ca545fe50156": {

                    "uId": "efe924fb-a8b5-4522-870f-ca545fe50156",

                    "enabled": true,

                    "removed": false,

                    "ruleType": 1,

                    "baseAttributePatch": "AddressType",

                    "comparisonType": 3,

                    "type": 0,

                    "value": "fb7a3f6a-f36b-1410-6f81-1c6f65e50343",

                    "dataValueType": 10

                    }

                }


 

"efe924fb-a8b5-4522-870f-ca545fe50156" - это наверно произвольное имя, а вот дальше какие гуиды не так очевидно???

QArt,

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

Золотарев Артем Андреевич,

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

efe924fb-a8b5-4522-870f-ca545fe50156, например, efe924fb-a8b5-2222-870f-ca545fe50156 и вставить этот код в другую схему самописной страницы и оно заработало :)

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

Всем привет. Может кто сталкивался

Скачал и установил плагин:https://marketplace.terrasoft.ru/app/gamification-bpmonline

В настройках появился раздел "Мастер игр". При клике на нем выдает, что нет прав доступа.

Зашел в "Права доступа к операциям", нашел "Доступ к настройке игр" прописал туда админа. Но ничего не получается.

В правах доступа к обьектам, вообще нет ничего связанного с играми

Нравится

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

Роман, здравствуйте!

По данному вопросу напишите, пожалуйста, на нашу почту технической поддержки: support@terrasoft.ru

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

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

Добрый день!

Подскажите, в чем проблема. Делаю запрос http://x.x.x.x/0/ServiceModel/EntityDataService.svc/AccountCollection?$select=Id,Name,TypeId выводит все как надо, но если делаю фильтрацию по TypeId (http://x.x.x.x/0/ServiceModel/EntityDataService.svc/AccountCollection?$select=Id,Name,TypeId&$filter=TypeId eq guid'cefc45f2-3573-44fb-8602-264c57ae0ea6'), то выдает ошибку Элемент коллекции с именем TypeId не найден

Спасибо!

Нравится

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

Добрый день.

Попробуйте вместо TypeId указать Type. В похожем случае помогло: https://community.terrasoft.ru/questions/ese-odnin-vopros-po-filtram

Антон Малий,

Антон, добрый день!

Спасибо за ссылку!) Задачу удалось решить иначе, к ИД справочного объекта нужно через / обращаться. При таком запросе все отработало: http://x.x.x.x/0/ServiceModel/EntityDataService.svc/AccountCollection?$select=Id,Name,TypeId&$filter=Type/Id eq guid'cefc45f2-3573-44fb-8602-264c57ae0ea6'

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

Скопировал через меню конфигураций в BPM default-ую конфигурацию. После этого сгенерировал для всех и скомпилировал систему. 

Пользовался новой конфигурацией, но обнаружил, что не работает открытия дизайнера страницы  (зависает при открытии) с ошибкой Элемент с ключом "'1088b060-7cfb-4444-b318-048fce072b0f' уже существует.

По профайлеру обнаружил, что запрос дублирует записи(все по 2штуки), первые 2 строки и есть мой идентификатор.

SELECT

    [Lookup].[Id] [Id],

    [Lookup].[CreatedOn] [CreatedOn],

    [Lookup].[CreatedById] [CreatedById],

    [CreatedBy].[Name] [CreatedBy.Name],

    [CreatedBy].[PhotoId] [CreatedBy.PhotoId],

    [Lookup].[ModifiedOn] [ModifiedOn],

    [Lookup].[ModifiedById] [ModifiedById],

    [ModifiedBy].[Name] [ModifiedBy.Name],

    [ModifiedBy].[PhotoId] [ModifiedBy.PhotoId],

    [Lookup].[ProcessListeners] [ProcessListeners],

    [Lookup].[Name] [Name],

    [Lookup].[Description] [Description],

    [Lookup].[SysEntitySchemaUId] [SysEntitySchemaUId],

    [Lookup].[SysPageSchemaUId] [SysPageSchemaUId],

    [Lookup].[SysLookupId] [SysLookupId]

    --,[SysLookup].[Name] [SysLookup.Name]

    --,[SysSchema].[Name] [SysSchema.Name]

FROM

    [dbo].[Lookup] [Lookup] WITH(NOLOCK)

    LEFT OUTER JOIN [dbo].[Contact] [CreatedBy] WITH(NOLOCK) ON ([CreatedBy].[Id] = [Lookup].[CreatedById])

    LEFT OUTER JOIN [dbo].[Contact] [ModifiedBy] WITH(NOLOCK) ON ([ModifiedBy].[Id] = [Lookup].[ModifiedById])

    LEFT OUTER JOIN [dbo].[SysLookup] [SysLookup] WITH(NOLOCK) ON ([SysLookup].[Id] = [Lookup].[SysLookupId])

    LEFT OUTER JOIN [dbo].[SysSchema] [SysSchema] WITH(NOLOCK) ON ([SysSchema].[UId] = [Lookup].[SysEntitySchemaUId])

 

Видимо нет фильтра для конфигурации. Как его установить?

Нравится

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

Евгений, здравствуйте!

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

 

По поводу работы с несколькими конфигурациями написано на Академии:

https://academy.terrasoft.ru/documents/technic-sdk/7-12/osnovnye-pravil…

https://academy.terrasoft.ru/documents/technic-sdk/7-12/organizaciya-sr…

https://academy.terrasoft.ru/documents/technic-sdk/7-12/kak-sozdat-polz….

а где фильтрацию добавлять, если немного доработать систему?

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

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

Добрый день! Подскажите, как задать CSS стили для колонок на детали с реестром?

Нравится

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

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

Для реализации Вашей бизнес-задачи, Вам необходимо применить свои CSS стили к конкретному контролу в схеме (например, OrderDetailV2), на которых Вы планируете изменить стиль.



Примерный алгоритм реализации:

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



- создать свой модуль (пример модуля - CommonCSSV2);

- во вкладке "Пакет разницы" прописать свои CSS (для понимания какие параметры стиля Вам необходимо использовать поможет, например, вкладка Elements в консоли браузера, т.е. отладка приложения). Стоит учесть, что необходимо будет изменять настройки самого контрола, не label;

- в замещающей схеме страницы редактирования раздела, в define прописать пользовательский модуль. Например:

define("DashboardDesignerV2", ["css!DashboardDesignerV2CSS", "CommonCSSV2"]

- в diff кнопки подключить пользовательский CSS класс.

Максим, можете, пожалуйста, уточнить, с какой целью надо изменить стили детали с реестром?

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

Всем привет. Такой вопрос.

В разделе выведено справочное поле (lookup), к примеру ссылка на организацию. Через get я могу получить id-шник выбранной записи (value) и имя записи (displayValue).

Стоит задача прочитать другие поля записи этого справочника через js код, например ИНН организации. Подскажите есть ли какая-то функция, передав в которую guid записи справочка, названия схемы и названия поля она возврвщала значение этого поля. Как это сделать через EntitySchemaQuery я представляю, но может есть вариант попроще?

Нравится

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

через attributes подтягиваете нужные вам колонки. пример

Account: {
   lookupListConfig: {
      columns: ["UsrINN"]
   }
}
 
//где-то в коде
var acc = this.get("Account");
var inn = acc ? acc.UsrINN : null;

 

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

Спасибо, попробую.

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

Всем привет. Помогите разобраться.

Нужно добавить новое представление на секцию.

Переопределил getDefaultDataViews, добавил в него новое представление. Получилось вот так:

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

Кнопка появилась, только вот только нету никаких данных.

Что нужно делать.(В документации не нашел)(Исходник прикрепил)

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

Нравится

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

Ну по хорошему вам прямая дорога в ActivitySectionV2 (посмотреть как там реализован sheduler). 

Чисто на уровне теории: при переключении между разными view перещёлкиваются булевы включатели -> исчезает, допустим, грид, появляется либо новый грид и рефрешится коллекция данных под него, либо какие-то кнопки/списки/детали/др. визуальные элементы + запускаются методы под их наполнение.

В любом случае это куча переключателей и биндов на visible.

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

Пример: добавление нового представления реестра контактов, в котором будут контакты только с типом B2B:

define("ContactSectionV2", ["GlbClientConstants"], function(clientConstants) {
    return {
        entitySchemaName: "Contact",
        details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
        attributes: {},
        methods: {
            getDefaultDataViews: function() {
                var baseDataViews = this.callParent(arguments);
                baseDataViews.GridDataViewB2B = {
                    name: "GridDataViewB2B",
                    caption: this.get("Resources.Strings.B2BButtonCaption"), // Section header 
                    hint: this.get("Resources.Strings.B2BButtonCaption"), // Hint for button
                    icon: this.get("Resources.Images.B2BDataViewIcon") // Image for button
                };
                return baseDataViews;
            },
            loadActiveViewData: function() {
                var activeViewName = this.getActiveViewName();
                if (activeViewName === "GridDataViewB2B") {
                    this.loadGridData();
                }
                this.callParent(arguments);
            },
            loadGridDataView: function(loadData) {
                var gridData = this.getGridData();
                if (gridData &amp;&amp; loadData) {
                    gridData.clear();
                }
                this.setViewFilter(this.get("ActiveViewName"));
                this.reloadGridColumnsConfig(false);
                this.reloadSummaryModule();
                this.callParent(arguments);
            },
            loadGridDataViewB2B: function(loadData) { // "load" + DataView.name
                this.loadGridDataView(loadData);
            },
            setActiveView: function(activeViewName) {
                this.callParent(arguments);
                if (activeViewName === "GridDataViewB2B") {
                    this.set("IsGridDataViewVisible", true);
                }
            },
            setViewFilter: function(activeViewName) { // Add filter for your "DataView"
                var sectionFilters = this.get("SectionFilters");
                if (activeViewName === "GridDataViewB2B") {
                    sectionFilters.add("FilterB2BType", this.Terrasoft.createColumnFilterWithParameter(
                        this.Terrasoft.ComparisonType.EQUAL, "Type", clientConstants.ContactTypes.B2B));
                } else {
                    sectionFilters.removeByKey("FilterB2BType");
                }
            }
        }
    };
});

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

Кто бы сделал такое дополнение на Marketplace :)

Варфоломеев ДанилаОдеяненко Юлия,

Спасибо большое!

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

Коллеги, возникло желание (очень справедливое) при создании контакта из лида не вбивать заново информацию, которую уже занесли в систему.

Соответственно, вопрос: как в мини-карточке (второй вопрос - в нормальной карточке) создания нового контакта заполнить поля имеющейся информацией?

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

 

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

Нравится

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

Владимир,

Вы можете воспользоваться кнопкой "Квалифицировать" (скриншот) для автоматической генерации Контакта и Контрагента на основе регистрационных данных (скриншот). Эта кнопка также доступна из реестра записей раздела (скриншот).

Более подробная информация о квалификации лида находится на сайте академии в статье Квалификация лида.

"(очень справедливое)" - справедливости в этом мире нет. Поэтому придётся ручками на странице лида подписываться вот на это сообщениеНу и возвращать список дефолтных значений.



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

Соротюк Татьяна пишет:

Вы можете воспользоваться кнопкой "Квалифицировать" (скриншот) для автоматической генерации Контакта и Контрагента на основе регистрационных данных (скриншот). Эта кнопка также доступна из реестра записей раздела (скриншот).

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



Будем пробовать предложенный вариант. Спасибо!

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

Добрый вечер!

В bpm файлы с пробелом в названии скачиваются с заменой пробелов на знак "+", в ответе сервера приходит http заголовок типа:

Content-Disposition: attachment; filename="test Param.txt"; filename*=UTF-8''test+Param.txt

 

файл сохраняется с названием "test+Param.txt", что не нравится пользователям. Файлы выдает rest/FileService/GetFile/, подправить его не представляется возможным. Есть вариант решения данной проблемы?

Нравится

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

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

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

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

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

Нравится

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

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

HTML-редактор описан в схеме HTMLCodeEditModalBox. Можно заместить эту схему, и на вкладке "Пакет разницы" прописать свои стили.

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

Примерный алгоритм реализации:

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



- создать свой модуль (пример модуля - CommonCSSV2);

- во вкладке "Пакет разницы" прописать свои CSS (для понимания какие параметры стиля Вам необходимо использовать поможет, например, вкладка Elements в консоли браузера, т.е. отладка приложения). Стоит учесть, что необходимо будет изменять настройки самого контрола, не label;

- в замещающей схеме страницы редактирования раздела, в define прописать пользовательский модуль. Например:

define("DashboardDesignerV2", ["css!DashboardDesignerV2CSS", "CommonCSSV2"]

- в diff подключить пользовательский CSS класс.

Одеяненко Юлия,

Я, наверное, немного неверно высказался. Мне нужно донастроить hmtl-поля, которые используются, например, для ввода примечаний (Terrasoft.ContentType.RICH_TEXT). Например, сменить шрифт по умолчанию на Times New Roman 12.

Получилось сделать высоту с помощью jQuery в onEntityInitialized

var htmlEdit = $("#MyFieldHtmlEdit-html-edit");
htmlEdit.height(200);

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

Бершеда Д. Н.,

действительно, неправильно поняла.

Касательно кастомизаций поля "Примечания":

- пользовательский шрифт будет сбрасываться на дефолтный из-за хардкода в схеме HtmlEditModule;

- высота поля также указана конкретная, в этой же схеме.

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

Одеяненко Юлия,

а возможно создать свой контрол на основе базового html-поля, в котором уже будет всё настроено как надо, и потом поместить его на страницу. Есть примеры подобного?

Бершеда Д. Н.,

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

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