<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.infopathdev.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Ernesto Machado</title><subtitle type="html" /><id>http://www.infopathdev.com/blogs/ernesto/atom.aspx</id><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/default.aspx" /><link rel="self" type="application/atom+xml" href="http://www.infopathdev.com/blogs/ernesto/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.31118.962">Community Server</generator><updated>2010-11-02T14:43:00Z</updated><entry><title>Create an InfoPath Dashboard form using QueryDocumentNodeSet</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2013/03/19/create-an-infopath-dashboard-form-using-querydocumentnodeset.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2013/03/19/create-an-infopath-dashboard-form-using-querydocumentnodeset.aspx</id><published>2013-03-19T15:16:00Z</published><updated>2013-03-19T15:16:00Z</updated><content type="html">&lt;p&gt;In the past we have shown how to create a SharePoint data view to show the data stored in DBXL. Here are some references:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a&gt;Create a SQL-based SharePoint Data View to access your DBXL Forms&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a&gt;Create a SharePoint 2010 Data View that uses GetListItems to access DBXL forms&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a&gt;Create a SharePoint Data View that uses GetListItems to access DBXL forms&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;These steps involve using SharePoint Designer 2007 or 2010. In SharePoint Designer 2013, the WYSIWYG editor is no longer available, which makes the process of creating a data view more difficult.&lt;/p&gt;&lt;p&gt;Using the QueryDocumentNodeSet web method, contained in the DBXL web service, we can create a codeless, browser compatible InfoPath form which acts as a data view or a Dashboard. &lt;/p&gt;&lt;p&gt;The package includes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Step by step instructions&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;InfoPathDashboard-QdExpenseReport.XSN&lt;/strong&gt; which is the Dashboard for the Expense Report doctype that comes with DBXL.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;InfoPathDashboard-CustomerContact.XSN&lt;/strong&gt; is the Dashboard after following the steps to reconfigure it to query from the &lt;strong&gt;CustomerContactForm.XSN&lt;/strong&gt; (that form template is also attached).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.infopathdev.com/files/folders/88173/download.aspx"&gt;Click here to download the package&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=88174" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL/default.aspx" /><category term="InfoPath Dashboard" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/InfoPath+Dashboard/default.aspx" /><category term="data view" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/data+view/default.aspx" /></entry><entry><title>Create an XTP to Lock and Unlock DBXL forms</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2013/01/18/create-an-xtp-to-lock-and-unlock-dbxl-forms.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2013/01/18/create-an-xtp-to-lock-and-unlock-dbxl-forms.aspx</id><published>2013-01-18T19:03:00Z</published><updated>2013-01-18T19:03:00Z</updated><content type="html">&lt;p&gt;This tutorial allows you to create an InfoPath template part (XTP) that will lock and unlock forms that are stored in DBXL. You can reuse this XTP in any form template where you wish to provide this functionality to your users.&lt;/p&gt;&lt;p&gt;Please &lt;a href="http://www.infopathdev.com/files/folders/86206/download.aspx"&gt;click here to obtain the PDF tutorial&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=86207" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL/default.aspx" /><category term="data integrity" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/data+integrity/default.aspx" /></entry><entry><title>SharePoint Designer Workflow error due to variable in email body</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/09/12/sharepoint-designer-workflow-error-due-to-variable-in-email-body.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/09/12/sharepoint-designer-workflow-error-due-to-variable-in-email-body.aspx</id><published>2012-09-12T14:12:00Z</published><updated>2012-09-12T14:12:00Z</updated><content type="html">&lt;p&gt;Qdabra Software recently was faced with an error when creating a SharePoint Designer workflow. When sending an email, if you insert a variable into the body of the email, it fails to save or publish the workflow.&lt;/p&gt;&lt;p&gt;For example, if you add the following to the email body:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82568/original.aspx" height="228" width="806" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Then the following error comes up when trying to publish the workflow.&amp;nbsp; &lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82569/original.aspx" height="122" width="1070" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If the variable is removed from the email’s body, there is no problem publishing the workflow.&lt;/p&gt;&lt;p&gt;Qdabra found a workaround for this:&lt;/p&gt;&lt;p&gt;1)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Create a string workflow variable. I called mine BlankString.&lt;/p&gt;&lt;p&gt;2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; After entering the variables in the email body, open the Properties tab for the email step.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82570/original.aspx" height="288" width="640" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click on the Body textbox and then click the &lt;b&gt;...&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82571/original.aspx" height="390" width="632" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Place the cursor after the text &amp;lt;/HTML&amp;gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82572/original.aspx" height="570" width="654" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;5)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click on Add or Change Lookup and insert the empty string variable.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/82573/original.aspx" height="528" width="652" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;6)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Click OK and publish the workflow.&lt;/p&gt;&lt;p&gt;This simple change will allow you to publish the workflow without issues.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=82574" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="SharePoint 2010 workflow" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/SharePoint+2010+workflow/default.aspx" /></entry><entry><title>So you have a SharePoint form library that you want to migrate to DBXL...</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/04/26/so-you-have-a-sharepoint-form-library-that-you-want-to-migrate-to-dbxl.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/04/26/so-you-have-a-sharepoint-form-library-that-you-want-to-migrate-to-dbxl.aspx</id><published>2012-04-26T14:32:00Z</published><updated>2012-04-26T14:32:00Z</updated><content type="html">
&lt;p&gt;Let&amp;#39;s pretend that you&amp;#39;ve been using a SharePoint Form Library and you have hundreds of documents (XMLs) already submitted. You found out about DBXL, purchased it and now want to make the full switch.&lt;/p&gt;
&lt;p&gt;Here are some general guidelines to help you with the migration. &lt;br /&gt;&lt;/p&gt;
&lt;p&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Edit the form template to add a DBXL submit. (You will find information on this in the &lt;a href="http://www.infopathdev.com/files/folders/installation_and_setup/entry74632.aspx"&gt;Getting Started&lt;/a&gt; document.) Because you are now submitting to DBXL, you will no longer need to submit to SharePoint directly. DBXL will handle that.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Create a DBXL document type. (Again, you will find information on this in the &lt;a href="http://www.infopathdev.com/files/folders/installation_and_setup/entry74632.aspx"&gt;Getting Started&lt;/a&gt; document.)&lt;/p&gt;
&lt;p&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;Add a SharePoint mapping to a new form library. (That way we keep the original library as a temporary backup in case we need to revert.) For information on creating this SharePoint mapping, see &lt;a href="http://www.infopathdev.com/files/folders/integration_with_sharepoint/entry65672.aspx"&gt;this document&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;4.&amp;nbsp;&amp;nbsp; &amp;nbsp;Use SharePoint&amp;#39;s Explorer view to copy the XML files from the existing form library to a local folder.&lt;/p&gt;
&lt;p&gt;5.&amp;nbsp;&amp;nbsp; &amp;nbsp;Import the XMLs into your document type using the Import web service. This can be done in two ways.&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin-left:40px;"&gt;a.&amp;nbsp;&amp;nbsp;&amp;nbsp; Via Internet Explorer on the server where DBXL was installed. Simply navigate to https://training.formsboard.com/QdabraWebService/DbxlImportExport.asmx?op=ImportDocuments to use the Import web service. You will need to provide the name of the document type you created (in step 2) and the path where the XMLs were stored (in step 4)&lt;br /&gt;&lt;/p&gt;
&lt;p style="margin-left:40px;"&gt;b.&amp;nbsp;&amp;nbsp;&amp;nbsp; Via the DBXL Admin Tool, in the Documents tab. However, note that this method will fail with a timeout, depending on the number of the documents to be imported.&lt;br /&gt;&lt;/p&gt;
If these steps do not satisfy your requirements, please contact support at qdabra dot com for additional options. Good luck!&lt;br /&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=78016" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL/default.aspx" /></entry><entry><title>Using SubmitToSharePointList in a MOSS 2007 browser form</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/04/05/using-submittosharepointlist-in-a-moss-2007-browser-form.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/04/05/using-submittosharepointlist-in-a-moss-2007-browser-form.aspx</id><published>2012-04-05T20:28:00Z</published><updated>2012-04-05T20:28:00Z</updated><content type="html">&lt;p&gt;We&amp;#39;ve recently seen some questions about the SubmitToSharePointList command in qRules. One common error is:&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;Security Exception - please check security requirements for this command.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;There are two solutions for this issue:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Set useWebServices node to true. You can do this by adding an action (before the SubmitToSharePointList action) that sets the useWebServices node to true().&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Make the form Full Trust. You can change this in Form Options.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=77219" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author></entry><entry><title>How to prevent a user from submitting duplicate data to DBXL</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/03/06/how-to-prevent-a-user-from-submitting-duplicate-data-to-dbxl.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/03/06/how-to-prevent-a-user-from-submitting-duplicate-data-to-dbxl.aspx</id><published>2012-03-06T14:14:00Z</published><updated>2012-03-06T14:14:00Z</updated><content type="html">&lt;p&gt;Imagine that your InfoPath form, which submits to DBXL, needs to make sure that there are no duplicate records. Using the web method QueryDocumentNodeSet, we can quickly check whether DBXL already contains a matching record. &lt;/p&gt;&lt;p&gt;For the purposes of this tutorial, we will implement the solution on a very simple form, though you can extend this as desired. You can download the PDF tutorial (13 pages, 950Kb) by clicking &lt;a href="http://www.infopathdev.com/files/folders/76121/download.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=76122" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL/default.aspx" /></entry><entry><title>How to turn off DBXL versioning</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/02/03/how-to-turn-off-dbxl-versioning.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/02/03/how-to-turn-off-dbxl-versioning.aspx</id><published>2012-02-03T20:06:00Z</published><updated>2012-02-03T20:06:00Z</updated><content type="html">&lt;p&gt;DBXL versioning is turned on by default, as it is necessary for certain scenarios. For safety purposes the checkbox in DAT is also disabled, so that it is not accidentally deactivated. (For a PDF version of this blog post, &lt;a href="http://www.infopathdev.com/files/folders/74943/download.aspx"&gt;click here&lt;/a&gt;.)&lt;br /&gt;&amp;nbsp;&lt;br /&gt;However, should you wish to turn off versioning (i.e. uncheck Enable History), follow these steps:&lt;/p&gt;&lt;p&gt;&lt;b&gt;Export&lt;/b&gt;&lt;/p&gt;&lt;p&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Download and install the DBXL Migration Tool. &lt;br /&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Launch the DBXL Migration Tool (UI). &lt;br /&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;Enter the &lt;b&gt;DBXL Server Root &lt;/b&gt;and click &lt;b&gt;Connect&lt;/b&gt;.&lt;br /&gt;4.&amp;nbsp;&amp;nbsp; &amp;nbsp;From the &lt;b&gt;Configuration &lt;/b&gt;dropdown, select your document type.&lt;br /&gt;5.&amp;nbsp;&amp;nbsp; &amp;nbsp;Check the checkbox for &lt;b&gt;Configuration &lt;/b&gt;under &lt;b&gt;Items to Export&lt;/b&gt;.&lt;br /&gt;6.&amp;nbsp;&amp;nbsp; &amp;nbsp;Enter an &lt;b&gt;Export Path&lt;/b&gt;.&lt;br /&gt;7.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click &lt;b&gt;Run&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Manually modify the mapping.xml file&lt;/b&gt;&lt;/p&gt;&lt;p&gt;8.&amp;nbsp;&amp;nbsp; &amp;nbsp;Open the mapping.xml created by the DBXL Migration Tool in the Export path. You can use Notepad or a similar text editor.&lt;br /&gt;9.&amp;nbsp;&amp;nbsp; &amp;nbsp;Find &lt;i&gt;&lt;b&gt;&amp;lt;HistoryFlg&amp;gt;true&amp;lt;/HistoryFlg&amp;gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;10.&amp;nbsp;&amp;nbsp; &amp;nbsp;Change this to &amp;lt;&lt;i&gt;&lt;b&gt;HistoryFlg&amp;gt;false&amp;lt;/HistoryFlg&amp;gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;11.&amp;nbsp;&amp;nbsp; &amp;nbsp;Save and close mapping.xml.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;b&gt;Import&lt;/b&gt;&lt;/p&gt;&lt;p&gt;12.&amp;nbsp;&amp;nbsp; &amp;nbsp;Back in the DBXL Migration Tool UI, switch to the &lt;b&gt;Import &lt;/b&gt;tab.&lt;br /&gt;13.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click &lt;b&gt;Load &lt;/b&gt;next to &lt;b&gt;Configuration&lt;/b&gt;. &lt;br /&gt;14.&amp;nbsp;&amp;nbsp; &amp;nbsp;Select the document type from the &lt;b&gt;Configuration &lt;/b&gt;dropdown.&lt;br /&gt;15.&amp;nbsp;&amp;nbsp; &amp;nbsp;Under &lt;b&gt;Items to import&lt;/b&gt;, check &lt;b&gt;Configuration&lt;/b&gt;. &lt;u&gt;Note&lt;/u&gt;: If you had a SQL Mapping configured, you’ll need to enter a value for &lt;b&gt;Database server &lt;/b&gt;and &lt;b&gt;Initial Catalog&lt;/b&gt;. These will match the Connection string in DAT.&lt;br /&gt;16.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click &lt;b&gt;Run&lt;/b&gt;. &lt;/p&gt;&lt;p&gt;When you go back into the DBXL Administration Tool, you’ll see that the checkbox for &lt;b&gt;Enable History&lt;/b&gt; is unchecked!&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=74944" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL versioning" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+versioning/default.aspx" /></entry><entry><title>Reusable Contact Selectors in InfoPath</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/01/25/reusable-contact-selectors-in-infopath.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/01/25/reusable-contact-selectors-in-infopath.aspx</id><published>2012-01-25T18:45:00Z</published><updated>2012-01-25T18:45:00Z</updated><content type="html">&lt;p&gt;&lt;i&gt;During Qdabra’s &lt;a href="http://www.qdabra.com/en/training/training.aspx"&gt;free weekly webinar&lt;/a&gt; on November 10, 2011, we discussed three possible contact selectors, their pros and their cons. This follow up blog post will summarize that webinar and provide you with XTP and XSN samples.&lt;/i&gt;&lt;span style="font-style:italic;"&gt; You can download the supporting files &lt;/span&gt;&lt;a href="http://www.infopathdev.com/files/folders/examples/entry74556.aspx" style="font-style:italic;"&gt;here&lt;/a&gt;&lt;span style="font-style:italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the main concerns when using a contact selector is that it should be reusable. After all, you probably will need similar functionality in more than one form. Save time by creating an InfoPath Template Part (XTP) and simply injecting it into your InfoPath form template (XSN)!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;People picker&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Microsoft provides users with one such reusable contact selector. It’s called the People Picker and it’s available, out of the box, in InfoPath 2010.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74555/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is definitely one advantage: it comes with InfoPath, so there’s nothing to set up, and it will connect with your SharePoint server to find users. &lt;br /&gt;&lt;br /&gt;The disadvantage is that the schema is locked. When you add this control to your form, you’ll see that the nodes have a small padlock next to them, meaning that you cannot modify them. You also cannot add more fields under the repeating node (/my:myFields/my:group/pc:Person).&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74557/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can perform some configuration on the control, such as allowing more than one user, but it’s not highly customizable.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74558/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The control is browser compatible, and the sample form that we include in this package is as well. Simply publish the form to your SharePoint server to test it.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74560/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight:bold;"&gt;Qdabra’s non-Active Directory Contact Selector XTP&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Going one step further we come to a contact selector that still obtains user info from SharePoint, but this one offers more flexibility. Notice that the schema is not locked, meaning that we can modify it as desired.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74561/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The XTP uses a connection to SharePoint’s UserProfileService to obtain the user’s info.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74562/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;But this XTP also has its own drawbacks, namely: you’ll need to search for user&amp;#39;s EXACT alias (there is no option for partial matches). In addition, there is no option to list all users. You search for a users alias, and select that user. In the example provided, we are also retrieving the user’s email address.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/74563/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;This XTP uses qRules for some actions, though it would be entirely possible to build a simpler non-Active Directory XTP, without qRules. Therefore, the XSN included in this package is injected with a trial version of qRules. If you have purchased the qRules, you can reinject the XSN with the full version.&lt;br /&gt;&lt;br /&gt;The XTP is included in the downloadable package. To use it:&lt;br /&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Create a new XSN form template and save it. &lt;br /&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Inject your XSN with qRules. &lt;br /&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;Add the XTP to your Controls, and then insert the XTP your canvas. &lt;br /&gt;&lt;br /&gt;Once the XTP is on your canvas, you’ll see some configuration steps you’ll need to follow.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Qdabra’s ContactSelector XTP&lt;/span&gt;&lt;br style="font-weight:bold;" /&gt;&lt;br /&gt;The previous two XTPs did not query Active Directory, but Qdabra’s Contact Selector XTP does. Why Active Directory? The Active Directory web service allows us to list all users as well as search for partial matches, and the results provided by this web service contain a wealth of information about the users.&lt;br /&gt;&lt;br /&gt;It has been discussed in a previous &lt;a href="http://www.infopathdev.com/blogs/mel_balsamo/archive/2009/12/14/qdabra-s-zero-activex-contact-selector-xtp.aspx"&gt;blog post&lt;/a&gt;, explained in a &lt;a href="http://www.youtube.com/watch?v=JQNsxcdOrAs"&gt;video demo&lt;/a&gt;, and it is available for sale on &lt;a href="http://www.qdabra.com/en/forms/QdContactSelector.aspx"&gt;Qdabra’s website&lt;/a&gt;. If you have any questions, please contact us at support (at) Qdabra (dot) com.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=74565" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="Contact Selector" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/Contact+Selector/default.aspx" /><category term="People Picker" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/People+Picker/default.aspx" /></entry><entry><title>Extract Attachments from your InfoPath forms</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/01/13/extract-attachments-from-your-infopath-forms.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/01/13/extract-attachments-from-your-infopath-forms.aspx</id><published>2012-01-13T17:11:00Z</published><updated>2012-01-13T17:11:00Z</updated><content type="html">&lt;p&gt;Imagine that you created an InfoPath form template where users can include an attachment. You published the form template to a SharePoint form library, and then your users submitted hundreds of forms. Each of those forms contains attachments, but those attachments are &amp;quot;stuck&amp;quot; inside your xml forms!&lt;/p&gt;&lt;p&gt;Luckily, using the DBXL Migration Tool, you can extract those attachments from your InfoPath forms, and store them in a separate location.&lt;/p&gt;&lt;p&gt;Qdabra Software has put together a package you can download, which includes a PDF guide as well as sample forms. To obtain it, simply &lt;a href="http://www.infopathdev.com/files/folders/73967/download.aspx"&gt;click here&lt;/a&gt;. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=73969" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="migration tool" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/migration+tool/default.aspx" /><category term="attachments" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/attachments/default.aspx" /></entry><entry><title>InfoPath 2010 Data Connection Wizard issue when using QueryDB or QuerySharePoint</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2012/01/12/infopath-2010-data-connection-wizard-issue-when-using-querydb-or-querysharepoint.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2012/01/12/infopath-2010-data-connection-wizard-issue-when-using-querydb-or-querysharepoint.aspx</id><published>2012-01-12T14:35:00Z</published><updated>2012-01-12T14:35:00Z</updated><content type="html">&lt;p&gt;When using QueryDB or QuerySharePoint in an InfoPath 2010 form, you might encounter behavior that is different from the behavior you are used to in InfoPath 2007.&amp;nbsp; When you get to the screen below, you enter values (per our previously documents for &lt;a href="http://www.infopathdev.com/files/folders/sql_integration/entry65681.aspx"&gt;QueryDB&lt;/a&gt; and &lt;a href="http://www.infopathdev.com/files/folders/integration_with_sharepoint/entry65674.aspx"&gt;QuerySharePoint&lt;/a&gt;). If you click Back in the Data Connection Wizard, the values are removed.&lt;/p&gt;&lt;p&gt;In addition, if you finish the Wizard, and set the data connection to execute on load, the data connection will fail in InfoPath 2010.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/73870/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is something that changed from InfoPath 2007 to 2010.&amp;nbsp; InfoPath 2010 behaves differently for some data connections, including QueryDB and QuerySharePoint. &lt;/p&gt;&lt;p&gt;In InfoPath 2007, you could:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Enter the Sample Value in the Data Connection Wizard.&lt;/li&gt;&lt;li&gt;Enter values in the following screen (labeled “Set Value”)&lt;/li&gt;&lt;li&gt;Set the data connection to run on load.&lt;/li&gt;&lt;li&gt;Preview the form and get results as expected.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you follow the same steps in InfoPath2010, the data connection may fail on load. Therefore, in InfoPath 2010, we recommend the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;When you create the data connection to QuerySharePoint, set it to NOT execute on load.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;In your form’s On Load rules, add a rule that will:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Set the value of the parameters (e.g. listUrl and query) using “Set a field’s value”.&lt;/li&gt;&lt;li&gt;Query using the data connection.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/73871/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=73872" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="Querysharepoint" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/Querysharepoint/default.aspx" /><category term="InfoPath 2010" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/InfoPath+2010/default.aspx" /><category term="queryDB" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/queryDB/default.aspx" /></entry><entry><title>Cannot Preview a form with qRules?</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2011/09/15/cannot-preview-a-form-with-qrules.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2011/09/15/cannot-preview-a-form-with-qrules.aspx</id><published>2011-09-15T18:58:00Z</published><updated>2011-09-15T18:58:00Z</updated><content type="html">&lt;p&gt;After injecting an InfoPath form with qRules, you might be unable to open the XSN in the designer and then Preview. The error indicates&lt;i&gt;&lt;b&gt;:&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;InfoPath cannot open the selected form because of an error in the form&amp;#39;s code.&lt;br /&gt;Policy settings prevent opening Internet forms with managed code. To fix this problem, contact your system administrator.&lt;/b&gt;&lt;/i&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;We have seen this error:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;on machines that are not joined to a domain&lt;/li&gt;&lt;li&gt;after performing an Internet Explorer upgrade, since these updates might reset your settings.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;If you are seeing this error, there are two possible fixes to consider.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;A. Modify the Internet Explorer security option causing the issue:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Launch Internet Explorer.&lt;br /&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click the Tools button, and then click Internet Options.&lt;br /&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;On the Security tab of the Internet Options dialog box, select the Local Intranet zone, and then click Sites.&lt;br /&gt;4.&amp;nbsp;&amp;nbsp; &amp;nbsp;In the Local Intranet dialog box, clear the Automatically Detect Intranet Network check.&lt;br /&gt;5.&amp;nbsp;&amp;nbsp; &amp;nbsp;Select all other check boxes.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70335/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;6.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click OK twice.&lt;br /&gt;7.&amp;nbsp;&amp;nbsp; &amp;nbsp;Preview your form.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;B. If you are unable to use the solution above, specify a preview domain in the Form Options dialog box of your form template. This forces InfoPath to believe that the form is being opened in the specified domain. The form must be set to Domain Trust for this option to work. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Launch Internet Explorer.&lt;br /&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click the Tools button, and then click Internet Options.&lt;br /&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;In the Security tab, select the Local Intranet zone, click Sites, and then click Advanced.&lt;br /&gt;4.&amp;nbsp;&amp;nbsp; &amp;nbsp;Add (or ensure that you&amp;#39;ve already added) the website to the domain you will use for previewing.&lt;br /&gt;5.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click Close, and then click OK twice.&lt;br /&gt;6.&amp;nbsp;&amp;nbsp; &amp;nbsp;Open your InfoPath form in Design mode.&lt;br /&gt;7.&amp;nbsp;&amp;nbsp; &amp;nbsp;Choose Form Options from the Tools menu.&lt;br /&gt;8.&amp;nbsp;&amp;nbsp; &amp;nbsp;Select the Preview category.&lt;br /&gt;9.&amp;nbsp;&amp;nbsp; &amp;nbsp;In the Domain text box, type the website that you added to the Internet Explorer Local Intranet Websites.&lt;br /&gt;10.&amp;nbsp;&amp;nbsp; &amp;nbsp;Click OK.&lt;br /&gt;11.&amp;nbsp;&amp;nbsp; &amp;nbsp;Preview your form.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=70336" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="qRules" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/qRules/default.aspx" /></entry><entry><title>How to iterate a qRules command</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2011/09/05/how-to-iterate-a-qrules-command.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2011/09/05/how-to-iterate-a-qrules-command.aspx</id><published>2011-09-05T12:51:00Z</published><updated>2011-09-05T12:51:00Z</updated><content type="html">&lt;p&gt;This technique comes from one of Qdabra’s own customers, John Shaw, who is a qRules user. This cool idea will iterate the SaveToSharePoint command for multiple file attachments. This tutorial builds on the example show in a &lt;a href="http://www.infopathdev.com/files/folders/qrules/entry59151.aspx"&gt;previous document&lt;/a&gt; by making the command repeating.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;1.&amp;nbsp;&amp;nbsp; &amp;nbsp;Create a new, blank form and inject it with qRules. For information on how to do this, please refer to the qRules User Guide.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;2.&amp;nbsp;&amp;nbsp; &amp;nbsp;Create the following initial schema, where &lt;i&gt;&lt;b&gt;DetachFile &lt;/b&gt;&lt;/i&gt;is a Boolean attribute, which defaults to &lt;b&gt;&lt;i&gt;false&lt;/i&gt;&lt;/b&gt;. For information on the &lt;i&gt;&lt;b&gt;qRulesLink &lt;/b&gt;&lt;/i&gt;and &lt;i&gt;&lt;b&gt;qRulesFilename&lt;/b&gt;&lt;/i&gt;, see the qRules User Guide.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70015/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;3.&amp;nbsp;&amp;nbsp; &amp;nbsp;Set a text box (&lt;i&gt;&lt;b&gt;AttachmentName&lt;/b&gt;&lt;/i&gt;) in the repeating section. This field allows the user to name the attachment being uploaded.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70016/original.aspx" height="221" width="262" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;4.&amp;nbsp;&amp;nbsp; &amp;nbsp;On the Boolean &lt;i&gt;&lt;b&gt;DetachFile &lt;/b&gt;&lt;/i&gt;node, create a rule that set the command node in the QdabraRules secondary data source to the command SaveToSharePoint. This rule will only execute when &lt;i&gt;&lt;b&gt;DetachFile &lt;/b&gt;&lt;/i&gt;is equal to true. The command will look like this:&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;&lt;b&gt;concat(&amp;quot;SaveToSharePoint /url=&amp;lt;YOUR_LIBRARY_URL&amp;gt; /xpath= /my:myFields/my:ContainerGroup/my:RepeaterGroup/my:Attachment /name=&amp;quot;, AttachmentName, &amp;quot; /overwrite=no&amp;quot;)&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;i&gt;[It makes a difference if the command has &amp;quot;/overwrite=no&amp;quot;. If it is set to YES, it will only ever use the first occurrence of the /name parameter. When it is set to NO, each item in the repeating table is given its correct, corresponding name.]&lt;/i&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;5.&amp;nbsp;&amp;nbsp; &amp;nbsp;Add a second action to reset &lt;i&gt;&lt;b&gt;DetachFile &lt;/b&gt;&lt;/i&gt;back to false.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70017/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;6.&amp;nbsp;&amp;nbsp; &amp;nbsp;Design the form to show the repeating section. The exact design is up to you, but the screenshot below shows an example:&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70018/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;7.&amp;nbsp;&amp;nbsp; &amp;nbsp;Add a button to the form and label it “&lt;i&gt;Upload attachments&lt;/i&gt;”. This button will use rules, and its only action is to set the Boolean attribute of the attachment field to true.&lt;/p&gt;&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/70019/original.aspx" alt="" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now when a user attaches more than one attachment and provides a filename for each attachment, clicking the button will iterate thru each attachment to upload it to SharePoint.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=70020" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="qRules" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/qRules/default.aspx" /><category term="SaveToSharepoint" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/SaveToSharepoint/default.aspx" /></entry><entry><title>GetEmployeesForManager in Qdabra's Active Directory Web Service</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2011/09/02/getemployeesformanager-in-qdabra-s-active-directory-web-service.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2011/09/02/getemployeesformanager-in-qdabra-s-active-directory-web-service.aspx</id><published>2011-09-01T23:41:00Z</published><updated>2011-09-01T23:41:00Z</updated><content type="html">&lt;p&gt;Yesterday, a user of Qdabra&amp;#39;s Active Directory Web Service reported an issue via the &lt;a href="http://www.infopathdev.com/forums/t/20160.aspx"&gt;forum&lt;/a&gt;. &lt;/p&gt;&lt;p&gt;When calling the operation GetEmployeesForManager, the user&amp;#39;s alias was being retrieved for both values in the dropdown. &lt;/p&gt;&lt;p&gt;We have quickly investigated and fixed this such that the displayName property is returned for &lt;i&gt;&lt;b&gt;Display &lt;/b&gt;&lt;/i&gt;and the alias for &lt;b&gt;&lt;i&gt;Value&lt;/i&gt;&lt;/b&gt;. In the newest version of the tool, all APIs that return a Dropdown list will return the AD “displayName” rather than “cn” for the display value.&amp;nbsp; This was corrected for GetEmployeesForUser, FindUserByAlias and FindUserByName&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Please refer to the &lt;a href="http://www.qdabra.com/en/products/ADWebService.aspx"&gt;product page&lt;/a&gt; for more information on the Active Directory web service Standalone. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=69965" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="Active Directory" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/Active+Directory/default.aspx" /></entry><entry><title>How to retrieve the DocID for a submitted form</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2011/08/16/how-to-retrieve-the-docid-for-a-submitted-form.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2011/08/16/how-to-retrieve-the-docid-for-a-submitted-form.aspx</id><published>2011-08-16T14:40:00Z</published><updated>2011-08-16T14:40:00Z</updated><content type="html">&lt;p&gt;Sometimes it is useful to know the DocID of a document that was just submitted to DBXL. For example, you might want to send an email immediately after submission. So how can we retrieve the DocID of the document? Follow this tutorial to find out!&lt;/p&gt;&lt;p&gt;These steps assume that you have an InfoPath form template (XSN) configured as a Document Type that submits to DBXL. The document type must have at least one document for the purposes of these steps (it can be a test document and it can be deleted once you are done). For more information on how to achieve this pre-requisite, refer to the Getting Started document.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Open your XSN in design mode.&lt;/li&gt;&lt;li&gt;Go to &lt;span style="font-weight:bold;"&gt;Data &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Data Connections&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-weight:bold;"&gt;Add&lt;/span&gt;. Follow the Data Connection Wizard to create a data connection that receives data from &lt;span style="font-weight:bold;font-style:italic;"&gt;http://&amp;lt;servername&amp;gt;/qdabrawebservice/ADUserInfo.asmx&lt;/span&gt; using the method &lt;span style="font-weight:bold;"&gt;GetMyInfo&lt;/span&gt;. Be sure to uncheck the option to &lt;span style="font-weight:bold;"&gt;“Automatically retrieve data when form is opened”&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Add a new field and call it &lt;span style="font-weight:bold;font-style:italic;"&gt;key&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Add one more node to the schema, and call it &lt;span style="font-weight:bold;font-style:italic;"&gt;DocID&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69313/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-weight:bold;"&gt;Data &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Form Load&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-weight:bold;"&gt;New &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Action&lt;/span&gt;. Rename the rule to &lt;span style="font-weight:bold;font-style:italic;"&gt;“Set the value of key”&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Add a condition such that this rule will only execute when key is blank.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69314/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Add an action that queries the GetMyInfo data connection that was created in step 3.&lt;/li&gt;&lt;li&gt;Add a second action that that sets the value of the key to the following: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;concat(xdDate:Now(), &amp;quot;- &amp;quot;, xdXDocument:GetDOM(&amp;quot;GetMyInfo&amp;quot;)/dfs:myFields/dfs:dataFields/tns:GetMyInfoResponse/tns:GetMyInfoResult/tns:ADProp/tns:Value[../tns:Key = &amp;quot;sAMAccountName&amp;quot;])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that you will need to click the &lt;span style="font-weight:bold;"&gt;fx &lt;/span&gt;button to enter the above formula. Your rule will look like this. &lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69315/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;What is this rule doing? We are creating a unique key by concatenating the timestamp and the username. This creates a unique key because we can assume that one user won’t be able to submit two documents at the same, exact moment. &lt;br /&gt;&lt;br /&gt;For information on how to use Qdabra’s Active Directory web service, refer to &lt;a href="http://www.infopathdev.com/files/folders/others/entry56816.aspx"&gt;this document&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Next we will change the rules in the submit button. Set the button so that &lt;span style="font-weight:bold;"&gt;Action &lt;/span&gt;is set to &lt;span style="font-weight:bold;"&gt;Rules &lt;/span&gt;instead of &lt;span style="font-weight:bold;"&gt;Submit&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Go to &lt;span style="font-weight:bold;"&gt;Data &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Data Connections&lt;/span&gt; &amp;gt; &lt;span style="font-weight:bold;"&gt;Add&lt;/span&gt;. Follow the Data Connection Wizard to add a data connection that receives data from &lt;span style="font-weight:bold;font-style:italic;"&gt;http://&amp;lt;servername&amp;gt;/qdabrawebservice/dbxldocumentservice.asmx&lt;/span&gt;. This data connection will call the method &lt;span style="font-weight:bold;"&gt;QueryDocumentNodeSet &lt;/span&gt;and will not be set to “&lt;span style="font-weight:bold;"&gt;Automatically retrieve data when form is opened&lt;/span&gt;”. In the parameter screen, when asked for the value of the &lt;span style="font-weight:bold;"&gt;tns:query&lt;/span&gt; parameter, enter the following: &lt;span style="font-style:italic;font-weight:bold;"&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;query doctypeName=&amp;quot;&lt;/span&gt;&lt;span style="font-style:italic;text-decoration:underline;"&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;YOURDOCTYPENAME&lt;/span&gt;&lt;span style="font-style:italic;font-weight:bold;"&gt;&amp;quot;&amp;gt;&amp;lt;columns repeatingPath=&amp;quot;/my:myFields&amp;quot;&amp;gt;&amp;lt;column name=&amp;quot;DocId&amp;quot; type=&amp;quot;token&amp;quot; /&amp;gt;&amp;lt;/columns&amp;gt;&amp;lt;/query&amp;gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;You can confirm that this data connection successfully obtained a schema by checking the dataFields:&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69316/original.aspx" height="220" width="340" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For the submit button, click &lt;span style="font-weight:bold;"&gt;New &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Action &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Add &lt;/span&gt;&amp;gt; &lt;span style="font-weight:bold;"&gt;Submit Data&lt;/span&gt;. In the dialog that appears, select the data connection that submits to DBXL.&lt;/li&gt;&lt;li&gt;Add a second action that sets the value of the &lt;span style="font-weight:bold;"&gt;query &lt;/span&gt;node: &lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69317/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;The value will be: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;concat(&amp;#39;&amp;lt;query doctypeName=&amp;quot;&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;YOURDOCTYPENAME&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;&amp;quot;&amp;gt;&amp;lt;columns repeatingPath=&amp;quot;/my:myFields&amp;quot;&amp;gt;&amp;lt;column name=&amp;quot;DocId&amp;quot; type=&amp;quot;token&amp;quot; /&amp;gt;&amp;lt;/columns&amp;gt;&amp;lt;filter&amp;gt;&amp;lt;eq&amp;gt; &amp;lt;column name=&amp;quot;/my:myFields/my:key&amp;quot; /&amp;gt;&amp;lt;value&amp;gt;&amp;#39;,&lt;span style="text-decoration:underline;"&gt;key&lt;/span&gt;,&amp;#39;&amp;lt;/value&amp;gt;&amp;lt;/eq&amp;gt;&amp;lt;/filter&amp;gt;&amp;lt;/query&amp;gt;&amp;#39;)&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;You will need to use the &lt;span style="font-weight:bold;"&gt;fx &lt;/span&gt;button when entering this value. In it, you’ll see YOUR document type name and &lt;span style="font-weight:bold;font-style:italic;text-decoration:underline;"&gt;key&lt;/span&gt;, which is the field we added earlier in the steps.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The third action will query data from the &lt;span style="font-weight:bold;"&gt;QueryDocumentNodeSet &lt;/span&gt;data connection.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69318/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The fourth action will set the value of &lt;span style="font-weight:bold;"&gt;my:DocID&lt;/span&gt; to the value returned by the data connection.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69319/original.aspx" height="300" width="487" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img src="http://www.infopathdev.com/photos/blog_pictures/images/69320/original.aspx" alt="" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Save the XSN, re-attach it to your document type in DAT, and Save.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;You can now test by submitting a new document and verifying that the DocID is returned to the form immediately after submitting. &lt;br /&gt;&lt;/p&gt;&lt;p&gt;This DocID can be used to generate a direct URL to your form, for example. The DocID, along with concat, can be used to set a field’s value to the URL, like this:&lt;br /&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;concat(&amp;quot;http://&lt;/span&gt;&lt;span style="font-weight:bold;text-decoration:underline;"&gt;&lt;/span&gt;&lt;span style="text-decoration:underline;"&gt;YOURSERVERNAME&lt;/span&gt;&lt;span style="font-weight:bold;font-style:italic;"&gt;/qdabrawebservice/documents/&amp;quot;,&lt;span style="text-decoration:underline;"&gt;DocID&lt;/span&gt;,&amp;quot;/&amp;quot;,&lt;span style="text-decoration:underline;"&gt;DocID&lt;/span&gt;,&amp;quot;.xml&amp;quot;)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Note that this method is only necessary to get the DocID for a newly submitted document. To obtain the DocID for a document that already exists in DBXL, you can use the processing instructions, as explained in &lt;a href="http://www.infopathdev.com/blogs/david/archive/2008/07/22/codeless-way-of-getting-dbxl-document-properties-docid-doctype-and-dbxl-url.aspx"&gt;this document&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=69321" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="dbxl v2.5" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/dbxl+v2.5/default.aspx" /></entry><entry><title>Exporting documents using the web service</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2010/11/02/exporting-documents-using-the-web-service.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2010/11/02/exporting-documents-using-the-web-service.aspx</id><published>2010-11-02T13:43:00Z</published><updated>2010-11-02T13:43:00Z</updated><content type="html">&lt;p&gt;The DBXL Administration Tool provides you controls to export the documents stored in your DBXL Document Types. However, this method may make InfoPath time out if you have a large number of documents (100+).&lt;br /&gt;&amp;nbsp;&lt;br /&gt;As a workaround for exporting a large number of documents, Qdabra provides the Migration Tool (Document Deployer), which allows you to export documents one by one, in the background.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;However, this method operates in the background, exporting one document at a time. This might not be ideal for thousands of documents.&lt;br /&gt;There is a third method that administrators can use to export a large number of documents. The web service used is the same as the Import/Export in DAT, but you can invoke these methods on the server by opening IE and browsing to the DbxlImportExport.asmx page.&lt;br /&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;On the machine where DBXL is installed, open Internet Explorer.&lt;/li&gt;&lt;li&gt;Navigate to the URL: &lt;i&gt;&lt;b&gt;http://&amp;lt;servername&amp;gt;/qdabrawebservice/DbxlImportExport.asmx&lt;/b&gt;&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Click on &lt;b&gt;ExportDocuments&lt;/b&gt;. &lt;/li&gt;&lt;li&gt;Enter the &lt;b&gt;docTypeName &lt;/b&gt;and the &lt;b&gt;folderPath &lt;/b&gt;for export.&lt;/li&gt;&lt;li&gt;Click &lt;b&gt;Invoke&lt;/b&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;This will export the documents to folderPath specified. A new Internet Explorer window will open showing the results. For example:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot; ?&amp;gt; &lt;br /&gt;&amp;lt;StatusInfo xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; xmlns:xsd=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot; xmlns=&amp;quot;http://qdabra.com/webservices/&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;Success&amp;gt;true&amp;lt;/Success&amp;gt; &lt;br /&gt;&amp;lt;Errors&amp;gt;&lt;br /&gt;&amp;lt;ErrorInfo&amp;gt;&lt;br /&gt;&amp;lt;Code&amp;gt;I0001&amp;lt;/Code&amp;gt; &lt;br /&gt;&amp;lt;Description&amp;gt;2 documents exported.&amp;lt;/Description&amp;gt; &lt;br /&gt;&amp;lt;/ErrorInfo&amp;gt;&lt;br /&gt;&amp;lt;/Errors&amp;gt;&lt;br /&gt;&amp;lt;ExecutionTime&amp;gt;00:00:00.1340000&amp;lt;/ExecutionTime&amp;gt; &lt;br /&gt;&amp;lt;/StatusInfo&amp;gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Note that you might need to increase the executionTimeout element. For more, read this: &lt;a href="http://msdn.microsoft.com/en-us/library/ms824641.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms824641.aspx&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=60999" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL v2.4" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+v2.4/default.aspx" /><category term="export" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/export/default.aspx" /></entry></feed>