<?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.20611.960">Community Server</generator><updated>2008-02-11T16:11:00Z</updated><entry><title>Workaround for non-descriptive errors in IPFS</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/09/19/workaround-for-non-descriptive-errors-in-ipfs.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/09/19/workaround-for-non-descriptive-errors-in-ipfs.aspx</id><published>2008-09-19T21:41:00Z</published><updated>2008-09-19T21:41:00Z</updated><content type="html">&lt;p&gt;Sometimes InfoPath Forms Server (IPFS) gives you a non-descriptive error when you try to admin-publish a form using the &amp;quot;Manage Form Templates&amp;quot; UI in SharePoint Central Administration. These steps could provide a more informative error message.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Deploy the solution via stsadm. First time installations should use uploadformtemplate; otherwise use upgradeformtemplate:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;stsadm -o uploadformtemplate -filename ...&lt;br /&gt;stsadm -o upgradeformtemplate -filename ... -upgradetype overwrite&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This has to be done from the SharePoint machine. Typically stsadm lives in this folder: C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;For example, if the dropped solution is located on a machine from which the admin is term-served from, this can be used (modify the path as needed):&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;stsadm -o upgradeformtemplate -filename &amp;quot;&lt;/em&gt;&lt;a&gt;&lt;em&gt;\\tsclient\C\SScore.xsn&lt;/em&gt;&lt;/a&gt;&lt;em&gt;&amp;quot; -upgradetype overwrite&lt;br /&gt;&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=32406" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="IPFS" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/IPFS/default.aspx" /></entry><entry><title>More new DBXL v2.2 Documentation published this week</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/08/22/more-new-dbxl-v2-2-documentation-published-this-week.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/22/more-new-dbxl-v2-2-documentation-published-this-week.aspx</id><published>2008-08-22T21:33:00Z</published><updated>2008-08-22T21:33:00Z</updated><content type="html">&lt;p&gt;The following new documents have been published this week. &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;qForm:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31585.aspx"&gt;How To Manage qForm’s Client Side Notifications&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31601.aspx"&gt;How To Localize Your InfoPath with QdCatalogBase&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31590.aspx"&gt;How to use the template feature in qForm&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31564.aspx"&gt;How to customize Status values in qForm&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Permissions:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31562.aspx"&gt;An Overview of DBXL Permissions&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31552.aspx"&gt;Three ways to configure provider permissions in web.config&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/permissions/entry31538.aspx"&gt;How To Enable QdFlow Permissions for a Document Type&lt;/a&gt; - note that this requires qForm&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Document Deployer:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31582.aspx"&gt;Document Deployer User Guide&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31629.aspx"&gt;Deleting all documents for a document type using Document Deployer&lt;/a&gt;&amp;nbsp;- note that this download comes with the necessary scenario file&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/document_deployer/entry31630.aspx"&gt;Reshredding all documents for a document type using Document Deployer&lt;/a&gt;&amp;nbsp;- note that this download comes with the necessary scenario file&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;Other subjects:&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry31650.aspx"&gt;How to use Full Trust form templates in DBXL&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry31581.aspx"&gt;How To Setup Server-Side E-Mail Notifications&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/bulk_operations/entry31584.aspx"&gt;Bulk Assignment Tool&lt;/a&gt;&amp;nbsp;- note that this scenario comes with the tool itself&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;Check them out if you are using or interested in using DBXL v2.2!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31651" 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 Add Documents to Another Document Type Inline</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/08/20/how-to-add-documents-to-another-document-type-inline.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/20/how-to-add-documents-to-another-document-type-inline.aspx</id><published>2008-08-20T21:39:00Z</published><updated>2008-08-20T21:39:00Z</updated><content type="html">&lt;p&gt;A&amp;nbsp;solution that uses multiple Document Types that feed data to one another often requires one form to be filled out before another.&amp;nbsp; However, the user might not realize this requirement until he or she has already started filling out the second form. &lt;/p&gt;
&lt;p&gt;One example is when you have two Document Types: Customer and Timecard.&amp;nbsp; The Customer Document Type is a qForm that is only opened whenever customers need to be edited or added. The Timecard form pulls from the Customer Document Type to populate the drop-down for assigning hours to a Customer’s Accounts Payable registry.&amp;nbsp; If a user begins to fill out the Timecard form and the customer is not in the drop-down, it is much easier to add the new customer directly from within the Timecard form than having to open the separate Customer form.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31602/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 1. A catalog form populating the drop-down for another form.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In this task we will look at the steps necessary to solve this problem.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Add a Connection to SubmitDocument&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;In InfoPath Design mode, open the Data Connections dialog, and then click Add.&lt;br /&gt;2.&amp;nbsp;Add a connection that will Receive data. In the following screen, select Web Service and click Next.&lt;br /&gt;3.&amp;nbsp;Type the URL to the DbxlDocumentService.asmx web service that corresponds to your DBXL installation.&lt;br /&gt;4.&amp;nbsp;Select the SubmitDocument web method, and then click Next.&lt;br /&gt;5.&amp;nbsp;For the docTypeName parameter, type the name of the Document Type that you will be adding documents to, but leave the rest blank.&amp;nbsp; Click Next.&lt;br /&gt;6.&amp;nbsp;Make sure the option to Store a copy of the data in the form template is unchecked, and then click Next.&lt;br /&gt;7.&amp;nbsp;Name the data connection something descriptive, deselect the option to Automatically retrieve data when the form is opened, and then click Finish.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31603/original.aspx" border="1" alt="" /&gt;&lt;br /&gt;Figure 2. The data source for the SubmitDocument web method.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add Controls to Input Necessary Data&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;In the example of adding new Customers from the Timecard form, you will need a control on the view to collect all of the information you need to create a new Customer.&amp;nbsp; You can bind these controls to nodes on the Main DOM, but it is best practice to create a secondary data connection based off an XML document to collect the necessary data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Get a sample XML document to be added as a secondary data connection&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Open the target form (in this example, the Customer form) as if you were ready to input a new Customer.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;a.&amp;nbsp;If the form is a Catalog form with qForm, click the Add Document button.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;2.&amp;nbsp;From the InfoPath File menu, select Save As.&lt;br /&gt;3.&amp;nbsp;Save the XML document to your desktop.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now you have an empty XML document that embodies what DBXL is going to receive when adding a new document to the Document Type. In the next step we’ll add that XML Document to the Timecard Document Type to allow input of data.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add the sample XML document to the host form template&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;In the InfoPath Designer, open the Data Connections dialog, and click to Add a new Data Connection.&lt;br /&gt;2.&amp;nbsp;Select to add a new connection to Receive data.&lt;br /&gt;3.&amp;nbsp;Select to retrieve data from an XML Document.&lt;br /&gt;4.&amp;nbsp;Browse to and select the XML document saved to your desktop that was created in the previous section.&lt;br /&gt;5.&amp;nbsp;Select to Include the data as a resource file, and then click Next.&lt;br /&gt;6.&amp;nbsp;Name the data connection something significant, deselect the option to Automatically retrieve data when the form is opened, and click Finish.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now that the data connection has been added, create the controls to allow entry of the data on the view.&amp;nbsp; Your design might look something like the Figure 3.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31604/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 3. Adding controls to collect document information.&lt;br /&gt;&lt;/em&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Codeless versus Coded Implementation Techniques&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This task may be accomplished by using rules to construct the necessary XML structure and then submit that XML to the web service.&amp;nbsp;Using rules instead of code can be a quick and easy way to implement this feature for simple forms, but will quickly become too cumbersome for forms that have numerous fields.&amp;nbsp; In the case of adding more complicated documents, you should use the coded implementation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Adding Rules to Submit the New Document&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After all controls have been added, you are ready to add the rules to the Upload button that will upload a new document. To construct the XML needed to submit to DBXL with Rules you must piece it together from one long string using the values that are stored in the secondary data source.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Breaking the XML Document into manageable pieces&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Open the XML Document saved to your desktop in a text editor, such as Notepad.&lt;br /&gt;2.&amp;nbsp;Separate the document into pieces that you will concatenate together with the values of the secondary data connection.&amp;nbsp; This process is shown in Figure 4.&lt;br /&gt;3.&amp;nbsp;Eliminate the Qdabra DBXL PI node, which will look like this: &amp;lt;?QdabraDBXL docid=&amp;quot;&amp;quot; doctype=&amp;quot;Customer&amp;quot; name=&amp;quot;&amp;quot; author=&amp;quot;&amp;quot; description=&amp;quot;&amp;quot; ?&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31605/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 4. Breaking up the XML.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add the rules to the Upload button&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Add a rule to the Upload button that will set the value of the /myFields/dataFields/SubmitDocument/xml node, as seen in Figure 5.&lt;br /&gt;2.&amp;nbsp;For the value, click the fx button to add a new formula.&lt;br /&gt;3.&amp;nbsp;Select the option to edit the XPath directly, and type the following:&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;em&gt;concat(‘XML Fragment 1’, XPath_to_FullName, ‘XML Fragment 2’, XPath_to_PhoneNum, ‘XML Fragment 3’, XPath_to_Email, ‘XML Fragment 4’)&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;4.&amp;nbsp;Be sure to replace the XML Fragment strings with the appropriate XML that you segmented in the previous step.&lt;br /&gt;5.&amp;nbsp;For the XPaths to the various nodes, you can click on the Insert Field or Value button in the expression builder to graphically find the node.&lt;br /&gt;6.&amp;nbsp;Click Ok until you are back to the Rules dialog box for the Upload button.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;At this point, you will have a button that creates the necessary XML on the secondary DOM, so now you must add the rules to query the appropriate data connections.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Add rules to query the data connections&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;1.&amp;nbsp;Click to add a new rule, select the Query Web Service action, and specify the SubmitNewDocument data connection. Make sure this rule executes after the rule that creates and sets the XML string.&lt;br /&gt;2.&amp;nbsp;Add another rule to query the data connection that pulls the Customer list from the database, and then close all dialog boxes.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/31606/original.aspx" border="1" alt="" /&gt;&amp;nbsp;&lt;br /&gt;&lt;em&gt;Figure 5. The completed rules.&lt;/em&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;&lt;strong&gt;Coded Implementation&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Implementing this feature using managed code is much simpler and allows for easier manipulation of the XML fragments.&amp;nbsp; Below is an example of creating the necessary XML, loading it into the xml parameter, querying the web service, and then updating the view to reflect the new data.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;[InfoPathEventHandler(MatchPath=&amp;quot;btnUploadNewCustomer&amp;quot;, EventType=InfoPathEventType.OnClick)]&lt;br /&gt;public void btnUploadNewCustomer_OnClick(DocActionEvent e)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IXMLDOMNode nNewCustomerNode = builtInLogic.GetNode(domNewCustomer, &amp;quot;/my:QdCatalog&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the query DOM with everything needed to query&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string name = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:name&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string author = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:author&amp;quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string description = builtInLogic.GetNodeValue(domNewCustomer, &amp;quot;/my:QdCatalog/my:QdForm/@my:description&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:name&amp;quot;, name);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:author&amp;quot;, author);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:description&amp;quot;, description);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(domSubmitNewCustomer, &amp;quot;/dfs:myFields/dfs:queryFields/tns:SubmitDocument/tns:xml&amp;quot;, nNewCustomerNode.xml);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Upload the new customer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((WebServiceAdapter2)thisXDocument.DataAdapters[&amp;quot;SubmitNewCustomer&amp;quot;]).Query();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enumerate from the DB to pick up the latest customer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ((WebServiceAdapter2)thisXDocument.DataAdapters[&amp;quot;EnumCustomer&amp;quot;]).Query();&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Determine the last one added in the list, assume sort by DocId is default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string sLastCustomerDocId = builtInLogic.GetNodeValue(domCustomer, &amp;quot;/dfs:myFields/dfs:dataFields/ns1:GetColumnsForRows2bResponse/ns1:GetColumnsForRows2bResult/Rows/row[last()]/DocId&amp;quot;);&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the value of the drop-down to the most recently added customer&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; builtInLogic.SetNodeValue(String.Format(&amp;quot;/my:QdCatalog/my:QdForm[ @my:docId = &amp;#39;{0}&amp;#39; ]/my:Estimate/my:Customer/my:CustomerDocId&amp;quot;, builtInLogic.DocIdToView), sLastCustomerDocId);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;}&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31607" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author></entry><entry><title>More new DBXL v2.2 Documentation</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/08/15/more-new-dbxl-v2-2-documentation.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/08/15/more-new-dbxl-v2-2-documentation.aspx</id><published>2008-08-15T22:22:00Z</published><updated>2008-08-15T22:22:00Z</updated><content type="html">&lt;p&gt;This week we have published three new documents related to DBXL v2.2.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you are interested in setting up &lt;strong&gt;server-side notifications&lt;/strong&gt; for your forms, check out the document called &lt;a class="" href="http://www.infopathdev.com/files/folders/tools2/entry31310.aspx" target="_blank"&gt;How To Setup Server-Side E-Mail Notifications&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;If you are developing a solution based on our QdCatalogBase.xsn form and are interested in &lt;strong&gt;promoting properties&lt;/strong&gt; other than those promoted by default, check out &lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31394.aspx" target="_blank"&gt;How to Use Promoted Properties in qForm&lt;/a&gt;.&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;If you have an existing solution based on the QdCatalogBase.xsn form, you might be interested in deleting &lt;strong&gt;documents&lt;/strong&gt; for a variety of reasons. However, special care must be taken when doing this, as indicated in the DBXL v2.2 Release Notes. For information, please read &lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry31433.aspx" target="_blank"&gt;Deleting Documents and Flow for a qForm&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For a full catalog of the available documentation for DBXL v2.2, please see the &lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/25/default.aspx"&gt;DBXL v2.2 Documentation&lt;/a&gt;&lt;/strong&gt; node in the Browse Folders menu&amp;nbsp;table.&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31493" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL v2.2" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+v2.2/default.aspx" /><category term="qForm" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/qForm/default.aspx" /><category term="Notifications" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/Notifications/default.aspx" /></entry><entry><title>Two new documents related to DBXL v2.2</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/07/31/two-new-documents-related-to-dbxl-v2-2.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/07/31/two-new-documents-related-to-dbxl-v2-2.aspx</id><published>2008-07-31T18:08:00Z</published><updated>2008-07-31T18:08:00Z</updated><content type="html">&lt;p&gt;While this week sees the publication of only two documents, they cover two very important topics.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;The &lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry31078.aspx"&gt;&lt;strong&gt;Web Service Developer&amp;#39;s Reference&lt;/strong&gt;&lt;/a&gt; contains development tips and web method descriptions, useful for anyone intending to develop a solution using DBXL.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;The &lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry30952.aspx"&gt;QueryDB User Manual&lt;/a&gt;&lt;/strong&gt; explains the use of QueryDB, a web method that allows your DBXL instance to gather data from SQL, as well as Query Builder, a form tool that makes&amp;nbsp;working with QueryDB an easy task.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For the list of all available documents covering DBXL v2.2, click on the&amp;nbsp;&lt;a class="" href="http://www.infopathdev.com/files/25/default.aspx"&gt;DBXL v2.2&amp;nbsp;Documentation node&lt;/a&gt; on the right, as well as all its subnodes. Stay tuned for future updates!&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=31079" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author></entry><entry><title>New documentation available for DBXL v2.2!</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/07/25/new-documentation-available-for-dbxl-v2-2.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/07/25/new-documentation-available-for-dbxl-v2-2.aspx</id><published>2008-07-25T19:38:00Z</published><updated>2008-07-25T19:38:00Z</updated><content type="html">&lt;p&gt;Now that &lt;a class="" href="http://www.infopathdev.com/files/folders/dbxldownload/entry29778.aspx"&gt;DBXL v2.2 Beta is available on our website&lt;/a&gt;, we have begun to publish documents that relate to this new product. This week (June 21 to 25) we have published the following documents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/qform/entry30714.aspx"&gt;&lt;strong&gt;How to Create Nodes in Taxonomy&lt;/strong&gt;&lt;/a&gt;: DBXL allows you to tag your qForm-based solution with a set of category filters. This document will explain how to use the qForm feature.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/web_methods/entry30829.aspx"&gt;Using DBXL Resources&lt;/a&gt;&lt;/strong&gt;: The DBXLResource API allows users to use custom XML in their DBXL Document Type Configurations. This document&amp;nbsp;explains various scenarios&amp;nbsp;that&amp;nbsp;merit the use of&amp;nbsp;XML resources.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/bulk_operations/entry31583.aspx"&gt;How To Use the Bulk Edit Tool&lt;/a&gt;&lt;/strong&gt;: Qdabra’s Bulk Edit Tool allows users to quickly perform bulk editing operations. This document will explain the options available in the Bulk Edit Tool, and it comes with the BulkEditForm.xsn file.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/misc/entry30715.aspx"&gt;Installing and using QuickSearch&lt;/a&gt;&lt;/strong&gt;: QuickSearch is a standalone web service that runs against DBXL v2.1 and v2.2. This document explains the steps required to&amp;nbsp;setup and use QuickSearch in your forms.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class=""&gt;&lt;strong&gt;How To Query the Active Directory Web Service&lt;/strong&gt;&lt;/a&gt;: The Active Directory Service supports two methods: GetUserInfo and GetMyInfo. This document will show you how to set up a sample form that queries GetUserInfo with a user-entered username string.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Mapping and shredding in DBXL is a hot topic in the forums. You can now find the following related documents on InfoPathDev.com:&lt;/div&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30696.aspx"&gt;&lt;strong&gt;How to Configure Database Mappings in DBXL v2.2&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30705.aspx"&gt;Setting up large database mappings&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30704.aspx"&gt;Can&amp;#39;t delete when there are mapping errors&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30703.aspx"&gt;Shredding Two Document Types to the Same Table Creates Duplicate Rows&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;p&gt;&lt;strong&gt;&lt;a class="" href="http://www.infopathdev.com/files/folders/mapping__shredding/entry30701.aspx"&gt;Shredding Without Key Returns Error in Database Mapping&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;
&lt;p&gt;For a full list of documents available for DBXL v2.2, see the DBXL v2.2 Documentation node.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.infopathdev.com/photos/dbxl_v22_documentation_images/images/30866/original.aspx" alt="" /&gt;&lt;/p&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=30868" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="DBXL v2.2" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/DBXL+v2.2/default.aspx" /></entry><entry><title>Characters in Word cannot be loaded into InfoPath XML</title><link rel="alternate" type="text/html" href="http://www.infopathdev.com/blogs/ernesto/archive/2008/02/11/characters-in-word-cannot-be-loaded-into-infopath-xml.aspx" /><id>http://www.infopathdev.com/blogs/ernesto/archive/2008/02/11/characters-in-word-cannot-be-loaded-into-infopath-xml.aspx</id><published>2008-02-11T19:11:00Z</published><updated>2008-02-11T19:11:00Z</updated><content type="html">&lt;p&gt;Microsoft Word&amp;#39;s auto-formatting creates special ASCII characters that are illegal in XML and, thus, in InfoPath. Here is a list of ASCII Control Characters that are unique to Word, followed by their ASCII hex value:&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;Tab (hex 09)&lt;/li&gt;
&lt;li&gt;New line (hex 0B)&lt;/li&gt;
&lt;li&gt;Page break (hex 0C)&lt;/li&gt;
&lt;li&gt;Paragraph (hex 0D)&lt;/li&gt;
&lt;li&gt;Column break (hex 0E)&lt;/li&gt;
&lt;li&gt;Non-breaking hyphen (hex 1E)&lt;/li&gt;
&lt;li&gt;Optional hyphen (hex 1F)&lt;/li&gt;
&lt;li&gt;Non-breaking space (hex A0)&lt;/li&gt;
&lt;li&gt;Ampersand (hex 26)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;
&lt;p&gt;To workaround this problem, there are two options:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;a) Replace any illegal characters before conversion to XML (i.e. before InfoPath sees them).&lt;/p&gt;
&lt;p&gt;b) Change AutoFormat option in Word to prevent generating these characters.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;i. In Word 2003, go to Tools-&amp;gt;AutoCorrect Options-&amp;gt;AutoFormat-&amp;gt;AutoFormat As You Type and uncheck &amp;quot;Hyphens...&amp;quot; and other characters that result in special characters.&lt;/p&gt;
&lt;p&gt;ii. In Word 2007, press Alt-F, click Word Options-&amp;gt;Proofing-&amp;gt;AutoCorrect Options-&amp;gt;AutoFormat-&amp;gt;AutoFormat As You Type and uncheck &amp;quot;Hyphens...&amp;quot; and other characters that result in special characters.&lt;/p&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;img src="http://www.infopathdev.com/aggbug.aspx?PostID=26363" width="1" height="1"&gt;</content><author><name>ErnestoM</name><uri>http://www.infopathdev.com/members/ErnestoM.aspx</uri></author><category term="XML" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/XML/default.aspx" /><category term="InfoPath" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/InfoPath/default.aspx" /><category term="Word" scheme="http://www.infopathdev.com/blogs/ernesto/archive/tags/Word/default.aspx" /></entry></feed>