So first off lets create a module to deploy our data connection file, download the one you put into your data connection Library. I'm just going to do the submitNewEmployee.udcx.
In your project add a module, remove the sample.txt file and add your submitNewEmployee.udcx file to the module.
With that complete, open up the elements file for your module, it should look something like this:
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="DataConnectionModule"> <File Path="DataConnectionModule\submitNewEmployee.udcx" Url="DataConnectionModule/submitNewEmployee.udcx" /> </Module> </Elements>We're going to make a couple changes to it:
- Add the URL and Path to the module
- Remove the Path from the file
- Simplify the URL for the file, you specify it in the Module "Lists/DataConnections"
- Add the Type and ignore properties to the file
- Add a property node to the file
<?xml version="1.0" encoding="utf-8"?> <Elements xmlns="http://schemas.microsoft.com/sharepoint/"> <Module Name="DataConnectionModule" Url="Lists/DataConnections" Path="DataConnectionModule"> <File Url="submitNewEmployee.udcx" Type="GhostableInLibrary" IgnoreIfAlreadyExists="TRUE"> <Property Name="Title" Value="submitNewEmployee" /> </File> </Module> </Elements>changes are highlighted in yellow.
Make sure, that your module is in the feature manifest, the right hand column.
After you deploy your project open up your data connection library to verify that your file was deployed. check the modified date to insure that you're looking at the most latest version and not just the one you uploaded from InfoPath.
now go ahead and download your submitNewEmployee.udcx file, open it up and take a look inside. the one thing that should stick out and burn your eyes is highlighted.
<?xml version="1.0"?> <?MicrosoftWindowsSharePointServices
ContentTypeID="0x010100B4CBD48E029A4AD8B62CB0E41868F2B0004AFDC87700F120458D1316B308B71A11"?> <udc:DataSource MajorVersion="2" MinorVersion="0" xmlns:udc="http://schemas.microsoft.com/office/infopath/2006/udc"> <udc:Name>submitNewEmployee</udc:Name> <udc:Description>Format: UDC V2; Connection Type: SharePointLibrary; Purpose: WriteOnly; Generated by Microsoft InfoPath 2010 on 2013-05-30 at 14:27:52 by yoursite\Administrator.</udc:Description> <udc:Type MajorVersion="2" MinorVersion="0" Type="SharePointLibrary"> <udc:SubType MajorVersion="0" MinorVersion="0" Type=""/> </udc:Type> <udc:ConnectionInfo Purpose="WriteOnly" AltDataSource=""> <udc:WsdlUrl/> <udc:SelectCommand> <udc:ListId/> <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="0">http://yoursite/New Employee/</udc:FolderName> </udc:UpdateCommand> <!--udc:Authentication><udc:SSO AppId='' CredentialType='' /></udc:Authentication--> </udc:ConnectionInfo> </udc:DataSource>Now that does not seem very dynamic, and that's because it's not, what we are going to have to do is in our event receiver open this file up, update the url and save it up again. I'll tackle that in my next post.
Continued