I recently published a major update to http://infopathdb.codeplex.com/ which enables users to query InfoPath XML data (including repeating tables) over SOAP, JSON, and Excel. It’s great for reporting against data collected with InfoPath forms. Please check out the project and let me know if you have any ideas to improve. Thanks!
Aggregate and query multiple InfoPath XML documents from a SharePoint Form Library. Supports SOAP, XML, JSON, and IQY Excel format.
Have you ever wanted to report directly against InfoPath Form Library data? Have you been frustrated by the limitations of published columns? Have you had trouble when trying to report on repeating table (one-to-many) data? Do you like working with clean XML web services? Then download and check out this SOAP web service.
This code will aggregate many source XML documents into a single XML for easy reporting. Because InfoPath documents share a common XSD schema from within the template XSN, they may be consolidated using Dot Net objects like DataSet, DataTable, and XmlDocument.
–UPDATED September 21, 2013–
- Download to Excel IQY web query
- XML output
- JSON output
- CAML row filter
- People Picker data with BuiltInActiveXControls.xsd
- Item level security
- Both HTTP GET and POST
- Farm Feature applies IIS virtual directory "Convert to Application" change across the farm (needed for web.config to apply)
- Site Settings > Site Administration > InfoPathDB custom menu
- Query builder ASPX page
How It Works
- Reads SharePoint Form Library XSN template
- Extracts XSD schema file
- Reads all XML document files
- Outputs a single aggregate XML data set
- Compatible any XML reporting tool (Excel, SQL Reporting Services, Performance Point Services, PowerPivot, InfoPath, etc.)
- Works on 2007
- Works on 2010
- Works on 2013
- Not ready for Office 365 (farm full trust, no sandbox or app)
There are four parameters to the SOAP method QueryFormLibrary:
- SiteURL – URL address of the SPWeb hosting the Form Library
- FormLibraryTitle – Title of the Form Library
- OptionalContentType – When working with Administrator approved Central Admin XSN templates, you may need to specify a content type. with basic forms, this should be "Form".
- OptionalCAMLFilter – Where clause filter to reduce Form Library rows. For example, "<Where><Eq><FieldRef Name=’Status’/><Value Type=’CHOICE’>Not Started</Value></Eq></Where>"
- OptionalBooleanIncludeAttachments – Include large binary attachment fields (base64 data type). By default, these values are skipped over.
Cabinet file extract method from "Iterate and Extract Cabinet File" CodeProject By aplaxas. JSON parsing method from Json.NET. All other trademarks and copyrights are property of their respective owners.
Please drop me a line via email email@example.com or Twitter @spjeff with ideas. I’m always open to suggestions and improvements.