printable non-digital signature in infopath form - how to improve user experience? - infopath

I have a timesheet in a browser-compatible InfoPath 2010 form, which is being submitted to a SharePoint Enterprise 2010 document library. The timesheet has to be signed by the user and their manager, and printable (including the signatures). It is for internal use, and we are not using digital signatures because they expire. The signature area is set up as follows:
If a user checks a checkbox, two fields populate: their username and the current date/time - this is considered the signature
User submits the form
Workflow kicks off to notify user's supervisor that they need to sign
Supervisor receives workflow email
Supervisor opens email, follows link to open InfoPath form
Supervisor checks supervisor approval checkbox
Supervisor updates workflow
Supervisor submits form
I'm concerned that the supervisor may forget, or not bother, to update the workflow before submitting the signed form.
Is there a better way to collect the supervisor signature?

What about having the workflow submit the form?
Assuming the (4.) Workflow email is tied to a task list, the email should point the person to the task item, not the InfoPath form.
The form could be displayed (web part) along with the task so the supervisor can see the data. When the task is completed (Ok, Done, whatever), the workflow updates "approval" box on the InfoPath form (actually whatever library / DB table you are using to handle that field). The task (approve this timesheet) is completed and the approval is recorded. If you want printed copies of the form, you could trigger that from the task completion or just make sure they know where the forms are stored.
You would have to create a custom task page/form to include the InfoPath display web part.
Optionally, if you are doing something to automate the form submittals, you could use that to complete the workflow (mark the task complete).

Initially, I was using the out of the box Approval workflow to send the email to the user's supervisor. What I ended up doing was just sending a custom email to the supervisor with a link to the InfoPath form, so that they could click the checkbox within the form, and not using the Approval workflow at all. This streamlined the process for the supervisor.

Related

Coding automatic reply buttons in ASP.NET email generated message

I am working on building a workflow application. My application automatically determines who an Approver should be based on business logic and generates an email to them with summary information requesting there approval.
I am trying to figure out how I can add an approval and reject button to the email, so that when the Approver clicks it automatically replies to the email with Approve or Reject in the body, and possibly appending it to the mail subject line.
Any help or links to resources on how to do something like this would be appreciated; I searched and searched and haven't come up with anything.

User-forget-password implementation in ASP.NET MVC

I'm trying to use ASP.NET MVC to implement the functionality of user retrieving his password once he forget it. This functionality uses SMS authenticating mechanism for verifying users who forget their password and the procedure of that functionality is listed as follows:
User types his username on a text input of the web page and click "submit" button.
The system checks the user in database with the input user name.
2.1 If the user is not found in database, the system will display a message that the given user name is not correct.
2.2 Otherwise the system will retrieve the phone number field of that user.
The system generates a 6-digits verifying code and send it to the mobile phone of that user by invoking external SMS Web Service.
The system displays a form and ask user to input the verifying code he gets from his mobile phone and click "submit" button.
The system compares the input code with the stored code.
5.1 If the two codes is the same, the system will display the password of that user.
5.2 Otherwise, the system will display a message that the given code is incorrect.
When implementing it, step 1 to 3 is relatively OK to me, but from step 4 on, I don't know what's a good way to make it. To be specific, I can come up with three questions so far:
How could the system handle step 4? Should the controller redirect to a different page for retrieving the input of verifying code? Or everything just need to be put
on one single page and the controller just reload it?
Where should I store the verifying code and password after step 3? Would the Controller or Model be destructed with the variables it stored lost from that moment on? If so, they have to pass the stored code and password to somewhere else. Should it be Session, TempData, ViewData or otherwhere?
Which layer of the system should handle the code validation logic at Step 5? The Model, View or Controller?

Is it Possible to have an ASP.NET Application in Microsoft Outlook

Users need to fill out an access request and once they are done and hit the submit, it emails the request to their supervisor.
Is it possible to email the entire form(with the user data and also to be filled fields by supervisor) in an email so that the supervisor can select accept and the change would be reflected in a SQL database from Outlook itself?
Emailing the form can be done. Writing an Outlook add-in can also be done. But you'll save yourself a lot of time if you just write an "approval" page in your web app and send a link to this page in the email to the supervisor. You can put any information you want in the email, of course.
ETA: But to actually suggest a solution: you could send an email that included a hyperlink, that included identifying information in the query string, and use that as a way of signalling to a web page or web service that the request should be approved. You'd have to work out something with security and authentication, of course, so that not just anybody could call that page and approve the request.

How to disable the back button in servlets?

I have created a web application and deployed it in tomcat7. This app works in the following way:
User logs in through proper authentication and then a test page(html) is displayed where user selects answers and submits the test. After submitting another servlet is called where score is displayed to the user.
The problem here is once after getting the score if the user goes back(through browser back button) and submits the test again,the score is being altered.What shall i do to prevent this?
The usual trick (which some framework provide for you) is, when the form is generated, to generate a token, store it in the user's session, as well as in a hidden field in the form. When the form is submitted, you compare the token you receive with the token in the session. If they match, you delete the token from the session and proceed with the form submission.
If the user goes back and resubmits the form, there won't be any token anymore in the session, and you'll display an error message instead of handling the form submission.
Another method is to code the form handling in order for the submission to be idempotent. For example, instead of blindly increasing the score, you can check if the question has already been answered by the user and ignore the second answer.

Deploy InfoPath form to a users who don't have access to Intranet

I would want to deploy an InfoPath (2007) form to users who at the time of filling the form, may not have internet access, then after filling it out, they can go to an internet cafe, connect their laptops to the internet and submit the form to a public web service. I don't want to deploy to SharePoint, I would just want to send the form directly to the user, something close to what you can do with an Adobe PDF form. Is this possible?
Thanks in advance.
I have done something similar before with Infopath 2003 a couple of years ago. I used submission via email though. The advantages of using the email is that it will sit in the outbox of outlook.
all our forms were emailed to a specific email address with a windows service that polled the inbox of the recieving mailbox to extract the form and continue with the workflow. found this was easier path to take than trying to submit to a public webservice. one was almost submit and forget (apart from opening email). Your scenario requires that the user fill out a form during the day and then remembering to submit when they are next connected to the internet is just asking for trouble, IMO.
People will tend to forget that they have to reopen the form and submit it next time they are online whereas if you submit it via email then the only thing they need to do is open and read their email at the end of the day.
I all comes down to user behaviour. if your users are willing to go through the processes that you are thinking about, then yes it is possible to do what you are suggesting.

Resources