Microsoft KB Archive/826993

From BetaArchive Wiki

Article ID: 826993

Article Last Modified on 3/23/2007



APPLIES TO

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



INTRODUCTION

In Microsoft Office InfoPath, 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, 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 in InfoPath 2003

  1. Start InfoPath. 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

Design your form data source and layout in InfoPath 2007

  1. Start InfoPath 2007.
  2. Click Design a Form Template, click Blank, and then click OK.
  3. In the Design Tasks pane, click Data Source.
  4. Right-click myFields, and then click Add.
  5. In the Add Field or Group window, type FirstName as the name of the field, and then click OK.
  6. In the Add Field or Group window, type MiddleInitial as the name of the field, and then click OK.
  7. In the Add Field or Group window, type LastName as the name of the field, and then click OK.
  8. Add the myFields group to the form, and then click Controls in Layout Table.

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.

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


The Data Connection Wizard starts.

  1. 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

  1. Type the document name in the File name box.


You can use a document name such as TestForm.

Click Next.

  1. In the Data Connection Wizard, click Finish.
  2. In the Submitting Forms dialog box, Click OK.
  3. 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 2007

  1. On the Tools menu, click Submit Options.

    The Submit Options dialog box appears.
  2. In the Submit Options dialog box, click Allow users to submit this form.
  3. Click to select the Send form data to a single destination check box.
  4. In the drop-down list, click SharePoint Document Library.
  5. In the Submit Options dialog box, click Add.

    The Data Connection Wizard starts.
  6. Type your SharePoint document library link in the Document Library box.

    Your document library link may resemble the following:
  7. Type the document name in the File name box.

    You can use a document name such as TestForm.
  8. Click Next.
  9. In the Enter a name for this data connection box, type a name for this data connection.
  10. In the Data Connection Wizard, click Finish.
  11. In the Submit Options dialog box, click OK.
  12. Save your form template as SubmitToWSS2007.xsn.

back to the top

Test your form in InfoPath 2003

  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.

  1. Quit InfoPath. If you are prompted to save your changes to the form, click No.
  2. 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.

  1. Click testform.


The form that you submitted opens in InfoPath 2003.

back to the top

Test your form in InfoPath 2007

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


If the form is submitted successfully, you receive a message that indicates this.

  1. Quit InfoPath. If you are prompted to save your changes to the form, click No.
  2. Start Windows 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.

  1. Click testform.


The form that you submitted opens in InfoPath 2007.

back to the top

REFERENCES

For more 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 more 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

Keywords: kbhowto kbxml kbscript kbforms KB826993