通过qbXML设置员工IsActive(Setting IsActive for Employee

2019-09-02 01:47发布

我把下面的错误添加或修改QbXml员工时:解析提供的XML文本流时的QuickBooks发现错误。

我已经试过真/假(这是它返回的值),是/否,和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>

Answer 1:

在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消息。

希望帮助!



文章来源: Setting IsActive for Employee through qbXML