Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Мария и Киана готовы объединить приложение с веб-API. Однако, прежде чем продолжить, они решают проконсультироваться с Прити, менеджером по ИТ-операциям.
Общие сведения о требованиях к управлению ИТ-операциями для веб-API
Прити обеспокоена тем, что приложение и веб-API должны быть безопасными, поскольку они обеспечивают доступ к конфиденциальным данным, хранящимся в различных базах данных. Прити хочет быть уверена, что аутентификация и авторизация будут включены, чтобы предотвратить несанкционированный доступ к информации. Прити также знает, что компания быстро расширяется, и объем данных, используемых для управления клиентами, встречами, запчастями и базой знаний, вероятно, в ближайшем будущем будет экспоненциально увеличиваться. Следовательно, решение должно быть масштабируемым.
Киана объясняет Прити, что веб-API в настоящее время реализован с помощью службы приложений Azure. Эта служба поддерживает ряд поставщиков аутентификации, которые Прити может настроить с помощью портала Azure. Прити особенно заинтересована в Microsoft Entra ID, потому что компания VanArsdel в ближайшем будущем планирует развернуть эту форму аутентификации во многих других своих корпоративных системах.
Служба приложений также обеспечивает горизонтальную и вертикальную масштабируемость. При необходимости Прити может масштабировать ресурсы, доступные веб-API, обновив план службы приложений для веб-приложения:
Прити также может организовать масштабирование системы, настроив автомасштабирование. Служба приложений позволяет диспетчеру операций определять правила автомасштабирования, которые определяют условия, при которых система должна масштабироваться для большего количества экземпляров при увеличении нагрузки или снова уменьшить число экземпляров при снижении спроса. Прити также может настроить упреждающее автомасштабирование по расписанию:
Ключевой частью роли менеджера ИТ-операций является наблюдение за тем, как могут развиваться системы, и обеспечение того, чтобы базовые структуры поддержки справились с будущим расширением и изменениями. Прити знает, что веб-API, разработанный Кианой, может быть расширен и повторно использован другими системами компании VanArsdel в будущем. Прити должна иметь возможность управлять и контролировать то, как разработчики запрашивают использование веб-API, защищать его как ценный ресурс и контролировать его использование. Поэтому Прити решает защитить веб-API, поместив его за службой управления API Azure.
Управление API обеспечивает дополнительный уровень безопасности веб-API, а также позволяет осуществлять подробный мониторинг и контроль над тем, какие клиенты могут получить доступ к каким операциям. Используя управление API, Прити может управлять использованием ресурсов и регулировать производительность клиентов с низким приоритетом, чтобы обеспечить более быстрое обслуживание критически важных приложений с более высоким приоритетом.
Для получения информации об услугах, которые предоставляет управление API, перейдите в раздел Сведения об управлении API.
Создание службы управления API
Прити создала службу управления API через портал Azure, выполнив следующие действия:
Войдите в портал Azure и на страницу Главная, выберите Создать ресурс.
В текстовом поле Найти на MarketPlace введите Управление API, затем выберите Ввод.
На странице Управление API выберите Создать.
На странице Создать управление API введите следующие значения, затем выберите Обзор + создание:
- Подписка: выберите свою подписку
- Группа ресурсов: webapi_rg (это та же группа ресурсов, которую вы создали для службы приложений)
- Регион: выберите ближайший к вам регион
- Имя ресурса: введите уникальное имя для службы
- Название организации: VanArsdel
- Адрес электронной почты администратора: itadmin@vanarsdel.com
- Ценовая категория: Разработчик (без SLA)
Заметка
Не используйте ценовую категорию Разработчик для производственной системы.
На странице проверки выберите Создать и дождитесь создания службы управления API.
Заметка
Подготовка службы управления API может занять 30 минут или больше; проявите терпение.
Публикация веб-API через управление API
После создания службы управления API Прити опубликовала веб-API, чтобы сделать его доступным для других служб и приложений, выполнив следующие действия:
На портале Azure перейдите в службу управления API.
На странице Служба управления API на левой панели в разделе API-интерфейсы выберите API-интерфейсы:
В области Добавить новый API выберите OpenAPI:
В диалоговом окне Создать из спецификации OpenAPI введите следующие значения, а затем нажмите кнопку Создать:
- Спецификация OpenAPI: https://<webapp name>.azurewebsites.net/swagger/v1/swagger.json, где <webapp name> является именем службы приложений, в которой размещен ваш веб-API
- Отображаемое имя: API инженера выездного обслуживания
- Имя: field-engineer-api
- Суффикс URL-адреса API: оставьте пустым
- Базовый URL-адрес: используйте URL-адрес по умолчанию
Когда API инженера выездного обслуживания был создан, выберите вкладку Параметры для API, установите для параметра URL-адрес веб-службы значение https://<webapp name>.azurewebsites.net, затем выберите Сохранить:
На вкладке Тест выберите GET api/Appointments URI, затем выберите Отправить:
Убедитесь, что запрос выполнен успешно (код возврата HTTP: 200 ОК), и что он возвращает результат, содержащий список встреч в теле ответа:
Подключение к управлению API из приложения
Киана и Мария теперь могут работать вместе, чтобы подключить приложение, созданное с помощью Power Apps, к веб-API через службу управления API.
Первая задача — создать настраиваемый соединитель, который будет использоваться приложением для взаимодействия с управлением API. Это включает экспорт API в среду Power Apps, используемую для создания приложения, что Киана делает следующим образом:
На портале Azure перейдите на страницу службы управления API, созданной Прити.
На левой панели в разделе API-интерфейсы выберите API-интерфейсы.
Нажмите кнопку с многоточием для API инженера выездного обслуживания, а затем выберите Экспорт.
На панели Экспорт API выберите Power Apps и Power Automate:
На панели Экспорт API в PowerApps выберите среду Power Apps, в которой вы создали прототип приложения (Мария на следующем изображении), затем выберите Экспорт.
После экспорта API выберите API инженера выездного обслуживания. На странице Параметры прокрутите вниз до раздела Подписки, очистите Требуется подписка, затем выберите Сохранить.
В качестве источников данных в прототипе приложения использовались книги Excel. Теперь, когда доступен настраиваемый соединитель для веб-API, Мария выполняет следующие шаги, чтобы добавить соединитель в приложение:
Выполните вход в Power Apps.
В левой области разверните Данные и выберите Настраиваемые соединители. Должен быть указан настраиваемый соединитель field-engineer-api. Выберите Создать подключение.
В диалоговом окне field-engineer-api выберите Создать.
После создания подключения убедитесь, что оно отображается в списке доступных подключений.
На левой панели выберите Приложения, выберите VanArsdelApp, затем выберите Изменить.
На левой панели выберите вкладку Данные. Выберите Добавить данные, выберите кнопку с многоточием для Соединители, затем выберите Обновить.
В списке соединителей выберите соединитель field-engineer-api.
В диалоговом окне field-engineer-api выберите соединитель field-engineer-api.
На панели Данные убедитесь, что указан соединитель FieldEngineerApi.
Обновление приложения для использования соединителя: управление запасами для выездного обслуживания
Теперь, когда подключение было добавлено в приложение, Мария может изменить экраны, чтобы использовать его для замены книг Excel. Это включает в себя методическую проработку каждого экрана и изменение источника данных. Никаких других изменений не требуется. Мария начинает с экранов BrowseParts и PartDetails, как показано ниже:
На экране Главный приложения выберите кнопку Запчасти. Задайте для свойства действия OnSelect следующую формулу.
ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()); Navigate(BrowseParts, ScreenTransition.Fade)
Функция ClearCollect создает новую коллекцию с именем partsCollection и заполняет ее данными, полученными в результате вызова операции getboilerparts в подключении FieldEngineerAPI.
Заметка
Хорошая практика заключается в извлечении данных в коллекцию и ссылке на эту коллекцию с любых экранов, которым нужна информация. Такой подход может избавить разные экраны от многократного выполнения одного и того же запроса и получения одних и тех же данных.
Выберите F5 для предварительного просмотра приложения.
На экране Главный выберите Запчасти. Это действие создаст коллекцию partsCollection. Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
Заметка
Цель этого шага — позволить вам видеть данные, пока вы редактируете экран BrowseParts в следующих шагах.
Выберите элемент управления BrowseGallery1 на экране BrowseParts. В формуле для свойства Элементы замените ссылку на источник данных [@Table1] на partsCollection.
Это изменение приведет к некоторым ошибкам. Это связано с тем, что в именах полей в исходной книге Excel использовались заглавные буквы (Name, CategoryID и Overview), тогда как в именах свойств, возвращаемых в теле ответа веб-API, используются строчные буквы. Измените эти ссылки, чтобы использовать строчные буквы. Формула должна выглядеть следующим образом.
SortByColumns(Search(FieldEngineerApi.getapiboilerparts(), TextSearchBox1.Text, "name", "categoryId", "overview"), "name", If(SortDescending1, Descending, Ascending))
На панели Представление в виде дерева выберите элемент управления IconRefresh1. Измените действие OnSelect на формулу ClearCollect(partsCollection, FieldEngineerAPI.getapiboilerparts()).
Заметка
Исходная формула для этого действия вызывает функцию Refresh для повторного заполнения данных с помощью подключения к исходному источнику данных. Вы не можете использовать функцию Refresh с подключением, которое запускает функцию для извлечение данных, поэтому она не будет работать с FieldEngineerApi.getapiboilerparts(). Решение на этом этапе повторно заполняет коллекцию partsCollection новейшими данными.
На панели Представление в виде дерева разверните элемент управления BrowseGallery1 и выберите элемент управления Body1. Измените свойство Текст на ThisItem.overview.
На панели Представление в виде дерева выберите элемент управления Subtitle1. Измените свойство Текст на ThisItem.categoryId.
На панели Представление в виде дерева выберите элемент управления Title. Измените свойство Текст на ThisItem.name.
На панели Представление в виде дерева выберите элемент управления DetailForm1 на экране PartDetails. Измените свойство DataSource с [@Table1] на partsCollection.
На панели Представление в виде дерева выберите элемент управления Name_DataCard1 в разделе DetailForm1. Измените свойство По умолчанию на ThisItem.name.
Измените свойство По умолчанию элемента управления CategoryID_DataCard1 на ThisItem.categoryId.
Измените свойство По умолчанию элемента управления Overview_DataCard1 на ThisItem.overview.
Измените свойство По умолчанию элемента управления Price_DataCard1 на ThisItem.price.
Измените свойство По умолчанию элемента управления NumberInStock_DataCard1 на ThisItem.numberInStock.
Измените свойство По умолчанию элемента управления Image_DataCard1 на ThisItem.imageUrl.
На левой панели на вкладке Данные щелкните правой кнопкой мыши подключение данных Table1, затем выберите Удалить, чтобы удалить его из приложения. Это подключение больше не требуется.
Сохраните приложение.
Заметка
Вы можете быстро сохранить приложение, не используя меню Файл, выбрав Ctrl+S.
Выберите F5 для предварительного просмотра приложения. Экраны Обзор запчастей и Сведения о запасных частях должны работать точно так же, как и раньше, за исключением того, что на этот раз они получают данные из базы данных SQL Azure InventoryDB через веб-API, а не из локального файла Excel.
Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
Обновление приложения для использования соединителя: планирование и заметки для выездного обслуживания
Мария продолжает с экранами BrowseAppointments, AppointmentDetails и EditAppointment. Данные, представленные на этих экранах, в настоящее время происходят из таблицы Встречи в другой книге Excel.
На экране Главный приложения установите для действия OnVisible следующую формулу.
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime))
Эта формула извлекает данные о встречах в коллекцию appointmentsCollection. Встречи фильтруются, чтобы получить посещения, запланированные на текущую дату или после нее.
Выберите элемент управления "подпись", который отображает время следующей встречи. Установите для свойства Текст значение Text(First(appointmentsCollection).startDateTime, ShortTime24).
Выберите элемент управления "подпись", который отображает дату для следующей встречи. Установите для свойства Текст значение Text(First(appointmentsCollection).startDateTime, LongDate).
Выберите элемент управления меткой, который отображает имя клиента для следующей встречи. Установите для свойства Текст значение First(appointmentsCollection).customer.name.
Выберите F5 для предварительного просмотра приложения. На экране Главный выберите Встречи. Это действие создаст коллекцию appointmentsCollection. Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
На панели Представление в виде дерева выберите элемент управления BrowseAppointmentsGallery на экране BrowseAppointments. Измените формулу в свойстве Элементы на следующую формулу.
Sort(Filter(appointmentsCollection, StartsWith(customer.name, TextSearchBox1\_1.Text)), startDateTime)
Эта формула фильтрует данные, отображаемые на экране, по имени клиента, позволяя пользователю ввести имя клиента. Встречи отображаются в порядке даты и времени.
На панели Представление в виде дерева разверните элемент управления BrowseAppointmentsGallery и выберите элемент управления Title1_1. Измените свойство Текст следующим образом.
Text(ThisItem.startDateTime, LongDate)
Эта формула отображает часть даты в поле startDateTime для встречи.
На панели Представление в виде дерева разверните элемент управления BrowseAppointmentsGallery и выберите элемент управления Subtitle1_1. Измените свойство Текст следующим образом.
Text(ThisItem.startDateTime, ShortTime24)
Эта формула отображает элемент времени поля startDateTime.
На панели Представление в виде дерева разверните элемент управления BrowseAppointmentsGallery и выберите элемент управления Body1_1. Измените свойство Текст следующим образом.
ThisItem.customer.name
На панели Представление в виде дерева выберите элемент управления IconRefresh1_1 на экране BrowseAppointments. Задайте для действия OnSelect следующую формулу.
ClearCollect(appointmentsCollection, Sort(Filter(FieldEngineerAPI.getapiappointments(), DateDiff(Today(), startDateTime) >= 0), startDateTime));
На панели Представление в виде дерева разверните экран AppointmentDetails и выберите элемент управления DetailForm1_1. Задайте для свойства DataSource значение appointmentsCollection.
На панели Представление в виде дерева выберите элемент управления IconEdit1. Измените формулу в свойстве DisplayMode для проверки коллекции appoinmentsCollection.
If(DataSourceInfo(**appointmentsCollection**, DataSourceInfo.EditPermission), DisplayMode.Edit, DisplayMode.Disabled)
На панели Представление в виде дерева разверните экран DetailForm1_1 и выберите элемент управления Customer Name_DataCard1. Измените свойство По умолчанию на ThisItem.customer.name.
Измените свойства По умолчанию остальных карточек данных следующим образом:
- Customer Address_DataCard1: ThisItem.customer.address
- Contact Number_DataCard1: ThisItem.customer.contactNumber
- Problem Details_DataCard1: ThisItem.problemDetails
- Status_DataCard1: ThisItem.appointmentStatus.statusName
- Notes_DataCard1: ThisItem.notes
- Image_DataCard1_1: ThisItem.imageUrl
На панели Представление в виде дерева разверните экран EditAppointment и выберите элемент управления EditForm1. Задайте для свойства DataSource значение appointmentsCollection.
На панели Представление в виде дерева разверните элемент управления EditForm1 и выберите элемент управления Customer Name_DataCard3. Измените свойство По умолчанию на ThisItem.customer.name.
Измените свойства По умолчанию остальных карточек данных следующим образом:
- Contact Number_DataCard2: ThisItem.customer.contactNumber; кроме того, измените значение свойства MaxLength на 20
- Problem Details_DataCard2: ThisItem.problemDetails
- Status_DataCard5: ThisItem.appointmentStatus.statusName
- Notes_DataCard3: ThisItem.notes
- Image_DataCard2: ThisItem.imageUrl
На панели Представление в виде дерева разверните элемент управления Problem Details_Card2. Переименуйте поле DataCardValueX (X будет числом) под этим элементом управления в ProblemDetailsValue. Повторите этот процесс для элементов управления DataCardValueX в следующих карточках данных:
- Status_DataCard5: StatusValue
- Notes_DataCard3: NotesValue
Заметка
Элемент управления изображением будет рассмотрен в следующей главе.
Выберите ProblemDetailsValue и установите для свойства MaxLength значение 100.
На панели Представление в виде дерева выберите элемент управления IconAccept1 на экране EditAppointment. Задайте для свойства действия OnSelect следующую формулу.
FieldEngineerAPI.putapiappointmentsid(BrowseAppointmentsGallery.Selected.id, {problemDetails:ProblemDetailsValue.Text, statusName:StatusValue.Selected.Value, notes:NotesValue.Text, imageUrl:""}); Remove(appointmentsCollection, First(Filter(appointmentsCollection, id=BrowseAppointmentsGallery.Selected.id))); Set(appointmentRec, FieldEngineerAPI.getapiappointmentsid(BrowseAppointmentsGallery.Selected.id)); Collect(appointmentsCollection, appointmentRec); Navigate(AppointmentDetails, ScreenTransition.None);
Эта формула вызывает операцию PUT для контроллера "Встречи" в веб-API. Она передает идентификатор текущей встречи в качестве первого параметра, за которым следуют сведения, которые пользователь мог изменить на экране. Сведения передаются в виде объекта JSON. Операторы Remove, Set и Collect обновляют коллекцию appointmentsCollection с использованием данных, сохраненных в базе данных.
Заметка
Не используйте функцию ClearCollect для удаления и обновления всей коллекции в подобных ситуациях, потому что это было бы расточительно, если бы, например, изменилась только одна запись.
На панели Представление в виде дерева выберите элемент управления IconAccept1 на экране EditAppointment. Задайте для свойства действия OnSelect следующее.
ResetForm(EditForm1); Navigate(AppointmentDetails, ScreenTransition.None);
На левой панели на вкладке Данные щелкните правой кнопкой мыши подключение данных Встречи, затем выберите Удалить, чтобы удалить его из приложения.
Сохраните приложение.
Выберите F5 для предварительного просмотра приложения. С экрана Главный перейдите на экран Встречи, выберите и отредактируйте встречу, затем сохраните изменения. Убедитесь, что встреча была обновлена.
Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
Создание службы когнитивного поиска Azure для базы знаний для выездного обслуживания
Экран базы знаний в приложении в настоящее время не привязан ни к какому источнику данных. Веб-API включает операции для запроса и обновления таблиц Советы, BoilerParts и Инженеры в базе данных KnowledgeDB. Однако экран Запрос в приложении предназначен для поддержки поиска по всем этим таблицам. Объем данных в этих таблицах, вероятно, быстро увеличится, поэтому Мария, Киана и Прити решают развернуть когнитивный поиск Azure для поддержки этой функции. Приложение может отправлять запросы и получать результаты из когнитивного поиска Azure через настраиваемый соединитель.
Когнитивный поиск Azure работает лучше всего, если данные для поиска содержатся в одной сущности базы данных. Киана создает представление в базе данных KnowledgeDB, которое представляет собой единое представление таблиц Советы, BoilerParts и Инженеры, а именно:
На портале Azure перейдите на страницу База данных SQL KnowledgeDB.
На левой панели выберите Редактор запросов и войдите в базу данных как sqladmin, используя пароль Pa55w.rd.
В окне запроса введите следующую инструкцию, затем выберите Выполнить.
CREATE OR ALTER VIEW [dbo].[Knowledge] AS SELECT T.Id, T.Subject, T.Body, B.Name, B.Overview FROM [dbo].[Tips] T INNER JOIN [dbo].[BoilerParts] B ON B.Id=T.KnowledgeBaseBoilerPartId
Убедитесь, что представление Knowledge было успешно создано.
В левой области выберите Строки подключения. Запишите строку подключения ADO.NET; она вам понадобится при настройке когнитивного поиска Azure.
Работая с Кианой, Прити настраивает новый экземпляр службы когнитивного поиска Azure для выполнения поиска в строках в представлении Knowledge, а именно:
На странице Главная на портале Azure выберите + Создать ресурс, введите Когнитивный поиск Azure, выберите Ввод, затем выберите Создать.
На странице Создать службу поиска введите следующие параметры, затем выберите Обзор + создание:
- Подписка: выберите свою подписку Azure
- Группа ресурсов: webapi_rg
- Имя службы: введите уникальное имя для службы
- Имя расположения: выберите ближайший к вам регион
- Ценовая категория: Бесплатно
На странице проверки выберите Создать и дождитесь завершения подготовки службы.
Перейдите на страницу новой службы поиска, выберите Обзор, запишите URL-адрес (он понадобится вам позже, когда вы создадите настраиваемый соединитель для Power Apps), затем выберите Импортировать данные.
На странице Импортировать данные в раскрывающемся поле списка Источник данных выберите База данных SQL Azure.
На странице Подключитесь к своим данным укажите следующие параметры:
- Источник данных: База данных SQL Azure
- Имя источника данных: knowledgebase
- Строка подключения: введите строку подключения к базе данных SQL Azure для базы данных KnowledgDB, которую вы записали ранее; в этой строке обязательно установите пароль Pa55w.rd
- Оставьте для полей ИД пользователя и Пароль значения по умолчанию; эти элементы извлекаются из строки подключения
Выберите Проверить подключение. Убедитесь, что проверка прошла успешно, выберите [Knowledge] в раскрывающемся поле списка Таблица/представление, затем выберите Далее: добавить когнитивные навыки (необязательно).
На странице Добавить когнитивные навыки (необязательно) выберите Перейти к: Настройка целевого индекса.
На странице Настройка целевого индекса выберите Извлекаемый для всех столбцов и Поддерживает поиск для Тема, Основной текст, Имя и Обзор. Выберите Далее: Создание индексатора.
На странице Создание индексатора измените индексатор Имя на knowledgebase-indexer. Для параметра Расписание выберите Ежечасно, установите для параметра Столбец верхнего предела значение ИД, затем выберите Отправить:
Чтобы протестировать индексатор, на странице Обзор для службы поиска выберите Обозреватель поиска:
В поле Запросстрока введите слово для поиска в базе знаний, затем выберите Поиск. Служба поиска должна сгенерировать список документов с совпадением в полях Тема, Основной текст, Имя или Обзор и показать их на панели Результаты. Запишите URL-адрес запроса и образец Результаты; вам понадобятся эти элементы позже в качестве примера запроса и ответа при настройке настраиваемого соединителя Power Apps.
Создание настраиваемого соединителя для службы когнитивного поиска Azure
Киана теперь может создать настраиваемый соединитель, который Power Apps использует для отправки поисковых запросов в службу поиска. Киана делает это, используя Power Apps Studio, следующим образом:
Выполните вход в Power Apps.
В левой области разверните Данные и выберите Настраиваемые соединители. На правой панели выберите + Новый пользовательский соединитель, затем выберите Создать с нуля:
В диалоговом окне Создать с нуля для нового соединителя имя VanArsdelKBConnector, затем выберите Продолжить:
На странице Общая информация введите описание и установите для параметра Схема значение HTTPS. В поле Узлы введите URL-адрес вашей поисковой службы (вы записали этот URL-адрес ранее), но без префикса https://, затем выберите Безопасность.
На странице Безопасность в раскрывающемся списке Аутентификация выберите Ключ API. В поле Метка параметра введите api-key. В поле Имя параметра введите api-key. Выберите Определение.
На странице Определение выберите Создать действие. В поле Сводка введите Запрос. В поле Описание введите Запросить базу знаний. В поле ИД операции введите Запрос. В разделе Запрос выберите + Импорт из образца.
В диалоговом окне Импорт из образца введите следующие значения, затем выберите Импорт:
- Команда: GET
- URL-адрес: укажите URL-адрес примера запроса, который вы записали ранее при тестировании службы поиска в проводнике поиска
- Заголовки: Content-type
Вернувшись на страницу Определение прокрутите вниз до раздела Запрос, выберите кнопку с многоточием рядом с пунктом поиск, затем выберите Изменить.
На экране редактирования в разделе Параметры в поле Значение по умолчанию введите звездочку (*). В остальных полях оставьте значения по умолчанию, затем выберите Назад.
На странице Определение в разделе Запрос выберите кнопку с многоточием рядом с пунктом api-version, затем выберите Изменить.
На экране редактирования в разделе Параметры в поле Значение по умолчанию введите 2020-06-30-Preview (это версия, связанная с текущей версией когнитивного поиска Azure; вы можете увидеть версию в URL-адресе запроса, который вы записали ранее). Установите для параметра Является обязательным значение Да и установите для параметра Видимость значение внутренняя. В остальных полях оставьте значения по умолчанию, затем выберите Назад.
На странице Определение прокрутите вниз до раздела Ответ и выберите + Добавить ответ по умолчанию.
]
В диалоговом окне Импортировать из образца в поле Заголовки введите текст Content-type. В поле Основной текст введите примеры результатов, которые вы записали при тестировании службы поиска, затем выберите Импортировать.
На странице Определение выберите ответ по умолчанию.
В поле Описание ответа Content-type введите application/json, затем выберите Назад.
Заметка
Раздел Основной текст на этой странице должен отображать поля ответа, такие как Основной текст, ИД, Имя, Обзор и Тема, если он был успешно проанализирован.
Выберите Создать соединитель.
Соединитель должен быть создан без каких-либо сообщений об ошибках или предупреждений.
Обновление приложения для использования когнитивного поиска Azure: база знаний для выездного обслуживания
Теперь Мария может использовать настраиваемый соединитель в приложении. Но сначала Марии нужен ключ, который дает права, необходимые для подключения к службе когнитивного поиска Azure. Прити получает ключ со страницы Ключи на портале Azure и передает его Марии.
Мария редактирует приложение в Power Apps Studio и выполняет следующие задачи:
Откройте приложение VanArsdelApp для редактирования.
В меню Вид выберите Источники данных, затем выберите Добавить данные.
В поле Найти в разделе Выберите источник данных выберите Van. Соединитель VanArdelKBConnector должен быть указан.
Выберите соединитель VanArdelKBConnector. На панели VanArdelKBConnector введите ключ, предоставленный Прити для службы поиска, затем выберите Подключить.
В меню Файл сохраните и закройте приложение, затем откройте его снова. Вам может быть предложено разрешить использование настраиваемого соединителя при повторном открытии приложения.
Заметка
Этот шаг необходим для включения настраиваемого соединителя.
На панели Представление в виде дерева разверните экран База знаний и выберите элемент управления TextSearchBox2. Введите следующую формулу для действия OnChange.
If(!IsBlank(TextSearchBox2.Text), ClearCollect(azResult, VanArsdelKBConnector.Query({search: TextSearchBox2.Text}).value))
Эта формула вызывает операцию Запрос настраиваемого соединителя для поиска элементов, соответствующих термину, который пользователь вводит в поле поиска. Результаты хранятся в коллекции с именем azResult.
На панели Представление в виде дерева на экране База знаний выберите элемент управления BrowseGallery2. Задайте свойству Элементы значение azResult.
Разверните элемент управления BrowseGallery2 и удалите элемент управления Image4.
Выберите элемент управления Title2. Задайте следующие свойства:
- Текст: ThisItem.Subject
- X: 24
- Ширина: Parent.TemplateWidth - 104
Выберите элемент управления Subtitle2. Задайте для свойства Текст значение ThisItem.Body.
Выберите F5 для предварительного просмотра приложения. На экране База знаний введите поисковый запрос, затем выберите Ввод. Должны отображаться соответствующие статьи из базы знаний.
Заметка
Экран сведений еще не создан, поэтому выбор значка > рядом со статьей не работает.
Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
На панели Представление в виде дерева щелкните правой кнопкой мыши экран PartDetails и выберите Дублировать экран. Это действие добавит в приложение еще один экран с именем PartDetails_1.
На панели Представление в виде дерева переименуйте экран PartDetails_1 в KnowledgebaseDetails.
Выберите элемент управления LblAppNameX на экране; установить для свойства Текст значение "Сведения о статье" (включая кавычки).
На панели Представление в виде дерева выберите элемент управления DetailFormX на экране. Задайте следующие свойства:
- Источник данных: azResult
- Элемент: **BrowseGallery2.Selected**
Заметка
BrowseGallery2 — это коллекция обзора на экране База знаний. В вашем приложении эта коллекция может иметь другое имя.
На панели Представление в виде дерева разверните форму DetailFormX, затем измените имена следующих элементов управления карточки данных:
- Name_DataCard1_1: Name_DataCard
- CategoryID_DataCard1_1: Subject_DataCard
- Overview_DataCard1_1: Overview_DataCard
- Price_DataCard1_1: Body_DataCard
Удалите элементы управления NumberInStock_DataCard1_1 и Image_DataCard1_1.
Выберите элемент управления Name_DataCard. Установите для свойства По умолчанию значение ThisItem.Name.
Выберите элемент управления Subject_DataCard. Задайте следующие свойства:
- Поле данных: "Тема"
- Отображаемое имя: "Тема"
- По умолчанию: ThisItem.Subject
Выберите элемент управления Overview_DataCard. Установите для свойства По умолчанию значение ThisItem.Overview.
Выберите элемент управления Body_DataCard. Задайте следующие свойства:
- Поле данных: "Основной текст"
- Отображаемое имя: "Основной текст"
- По умолчанию: ThisItem.Body
Выберите элемент управления DataCardValueX в элементе управления Body_DataCard. Задайте для свойства Текст значение Parent.Default.
Измените размер каждого элемента управления карточки данных, чтобы распределить их вниз по экрану.
Выберите стрелку назад в заголовке экрана. Измените свойство действия OnSelect на Navigate(Knowledgebase, ScreenTransition.None).
На панели Представление в виде дерева выберите экран База знаний, затем выберите элемент управления BrowseGalleryX. Измените свойство действия OnSelect на Navigate(KnowledgebaseDetails, ScreenTransition.None). Это действие отображает экран сведений для статьи базы знаний, когда пользователь выбирает значок > для записи на экране обзора.
Сохраните приложение.
Выберите F5 для предварительного просмотра приложения. На экране База знаний введите поисковый запрос, затем выберите Ввод. Выберите статью и убедитесь, что отображаются сведения о ней. Убедитесь, что значок Назад возвращает пользователя к экрану обзора.
Закройте окно предварительного просмотра и вернитесь в Power Apps Studio.
Мария, Киана и Прити успешно включили в приложение веб-API и когнитивный поиск Azure.