I keep the following error when adding or modifying Employees with QbXml: QuickBooks found an error when parsing the provided XML text stream.
I have tried true/false (which is the values that it returned), yes/no, and 1/0; none of which seem to work.
Is it possible to set the IsActive field for employees? Am I missing something?
Thanks!
Exception thrown was:
{System.Runtime.InteropServices.COMException (0x80040400): QuickBooks found an error when parsing the provided XML text stream.
at Interop.QBXMLRP2.IRequestProcessor4.ProcessRequest(String ticket, String inputRequest)
at PayrolImport.Program.Main(String[] args) in Program.cs:line 251
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()}
XML
<?xml version="1.0"?>
<?qbxml version="12.0"?>
<QBXML>
<QBXMLMsgsRq onError="stopOnError">
<EmployeeModRq>
<EmployeeMod>
<ListID>8000007D-1367847338</ListID>
<EditSequence>1367850617</EditSequence>
<FirstName>first name</FirstName>
<MiddleName>middle name</MiddleName>
<LastName>last name</LastName>
<IsActive>true</IsActive>
<Email></Email>
<AccountNumber>1</AccountNumber>
</EmployeeMod>
</EmployeeModRq>
</QBXMLMsgsRq>
</QBXML>
The order of XML elements in qbXML matters.
So if the QuickBooks OSR documentation shows that the order of XML elements should be this:
And you send this:
Then you'll get that error back:
That error is essentially QuickBooks trying to tell you that you have some error in your XML document.
If you send the nodes in the correct order it will work OK:
As a side note, if you use the "XML Validator" tool included with the QuickBooks SDK, it will tell you exactly what is wrong with any XML message you feed to it.
Hope that helps!