Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Также в проект требуется добавить T4-шаблон QPCodeFirstGenV6.tt.

Примечание: файл шаблона содержится в пакете QP8.EntityFramework6.

Рисунок 18. Файл с описанием структуры данных в директории QP.

Рисунок 19. Используемые EF файлы в решении в Visual Studio.

Подключение файла с описанием структуры данных

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

Рисунок 20. Пример содержимого файла настроек.

Способы сопоставления данных

При использовании ЕF для работы с данными используются модели. В БД, содержащей данные QP, для запросов к таблицам с данными используются идентификаторы содержащих данные контентов. Когда в EF требуется получить список определённых объектов из QP, возникает задача по имени типа модели определить идентификатор контента. Это нужно, чтобы узнать название таблицы БД, к которой необходимо выполнить запрос для получения данных. Задача решается за счёт использования сопоставления имён типов модели и идентификаторов контентов. По этим данным EF формирует запросы к БД.

Способ использования сопоставления определяется в методе GetDataContext. В результате возвращается DataContext.

GetDataContext(ContentAccess access, Mapping mapping)

Существуют следующие способы сопоставления:

Название

Описание

Static Mapping

DataContext статический, создаётся на этапе автоматической генерации кода в проекте.

В методе использовать CreateWithStaticMapping(access).

Применяется по умолчанию.

Database Mapping

DataContext динамический.

В методе использовать CreateWithDatabaseMapping(access, DefaultSiteName), где DefaultSiteName – имя сайта, содержащего необходимые данные.

File Mapping

DataContext динамический.

В методе использовать CreateWithFileMapping(access, GetPath(DefaultMappingResult)), где DefaultMappingResult – путь до файла с описанием структуры данных из QP.


Static Mapping

Для способа Static Mapping применяется сопоставление, автоматически сгенерированное на основании исходных данных, жёстко заданное в коде проекта.

НЕ нашли? Не то? Что вы ищете?

Способ подходит для случаев, когда Система на постоянной основе работает с одной БД в качестве источника данных.

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

Database Mapping

Для способа Database Mapping данные по идентификаторам при создании DataContext запрашиваются из БД, указанной в Connection String проекта. Получение данных осуществляется в среде выполнения. В случае изменения БД достаточно указать данные по новой БД в Connection String.

File Mapping

Для способа File Mapping данные по идентификаторам при создании DataContext запрашиваются из файла со структурой данных из QP, указанного в CreateWithFileMapping(access, GetPath(DefaultMappingResult)) в качестве значения DefaultMappingResult. Получение данных осуществляется в среде выполнения. В случае изменения БД достаточно указать путь до файла со структурой данных из QP, работающего с новой БД.


JS-интеграция для веб-приложений пользовательских действий

Если стороннее веб-приложение запущено через пользовательское действие внутри бекэнда, то есть возможность взаимодействовать с бекэндом через JavaScript, даже когда веб-приложение и бекэнд работают на различных доменах. Двусторонний обмен данными реализуется библиотекой PMRPC c помощью механизма HTML5 postMessage.

Для получения возможности интеграции требуется установить NuGet-пакет QP8BackendApi. Interaction (см. Установка пакетов NuGet для QP).

Для интеграции стороннего веб-приложения с бекэндом необходимо подключение следующих скриптов:

<script src="~/Scripts/pmrpc. js"></script>

<script src="~/Scripts/Quantumart/CustomAction/QP8BackendApi. Interaction. js"></script>

Примечание: пути указаны относительно директории установки продукта.

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

В классе Quantumart. QP8.Interaction поддерживается ряд интеграционных методов, определённых, как статические.

Метод checkHost

Сигнатура:

function (hostUID, destination, callback)

Проверка, что веб-приложение выполняется внутри бекэнда.

Параметры:

Название

       Описание        

hostUID

Уникальный идентификатор текущей вкладки ГПИ.

Генерируется бекэндом, передаётся в пользовательское действие в виде одноимённого параметра QueryString.

destination

Окно, содержащее основное приложение бекэнда.

Обычно нужно передавать window. parent.

callback

Функция, в которую возвращается результат проверки.

Определяет параметр args, в котором возвращаются:

    success – результат проверки (Boolean), hostVersion – версия бекэнда в случае успешной проверки (String), error – текст ошибки в случае неуспешной проверки (String).
Метод executeBackendAction

Сигнатура:

function (executeOptions, hostUID, destination)

Выполнение действия в бекэнде.

Поддерживаются как интерфейсные, так и неинтерфейсные действия. Также есть возможность вызова пользовательских и многошаговых действий.

Параметры:

Название

Описание

executeOptions

Экземпляр ExecuteActionOptions (или объект с аналогичной структурой).

hostUID

Уникальный идентификатор текущей вкладки ГПИ.

Генерируется бекэндом, передаётся в пользовательское действие в виде одноимённого параметра QueryString.

destination

Окно, содержащее основное приложение бекэнда.

Обычно нужно передавать window. parent.

Класс ExecuteActionOptions

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

Возможности:

    определить, как будет вызываться действие:
      в текущей вкладке, в новой вкладке, в окне бекэнда;
    вызвать форму создания новой сущности с предопределёнными значениями; Вызвать форму изменения сущности; Скрыть часть полей при создании/изменении сущности; Скрыть определённые кнопки в ГПИ бекэнда; Вызвать другое пользовательское действие, связанное с текущим веб-приложением, и передать туда дополнительные данные.

Структура:

Название

Тип

Описание

actionCode

String

Код вызываемого действия.

entityTypeCode

String

Код типа сущности, к которому относится вызываемое действие.

parentEntityId

Number

Идентификатор родительской сущности.

entityId

Number

Идентификатор сущности.

actionUID

String

Уникальный идентификатор действия.

Задаётся веб-приложением.

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

callerCallback

Function

Ссылка на метод-обработчик в веб-приложении.

Обычно определяется через BackendEventObserver.

changeCurrentTab

Boolean

Указатель, выполнять ли интерфейсное действие со сменой содержимого текущей вкладки ГПИ бекэнда.

Значение по умолчанию – false (или открывать новую вкладку).

isWindow

Boolean

Указатель, выполнять ли интерфейсное действие в окне бекэнда.

Значение по умолчанию – false (открывать во вкладке).

options

Экземпляр ArticleFormState (или объект с аналогичной структурой):

    initFieldValues – значения для инициализации полей.

Тип – Array.

Элементом является экземпляр ArticleFormState. InitFieldValue, (или объект с аналогичной структурой):

      fieldName – имя поля; value – значение (зависит от типа).
    disabledFields – идентификаторы полей, которые должны быть в состоянии disable (массив имён полей); hideFields – идентификаторы полей, которые должны быть скрыты (массив имён полей); disabledActionCodes – массив Action Code, для которых кнопки в ГПИ бекэнда должны быть скрыты. additionalParams – дополнительные параметры для выполнения пользовательского действия, которые должны быть в него переданы через QueryString.
Метод closeBackendHost

Сигнатура:

function (actionUID, hostUID, destination)

Закрытие открытого ранее (с помощью executeBackendAction) интерфейсного действия.

Параметры:

Название

Описание

hostUID

Уникальный идентификатор текущей вкладки ГПИ.

Генерируется бекэндом, передаётся в пользовательское действие в виде одноимённого параметра QueryString.

actionUID

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

Тип значения – String.

destination

Окно, содержащее основное приложение бекэнда.

Обычно нужно передавать window. parent.

Метод openSelectWindow

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36