在使用QbXml添加或修改员工时,我保留以下错误: QuickBooks在解析提供的XML流时发现了一个错误。
我尝试了true/false (这是它返回的值)、yes/no和1/0;它们似乎都不起作用。
是否可以为员工设置IsActive字段?我是不是遗漏了什么?
谢谢!
引发的异常是:
{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>发布于 2013-05-07 02:55:05
qbXML中XML元素的顺序很重要。
因此,如果QuickBooks OSR文档显示XML元素的顺序应该如下:
<ListID >IDTYPE</ListID> <!-- required -->
<EditSequence >STRTYPE</EditSequence> <!-- required -->
<IsActive >BOOLTYPE</IsActive> <!-- optional -->
... lots of other stuff here ... 然后你发送这个:
<ListID>8000007D-1367847338</ListID>
<EditSequence>1367850617</EditSequence>
... lots of other stuff here ...
<IsActive>true</IsActive>然后你会得到那个错误:
(0x80040400):QuickBooks在解析提供的XML流时发现了一个错误。
这个错误本质上是QuickBooks,它试图告诉您您的XML文档中有一些错误。
如果您以正确的顺序发送节点,它将正常工作:
<ListID>8000007D-1367847338</ListID>
<EditSequence>1367850617</EditSequence>
<IsActive>true</IsActive>
<FirstName>first name</FirstName>
<MiddleName>middle name</MiddleName>
<LastName>last name</LastName>另外,如果您使用QuickBooks SDK中包含的"XML“工具,它将确切地告诉您输入给它的任何XML消息有什么问题。
希望这能帮上忙!
https://stackoverflow.com/questions/16400294
复制相似问题