cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
MarcBailey
Resolver II
Resolver II

Global Variable works on Desktop but not on Phone

This post is related to a previous post that I made on on 1-16-18.  The new post was made after extensive testing and will bring more clarity to issue than the original post:

https://powerusers.microsoft.com/t5/General-Discussion/Data-Refresh-Problem-when-Navigating-between-...

 

The App runs with no problems on my Desktop but on my Mobile Device (IPhone 7) the Global Variable does not update to the Selected Account fast enough.

 

Problem: On the Mobile Device when selecting the Set and Navigate control for an account from the AccountControl screen - it navigates and populates the data in the AccountLog screen prior to Global Variable being posted.  Therefore, it displays the data from the previous selected account.  If I naviagate back to the AccountControl screen and select another account it displays the previous selected account again which means the Global Variable is getting updated at some point after the AccountLog screen is loaded. 

 

What's involved in this Scenario - 2 Screens and Code - Uses SharePoint Lists as Datasources:

 

AccountControl screen - OnSelect:

Set(CurrentAcctID,BrowseGallery1.Selected.ID);Navigate(AccountLog, ScreenTransition.None)

 

AccountLog screen - Gallery3 - Items:

SortByColumns(Filter(AcctLog,AcctID = Text(CurrentAcctID)),"DateEntered",Ascending)

 

I have done numerous test including a Collection with the exact same results.

 

I would appreciate any insight, solution, or workarounds on this matter.

 

Thanks - Marc

22 REPLIES 22

 

Hi Sienna,

 

Quick update - I tested the Timer and still have the same problem when running the App on the IPhone.

 

I have been working with several members of the PowerApps Product Team on another issue which they just provided me with a workaround on it that I can use until it is fixed in the next release.  In my thank you response back to them I included the "Global Variable works on Desktop but not on Phone" issue for their review.  I shared a very simplified App that reflects the issue so they can fully test it.  I will provide you an update when I hear back from them.

 

Thanks for all of the help - Marc !!

 

Account Control screenAccount Control screenAccount Log screenAccount Log screen

 

 

 

Hi again

I've been trying to reproduce the same error but with no luck. I have tested all possible variants on my iPhone and they all works. But obviously I didn't try sharepoint. My last suggestions would be to reinstall the PA player on your phone try if this will work. I would also try to save the app with different name and try to republish it. And if all this fail then try to create brand new app and test it in small steps and see when it will starting to fail. Good luck and let us know

Hi again,

 

I have tried all of your suggestions and even created a new App using CDS as the DataSouce and it still displays the previous selected Account in my Global Variable.  I am hoping the PA Product Team will review this and provide a response.  I know they are working on Gallery related issues that are supposed to be corrected in the next release.

 

Has issue updating variable:

App is running 2.0.750 on my IPhone 7 on iOS 11.2.2 with 235GB available

 

Works fine using:

App is running 2.0.750 on the Desktop (Edit on the Web) - Windows 8.1 - Chrome or IE browsers

 

Its definitely a time consuming mystery...

 

Please let me know if you or anyone else has additional suggestions.

 

Thanks - Marc...

I've got only one more.. Have you tried also change a database connected in your gallery to something else then sharepoint?

@CarlosFigueira

@CWesener

@rgruian

 

Sienna,

 

I have tried all of your suggestions and even created a new App using CDS as the DataSouce and it still displays the previous selected Account in my Global Variable. 

 

I have reviewed my settings on my IPhone - definitely think this is a PowerApps issue.

 

In the meantime I am going to have to use a Temporary Workaround which utilizes two separate OnSelect controls the first Sets the variable (which will update it to the previous ID) without navigating and then the second Sets the variable again (which will update to the previous ID again but will be the Account that user needs selected) with navigation to the AccountLog screen.  See images below:

 

First ClickFirst ClickSecond ClickSecond Click

I've just encountered this exact same issue.  Running the app on a desktop, no problem.  Using it on an iPad, the Global Variable is always one step behind.  I am using the variable to take the ID of a record in a gallery to a new screen where changes can be made to that record.  When the navigation takes place the new screen shows the record from the previously selected record, not the current one.

 

I have tried blanking the variable before setting it, but the previous value is still the one used when loading the new screen.   The setting of the global variable is marching to the beat of a different drummer.

 

Any chance of an update on what is happening with this issue?

@CarlosFigueira

@CWesener

@rgruian

 

There is definitely a problem with the way global variables are handled in the PowerApp app in iOS.  The difference between how things work on a pc desktop and on an iPad is stark.

KroonOfficeSol
Resident Rockstar
Resident Rockstar

He MarcBailey,

 

I respond on the main threat because off all nonsense solutions mentioned earlier (sorry for saying so). The behaviour you're experience is quit logic in my opinion (when you really thing about it a little longer). It is simple caused by the fact that a screen does nothing when not visible (for performance reasons), which means that on visible it will first go out and update the data source t screen and the controls rely on to be able to show the right content. Meanwile it will do nothing, giving the former data to be visible. Looks to me like normal behaviour in every way.

 

The behaviour is simple to overcome. Try this:

  1.  Set a local variable in the navigation() formula and set this to equal the global variable. Like:
    Navigate(MyScreen, None, {MyLocalVariable: MyGlobalVariable})
  2. Connect the Gallery to the local variable by using a lookup() function in the Item property, like
    LookUp(DataSource, MyID = MyLocalVariable)
  3. Reset the local variable on leaving the screen (so in the OnHidden Property), Like
    UpdateContext({MyLocalVariable:Blank()})

What the 3 line does is basically clear the gallery, simple because a blank() in the condition is no match to an existing record. So if you go to the screen in design the Gallery will be empty therefor. My good practice btw is to reset all the variables and temperal collections always when leaving the screen (only off course when a go up in my hirarchie, so not when I drill down to a deeper detail level (hope this makes sense) Smiley Very Happy

 

Still you have to wait for the gallery to update the connected data source, but the gallery will be empty (so white) or not visible till this is finished and the lookup is executed.

 

Btw I made a youtube video serie which explains these concepts in great detail with an example on a re-usable screen. If you want to learn on this topic here is the link: PowerApps - Re-Use Screens 

 

 

Btw 2: Storing your datasource in a collection can make the load time off the screen faster (which will mean that the record is shown faster), this is because there is no call needed to the datasource to update (the collection is already in place and locally available). But there are some side effects which can be tricky depending on the data you're using in the gallery.

 

Hope this helps.

Here is a description of an app that demostrates the problem so it can be replicated.

 

Screen1 contains a gallery of records several records.  Each record has a unique ID field called RecordID.  There is a button in the gallery used to navigate to Screen2 and set the value of global variable SelectedItem to the ID of the record in the gallery:

 

  • Gallery Button OnSelect = Set(SelectedItem,GalleryScreen1.Selected.RecordID); Navigate(Screen2, None)

 

Screen 2 contains 2 labels:

 

  • Label1.Text = SelectedItem
  • Label2.Text = GalleryScreen1.Selected.RecordID

For ease of demo add a button to Screen 2 with OnSelect = Back()

 

Now try the app in PowerApps in a browser.  Result: Label1 shows same value as Label2 no matter which record is selected in the gallery on Screen1.

 

Try the same app in PowerApps in iOS. Result: Label1 will show the value for the previously selected record.  In iOS the Set action is being completed before GalleryScreen1.Selected is updated.  This is not the expected behaviour.

 

The issue is independent of the order of the Navigate and Set actions in the button OnSelect.

 

Anyone got any thoughts on how to work around this problem until it is fixed?  If it is fixed?

Again, this is behaviour which comes from the way the screen reacts and loads. A screen which is NOT visible won't preform any actions on the global variable change in another screen. 

 

So what happens is that

  • when you leave the screen (let call this the invisible screen) the value in label 1 is that off the global variable on that time. 
  • Then you change your global variable, but on this moment your invisible screen stays the same.
  • You go back to the invisible screen then the screen will updates the controls on it with the specific datasource.
  • Probably in the app on a ios this process takes more time then in the browser, so you see the value for the previous time for a short moment.
  • That the other box has the correct value is just luck and it could be that when you go to this screen a hunderd time it won't be the case in a number off them. Probably this box is updated first and the other second. To test try add a third label en connect it also to the gallery and see what happens. Probably this will be processed after the second box because you added this later to the screen. I'm not sure if this is the case, it could also be that the gallery.selected relations works different in initiating during the onvisible process off a screen then a global variable.

Just try to reset the global variable on the OnHidden Property off the screen like

Set(MyGlobalVariable, Blank())

Then go to the screen again from the gallery and see if this helps.

 

Then again, why use a global variable and not a local variable you pass to the invisible screen in the navigate() formula. Like

Navigate(TheInvisibleScreen, None, {MyLocalVariable:Gallery.Selected.ID})

There is you're workarond.

 

btw It won't be fixed, because it aint broken.

 

Success,

 

Paul

 

Helpful resources

Announcements

April 2024 Community Newsletter

We're pleased to share the April Community Newsletter, where we highlight the latest news, product releases, upcoming events, and the amazing work of our outstanding Community members.   If you're new to the Community, please make sure to follow the latest News & Announcements and check out the Community on LinkedIn as well! It's the best way to stay up-to-date with all the news from across Microsoft Power Platform and beyond.    COMMUNITY HIGHLIGHTS   Check out the most active community members of the last month! These hardworking members are posting regularly, answering questions, kudos, and providing top solutions in their communities. We are so thankful for each of you--keep up the great work! If you hope to see your name here next month, follow these awesome community members to see what they do!   Power AppsPower AutomateCopilot StudioPower PagesWarrenBelzDeenujialexander2523ragavanrajanLaurensMManishSolankiMattJimisonLucas001AmikcapuanodanilostephenrobertOliverRodriguestimlAndrewJManikandanSFubarmmbr1606VishnuReddy1997theMacResolutionsVishalJhaveriVictorIvanidzejsrandhawahagrua33ikExpiscornovusFGuerrero1PowerAddictgulshankhuranaANBExpiscornovusprathyooSpongYeNived_Nambiardeeksha15795apangelesGochixgrantjenkinsvasu24Mfon   LATEST NEWS Business Applications Launch Event - On Demand In case you missed the Business Applications Launch Event, you can now catch up on all the announcements and watch the entire event on-demand inside Charles Lamanna's latest cloud blog.   This is your one stop shop for all the latest Copilot features across Power Platform and #Dynamics365, including first-hand looks at how companies such as Lenovo, Sonepar, Ford Motor Company, Omnicom and more are using these new capabilities in transformative ways. Click the image below to watch today!     Power Platform Community Conference 2024 is here! It's time to look forward to the next installment of the Power Platform Community Conference, which takes place this year on 18-20th September 2024 at the MGM Grand in Las Vegas!   Come and be inspired by Microsoft senior thought leaders and the engineers behind the #PowerPlatform, with Charles Lamanna, Sangya Singh, Ryan Cunningham, Kim Manis, Nirav Shah, Omar Aftab and Leon Welicki already confirmed to speak. You'll also be able to learn from industry experts and Microsoft MVPs who are dedicated to bridging the gap between humanity and technology. These include the likes of Lisa Crosbie, Victor Dantas, Kristine Kolodziejski, David Yack, Daniel Christian, Miguel Félix, and Mats Necker, with many more to be announced over the coming weeks.   Click here to watch our brand-new sizzle reel for #PPCC24 or click the image below to find out more about registration. See you in Vegas!     Power Up Program Announces New Video-Based Learning Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram. These include a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the image below to find out more!     UPCOMING EVENTS Microsoft Build - Seattle and Online - 21-23rd May 2024 Taking place on 21-23rd May 2024 both online and in Seattle, this is the perfect event to learn more about low code development, creating copilots, cloud platforms, and so much more to help you unleash the power of AI.   There's a serious wealth of talent speaking across the three days, including the likes of Satya Nadella, Amanda K. Silver, Scott Guthrie, Sarah Bird, Charles Lamanna, Miti J., Kevin Scott, Asha Sharma, Rajesh Jha, Arun Ulag, Clay Wesener, and many more.   And don't worry if you can't make it to Seattle, the event will be online and totally free to join. Click the image below to register for #MSBuild today!     European Collab Summit - Germany - 14-16th May 2024 The clock is counting down to the amazing European Collaboration Summit, which takes place in Germany May 14-16, 2024. #CollabSummit2024 is designed to provide cutting-edge insights and best practices into Power Platform, Microsoft 365, Teams, Viva, and so much more. There's a whole host of experts speakers across the three-day event, including the likes of Vesa Juvonen, Laurie Pottmeyer, Dan Holme, Mark Kashman, Dona Sarkar, Gavin Barron, Emily Mancini, Martina Grom, Ahmad Najjar, Liz Sundet, Nikki Chapple, Sara Fennah, Seb Matthews, Tobias Martin, Zoe Wilson, Fabian Williams, and many more.   Click the image below to find out more about #ECS2024 and register today!   Microsoft 365 & Power Platform Conference - Seattle - 3-7th June If you're looking to turbo boost your Power Platform skills this year, why not take a look at everything TechCon365 has to offer at the Seattle Convention Center on June 3-7, 2024.   This amazing 3-day conference (with 2 optional days of workshops) offers over 130 sessions across multiple tracks, alongside 25 workshops presented by Power Platform, Microsoft 365, Microsoft Teams, Viva, Azure, Copilot and AI experts. There's a great array of speakers, including the likes of Nirav Shah, Naomi Moneypenny, Jason Himmelstein, Heather Cook, Karuana Gatimu, Mark Kashman, Michelle Gilbert, Taiki Y., Kristi K., Nate Chamberlain, Julie Koesmarno, Daniel Glenn, Sarah Haase, Marc Windle, Amit Vasu, Joanne C Klein, Agnes Molnar, and many more.   Click the image below for more #Techcon365 intel and register today!   For more events, click the image below to visit the Microsoft Community Days website.    

Tuesday Tip | Update Your Community Profile Today!

It's time for another TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   We're excited to announce that updating your community profile has never been easier! Keeping your profile up to date is essential for staying connected and engaged with the community.   Check out the following Support Articles with these topics: Accessing Your Community ProfileRetrieving Your Profile URLUpdating Your Community Profile Time ZoneChanging Your Community Profile Picture (Avatar)Setting Your Date Display Preferences Click on your community link for more information: Power Apps, Power Automate, Power Pages, Copilot Studio   Thank you for being an active part of our community. Your contributions make a difference! Best Regards, The Community Management Team

Hear what's next for the Power Up Program

Hear from Principal Program Manager, Dimpi Gandhi, to discover the latest enhancements to the Microsoft #PowerUpProgram, including a new accelerated video-based curriculum crafted with the expertise of Microsoft MVPs, Rory Neary and Charlie Phipps-Bennett. If you’d like to hear what’s coming next, click the link below to sign up today! https://aka.ms/PowerUp  

Tuesday Tip: Community User Groups

It's time for another TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   As our community family expands each week, we revisit our essential tools, tips, and tricks to ensure you’re well-versed in the community’s pulse. Keep an eye on the News & Announcements for your weekly Tuesday Tips—you never know what you may learn!   Today's Tip: Community User Groups and YOU Being part of, starting, or leading a User Group can have many great benefits for our community members who want to learn, share, and connect with others who are interested in the Microsoft Power Platform and the low-code revolution.   When you are part of a User Group, you discover amazing connections, learn incredible things, and build your skills. Some User Groups work in the virtual space, but many meet in physical locations, meaning you have several options when it comes to building community with people who are learning and growing together!   Some of the benefits of our Community User Groups are: Network with like-minded peers and product experts, and get in front of potential employers and clients.Learn from industry experts and influencers and make your own solutions more successful.Access exclusive community space, resources, tools, and support from Microsoft.Collaborate on projects, share best practices, and empower each other. These are just a few of the reasons why our community members love their User Groups. Don't wait. Get involved with (or maybe even start) a User Group today--just follow the tips below to get started.For current or new User Group leaders, all the information you need is here: User Group Leader Get Started GuideOnce you've kicked off your User Group, find the resources you need:  Community User Group ExperienceHave questions about our Community User Groups? Let us know! We are here to help you!

Super User of the Month | Ahmed Salih

We're thrilled to announce that Ahmed Salih is our Super User of the Month for April 2024. Ahmed has been one of our most active Super Users this year--in fact, he kicked off the year in our Community with this great video reminder of why being a Super User has been so important to him!   Ahmed is the Senior Power Platform Architect at Saint Jude's Children's Research Hospital in Memphis. He's been a Super User for two seasons and is also a Microsoft MVP! He's celebrating his 3rd year being active in the Community--and he's received more than 500 kudos while authoring nearly 300 solutions. Ahmed's contributions to the Super User in Training program has been invaluable, with his most recent session with SUIT highlighting an incredible amount of best practices and tips that have helped him achieve his success.   Ahmed's infectious enthusiasm and boundless energy are a key reason why so many Community members appreciate how he brings his personality--and expertise--to every interaction. With all the solutions he provides, his willingness to help the Community learn more about Power Platform, and his sheer joy in life, we are pleased to celebrate Ahmed and all his contributions! You can find him in the Community and on LinkedIn. Congratulations, Ahmed--thank you for being a SUPER user!  

Tuesday Tip: Getting Started with Private Messages & Macros

Welcome to TUESDAY TIPS, your weekly connection with the most insightful tips and tricks that empower both newcomers and veterans in the Power Platform Community! Every Tuesday, we bring you a curated selection of the finest advice, distilled from the resources and tools in the Community. Whether you’re a seasoned member or just getting started, Tuesday Tips are the perfect compass guiding you across the dynamic landscape of the Power Platform Community.   As our community family expands each week, we revisit our essential tools, tips, and tricks to ensure you’re well-versed in the community’s pulse. Keep an eye on the News & Announcements for your weekly Tuesday Tips—you never know what you may learn!   This Week's Tip: Private Messaging & Macros in Power Apps Community   Do you want to enhance your communication in the Community and streamline your interactions? One of the best ways to do this is to ensure you are using Private Messaging--and the ever-handy macros that are available to you as a Community member!   Our Knowledge Base article about private messaging and macros is the best place to find out more. Check it out today and discover some key tips and tricks when it comes to messages and macros:   Private Messaging: Learn how to enable private messages in your community profile and ensure you’re connected with other community membersMacros Explained: Discover the convenience of macros—prewritten text snippets that save time when posting in forums or sending private messagesCreating Macros: Follow simple steps to create your own macros for efficient communication within the Power Apps CommunityUsage Guide: Understand how to apply macros in posts and private messages, enhancing your interaction with the Community For detailed instructions and more information, visit the full page in your community today:Power Apps: Enabling Private Messaging & How to Use Macros (Power Apps)Power Automate: Enabling Private Messaging & How to Use Macros (Power Automate)  Copilot Studio: Enabling Private Messaging &How to Use Macros (Copilot Studio) Power Pages: Enabling Private Messaging & How to Use Macros (Power Pages)

Top Solution Authors
Top Kudoed Authors
Users online (7,097)