Quickbooks InvoicedAdd и запрос dataextadd с использованием макроса

#xml #quickbooks #invoice #qbxml

Вопрос:

Я запускаю ниже xml — запрос к quickbooks

 <?xml version="1.0" encoding="UTF-8"?>
<?qbxml version="13.0"?>
<QBXML>
   <QBXMLMsgsRq onError="stopOnError">
      <InvoiceAddRq>
         <InvoiceAdd defMacro="TxnID:Invoice0">
            <CustomerRef>
               <FullName>krunal</FullName>
            </CustomerRef>
            <RefNumber>yolo</RefNumber>
            <InvoiceLineAdd>
               <ItemRef>
                  <FullName>ac</FullName>
               </ItemRef>
               <Quantity>1</Quantity>
            </InvoiceLineAdd>
         </InvoiceAdd>
      </InvoiceAddRq>
      <DataExtAddRq>
         <DataExtAdd>
            <OwnerID>0</OwnerID>
            <DataExtName>kkcf</DataExtName>
            <TxnDataExtType>Invoice</TxnDataExtType>
            <TxnID useMacro="TxnID:Invoice0" />
            <DataExtValue>nadiaad</DataExtValue>
         </DataExtAdd>
      </DataExtAddRq>
   </QBXMLMsgsRq>
</QBXML>

 

Я получаю ошибку ниже

Произошла ошибка при сохранении расширения данных с именем «kkcf».Сообщение об ошибке QuickBooks : Атрибут с указанным именем уже существует.. Сообщение об ошибке QuickBooks: Эта функция не включена или недоступна в данной версии QuickBooks.

Как я могу добавить поля счета-фактуры и пользовательские поля в один и тот же запрос. ?

Комментарии:

1. Доступны ли пользовательские поля в вашей версии QuickBooks? Включены ли они? Вы добавили это пользовательское поле в свои счета-фактуры в QuickBooks?

2. да, они доступны. Запрос на мод работает нормально. Это поле отображается в графическом интерфейсе счета quickbooks.

3. Я нашел проблему. Если значение унаследовано от клиента и уже присутствует на момент создания, то dataextadd завершится ошибкой, так как значение уже существует. Если значение пустое, то это работает. Можно ли установить унаследованное значение в пустую строку ?