forge

InfoPath contacted a data source but failed to receive data

I’m doing some testing on a form including some security testing. One of the things that I ran into was the following error (details shown):

Help Your SharePoint User

The form uses Universal Data Connections (UDCX). The user I’m testing doesn’t have write access to some of the reference lists. When I dug into the issue, I got tons of hits for Kerberos issues and some for the LSA Loopback check issue. However, the issue that I found was that my UDCX file included entries for update as well as reading the data. This was the default UDCX file that InfoPath created – take a look:

<?xml version=”1.0″ encoding=”UTF-8″?>
<?MicrosoftWindowsSharePointServices ContentTypeID=”0x010100B4CBD48E029A4ad8B62CB0E41868F2B0″?>
<udc:DataSource MajorVersion=”2″ MinorVersion=”0″ xmlns:udc=”http://schemas.microsoft.com/office/infopath/2006/udc”>
<udc:Name>Sites</udc:Name>
<udc:Description>Format: UDC V2; Connection Type: SharePointList; Purpose: ReadOnly; Generated by Microsoft Office InfoPath 2007 on 2009-10-19 at 07:55:36 by DEMO\Administrator.</udc:Description>
<udc:Type MajorVersion=”2″ MinorVersion=”0″ Type=”SharePointList”>
<udc:SubType MajorVersion=”0″ MinorVersion=”0″ Type=””/>
</udc:Type>
<udc:ConnectionInfo Purpose=”ReadOnly” AltDataSource=””>
<udc:WsdlUrl/>
<udc:SelectCommand>
<udc:ListId>{7159DFE5-D236-472A-81B8-D031EAE14F59}</udc:ListId>
<udc:WebUrl>http://wss/sites/moc/</udc:WebUrl>
<udc:ConnectionString/>
<udc:ServiceUrl UseFormsServiceProxy=”false”/>
<udc:SoapAction/>
<udc:Query/>
</udc:SelectCommand>
<udc:UpdateCommand>
<udc:ServiceUrl UseFormsServiceProxy=”false”/>
<udc:SoapAction/>
<udc:Submit/>
<udc:FileName>Specify a filename or formula</udc:FileName>
<udc:FolderName AllowOverwrite=””/>
</udc:UpdateCommand>
<!–udc:Authentication><udc:SSO AppId=” CredentialType=” /></udc:Authentication–>
</udc:ConnectionInfo>
</udc:DataSource>

All I did to resolve the problem was to remove the <udc:UpdateCommand/> tag so that the UDC didn’t have an update option. That didn’t in and of itself resolve the issue — but as soon as I reuploaded and checked in the UDC files they started working — the UDCs were not checked in in my connections library.  Doh!