I am trying to make an RSVP tool, and I need to limit the number of "Seats" aka the number of items submitted to a list. I found and used Peter Kalmstrom's option, but I do not like how one has to reserve a seat. The problem with Peter's option, is that once this event is done, I have to manually go in and clear the information before starting a new event. I cant just add a new event for the users to select.
I would like to just specify that there are 15 seats available for this event, and the first 15 who submit an item will get a seat. Once all of the seats are taken, SharePoint will either stop displaying the New item button, or they will receive a message saying that the event is full.
I currently have it set up so that I have a calculate column that is +15 from the ID. So If I start with ID-0 I have 15 seats. I then subtract the ID from the calculated column and I have a workflow that says if seat number =0 then change users permissions to read. Once the event is done, I have to change the next event to have a max of 30 because the ID will now be at 15. Just is going to become a pain I can tell.
Anything helps. Let me know if you need more information or screenshots of what I currently have.
Solved! Go to Solution.
how about this:
This way you could add new events by just adding one new item to list A without touching list B at all. Maybe you can even display the number of free seats in the lookup column, so user will see the number of seats available when chosing the event. Additionally you can group the list B view by event to get a better overview.
So for A-Events are you saying
Name Max # of Seats Number of current reservations Calculated column(Seats left)
Party 15 0 15
workflow lookup per event name, then pulls back seats left, if it does not =0 then allow them to reserve a seat.
workflow then subtracts seats left by 1
I see, I see. this might work.
I will try this tomorrow and let you know.
Thanks for your help.
Thank you! It worked. Now I want to set the form up so that when the available seats=0, the submit button is hidden, and box appears over the form saying sorry this event is full. I have a list lookup on the form that looks at the events list, seats available column. The problem with this is that the form displays the available seats column shown below.
The rule that I created hiding the submit button is
seatsavailablelookup!="0"(hide) but that does not work.
Not sure how I can get this to work but its the last thing I need before I can pass this form up the chain.
Just wondering how you managed to calculate seats left, since a count related column (no. of current reservations) cannot be used in a calculation column. Or did you use a different method to count the number of current reservations?
The seats available is a [Single line of text] Column where.
I made it so when I want to create a new event. I enter the Max Number of seats that I want available to be reserved. Then I enter the number of available seats. Being that I just created the new event, I make the available seats equal to as the max number of seats.
Max seats ---> 15
Available seats --->15
When someone wants to reserve a seat, they start a workflow which has a math operation that subtracts one from available seats.
When available seats=0 the event closes automatically.
If you need I can export the workflows or forms if you need.
ah OK... quite different from what I was trying to do.
I added a count related column to count the number of bookings already made, and then was trying to do a calculation of 'max seats' - 'seats booked'.
I managed to get around the count related column by starting a workflow to query the list and return the count in a variable... but then I got stuck!
If you could share your workflow screenshots that would be really helpful!
I have two lists 1) The event signup form 2) the event list. Below are the columns I used for the ERGEvents
Event- Single line of text
Date and Time- Date and time
Location- Single line of text
Max number of seats- Number
Seats available- Single Line of text
On the event sign up form I created a workflow that subtracts one from the seats available column within the ERGEvents.
I Query the Event Location( Single line of text) and Date And Time(Date and time) into variables.
I then update the item on the form when the ERG Event ID = the List ID. This is because we can have multiple events running at one time, and we want to make sure the update item action, updates the correct event information.
Math Operation- Subtracts 1 from seats available. Create two variables, both number
BUT make one of them, in my case SeatAvalablemath(working too fast to spell check) default value as 1
Then Add a math operation and format is like... Looking up the event when they match and subtracting by the variable which is 1, then saving it as NSeatSava
The workflow then updates the ERGEvents list with the NSeatSava(No idea why I named it that...)
I then set the seat number- on the Form LIST.
Now. Within the form. I added a List Lookup to the ERGEvents list. Next to the Review event. Now that gives you the most up-to-date information because the workflow above is updating that list every time its ran. The form is just a preview.
2) is the event title list lookup shown below under list view.
I know this is a mess but I hope it helps.
Thank you so much for taking the time to put those instructions together for me Jacob! I will have a crack at it today and see how I go.
I have a solutions setup very much as you outlined, and it has been working fine for some time, but now we are sending emails to a large body of users and many of them are following the link to "register" for an class, and the workflow is not having time to complete the update to the seat count field before the next item arrives. This leads to several people getting the same seat number.
I am looking for what to change in the workflow to check if the "Class" list has been updated before the next time attempts to assign a seat. If I add a pause, then it just pushes the event out but it can still have an issue. I needs some step that can check to check if other workflows have been launched, then have them execute in order of submission.