web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / OnSelect not firing un...
Power Apps
Unanswered

OnSelect not firing under certain conditions

(1) ShareShare
ReportReport
Posted on by 22

 Dear all,

 

I developed a small application to measure flow rates based on a counter and a timer. The application is running but there is still an issue that I cannot solve.

 

 screenshot_app.jpg

 

 

 

 

 

 

 

 

 

 

 

The central orange button updates a counter, recalculates some variables and writes an entry in a collection. For some reason, when the button is pressed a short time after the timer is running (less than a second, sometimes longer) the button does not fire the corresponding OnSelect action. This occurs only the first time after starting the application, and that's why I wonder if it is a data initialization issue. When the app is started, all variables are initalized and the records are cleaned via the OnVisible property of the corresponding Screen element.

 

The code in the field OnSelect is the following:

 

UpdateContext ({int_Now:Now()});;
UpdateContext ({insgesamt: (insgesamt + 1);int_AccTimer: (int_AccTimer + Value(int_Now) - int_LapStart - int_LapPause);int_LapStart:Value(int_Now);int_LapPause:0})
;;Collect(EventRecord; {Count: insgesamt; ActualFlow: Text(3600*1000*Value(insgesamt)/int_AccTimer;"[$-de-DE]00");RelativeTime: Text(Time(0; 0; int_AccTimer/1000); "[$-de-DE]mm:ss")&":"&Text(Mod(int_AccTimer;1000);"[$-de-DE]000"); Last: Text(Time(0; 0; (int_AccTimer-int_LastAccTimer)/1000); "[$-de-DE]mm:ss")&":"&Text(Mod(int_AccTimer-int_LastAccTimer;1000);"[$-de-DE]000")})
;;UpdateContext ({int_LastAccTimer: int_AccTimer})

 

Do You have any idea about what's the cause? I thank You for any hints.

 

Best Regards,

Sergio

Categories:
  • Meneghino Profile Picture
    6,949 on at

    Hi @SergioNavarro, the only thing that comes to mind would be to try to change the button's AutoDisableOnSelect property from true (the default value) to false.  I believe the intent of this property is to prevent people to accidentally press the button twice when nothing happens, but it may be causing the issue in your case.

     

    If that doesn't work, and if I understand correctly, navigation to the screen automatically starts the timer with the OnVisible property.  Maybe you could change the app so that the timer starts only once you press the button the first time.  This way you avoid all the PowerApps internal procedures when changing screen.

     

    Please let me know how it works out.

     

    PS Thanks for reporting the issue of timer not being accurate, it was interesting to discover

  • SergioNavarro Profile Picture
    22 on at

    Thanks for Your answer, @Meneghino,

     

    I had tried setting the AutoDIsableOnSelect property to false but it didn't solve the problem. The behaviour is the same.

     

    The timer starts when the Start button on the lower left corner is pressed (when the timer runs the button shows Stop).

     

    The OnSelect property of the Start / Stop button is the following:

     

    UpdateContext({int_Now:Now()});;
    If((bool_StartTimer<>true)&&(bool_ResetTimer<>false);UpdateContext({insgesamt:0;bool_ResetTimer:false;int_LapStart:int_Now;int_LapPause:0;int_AccTimer:0;int_LastAccTimer:0;int_LapPauseStart:0;int_TotalTimer:0;int_State:2;bool_StartTimer:true});
    (bool_StartTimer=true);UpdateContext({bool_StartTimer:false;bool_ResetTimer:false;int_LapPauseStart:Value(int_Now);int_State:3});
    (bool_StartTimer=false)&&(bool_ResetTimer=false);UpdateContext({bool_StartTimer:true;bool_ResetTimer:false;int_LapPause: (int_LapPause+Value(int_Now)-int_LapPauseStart);int_State:2}))

    and the OnVisible property of the screen element:

     

    If(firstRound<>true;UpdateContext({EmailToText:User().Email;process_Start:0;insgesamt:0;int_AccTimer:0;int_LastAccTimer:0;int_Now:Now();int_LapStart:0;int_LapPause:0;int_LapPauseStart:0;int_TotalTimer:0;int_State:1;bool_ResetTimer:true;bool_StartTimer:false}));;
    If(firstRound<>true;Collect(EventRecord; {Count: 0; ActualFlow: "0";RelativeTime: "0"; Last: "0"}));;
    If(firstRound<>true;Clear(EventRecord));;
    If(firstRound<>true;UpdateContext({firstRound:true}))

    As You can see, I even write and delete one record on the Collection when the screen is visualized. I made this in order to make sure that every variable is initialized before the Count button is pressed, but it didn't help either.

     

     

    I thank You in advance for any ideas! 

     

    Best Regards,

    Sergio

  • SergioNavarro Profile Picture
    22 on at

    Hi @Meneghino,

     

    would it be possible to share the application with You to see if this is a performance problem or a programming mistake? As I wrote before, I initialize every variable and collection elements in order to make sure that there is no delay when updating the counter.

     

    I thank You in advance for Your help or any ideas.

     

    Best Regards,

    Sergio

  • Meneghino Profile Picture
    6,949 on at

    Hi @SergioNavarro

     

    Actually, I think I might know what the problem is.  How many screens does your app have?  If more than one, is the screen that you show the initial screen?

     

    Thanks.

  • SergioNavarro Profile Picture
    22 on at

    Thanks for Your reply, @Meneghino.

     

    Yes, it is the initial screen.

     

    Thanks in advance for any hint.

     

    Best Regards,

    Sergio

  • Meneghino Profile Picture
    6,949 on at

    Then the answer is very simple and I have come across it before in my apps: the OnVisible property is not reliable on the initial screen

     

    I am not sure why this is, but normally what I do is to create a very simple welcome screen (big company logo or something) with a button to navigate to the main screen.  If you want to make sure all works as it should then you should have the Disabled property of this button to be

    IsEmpty(MyDataSource1) || IsEmpty(MyDataSource2) etc.etc.

     

    This way you are sure that all data sources are connected/initialised before you proceed.

     

    There is another real advantage to this approach, that if you have initialisations that need to be done only once for the whole app then you can put them as the OnHidden property of the welcome screen instead of the OnVisble property of the main screen.

     

    Please let me know if anything is not clear or you need assitance with implementing.  Of course please let me know if this solves your issue.

     

    PS The landing screen is automatically the first screen, so that you just create a new screen and move it to be the first by dragging it on the left hand gallery of screens.  No need to redo anything.

     

     

  • SergioNavarro Profile Picture
    22 on at

    Thank You for Your help, @Meneghino.

     

    Unfortunately the problem is still happening. I've created a black start screen with a timer control that automatically starts and triggers a Navigation statement after elapsing (1 second). 

     

    The behaviour on the main screen is the same like before: The first time I start the timer and press the Count button within 1 second, the button does not trigger any action (the second time always, no matter how fast it's done). After pressing the Count button the first time, I can stop the timer, reset and start it again, and its behaviour is always right.

     

    I thank You in advance for any help on this matter. 

    Best Regards,

    Sergio

  • SergioNavarro Profile Picture
    22 on at

    Hello @Meneghino ,

     

    thanks for your help. It seems that the issue was due to some PowerApps "feature". WIthout any changes the issue was solved and the function is stable since then.

     

    Sorry for the late reply and thanks for your help.

     

    Best Regards,

    Sergio

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

Season of Sharing Community Challenge Winners!

Congratulations to our community stars!

Kudos to our 2025 Community Spotlight Honorees

Expanding mentorship, skilling, and AI innovation

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 396 Super User 2026 Season 2

#2
Mohsin Ali Profile Picture

Mohsin Ali 323

#3
WarrenBelz Profile Picture

WarrenBelz 193 Most Valuable Professional

Last 30 days Overall leaderboard