Глубинное связывание MS PowerApps

Я передаю параметр в PowerApp через вызывающий URL с именем ID, то есть https://web.powerapps.com/apps/ powerappid? ID = 32

Когда приложение запускается, я хочу, чтобы оно перескочило с BrowseScreen1, в котором перечислены все бизнес-кейсы, и сразу перешло к бизнес-кейсу с соответствующим идентификатором (поле из списка SharePoint).

Я новичок в PowerApps, но уверен, что то, что мне нужно сделать, называется Deep Linking, и я нашел этот учебник https://powerapps.microsoft.com/en-us/blog/powerapps-deep-linking/ и, прочитав комментарии к статье, пытаюсь применить в свойство OnStart BrowseScreen1. Я действительно не понимаю, как построена навигационная ссылка в учебнике, поэтому я уверен, что использую неправильные параметры навигации, поскольку она всегда запускает первую запись в списке, игнорируя все, что связано с идентификатором. Я использую:

Если (Not (IsBlank (Param ("ID"))), Navigate (DetailScreen1, None, {ID: LookUp ('Full Business Case For Review'. ID, ID = Value (Param ("ID")))}) )

«Полное экономическое обоснование для обзора» - это имя списка Sharepoint, а идентификатор - это уникальное поле, которое присваивается каждому элементу списка.

В руководстве не упоминается о необходимости что-либо менять на подробном экране, но я также задавался вопросом, нужно ли мне, возможно, изменить свойства элемента в том виде, в каком они есть в настоящее время:

BrowseGallery1.Selected

Я чувствую себя не в своей тарелке и буду очень признателен за помощь в этом!

Спасибо,

Джон


person John Fairhall    schedule 22.11.2017    source источник


Ответы (1)


Да, вам нужно изменить свойство Item на подробном экране. Это связано с тем, что в настоящее время в PowerApps нет возможности программно выбрать элемент в галерее.

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

If(Not(IsBlank(Param("ID"))),
    Set(CurrentItem, LookUp('Full Business Case For Review'.ID, ID = Value(Param("ID"))));
        Navigate(DetailScreen1, None)
    )

Это сохранит элемент с идентификатором, равным вашему параметру, как переменную типа записи.

Вам также необходимо изменить свойство OnSelect вашего шаблона BrowseGallery1 или любого другого элемента управления, который используется для перехода к экрану сведений. Это должно быть что-то вроде этого

Set(CurrentItem, ThisItem); Navigate(DetailScreen1, None)

Наконец, установите для свойства Item на подробном экране просто это

CurrentItem
person Meneghino    schedule 24.11.2017