Je travaille dans QBXML et j'essaie d'appliquer un paiement à une facture spécifique dans un ReceivePaymentAddRq. Je reçois le, apparemment assez commun, "Objet TxnID spécifié dans la demande ne peut pas être trouvé". La plupart des autres forums sur ce sujet sont résolus une fois que le champ ARAccountRef est ajouté à la requête, cela n'a pas semblé faire de différence pour moi.ReceivePaymentAddRq dans QBXML - L'objet TxnID spécifié dans la requête est introuvable
J'ai interrogé la facture pour TxnID 68B4-1290718970 et vérifié les éléments suivants:
- ARAccountRef ListID Ma demande correspond à ce qui est dans le QueryRet
- CustomerRef ListID Ma demande correspond à ce qui est dans le QueryRet
Ma demande XML est ci-dessous. Qu'est-ce que je rate?
Merci
<QBXML>
<QBXMLMsgsRq onError = "continueOnError">
<ReceivePaymentAddRq requestID = "0">
<ReceivePaymentAdd>
<CustomerRef>
<ListID>80000111-1286514304</ListID>
</CustomerRef>
<ARAccountRef>
<ListID>80000091-1273734429</ListID>
</ARAccountRef>
<TxnDate>2010-11-10</TxnDate>
<RefNumber>2999 </RefNumber>
<TotalAmount>15.95</TotalAmount>
<PaymentMethodRef>
<ListID>80000002-1273560098</ListID>
</PaymentMethodRef>
<Memo>_32T0DE94J</Memo>
<DepositToAccountRef>
<ListID>80000090-1273734138</ListID>
</DepositToAccountRef>
<AppliedToTxnAdd>
<TxnID>68B4-1290718970</TxnID>
<PaymentAmount>15.95</PaymentAmount>
</AppliedToTxnAdd>
</ReceivePaymentAdd>
</ReceivePaymentAddRq>
</QBXMLMsgsRq>
</QBXML>
La liaison ne fonctionne pas. –
Grande info. Mon problème était # 4, ne spécifiant pas le compte AR explicitement. –
Dans mon cas, un bogue dans le code essayait de lier un crédit à une facture sous le mauvais nom de l'entreprise. Ce que je prends de ce (basé sur ce qui est écrit ci-dessus) est que QuickBooks effectue une requête de type WHERE en interne avec l'ID de transaction comme l'une des conditions. Quelque chose comme: WHERE txnID =? ET société =? ET compte =?... - si l'une de ces conditions échoue, QuickBooks le blâme sur l'objet qui n'existe pas du tout, alors qu'il peut bien exister mais une autre condition de requête échoue. C'est pourquoi InvoiceQuery démontre que l'objet existe alors que ReceivePaymentAdd est catégorique. –