How to submit an InfoPath form to a Windows SharePoint Services document library (826993)



The information in this article applies to:

  • Microsoft Office InfoPath 2003
  • Microsoft Windows SharePoint Services
  • Microsoft Office InfoPath 2003, Service Pack 1 (SP1)

INTRODUCTION

In Microsoft Office InfoPath 2003, you cannot submit form data to a Microsoft Windows SharePoint Services document library directly. This article describes how to design a form template that uses script to submit form data to a Windows SharePoint Services document library.

In InfoPath 2003 Service Pack 1, you can submit the form data to a Windows SharePoint Services document library directly by using the UI. This article contains the steps that you have to use to do this.

back to the top

MORE INFORMATION

Design your form data source and layout

  1. Start InfoPath 2003. Design a new blank form.
  2. In the Data Source task pane, add a data source to your form. To do this, follow these steps:
    1. Right-click myFields, and then click Add.

      The Add Field or Group dialog box appears.
    2. Type FirstName as the name of the field, and then click OK.
    3. Repeat step a. Type MiddleInitial as the name of the field, and then click OK.
    4. Repeat step a. Type LastName as the name of the field, and then click OK.
  3. Add myFields to your form.
  4. Click Section with Controls.
back to the top

Submit the form data to a SharePoint Services document library

You can use script or the UI to submit the form data to the SharePoint Services document library.

back to the top

Use script to submit the form data to a SharePoint Services document library in InfoPath 2003

  1. On the Tools menu, click Submitting Forms.

    The Submitting Forms dialog box appears.
  2. In the Submitting Forms dialog box, click Enable Submit.
  3. In the Submit box, click Submit Using Custom Script.
  4. Click Open Microsoft Script Editor, and then click OK.

    Microsoft Script Editor starts.
  5. Modify the OnSubmitRequest event as follows.

    Note You must change the value of the strURL variable to a valid URL in the code. The URL in the following code sample references a server that is named ServerName, a SharePoint site that is named SiteName, and a document library that is named DocumentLibraryName.
    function XDocument::OnSubmitRequest(eventObj)
    {
        // If the submit operation is successful, set
        // eventObj.ReturnStatus = true.
        var fSuccessful = false;
     
        // Set the URL of the file that you want to submit here.
        var strUrl = "http://ServerName/SiteName/DocumentLibraryName/testform.xml";
     
        try 
        { 
            // Create an xmlhttp object.
            var oXmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
     
            // See whether the document with the same name already exists in the Windows SharePoint Services (WSS) document library.
            oXmlHttp.Open("HEAD", strUrl, false); 
            oXmlHttp.Send(); 
     
            //  No document with the URL has been found. Continue to submit.
            // If you must replace the original file, you must call
            // oXmlHttp.Open("DELETE", strUrl, false) to delete the document 
            // in the WSS document library.
            if (oXmlHttp.Status == 404) 
            {
                // Put the document in the WSS document library. 
                oXmlHttp.Open("PUT", strUrl, false); 
                oXmlHttp.Send(XDocument.DOM.xml);
     
                //  A 200 status code or a 201 status code indicates that the form has been submitted successfully.
                if (oXmlHttp.Status == 200 || oXmlHttp.Status == 201)
                {
                    fSuccessful = true;
                }
            }
        } 
        catch (ex){} 
        
        if (fSuccessful)
        {
            XDocument.UI.Alert("Document submitted successfully."); 
            eventObj.ReturnStatus = true;
        }
        else
        {
            eventObj.ReturnStatus = false;
        }
    }
    
  6. Save the script. Close Script Editor.
  7. Save your form template as SubmitToWSS.xsn.
back to the top

Use the UI to submit the form data to a SharePoint Services document library in InfoPath 2003 Service Pack 1

  1. On the Tools menu, click Submitting Forms.

    The Submitting Forms dialog box appears.
  2. In the Submitting Forms dialog box, click Enable Submit commands and buttons.
  3. In the Submit to section, click SharePoint form library.
  4. In the Submitting Forms dialog box, click Add.

    The Data Connection Wizard starts.
  5. Input your SharePoint Services form library link in the SharePoint form library box.

    Your library link may look similar to the following:

    http://ServerName/SiteName/DocumentLibraryName
  6. Type the document name in the File name box.

    You can use a document name such as TestForm.

    Click Next.
  7. In the Data Connection Wizard, click Finish.
  8. In the Submitting Forms dialog box, Click OK.
  9. Save your form template as "SubmitToWSS.xsn."
back to the top

Test your form

  1. On the File menu, click Fill Out a Form.
  2. In the Fill Out a Form task pane, click SubmitToWSS.
  3. Complete the form.
  4. On the File menu, click Submit.

    If the form is submitted successfully, you receive a message that indicates this.
  5. Quit InfoPath. If you are prompted to save your changes to the form, click No.
  6. Start Microsoft Internet Explorer. Locate your document form library.

    For example, your document form library may be http://ServerName/SiteName/DocumentLibraryName.

    A new item that is named testform is in the document library.
  7. Click testform.

    The form that you submitted opens in InfoPath 2003.
back to the top

REFERENCES

For additional information about how to obtain the latest service pack for Microsoft Office, click the following article number to view the article in the Microsoft Knowledge Base:

870924 How to obtain the latest service pack for Office 2003

For additional information about how to script with InfoPath 2003 forms, click the following article numbers to view the articles in the Microsoft Knowledge Base:

828853 How to change the script language for your InfoPath form

827002 How to debug a script for a Microsoft Office InfoPath 2003 Form

back to the top

Modification Type:MajorLast Reviewed:11/17/2004
Keywords:kbhowto kbXML kbScript kbForms KB826993 kbAudDeveloper