When trying to use qRules in InfoPath 2007, you might run into the following error IF you also have InfoPath 2010 installed on the same machine:
An unexpected error occurred executing the rule. Action: SortTable
Arguments:
row: my:myFields/my:Items
compare: my:Group
order: ASC
type: text
Details: It is an error to mix objects from different versions of MSXML.
Stack: at Microsoft.MsoOffice.InfoPath.MsxmlInterop.MsxmlDocument.ThrowExceptionFromMsxmlInteropError(MsxmlInteropError eError)
at Microsoft.MsoOffice.InfoPath.MsxmlInterop.MsxmlDocument.ThrowExceptionFromHresult(Int32 hrError)
at Microsoft.MsoOffice.InfoPath.MsxmlInterop.MsxmlNodeImpl.AppendChild(String strXml)
at Microsoft.Office.InfoPath.MsxmlWriter.Close()
at System.Xml.XmlWellFormedWriter.Close()
at System.Xml.XPath.XPathNavigator.AppendChild(XmlReader newChild)
at System.Xml.XPath.XPathNavigator.AppendChild(XPathNavigator newChild)
at Qdabra.Tools.RulesLibrary.Commands.SortTable(String domName, String rowXPath, String fieldXPathList, String orderList, String typeList)
at Qdabra.Tools.RulesLibrary.Commands.SortTable()
at Qdabra.Tools.RulesLibrary.Commands.ExecuteCommand()
The issue is with MSXML interop between 2007 and 2010, which happens when a machine has InfoPath 2010 installed as well. The solution is to use InfoPath 2010 since there is no known workaround for the MSXML difference between 2007 and 2010. When you use InfoPath 2010, this error should not come up.