2017-03-08 114 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

相關問題