Click here to Skip to main content
15,949,741 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Dear All,

I am working on infopath form. My form has a radio box which allows any number of users to click only 3 times. third time it greys out. everytime user click on the radio button the value saved into the library. and replicated the value in the expression field to minus one for new user in the browser. so 3 values gets saved in the library by 3 users.

This is working well if 1 time one user opens the form and saves but not with multiple users.

i sent this form link to 100 users. many click on the link at once and click on the radio box.

now infopathform failed to recognise that only 3 times 3 users can click on the radio button. it accepted all the users value and radio box greyed out. the value set in the radio box from 3 went to -47. and all 47 values saved in the library. wheres it should be only 3.

How i can make the form to open in browser with strictly calculating 3 values from the library for multiple users.
Posted

1 solution

When 100 users open the same form you have 100 seperate instances not one single instances for 100 users. You do undestand how web applications work right?

If the requirement is to only allow three users to click the button regardless of how many users open the form then Infopath is not the right choice. You would need to query the list to check the values before handling the click, ideally you could use the Client Object Model for out of band updates on an application page or webpart. However, you must also figure in latency and how you will handle concurrency. It is also very unlikely 100 users will open the same form at the same time so you need to handle cases where the number of clicks has already been exceeded when the form is opened.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900