4

The task

An executive report is compiled on a monthly basis with submissions from various departments. Currently a Word document is received from each department and they have to be manually merged together.

Streamlining the process

Requirements

I want to enforce some consistent structure to what users submit. I plan to use a form with fields for text and uploading an image. I'd prefer to use an HTML form rather than use InfoPath for aesthetic reasons and to avoid parsing the XML files that InfoPath creates, especially if they contain images embedded as base64.

The submissions then need to be automatically combined and then put into a Word document so it can be edited.

Nice to have

I'd like the user to open a link to a web form they then fill in and submit without seeing the SharePoint UI at all. The editor then opens another web page where they view the compiled submissions and can download them as a Word document for editing.

I'd also like some kind of dashboard that indicates who is yet to submit their section.

Constraints

I have a SharePoint 2010 site. I have SharePoint Designer but not Visual Studio (and I'm not sure IT will let me). Therefore, my approach is to create webpages and host them on the SharePoint, and process the input client-side using JavaScript. I could possibly get Office 365 and SharePoint online before it's rolled out across the company. The report is confidential, hence hosting them on the company SharePoint. I also have a company box.com account. I'm not concerned with users seeing each other's submissions.

My approach

My approach is to host a simple web page with an HTML form on the SharePoint. When the user submits the form, the contents is saved to the SharePoint, perhaps as a text/JSON file and an image file if the user submits one. I would then have a second web page that the editor visits, that has some JavaScript to read the submissions and display them as HTML. It would also show who has submitted their section. Then I can use an HTML-to-docx JavaScript library to allow the editor to create the Word document. This would all happen client side.

The question

Can I use client side JavaScript to save files to SharePoint 2010? Online docs mention a REST API (unfamiliar with REST) introduced with SharePoint 2013. Or, should I see if I can get a SharePoint Online site, or should I try a different approach altogether?

3

I think this is possible without any REST API or JavaScript. I recently did something similar for the project highlight reports. I am sure it will work on 2010 but I did this on SharePoint online: Here are the steps:

  1. Create the list with the appropriate fields (or create content type) and configure permission for the list and also the item level permissions. Have a look at this if you are not sure how to do this.
  2. In the Advance Setting ensure that 'Launch forms in a dialog?' is set to 'Yes'
  3. Create two site pages i)where you will have the link for the users to click to complete the form. URL should be like https://yoursite/list/listname/newform.aspx?source=https://yoursite/pages/thank you.aspx 2)a thank you page where user will be redirect after form is submitted. This way user won't see the list but even if reached through the url they will see only their own item. More details here
  4. Create a Word Document and use mail merge feature to connect the data to present the report to Admins. If you are on SharePoint Online/Office 365 you could use MS Flow to create a Word file.

You can use REST API and JScript: You will need to create the HTML form (Content Editor webpart could be used) and make a POST request to the relevant list to submit the data. Have a look at this for more details

  • Hi, I'm unclear on step 3. Is that an http GET request in the URL? Why do the URLs use backslashes? What do I need to do? – William Aug 25 '17 at 9:53
  • 1
    I have updated my answer and provided a link for detail. It is very simple. Let me know if you need more details. – SharePointer Aug 25 '17 at 10:43
  • Did u manage to get working? – SharePointer Aug 28 '17 at 11:07
  • I got steps 1-3 working, thank you. I couldn't figure out how to use mail merge with SP in step 4. I think I'd prefer to create my own HTML form rather than use the SP dialog box. I'm now trying to use the REST API and JS. I copied the script you linked to into a blank html page (I didn't use a webpart), changed the list name and changed "_spPageContextInfo.webAbsoluteUrl" to the URL of my site. This produces the console error "jquery-1.9.1.min.js:5 POST teams.***.com/sites/***/isexecreport/_api/web/lists/getbytitle('MyList')/items 404 (NOT FOUND)" – William Aug 29 '17 at 13:31
  • I think the issue is that the example you linked to is for the SharePoint 2013 rest API, and the URL has changed. For 2010 it should be of the form: "/_vti_bin/listdata.svc/" + querystring michaelsoriano.com/… – William Aug 29 '17 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.