C# 如何使用QBPOSXML将具有自定义字段的客户添加到Quickbooks POS

C# 如何使用QBPOSXML将具有自定义字段的客户添加到Quickbooks POS,c#,asp.net,asp.net-mvc,qbxml,C#,Asp.net,Asp.net Mvc,Qbxml,所以我的问题很简单:我正在尝试使用ASP.NET和QBWebConnector向Quickbooks添加一个客户,谢天谢地,我成功了。当我尝试向客户添加自定义字段时,就会出现问题 下面是我要发送的qbposxml: <?xml version="1.0" encoding="UTF-8"?> <?qbposxml version="3.0"?> <QBPOSXML> <QBPOSXMLMsgsRq onError="stopOnError">

所以我的问题很简单:我正在尝试使用ASP.NET和QBWebConnector向Quickbooks添加一个客户,谢天谢地,我成功了。当我尝试向客户添加自定义字段时,就会出现问题

下面是我要发送的
qbposxml

<?xml version="1.0" encoding="UTF-8"?>
<?qbposxml version="3.0"?>
<QBPOSXML>
   <QBPOSXMLMsgsRq onError="stopOnError">
      <CustomerAddRq requestID="1">
         <CustomerAdd>
            <Salutation>Mr.</Salutation>
            <FirstName>Ammar</FirstName>
            <LastName>Ahmed</LastName>
            <BillAddress>
               <Street>asascc, asdas</Street>
            </BillAddress>
            <Phone>03321221221</Phone>
         </CustomerAdd>
      </CustomerAddRq>
      <DataExtModRq>
         <DataExtMod>
            <OwnerID>0</OwnerID>
            <DataExtName>IDNumber</DataExtName>
            <ListDataExtType>Customer</ListDataExtType>
            <ListObjRef>
               <FullName>Ammar Ahmed</FullName>
            </ListObjRef>
            <DataExtValue>12331</DataExtValue>
         </DataExtMod>
      </DataExtModRq>
      <DataExtModRq>
         <DataExtMod>
            <OwnerID>0</OwnerID>
            <DataExtName>GebDatum</DataExtName>
            <ListDataExtType>Customer</ListDataExtType>
            <ListObjRef>
               <FullName>Ammar Ahmed</FullName>
            </ListObjRef>
            <DataExtValue>21/22/12</DataExtValue>
         </DataExtMod>
      </DataExtModRq>
   </QBPOSXMLMsgsRq>
</QBPOSXML>
首先我们初始化宏,然后使用它,从而避免了额外的请求,并且不知道有多少行无用的代码只是为了添加自定义字段


感谢William Lorfing的正确提示。

对于QBPOS SDK,ListObjRef需要ListID而不是fullname

您必须执行customeradd,然后在下一个请求中使用ListID执行DataExtAdd,或者您可以尝试使用宏。请参阅POS SDK程序员指南第6章。
该指南包含在POS SDK中。

非常感谢您的提示!我使用了宏,现在它工作得非常完美。再次感谢。
<?xml version="1.0" encoding="UTF-8"?>
<QBPOSXML>
   <QBPOSXMLMsgsRs>
      <CustomerAddRs requestID="1" statusCode="0" statusMessage="Status OK" statusSeverity="Info">
         <CustomerRet>
            <ListID>755269278256496897</ListID>
            <TimeModified>2017-03-08T14:00:42+05:00</TimeModified>
            <AccountBalance>0.00</AccountBalance>
            <AccountLimit>0.00</AccountLimit>
            <CustomerDiscPercent>0.00</CustomerDiscPercent>
            <CustomerDiscType>None</CustomerDiscType>
            <FirstName>Ammar</FirstName>
            <FullName>Mr. Ammar Ahmed</FullName>
            <IsAcceptingChecks>True</IsAcceptingChecks>
            <IsUsingWithQB>False</IsUsingWithQB>
            <LastName>Ahmed</LastName>
            <Phone>03321221221</Phone>
            <PriceLevelNumber>1</PriceLevelNumber>
            <Salutation>Mr.</Salutation>
            <StoreExchangeStatus>Modified</StoreExchangeStatus>
            <BillAddress>
               <Street>asascc, asdas</Street>
            </BillAddress>
         </CustomerRet>
      </CustomerAddRs>
      <DataExtModRs statusCode="20036" statusMessage="Extension error (ListID is missing)" statusSeverity="Error">
         <DataExtRet />
      </DataExtModRs>
   </QBPOSXMLMsgsRs>
</QBPOSXML>
<?xml version="1.0" encoding="UTF-8"?>
<?qbposxml version="3.0"?>
<QBPOSXML>
   <QBPOSXMLMsgsRq onError="stopOnError">
      <CustomerAddRq requestID="1">
         <CustomerAdd defMacro="ListID:Cust1"> NOTICE THE INITIALIZATION OF MACRO!
            <Salutation>Mr.</Salutation>
            <FirstName>Ammar</FirstName>
            <LastName>Ahmed</LastName>
            <BillAddress>
               <Street>asascc, asdas</Street>
            </BillAddress>
            <Phone>03321221221</Phone>
         </CustomerAdd>
      </CustomerAddRq>
      <DataExtModRq>
         <DataExtMod>
            <OwnerID>0</OwnerID>
            <DataExtName>IDNumber</DataExtName>
            <ListDataExtType>Customer</ListDataExtType>
            <ListObjRef>
               <ListID useMacro="ListID:Cust1" /> NOTICE THE USE OF MACRO!
            </ListObjRef>
            <DataExtValue>12331</DataExtValue>
         </DataExtMod>
      </DataExtModRq>
      <DataExtModRq>
         <DataExtMod>
            <OwnerID>0</OwnerID>
            <DataExtName>GebDatum</DataExtName>
            <ListDataExtType>Customer</ListDataExtType>
            <ListObjRef>
               <ListID useMacro="ListID:Cust1" /> NOTICE THE USE OF MACRO!
            </ListObjRef>
            <DataExtValue>21/22/12</DataExtValue>
         </DataExtMod>
      </DataExtModRq>
   </QBPOSXMLMsgsRq>
</QBPOSXML>