Skip to main content

Notifications

Community site session details

Community site session details

Session Id : mSgJVRer/67F7L7cxJxaHt
Power Apps - Building Power Apps
Answered

Navigate to different screens based on record field value

Like (0) ShareShare
ReportReport
Posted on 14 Feb 2023 20:12:32 by 85

I'm customizing a SharePoint online OOTB form in a list to use power apps forms. I would like to navigate to different screens based on the status field value for that record. If I open the record in a list view and 'Status' field = Test, I want it to navigate to the Engineering screen. If 'Status' = Test2, I want it to navigate to the Assignments screen. I can't get this to work. I've tried two separate solutions from scouring the interwebs that have been unsuccessful.

 

TEST1:

(from Sharepointintegration.OnEdit or OnView)

Refresh('YourSPList');
EditForm(Default Form);
If(SharePointIntegration.Selected.Status.Value = "Test", Navigate(Engineering,ScreenTransition.Fade))

 

TEST2:

(from App.StartScreen)

If(DataCardValue63.Text = "Test", Engineering, Default)

 

 

Categories:
  • ShawnPelletier Profile Picture
    85 on 06 Apr 2023 at 13:22:37
    Re: Navigate to different screens based on record field value

    Place the timer on the default form. 

    OnSave = SubmitForm('Default Form'); SubmitForm('Engineering Form'); [submit form for every form you have built]

    OnEdit = SharePointIntegration

  • jdellipa Profile Picture
    16 on 05 Apr 2023 at 21:29:58
    Re: Navigate to different screens based on record field value

    Ah gotcha, what screen did you put this on? And also what is your OnEdit, OnSave, etc?

     

    Thanks!!!

     

  • ShawnPelletier Profile Picture
    85 on 05 Apr 2023 at 13:51:30
    Re: Navigate to different screens based on record field value

    This is the formula I used in the timer end property:

    If(DataCardValue63.Text = "Pending Engineering", Navigate(Engineering,ScreenTransition.Fade));
    If(DataCardValue63.Text = "Pending Disqualification", Navigate(Assignments,ScreenTransition.Fade));

  • jdellipa Profile Picture
    16 on 04 Apr 2023 at 18:49:59
    Re: Navigate to different screens based on record field value

    Can you elaborate on "DataCardValue63.Text" and the Status in Sharepoint field name? Or provide the exact syntax? thanks man

     

     

  • ShawnPelletier Profile Picture
    85 on 04 Apr 2023 at 13:33:39
    Re: Navigate to different screens based on record field value

    I did get it working. I used "DataCardValue63.Text" which is the actual name of the control. 'Status' is the SharePoint field name.

     

    Another step I learned the hard way: 

    To submit data from additional forms in your app you have to add them to OnSave of 'SharePointIntegration' like so:

    SubmitForm('default');  SubmitForm('Form1'); SubmitForm('Form2'); etc

  • jdellipa Profile Picture
    16 on 04 Apr 2023 at 03:19:16
    Re: Navigate to different screens based on record field value

    Hey Sean,

     

    I am trying to do something very similar did you ever get this fixed?

     

  • ShawnPelletier Profile Picture
    85 on 15 Feb 2023 at 14:09:12
    Re: Navigate to different screens based on record field value

    The Status.Value string gives me an error > Invalid use of (.). Status is a text input and I'll get the same error if I use .Text

  • v-bofeng-msft Profile Picture
    on 15 Feb 2023 at 02:58:40
    Re: Navigate to different screens based on record field value

    Hi @ShawnPelletier ,

     

    Maybe you could add a timer control and set it's

    Duration

    1000

    AutoStart

    true

    Repeat

    true

    OnTimerEnd

    If(SharePointIntegration.Selected.Status.Value = "Test", Navigate(Engineering,ScreenTransition.Fade))

    Visible

    false

     

    Best Regards,

    Bof

     

  • Verified answer
    v-bofeng-msft Profile Picture
    on 15 Feb 2023 at 02:58:26
    Re: Navigate to different screens based on record field value

    Hi @ShawnPelletier ,

     

    Maybe you could add a timer control and set it's

    Duration

    1000

    AutoStart

    true

    Repeat

    true

    OnTimerEnd

    If(SharePointIntegration.Selected.Status.Value = "Test", Navigate(Engineering,ScreenTransition.Fade))

    Visible

    false

     

    Best Regards,

    Bof

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Thomas Rice – Community Spotlight

We are honored to recognize Thomas Rice as our March 2025 Community…

Kudos to the February Top 10 Community Stars!

Thanks for all your good work in the Community

Announcing Our 2025 Season 1 Super Users!

A new season of Super Users has arrived, and we are so grateful for the daily…

Leaderboard

#1
WarrenBelz Profile Picture

WarrenBelz 146,508 Most Valuable Professional

#2
RandyHayes Profile Picture

RandyHayes 76,287 Super User 2024 Season 1

#3
Pstork1 Profile Picture

Pstork1 65,342 Most Valuable Professional

Leaderboard
Loading complete