cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
nikhilab
New Member

Check-in feature for desk booking app on PowerApps

Hello,

 

I developed an app using PowerApps for booking a desk at the office. It lets you select the date/time and shows the list of available desks based on region/floor from a SharePoint list and confirms the booking. I now am trying to add a check-in feature that let's you check in to your desk 15min before the desk reservation time and automatically cancels the reservation and makes the desk available to others if check-in doesn't happen 15min after the reserved time.

 Any help with this?

 

PS: My SharePoint site has a list for 'desks available' and 'desk reservations' (got from PowerApps). And PowerApps has a welcome screen, a screen for upcoming reservations (this is where I want the check-in feature) and a various screens to do the booking process.

 

Thanks

Nikhila

1 ACCEPTED SOLUTION

Accepted Solutions
v-yangar-msft
Microsoft
Microsoft

Hi @nikhilab ,

 

Yes, I recommend that you add a column for check-in and IsAvailable. Because the 15-minute timer function you want to implement is best executed in the cloud with Flow, so that we can use the status of  two columns to judge and whether to reserve the reservation after fifteen minutes.

If you use Timer in the app itself, once you close the app or the screen goes to sleep, the timer may stop working.

Besides, you want to use the lookup function for floors and cities, you can add two drop down controls to realize it as below:
1.Add two choice columns in SharePoint list:

v-yangar-msft_0-1611736344860.png

 

  1. Add two drop down controls and set the items property of them to:
    Choices(DeskList.Cities)

Choices(DeskList.Floors)

  1. Set the items property of gallery to:

Filter(

    DeskList,

    CityDropdown.Selected.Value = "All" Or Cities.Value = CityDropdown.Selected.Value,

FloorDropdown.Selected.Value = "All" Or Floors.Value = FloorDropdown.Selected.Value,

"true" in IsAvaliable

)

4.When you choose New York and Floor Number2, it will shows as below:

v-yangar-msft_1-1611736344863.png

 

Finally, you would like the check-in option to show under the upcoming reservations as shown below, and the button should be disabled 15min past the booking time and the desk is made available to others.

In my former post, I recommend to use Flow to realize this requirement. You can use the column of “Check-in” to judge whether make this reserved desk available after 15min past the booking time.

 

 

Hope it helps!

 

Thanks,

Arrow

View solution in original post

4 REPLIES 4
v-yangar-msft
Microsoft
Microsoft

Hi @nikhilab ,

 

Based on your description, may i know how do you check in to your desk in your scenario? 

Because i don't know how do you use 'Check in' in your side, here i assume that check-in is a status column in my SharePoint.

Per your description, you want to realize 3 key point in your app.

1. Show the available desks based on the floor, just like below:

v-yangar-msft_2-1611213506606.png

 

 

v-yangar-msft_3-1611213506611.png

 

2. Select the data/time of using desk:

v-yangar-msft_4-1611213506615.png

 

3. After booking desk, you should check in to your desk 15min before the desk reservation time and automatically cancels the reservation and makes the desk available to others, here you can use powerapps automate to realize it.

 

For the first point, you should add a dropdown control and set the items property of it to:

["Floor1","Floor2",”…”]

Then you can set the items of  gallery which shows the available desks to:

// Dropdown1.SelectedText.Value is the floor which you chose currently,  1- corresponding floor1.

Switch(Dropdown1.SelectedText.Value,"Floor1",Filter(DeskList,"true" in IsAvaliable,"1-" in Title),"Floor2",Filter(DeskList,"true" in IsAvaliable,"2-" in Title),Floor3,…….)

//DeskList is the SharePoint list in my tenant as below:

v-yangar-msft_5-1611213506617.png

 

 

For the second point, firstly, add all the fields from SharePoint List, add an Edit Form.

Then you should add two drop down control besides the Date picker field. One drop-down control is for displaying the Hour and the other one is for displaying the Minutes.

Next, select the Hour drop-down control and apply this below formula on its Items property as:

["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]

Similarly, Select the Minutes drop-down control and apply this below formula on its Items property as:

["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59"]

Finally, together with the DatePicker control, within one DataCard, then use the following formula to combine the time value with the date value under the Update property of the DataCard control:

DateValue1.SelectedDate + Time(Value(HourDropdown.Selected.Value), Value(MinutesDropdown.Selected.Value), 0)

 

For the third point, you should use Powerapps automate to time:

v-yangar-msft_6-1611213506621.png

 

 

In the Delay, you can set 15 minutes as a timer.

Then you can get the item and put the ID from powerapps here.

Next use condition to judge, Check-in is the status, if you dont check in your desk 15min before the desk reservation time, the value of IsAvaliable will be update to No and it make the desk available to others.

Otherwise, this automate will terminate and you can continue to use this desk.

Finally, you should set the current ID as variable in powerapps:

//here I set the DeskID as variable

v-yangar-msft_7-1611213506621.png

 

You can trigger this Automate to time 15 minutes after booking desks, you can put the Automate here:

v-yangar-msft_8-1611213506623.png

 

 

Besides, you can set the text properties of StartTime and EndTime to :

// Label1.Text is the value of IsAvailable, the formulas aim to clear the date/time if the status of IsAvailable is true.

If("false" in Label1.Text,ThisItem.BookingStartTime,"")

If(false in Label1.Text,ThisItem.BookingEndTime,"") 

 

Hope it helps!

 

Thanks,
Arrow

Hello Arrow,

Thank you for the help.

 

I do not have a 'check-in' column on the SharePoint site. A would prefer a 'check-in' button on PowerApps. Do you recommend that I add a column for check-in and IsAvailable?

Adding a little more information for a better understanding :

This is how the SharePoint lists look like, desk reservations is automatically generated and I am using the lookup function for floors and cities:

Capture9.PNGCapture10.PNG

And I  would like the check-in option to show under the upcoming reservations as shown below, and the button should be disabled 15min past the booking time and the desk is made available to others.

 

Capture1.PNGCapture6.PNG

 

Capture11.PNG

 

Thanks

Nikhila

v-yangar-msft
Microsoft
Microsoft

Hi @nikhilab ,

 

Yes, I recommend that you add a column for check-in and IsAvailable. Because the 15-minute timer function you want to implement is best executed in the cloud with Flow, so that we can use the status of  two columns to judge and whether to reserve the reservation after fifteen minutes.

If you use Timer in the app itself, once you close the app or the screen goes to sleep, the timer may stop working.

Besides, you want to use the lookup function for floors and cities, you can add two drop down controls to realize it as below:
1.Add two choice columns in SharePoint list:

v-yangar-msft_0-1611736344860.png

 

  1. Add two drop down controls and set the items property of them to:
    Choices(DeskList.Cities)

Choices(DeskList.Floors)

  1. Set the items property of gallery to:

Filter(

    DeskList,

    CityDropdown.Selected.Value = "All" Or Cities.Value = CityDropdown.Selected.Value,

FloorDropdown.Selected.Value = "All" Or Floors.Value = FloorDropdown.Selected.Value,

"true" in IsAvaliable

)

4.When you choose New York and Floor Number2, it will shows as below:

v-yangar-msft_1-1611736344863.png

 

Finally, you would like the check-in option to show under the upcoming reservations as shown below, and the button should be disabled 15min past the booking time and the desk is made available to others.

In my former post, I recommend to use Flow to realize this requirement. You can use the column of “Check-in” to judge whether make this reserved desk available after 15min past the booking time.

 

 

Hope it helps!

 

Thanks,

Arrow

View solution in original post

Hi,

I'm trying to implement it, having the same app as the original poster. I was wondering if you could help with a sample solution to his query? - I'm struggling to implement the functionality that allows the user to 'check-in', which lets you check in to your desk 15 minutes before the desk reservation time, and up to 15 minutes after the reservation time. If the user doesn't do it, it would make the desk available again for another user to book (meaning that reservation is now cancelled) or deleted. 

 

I have the same setup as the original poster, I've added the 'check-in' and 'isAvaliable' columns. I would really appreciate it if you could help.

 

Thank you.

Helpful resources

Announcements
PA_User Group Leader_768x460.jpg

Manage your user group events

Check out the News & Announcements to learn more.

Community Connections 768x460.jpg

Community & How To Videos

Check out the new Power Platform Community Connections gallery!

Welcome Super Users.jpg

Super User Season 2

Congratulations, the new Super User Season 2 for 2021 has started!

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Users online (1,253)