Настройка действий для экранной формы
При разработке интерфейса приложения вы определяете, какие действия должны быть применимы к каждой экранной форме: запрос данных и/или переход к другой экранной форме. В дальнейшем описанные действия вы сможете использовать при описании источников данных для компонентов экранных форм, например, при описании обработчиков событий компонентов.
Чтобы настроить действие, применимое к экранной форме:
-
В проекте выберите файл с расширением
mdcontainer
, соответствующий экранной форме, для которой вы хотите настроить действия. -
На боковой панели нажмите значок
и в разделе Действия нажмите +.
В разделе Действия в отдельных подразделах отображаются действия, применимые к выбранной экранной форме, а также применимые к другим экранным формам разрабатываемого проекта.
-
В окне Действие, которое отображается, укажите следующие параметры:
-
Имя (обязательный параметр): введите название, которое ассоциируется с выполняемым действием.
-
Тип (обязательный параметр): из раскрывающегося списка выберите один из следующих типов действия в зависимости от назначения:
-
Static: переход между экранными формами проекта без выполнения запроса к данным. Укажите следующие параметры для этого типа действия:
- Откуда: выберите имя файла экранной формы (в текущем проекте), от которой нужно перейти к другой экранной форме.
- Куда: выберите имя файла экранной формы (в текущем проекте), к которой нужно перейти из указанной в параметре Откуда экранной форме.
-
Dataset: REST-запрос данных с помощью сервисов Платформы. Укажите следующие параметры для этого типа действия:
- Сервис (обязательный параметр): из раскрывающегося списка выберите имя сервиса Платформы, с помощью которого вы хотите получить, добавить, удалить или обновить данные в базе данных разрабатываемого приложения.
- Метод (обязательный параметр): из раскрывающегося списка выберите имя метода, который вы хотите вызвать. После выбора метода отображается входной и выходной контракт данных.
-
GraphQL: GraphQL-запрос данных. Укажите следующие параметры для этого типа действия:
- Сервис (обязательный параметр): из раскрывающегося списка выберите сервис storagedata, с помощью которого вы можете получить, добавить, удалить, обновить данные, и/или подписаться на изменение данных в базе данных разрабатываемого приложения.
- Метод (обязательный параметр): из раскрывающегося списка выберите единственный метод graphql.
- GraphQL-подписка (необязательный параметр): установите флажок, если вы хотите подписаться на изменение данных класса, связанных с настраиваемым действием.
Нажмите кнопку Конструктор GraphQL.
примечаниеВы можете конструировать и генерировать GraphQL-запросы, только после публикации модели данных проекта.
В окне конструктора запроса, которое отображается, сгенерируйте запрос или сделайте следующее:
-
В области Запрос введите текст запроса на языке GraphQL.
В области Переменные вы можете описать переменные, используемые в запросе.
По нажатию кнопки Схема GraphQL вы можете просмотреть GraphQL-схему.
-
Нажмите Выполнить запрос и в области Результат просмотрите результат выполнения запроса на сервере.
Если вы сконструировали запрос неверно, в области Результат отображается ошибка.
-
Закройте окно конструктора запроса.
Если вы сохранили 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
}
}
-
-
-
В окне Действие нажмите Сохранить.
Окно Действие закрывается.
Описание созданного действия добавляется в файл Actions.mdschema
.
Созданное действие отображается в разделе Действия Редактора Форм. Слева от имени действия, в котором GraphQL-запрос написан с ошибкой или GraphQL-запрос не задан, отображается значок индикации ошибки.
Теперь вы можете использовать настроенное действие при настройке источников данных для компонентов экранной формы. Вы также можете протестировать визуальное представление экранной формы с автогенерируемыми данными.