Osticket: 1.10 - Экспорт списка заявок выводит только две первые строки

Созданный на 11 июл. 2016  ·  60Комментарии  ·  Источник: osTicket/osTicket

Когда вы нажимаете «экспорт» в любом списке заявок (открытых, закрытых, принадлежащих, найденных), созданный CSV-файл включает только первые ДВЕ строки.
Это также влияет на любой результат поиска.

Журналы apache показывают это:
Предупреждение PHP: mysqli_result :: close (): не удалось получить mysqli_result в /site_1.10.rc3/include/class.orm.php в строке 3076, ссылка: http: // ---------- -------- / scp / Tickets.php

osTicket 1.10.rc3
Centos 6,8 64b
MySQL 5.1
php 5.6

Спасибо.

Самый полезный комментарий

Мы все еще изучаем этот вопрос. Пока мы не исправим это окончательно, вы можете закомментировать строку 63 в include/class.export.php :

->options(QuerySet::OPT_NOCACHE)

... и вы должны снова экспортировать их все.

Все 60 Комментарий

"включает только первые две строки" @sistemasad фактически означает первые три (3).
Увидел такое же поведение на моих тестовых установках.

1.10rc3
Win2012 R2 с IIS8.5
PHP 5.6

Привет, я тоже подтверждаю ту же проблему.

osTicket 1.10.rc3
Centos 6,8 64b
mysql 5.5.50-cll, libmysql - 5.1.73
php 5.6

Привет,
Я потратил на это несколько минут.
В файле class.export.php, функции dumpTickets, последней инструкцией является возврат, вызывающий функцию self :: dumpQuery.
Последний параметр, который принимает dumpQuery, - это «$ options = array». Если вы установите это значение null, билеты экспортируются правильно. (остальные три параметра - это sql, заголовки и csv)

Кажется, проблема в параметрах, сгенерированных этими строками (четвертый параметр):

array ('modify' => function (& $ record, $ keys) use ($ fields) {
foreach ($ fields as $ k => $ f) {
if (($ i = array_search ($ k, $ keys))! == false) {
$ record [$ i] = $ f-> export ($ f-> to_php ($ record [$ i]));
}
}
эхо $ запись
return $ record;

Пожалуйста, помогите мне, моя проблема такая же

Предупреждение : mysqli_result :: close (): не удалось получить mysqli_result в ................ / include / class.orm.php в строке 3089

Предупреждение : mysqli_result :: close (): не удалось получить mysqli_result в ................ / include / class.orm.php в строке 3089

thuc960,
я изменил этот обратный вызов в файле class.export.php около строки 85 внутри функции function dumpTickets ($ sql, $ how = 'csv') :

_return self :: dumpQuery ($ билеты,
множество(
'number' => __ ('Номер билета'),
'created' => ('Дата создания








'lastupdate' => __ ('Последнее обновление'),
'est_duedate' => __ ('Срок сдачи'),
'isoverdue' => __ ('Просрочено'),
'isansarded' => __ ('Ответил'),
'staff :: getName' => __ ('Агент назначен'),
'team :: getName' => __ ('Назначена команда'),
'thread_count' => __ ('Количество потоков'),
'attachment_count' => __ ('Счетчик вложений'),
) + $ cdata,
$ как,
array ('modify' => function (& $ record, $ keys) use ($ fields) {
foreach ($ fields as $ k => $ f) {
if (($ i = array_search ($ k, $ keys))! == false) {
$ record [$ i] = $ f-> export ($ f-> to_php ($ record [$ i]));
}
}
эхо $ запись
return $ record;
})
); _

С помощью этого (удалите последний параметр после $ how,):

_return self :: dumpQuery ($ билеты,
множество(
'number' => __ ('Номер билета'),
'created' => ('Дата создания








'lastupdate' => __ ('Последнее обновление'),
'est_duedate' => __ ('Срок сдачи'),
'isoverdue' => __ ('Просрочено'),
'isansarded' => __ ('Ответил'),
'staff :: getName' => __ ('Агент назначен'),
'team :: getName' => __ ('Назначена команда'),
'thread_count' => __ ('Количество потоков'),
'attachment_count' => __ ('Счетчик вложений'),
) + $ cdata,
$ как,
нулевой
); _

НО, не уверен, почему это работает ;-)
С Уважением.

У меня такие же проблемы. В вывозе всего 2 билета.
Уже было в RC3 и RC2, а теперь в стабильной ?!

@JediKev @protich
Я только что подтвердил этот отчет на своем тестовом сервере v1.10 (901e5ea).

Я попробовал исправление, указанное выше, и оно позволяет экспортировать больше, но по-прежнему приводит к ошибке PHP в журнале:
[04-ноя-2016 14:49:25 UTC] Предупреждение PHP: mysqli_result :: free (): не удалось получить mysqli_result в \ support.110 \ include \ mysqli.php в строке 185

Я предполагаю, что именно здесь @greezybacon прекратил изменять источник для доступа к БД из mysli и ORM.

Я исправил файл, используя то, что рекомендует @sistemasad , и я могу экспортировать отчеты, однако это выглядит так, как если бы я делал так, мое настраиваемое раскрывающееся поле «Местоположение» иногда захватывает числовое представление, а иногда и местоположение числа (запятой). Любые идеи?

Та же проблема в финальной версии 1.10. Предлагаемый патч, кажется, исправляет это.

Та же проблема, спасибо @rayfoss

Я попробовал исправить это, но по-прежнему вызывает ошибку PHP в журнале:
Предупреждение PHP: mysqli_result :: free (): не удалось получить mysqli_result в \\ include \ mysqli.php в строке 185

Я сделал вызов функции free () (mysqli.php в строке 185) закомментированной строкой, и экспорт работает.

+1 У меня такая же проблема.

@HansLe - Вы можете уточнить? Вы решили проблему? Как и где вы вызывали функцию free ()?

@tdefreest , моя проблема решена. Я прокомментировал эту строку (номер 185):
// $ __ db-> unbuffered_result-> free ();
в модуле include \ mssqli.php

Проблема была решена для меня в соответствии с рекомендацией

3813

Комментирование строк в соответствии с решением @sistemasad повторно включает экспорт, но не может правильно записать настраиваемые поля ... они отображаются в виде чисел ... нашел ли кто-нибудь лучшее решение?

У меня та же проблема, что и у @demenna. Настраиваемые поля теперь экспортируются как числа.

для меня тоже. Настраиваемые поля теперь экспортируются как числа.

Код, закомментированный @sistemasad , отвечает за преобразование необработанных данных в форматированные. Похоже, что ошибка вызвана ошибкой где-то в этом коде. Таким образом, комментирование этого кода предотвращает ошибку, но также отключает логику форматирования - вот почему настраиваемые поля экспортируются как числа.

Насколько я понимаю,

Нам все еще нужно настоящее исправление, сохраняющее логику форматирования.

Экспорт работал нормально и экспортировал каждый тикет, а затем после изменения деталей тикета формы для добавления некоторых настраиваемых полей из использования базовых полей в настраиваемые списки из-за отсутствия данных, заполняемых при экспорте, теперь у нас есть данные в настраиваемом поле, но мы получаем только первые 2 линии в экспорте. До сих пор мы не добились успеха в поддержке наших изменений. Определенно происходит что-то, что требует надлежащего разрешения, и я согласен, что приведенное выше не является разрешением и требует надлежащего разрешения.

Привет всем, извините, что немного потерялся с несколькими билетами, каково же решение?

На данный момент нет полного решения, по крайней мере, если вы хотите, чтобы настраиваемые поля экспортировались правильно. Если вы согласны с тем, что они не экспортируются правильно, то комментарий от 26 октября укажет вам правильное направление.

Не уверен, помогает ли это, но у меня такая же проблема, и, похоже, она полностью вызвана кодом, вызывающим настраиваемые столбцы около 54 в файле class.export.php. Также ни одно из других решений в этом потоке не сработало, они просто останавливают загрузку всей страницы (для меня).

// Добавляем настраиваемые поля в оператор $ sql
$ cdata = $ fields = array ();
foreach (TicketForm :: getInstance () -> getFields () as $ f) {
// Игнорировать основные поля
если (in_array ($ f-> get ('имя'), array ('приоритет')))
Продолжить;
// Игнорировать поля без данных
elseif (! $ f-> hasData () || $ f-> isPresentationOnly ())
Продолжить;

        $name = $f->get('name') ?: 'field_'.$f->get('id');
        $key = 'cdata.'.$name;
        $fields[$key] = $f;
        $cdata[$key] = $f->getLocal('label');

Если последний раздел этого кода закомментирован, экспорт работает так, как должен, но без каких-либо настраиваемых полей. Я пытался изменить код, но безуспешно, за исключением того, что столбец приоритета вызывал дважды (вместо того, где должен быть столбец настраиваемого поля).

Может быть, эта информация поможет кое-что уточнить для кого-то более опытного. Если кто-нибудь может дать мне какие-либо отзывы / предложения, пожалуйста, не стесняйтесь.

Эта помощь собирает всех экспертов, но без настраиваемых полей это нехорошо :(

@protich @JediKev
Есть ли шанс, что это можно будет изучить? Экспорт по-прежнему не получает данные настраиваемого поля правильно. Произошло после обновления с v 1.9 до v 1.10 изначально: экспорт билетов в csv прекращается после экспорта только двух элементов (хотя файл все еще создается). Исправление в этом потоке предотвращает запуск настраиваемых полей для получения пары «ключ-значение», вызывая некоторую ручную работу по подключению информации. Это также происходит в самой последней версии v 1.10.1. Любая помощь приветствуется.

Привет.

У меня тоже такая же проблема:
Версия osTicket | v1.10.1 (9ae093d) - Актуально
Программное обеспечение веб-сервера | Apache / 2.4.6 (CentOS) OpenSSL / 1.0.1e-fips PHP / 5.4.16
Версия MySQL | 5.5.52
Версия PHP | 5.4.16

У нас есть настраиваемый список, когда мы выполняем поиск билетов с одним из значений настраиваемых списков, которые все они правильно выводят в CSV, однако, если мы не ищем что-то в этом настраиваемом списке, то только две строки выводятся в CSV.

Исправление для удаления настраиваемого поля приводит к тому, что выводятся все строки, но мы требуем, чтобы настраиваемый список был включен в CSV.

Я пытался разобраться, что происходит, но мне не удалось найти решение для этого, поэтому буду признателен за дополнительные предложения.

Джеймс.

Мы все еще изучаем этот вопрос. Пока мы не исправим это окончательно, вы можете закомментировать строку 63 в include/class.export.php :

->options(QuerySet::OPT_NOCACHE)

... и вы должны снова экспортировать их все.

Привет.

Спасибо за это решение, теперь в нем отображаются все билеты, но это означает, что отображается только первый элемент списка в настраиваемом поле списка, а другие - нет, поэтому, если в настраиваемом списке для него должны быть «яблоко» и «груша» этот билет покажет вам только «яблоко».

Джеймс.

Что ж, нам нужно было это исправить, поэтому сделайте обходной путь ... может быть, он не такой чистый, как нам нравится, но он работает.

Это полная функция dumptickets (обходной путь начинается примерно со строки 83)

static function dumpTickets($sql, $how='csv') {
    // Add custom fields to the $sql statement
    $cdata = $fields = array();
    foreach (TicketForm::getInstance()->getFields() as $f) {
        // Ignore core fields
        if (in_array($f->get('name'), array('priority')))
            continue;
        // Ignore non-data fields
        elseif (!$f->hasData() || $f->isPresentationOnly())
            continue;

        $name = $f->get('name') ?: 'field_'.$f->get('id');
        $key = 'cdata.'.$name;
        $fields[$key] = $f;
        $cdata[$key] = $f->getLocal('label');
    }
    // Reset the $sql query
    $tickets = $sql->models()
        ->select_related('user', 'user__default_email', 'dept', 'staff',
            'team', 'staff', 'cdata', 'topic', 'status', 'cdata__:priority')
        ->options(QuerySet::OPT_NOCACHE)
        ->annotate(array(
            'collab_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->aggregate(array('count' => SqlAggregate::COUNT('collaborators__id'))),
            'attachment_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->filter(array('entries__attachments__inline' => 0))
                ->aggregate(array('count' => SqlAggregate::COUNT('entries__attachments__id'))),
            'thread_count' => TicketThread::objects()
                ->filter(array('ticket__ticket_id' => new SqlField('ticket_id', 1)))
                ->exclude(array('entries__flags__hasbit' => ThreadEntry::FLAG_HIDDEN))
                ->aggregate(array('count' => SqlAggregate::COUNT('entries__id'))),
        ));

    // Fetch staff information
    // FIXME: Adjust Staff model so it doesn't do extra queries
    foreach (Staff::objects() as $S)
        $S->get('junk');

    //custom list
    $sql = 'SELECT type, name FROM ost_form_field WHERE type like "list%" ';  //fields
    $query = db_query($sql);
    $type_lists = array();
    while($row = mysqli_fetch_assoc($query)){
      $type_lists[] = $row;
    }

    $list = array();
    foreach($type_lists as $type_list){
      $list_id = intval(substr($type_list['type'], 5));

      $sql = 'SELECT id, value FROM ost_list_items WHERE list_id = '.$list_id; //list elements
      $query = db_query($sql);
      while($row = mysqli_fetch_assoc($query)){
        $list[$type_list['name']][$row['id']] = $row['value'];
      }
    }

    $cambio = array('modify' => function(&$record, $keys) use ($fields, $list) {
      $fields_array = array();
      foreach($keys as $key => $row){
        if(strpos($row, 'cdata.') === 0){ 
          $fields_array[$key] = substr($row, 6);
          if(isset($list[$fields_array[$key]]))
            $fields_list[] = $key;
        }
      }
      foreach ($fields as $k=>$f) {
        if (($i = array_search($k, $keys)) !== false) {
          if(in_array($i, $fields_list)){
            $record[$i] = $list[$fields_array[$i]][intval($record[$i])];
          }else{
            $record[$i] = $f->export($f->to_php($record[$i]));
          }
        }
      }
      return $record;
    });

Надеюсь, это сработает для кого-то еще ...

Решение Разарате сработало для меня как шарм - с небольшой модификацией. Я думаю, что razarate забыл включить следующую важную часть обновленной функции dumptickets:

 return self::dumpQuery($tickets,
        array(
            'number' =>         __('Ticket Number'),
            'created' =>        __('Date Created'),
            'cdata.subject' =>  __('Subject'),
            'user.name' =>      __('From'),
            'user.default_email.address' => __('From Email'),
            'cdata.:priority.priority_desc' => __('Priority'),
            'dept::getLocalName' => __('Department'),
            'topic::getName' => __('Help Topic'),
            'source' =>         __('Source'),
            'status::getName' =>__('Current Status'),
            'lastupdate' =>     __('Last Updated'),
            'est_duedate' =>    __('Due Date'),
            'isoverdue' =>      __('Overdue'),
            'isanswered' =>     __('Answered'),
            'staff::getName' => __('Agent Assigned'),
            'team::getName' =>  __('Team Assigned'),
            'thread_count' =>   __('Thread Count'),
            'attachment_count' => __('Attachment Count'),
        ) + $cdata,
        $how,
        $cambio
        );

Привет, есть ли новости о том, когда это будет исправлено в версии 1.10.1?

1.10.1 уже отсутствует ... поэтому в 1.10.1 он не будет исправлен.
Я полагаю, что это, вероятно, будет исправлено в 1.11, когда она будет выпущена.

Привет,
@ntozier есть я могу найти class.export.php с модификациями?
Большое спасибо!

@ elma1003 да?

Я исправил 1.10, комментируя
// -> параметры (QuerySet :: OPT_NOCACHE)
После этого экспорт работал нормально

Установил v1.10.1 (9ae093d)
Экспорт не в порядке, всего 3 строчки.
Я пытаюсь установить связь, но это не нормально, ничего не работает
Я скачал 1.10.2 с https://github.com/osTicket/osTicket/releases/tag/v1.10.2
но class.export.php такой же, как в 1.10
Пожалуйста помоги....

@ elma1003 Вы пробовали использовать решение Razarate?

@ elma1003 @kclubok

Исправление для этого включено в следующую версию v1.11.0rc-1 (скоро выйдет).

@ elma1003

Определите, что происходит с вашим экземпляром, поскольку я только что закомментировал эту строку в моем экземпляре v1.10.1, и он правильно экспортирует все билеты.

Ваше здоровье.

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

Я попробовал решение razarate, включая отзывы kclubok, и попробовал версию 1.11.x файла class.export.php, но она не включает настраиваемые поля.

Может быть, добрая душа, которая справилась, могла бы выложить сюда модифицированный файл class.export.php?

Раньше это исправление работало для меня. Вдруг перестает работать. Не знаете, что случилось?

@JediKev

Не могли бы вы указать нам на коммит для v.11.0rc-1, который это исправляет? Было бы очень полезно!

Я надеюсь, что исправление - это не просто комментирование этой строки. Как упоминалось ранее, это не приводит к правильному поведению, если есть настраиваемые поля списка.

По-прежнему возникает эта проблема с использованием файла class.export.php, расположенного на evertvh.

Я пробовал различные исправления, перечисленные в этой проблеме, но без радости.

У меня есть измененный формат csv с добавлением дополнительного столбца, чтобы показать «организацию», к которой принадлежит каждый пользователь, как подробно описано на форуме osticket - http://osticket.com/forum/discussion/92606/customising-ticket-csv- экспорт-правильный # последний

@Zixt

Спасибо, но мы действительно решили эти проблемы в v1.11.0rc-1 (очень скоро выпустим; надеюсь, к понедельнику). Наряду с решением исходной проблемы он добавляет возможность настраивать поля, которые вы хотите экспортировать.

Ваше здоровье.

EdiJediKev

Ну ладно - милый.

Ваше здоровье.

Привет @JediKev

Я обновил нашу установку до последней версии, но у меня возникли проблемы с настройкой очереди в соответствии с моей спецификацией?

Приносим извинения, если это не то место, где можно спросить!

Мне удалось правильно добавить «Организация» на страницу очереди, используя настраиваемое поле с основным источником данных, установленным на «Пользователь / Организация / Имя».

Однако - у меня нет возможности добавить настраиваемое поле на вкладку «Экспорт», и я могу выбирать только из набора предопределенных заголовков полей.

Что-то мне не хватает?

@Zixt

Здесь не место сообщать о вашей проблеме. Вы должны открыть свой собственный выпуск и заполнить шаблон нового выпуска. С учетом сказанного, я отправлю свой ответ ниже, чтобы у вас был хотя бы быстрый ответ. 👍

_ Отказ от ответственности: следующее относится только к v1.11.0rc-1 _

В настоящее время вы не можете добавлять пользовательские поля, поля организации и т. Д. В настраиваемый экспорт очереди, поскольку эта функция находится только в фазе 1 (или версии 1) и ограничена. Я верю_, что со временем он будет расширяться все больше и больше, чтобы допускать все виды полей. Вы можете увидеть все поля, которые вы можете добавить / переставить, в панели администратора> Настройки> Заявки> Очереди> щелкните имя очереди> Экспорт> Добавить другое поле .

_ (Мне очень жаль, что я ответил вам неправильно раньше; я думал, что в новом Exporter есть возможность добавить эти типы полей, но оказалось, что это не так. По крайней мере, экспорт теперь можно настраивать!) _

** Примечание

Вы всегда можете экспортировать имя организации пользователя, выбрав Панель агента> Пользователи> Каталог пользователей и нажав Экспорт внизу.


Ваше здоровье.

то же «1.10 - экспорт списка заявок выводит только две первые строки» в 1.10.4 после обновления с 1.10.1

это может быть об этом:
[ВЫБРАТЬ A3. staff_id AS lock__staff_id , A1. staff_id AS staff_id , A1. isoverdue AS isoverdue , A1. team_id AS team_id , A1. ticket_id AS ticket_id , A1. number AS number , A4. subject AS cdata__subject , A6. address AS user__default_email__address , A1. source AS source , A7. priority_color AS cdata__:priority__priority_color , A7. priority_desc AS cdata__:priority__priority_desc , A1. status_id AS status_id , A8. name AS status__name , A8. state AS status__state , A1. dept_id AS dept_id , B0. name AS dept__name , A5. name AS user__name , A1. lastupdate AS lastupdate , A1. isanswered AS isanswered , B1. firstname AS staff__firstname , B1. lastname AS staff__lastname , B2. name AS team__name , (SELECT COUNT (R0. id ) AS count FROM ost_thread Q7 ПРИСОЕДИНЯЙТЕСЬ к ost_ticket Q8 ВКЛ (Q7. object_type = 'T' И Q7. object_id = Q8. ticket_id ) ЛЕВЫЙ СОЕДИНЕНИЕ ost_thread_collaborator R0 ВКЛ (Q7. id = R0. thread_id ) ГДЕ Q8. ticket_id = A1. ticket_id ) AS collab_count, (SELECT COUNT (R1. id ) AS count ОТ ost_thread Q7 ПРИСОЕДИНЯЙТЕСЬ к ost_ticket Q8 ON (Q7. object_type = 'T' И Q7. object_id = Q8. ticket_id ) LEFT JOIN ost_thread_entry R0 ON (Q7. id = R0. thread_id ) LEFT JOIN ost_attachment R1 ON (R1. type = 'H' И R0. id = R1. object_id ) ГДЕ Q8. ticket_id = A1. ticket_id AND R1. inline = 0) AS attachment_count, (SELECT COUNT (R0. id ) AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON (Q7. object_type = 'T' И Q7. object_id = Q8. ticket_id ) LEFT JOIN ost_thread_entry R0 ON (Q7. id = R0. thread_id ) ГДЕ Q8. ticket_id = A1. ticket_id И НЕ R0. flags & 4! = 0) КАК thread_count ОТ ost_ticket A1 JOIN (SELECT , В7. ticket_id С ost_ticket В7 РЕГИСТРИРУЙТЕСЬ ost_ticket_status В8 ON (В7. status_id = В8. id ) где Q8. state state = 'open' И (Q7. staff_id = 2 OR Q7. team_id IN (1))) ИЛИ Q7. dept_id IN ('1', '2', '3')) ЗАКАЗАТЬ ПО Q7. ASC LIMIT 25) A2 LEFT JOIN `ost_lock` A3 ON (A1.`lock_id` = A3.`lock_id` AND A3.`expire` > NOW()) LEFT JOIN `ost_ticket__cdata` A4 ON (A1.`ticket_id` = A4.`ticket_id`) JOIN `ost_user` A5 ON (A1.`user_id` = A5.`id`) LEFT JOIN `ost_user_email` A6 ON (A5.`default_email_id` = A6.`id`) LEFT JOIN `ost_ticket_priority` A7 ON (A4.`priority` = A7.`priority_id`) JOIN `ost_ticket_status` A8 ON (A1.`status_id` = A8.`id`) JOIN `ost_department` B0 ON (A1.`dept_id` = B0.`id`) LEFT JOIN `ost_staff` B1 ON (A1.`staff_id` = B1.`staff_id`) LEFT JOIN `ost_team` B2 ON (A1.`team_id` = B2.`team_id`) WHERE A1.`ticket_id` = A2.`ticket_id` GROUP BY A3.`staff_id`, A1.`staff_id`, A1.`isoverdue`, A1.`team_id`, A1.`ticket_id`, A1.`number`, A4.`subject`, A6.`address`, A1.`source`, A7.`priority_color`, A7.`priority_desc`, A1.`status_id`, A8.`name`, A8.`state`, A1.`dept_id`, B0.`name`, A5.`name`, A1.`lastupdate`, A1.`isanswered`, B1.`firstname`, B1.`lastname`, B2.`name` ORDER BY A1. ASC]

Неизвестный столбец Q7. в "пункте заказа"



---- Отслеживание ----

0 (корень) /include/mysqli.php (204): osTicket-> logDBError ('Ошибка БД # 1054', '[ВЫБЕРИТЕ A3.`sta ...')

1 (корень) /include/class.orm.php (3136): db_query ('SELECT A3.`staf ...', true, true)

2 (корень) /include/class.orm.php (3183): MySqlExecutor-> выполнить ()

3 (корень) /include/class.orm.php (1868): MySqlExecutor-> getArray ()

4 (корень) /include/class.orm.php (1818): HashArrayIterator -> {закрытие} ()

5 (корень) /include/class.orm.php (1797): CallbackSimpleIterator-> next ()

6 (корень) /include/class.orm.php (1806): CallbackSimpleIterator-> rewind ()

7 (корень) /include/class.orm.php (1463): CallbackSimpleIterator-> действительный ()

8 (корень) /include/class.orm.php (1480): CachedResultSet-> fillTo (9223372036854775807)

9 (корень) /include/class.orm.php (1489): CachedResultSet-> asArray ()

10 (корень) /include/staff/tickets.inc.php (570): CachedResultSet-> getIterator ()

11 (корень) /scp/tickets.php (495): require_once ('(корень) / в ...')

12 {main}

v1.11.0-rc1 экспорт только с заголовком.

1.10 обновлен до 1.11rc1

экспорт дашборда работает, экспорт тикетов: не могу найти файл по адресу http://xxxxxxxx.xxxxxxx.com/helpdesk/scp/tickets.php?a=export&queue=adhoc , ikDr5jdnAc.

В 1.10.4 уже есть эти строки, такая же проблема - всего две строки в заголовке csv и один билет

Версия osTicket | v1.10.4
Версия PHP | 5.6.37

Просмотрите ваши рекомендации, однако я продолжаю с той же проблемой: при экспорте отчета о заявках со статусом «закрыто» в файле отображается только 1 заявка.

Работал в 1.10.1
настоящий блокировщик
Я знаю, что все используют 1.11, но если в следующем месяце не выйдет стабильная версия 1.11, дайте нам подсказку, как это исправить.

@lavdnone Исправление, опубликованное @JediKev в этой теме, у меня работает как в 1.10.0, так и в 1.10.4.
https://github.com/osTicket/osTicket/issues/3264#issuecomment -330262555

Спасибо, не знаю, как я это пропустил, # 3264 сработало

@lavdnone очень приветствую. Удачного отдыха! :)

Еще у меня проблема, что отображаются не все билеты.
использование вышеупомянутых решений в файле не работает для меня. При использовании я всегда получаю ошибку php

Может кто-нибудь выложить рабочий полный class.export.php?

@Orkanson

Вы закомментировали эту строку, и она выдает ошибку php? Похоже, ты сделал это неправильно. Все, что вам нужно сделать, это закомментировать одну строку, и это сработает.
# 3264 (комментарий)

Ваше здоровье.

Я закомментировал строку 58 в _include / class.export.php_, как рекомендовано в этом потоке, и теперь я могу экспортировать все билеты в формат .csv.
//->options(QuerySet::OPT_NOCACHE)

OSTicket v1.10.4 на Ubuntu 16

Я закомментировал строку 58 в _include / class.export.php_, как рекомендовано в этом потоке,
и теперь я могу экспортировать все билеты в формат .csv.
//->options(QuerySet::OPT_NOCACHE)

Да,
в моем файле тоже работает, что часть кода - это строка 63, но съедает память ... Я могу экспортировать небольшие списки билетов, но если я возьму список с сотнями тысяч билетов, он неизбежно завершится ошибкой :-(

_PHP Неустранимая ошибка: допустимый размер памяти 536870912 байт исчерпан (попытка выделить 32 байта) в include / class.orm.php в строке 3146_

Я изменил лимиты до 512 МБ, но остановился и восстановил старый лимит, чтобы избежать еще некоторых серьезных проблем.

NB: Я также пробовал другое исправление, опубликованное @JediKev, но в любом случае для него требуется слишком много оперативной

73с,
Артуро.

@ iw0der

В ближайшее время у нас есть исправление для серии 1.12.x которое устраняет тайм-ауты экспорта билетов для больших наборов данных. Пожалуйста, не переключайтесь.

Ваше здоровье.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги