2016-07-20 3 views
0

Мне что-то не хватает, потому что у меня не было проблем с запросом на всех поставщиков, клиентов и предметов, но сотрудники дают мне головную боль. Мой файл никогда не попадает в ответ на импорт, потому что он генерирует ошибку ошибки 0x80040400 при анализе предоставленного текстового потока xml. Это точный поток XML:Использование consolibyte QuickBooks PHP framework - не может импортировать всех сотрудников 0x80040400 error

<?xml version="1.0" encoding="utf-8"?> 
    <?qbxml version="13.0"?> 
    <QBXML> 
     <QBXMLMsgsRq onError="continueOnError"> 
      <EmployeeQueryRq iterator="Start" requestID="249"> 
           <MaxReturned>10</MaxReturned> 
             <ActiveStatus>All</ActiveStatus> 
             <FromModifiedDate>1983-01-02T12:01:01</FromModifiedDate> 
             <OwnerID>0</OwnerID> 
      </EmployeeQueryRq> 
     </QBXMLMsgsRq> 
    </QBXML> 

И это код, который произвел его (я использую итератор на основе одного из их примеров разбивают возвращение в партию - я использовал тот же формат на каждая секция, которую я импортирую, - она ​​работает для всех других объектов)

function _quickbooks_employee_import_request($requestID, $user, $action, $ID, $extra, &$err, $last_action_time, $last_actionident_time, $version, $locale) 
{ 
    // Iterator support (break the result set into small chunks) 
    $attr_iteratorID = ''; 
    $attr_iterator = ' iterator="Start" '; 
    if (empty($extra['iteratorID'])) 
    { 
     // This is the first request in a new batch 
     $last = _quickbooks_get_last_run($user, $action); 
     _quickbooks_set_last_run($user, $action);   
// Update  the  last run time to NOW() 
    // Set the current run to $last 
    _quickbooks_set_current_run($user, $action, $last); 
} 
else 
{ 
    // This is a continuation of a batch 
    $attr_iteratorID = ' iteratorID="' . $extra['iteratorID'] . '" '; 
    $attr_iterator = ' iterator="Continue" '; 

    $last = _quickbooks_get_current_run($user, $action); 
} 

// Build the request 
$xml = '<?xml version="1.0" encoding="utf-8"?> 
    <?qbxml version="' . $version . '"?> 
    <QBXML> 
     <QBXMLMsgsRq onError="continueOnError"> 
      <EmployeeQueryRq ' . $attr_iterator . ' ' . $attr_iteratorID . ' requestID="' . $requestID . '"> 
           <MaxReturned>' . QB_QUICKBOOKS_MAX_RETURNED . '</MaxReturned> 
             <ActiveStatus>All</ActiveStatus> 
             <FromModifiedDate>' . $last . '</FromModifiedDate> 
             <OwnerID>0</OwnerID> 
      </EmployeeQueryRq> 
     </QBXMLMsgsRq> 
    </QBXML>'; 

    QuickBooks_Utilities::log(QB_QUICKBOOKS_DSN, $xml); 
return $xml; 
} 

ПОМОЩЬ!

ответ

0

Пожалуйста, обратитесь к документации:

Что указывает на то, что iterators не поддерживаются для сотрудников.

<?xml version="1.0" encoding="utf-8"?> 
<?qbxml version="13.0"?> 
<QBXML> 
<QBXMLMsgsRq onError="stopOnError"> 
<EmployeeQueryRq metaData="ENUMTYPE"> 

Если у вас по-прежнему возникают проблемы, отправьте сообщение об ошибке, указанное в логах/веб-коннекторе. Копировать вставить.

Это не ошибка, QuickBooks производит:

0x80040400 error of an error when parsing the provided xml text stream 

То, что вы, вероятно, наблюдаем:

QuickBooks found an error when parsing the provided XML text stream 
+0

Я не знаю, как вы все еще имеем дело со всеми мы поддерживаем это 7 или 8 лет спустя, но я, безусловно, ценю, что вы! Это было именно то, что мне нужно - спасибо x 1 миллион! –

+0

@BobbyDawson Рад помочь !!! :-) –

 Смежные вопросы

  • Нет связанных вопросов^_^