2017-03-08 112 views
0

所以我的问题很简单:我试图使用ASP.NET和QBWebConnector将客户添加到Quickbooks,并且幸好我成功了。当我尝试向客户添加自定义字段时会出现问题。如何添加自定义字段的客户到使用QBPOSXML的Quickbooks POS

这里的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> 

现在我得到的回应是这样的:

<?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> 

我不知道怎么去,因为我加入了客户的ListID它在之后被创建客户被添加。

需要注意的是:客户被添加,但没有自定义字段。从thisthis我收集到,我不需要ListID。

任何帮助将不胜感激。

更新: 打完answer通过威廉Lorfing,我检查出的QBPOS程序员指南第6章,发现。以下是我结束了使用它们,以优异的成绩:

我CustomerAdd要求变成了:

<?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> 

首先我们初始化的宏,然后我们使用它,从而避免了额外的请求,不知道多少行无用的代码只是添加自定义字段。

谢谢William Lorfing提示正确的方向。

回答

0

对于QBPOS SDK,ListObjRef需要ListID而不是全名。

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

+0

非常感谢你的提示!我使用宏,它现在工作完美无瑕。再次感谢。 – thecodrr

相关问题