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

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

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

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

  1. В проекте выберите файл с расширением mdcontainer, соответствующий экранной форме, для которой вы хотите настроить действия.

  2. На боковой панели нажмите значок UG_settings_icon.png и в разделе Действия нажмите +.

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

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

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

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

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

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

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

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

        Нажмите кнопку Конструктор GraphQL.

        примечание

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

        В окне конструктора запроса, которое отображается, сгенерируйте запрос или сделайте следующее:

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

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

          По нажатию кнопки Схема GraphQL вы можете просмотреть GraphQL-схему.

        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
        }
        }
  4. В окне Действие нажмите Сохранить.

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

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

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

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

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

GraphQL-схема

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

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