Перейти к основному содержимому

Настройка действий для экранной формы

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

Чтобы настроить действие, применимое к экранной форме:

  1. В проекте выберите файл с расширением mdcontainer, соответствующий экранной форме, для которой вы хотите настроить действия.
  2. На боковой панели нажмите значок UG_settings_icon.png и в разделе Действия нажмите +.

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

  • Имя (обязательный параметр): введите название, которое ассоциируется с выполняемым действием.

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

    • Static: переход между экранными формами проекта без выполнения запроса к данным. Укажите следующие параметры для этого типа действия:

      • Откуда: выберите имя файла экранной формы (в текущем проекте), от которой нужно перейти к другой экранной форме.
      • Куда: выберите имя файла экранной формы (в текущем проекте), к которой нужно перейти из указанной в параметре Откуда экранной форме.
    • Dataset: REST-запрос данных с помощью сервисов Платформы. Укажите следующие параметры для этого типа действия:

      • Сервис (обязательный параметр): из раскрывающегося списка выберите имя сервиса Платформы, с помощью которого вы хотите получить, добавить, удалить или обновить данные в базе данных разрабатываемого приложения.
      • Метод (обязательный параметр): из раскрывающегося списка выберите имя метода, который вы хотите вызвать. После выбора метода отображается входной и выходной контракт данных.
    • GraphQL: GraphQL-запрос данных. Укажите следующие параметры для этого типа действия:

      • Сервис (обязательный параметр): из раскрывающегося списка выберите сервис storagedata, с помощью которого вы можете получить, добавить, удалить, обновить данные, и/или подписаться на изменение данных в базе данных разрабатываемого приложения.
      • Метод (обязательный параметр): из раскрывающегося списка выберите единственный метод graphql.
      • GraphQL-подписка (необязательный параметр): установите флажок, если вы хотите подписаться на изменение данных класса, связанных с настраиваемым действием.

    Нажмите кнопку Конструктор GraphQL и в окне конструктора запроса, которое отображается, сгенерируйте запрос или сделайте следующее:

    1. В области Запрос введите текст запроса на языке GraphQL.

    В области Переменные вы можете описать переменные, используемые в запросе.

    По нажатию кнопки Схема GraphQL вы можете просмотреть схему данных текущего проекта и системного проекта, а также методы для работы с этими данными. DevTools генерирует схему данных на основе классов, описанных в проекте в файле DataModel.mdmodel, и классов системного проекта. 2. Нажмите Выполнить запрос и в области Результат просмотрите результат выполнения запроса на сервере.

    Если вы сконструировали запрос неверно, в области Результат отображается ошибка. 3. Закройте окно конструктора запроса.

    Если вы сохранили GraphQL-запрос с ошибкой, в окне Действие отображается сообщение об ошибочном GraphQL-запросе.

    Если вы не написали и не сгенерировали GraphQL-запрос, в окне Действие отображается сообщение о том, что GraphQL-запрос не задан.

    Примеры GraphQL-запросов
    Запрос для получения информации о файлах
      query getFiles {
    projectsanddocs_file
    {items{name, token, size}}
    }
    Запрос для постраничного получения информации о файлах
      query getFiles($skip: Int, $take: Int) {
    projectsanddocs_file(skip: $skip, take: $take)
    {items{name, token, size, guid:Id}}
    }
    Запрос для получения информации о файле с заданным идентификатором
      query getDocsById($targetId: UUID) {
    projectsanddocs_file(where: {Id: {eq:$targetId}})
    {items{name, size, token} }
    }
    Запрос для изменения информации о файле с заданным идентификатором
      mutation updateFileById($targetId: UUID, $newName:String, $newToken: UUID, $newSize: Int) {
    update_projectsanddocs_file(
    where: {Id: {eq:$targetId}},
    projectsanddocs_file: {
    name: $newName,
    size: $newSize,
    token: $newToken,
    }
    )
    {
    countObjectsModified
    }
    }
    Запрос для удаления информации о файле с заданным идентификатором
      mutation deleteDocSetById($targetId: UUID) {
    delete_projectsanddocs_file (where: {Id: {eq:$targetId}})
    {
    countObjectsModified
    }
    }
  1. В окне Действие нажмите Сохранить.

    Окно Действие закрывается.

Описание созданного действия добавляется в файл Actions.mdschema.

Созданное действие отображается в разделе Действия Редактора Форм. Слева от имени действия, в котором GraphQL-запрос написан с ошибкой или GraphQL-запрос не задан, отображается значок индикации ошибки.

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

Связанные статьи

Генерация GraphQL-запросов

Конструирование GraphQL-запросов