Osticket: 1.10-チケットリストのエクスポートでは、最初の2行のみが出力されます

作成日 2016年07月11日  ·  60コメント  ·  ソース: osTicket/osTicket

チケットリスト(オープン、クローズ、所有、検索)で[エクスポート]をクリックすると、生成されるCSVには最初の2行のみが含まれます。
これは、検索結果にも影響します。

apacheログはこれを示しています:
PHP警告:mysqli_result :: close():3076行目の/site_1.10.rc3/include/class.orm.phpでmysqli_resultをフェッチできませんでした。リファラー: http:// ---------- -------- / scp / tickets.php

osTicket 1.10.rc3
Centos 6.8 64b
mysql 5.1
php 5.6

ありがとうございました。

最も参考になるコメント

この問題についてはまだ調査中です。 恒久的に修正するまで、 include/class.export.php 63行目をコメントアウトできます。

->options(QuerySet::OPT_NOCACHE)

...そして、それらすべてを再度エクスポートする必要があります。

全てのコメント60件

「最初の2行のみを含む」とは、 @ sistemasadは実際には最初の3行を意味します。
テストインストールで同じ動作が見られます。

1.10rc3
Win2012 R2 w / 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に設定すると、チケットは正しくエクスポートされます。 (他の3つのパラメーターはsql、headers、および "csv"です)

問題は、この行(4番目のパラメーター)によって生成されたオプションにあるようです。

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]));
}
}
エコー$ record
$ recordを返します。

私を助けてください、私の問題は同じです

警告:mysqli_result :: close(): 3089行目の................ / include /class.orm.phpでmysqli_resultをフェッチできませんでした

警告:mysqli_result :: close(): 3089行目の................ / include /class.orm.phpでmysqli_resultをフェッチできませんでした

thuc960、
私がしたことは、ファイルclass.export.phpのこのreturn呼び出しを、関数関数dumpTickets($ sql、$ how = 'csv')内の85行目について変更することでした。

_return self :: dumpQuery($ tickets、
配列(
'番号' => __( 'チケット番号')、
'作成済み' => ( '作成日')、'cdata.subject' => __( 'Subject')、'user.name' => __( 'From')、'user.default_email.address' => __( 'From Email')、'cdata.:priority.priority_desc' => __( 'Priority')、'dept :: getLocalName' => __( 'Department')、'topic :: getName' => __( 'ヘルプトピック')、'ソース' => __( 'ソース')、'status :: getName' => ( '現在のステータス')、
'lastupdate' => __( '最終更新')、
'est_duedate' => __( '期日')、
'isoverdue' => __( 'Overdue')、
'isanswered' => __( 'Answered')、
'staff :: getName' => __( 'エージェントが割り当てられました')、
'team :: getName' => __( 'Team Assigned')、
'thread_count' => __( 'スレッド数')、
'attachment_count' => __( 'Attachment Count')、
)+ $ cdata、
$ how、
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]));
}
}
エコー$ record
$ recordを返します。
})
); _

これで($ howの後の最後のパラメータを削除します):

_return self :: dumpQuery($ tickets、
配列(
'番号' => __( 'チケット番号')、
'作成済み' => ( '作成日')、'cdata.subject' => __( 'Subject')、'user.name' => __( 'From')、'user.default_email.address' => __( 'From Email')、'cdata.:priority.priority_desc' => __( 'Priority')、'dept :: getLocalName' => __( 'Department')、'topic :: getName' => __( 'ヘルプトピック')、'ソース' => __( 'ソース')、'status :: getName' => ( '現在のステータス')、
'lastupdate' => __( '最終更新')、
'est_duedate' => __( '期日')、
'isoverdue' => __( 'Overdue')、
'isanswered' => __( 'Answered')、
'staff :: getName' => __( 'エージェントが割り当てられました')、
'team :: getName' => __( 'Team Assigned')、
'thread_count' => __( 'スレッド数')、
'attachment_count' => __( 'Attachment Count')、
)+ $ cdata、
$ how、
ヌル
); _

しかし、なぜこれが機能するのかわかりません;-)
よろしく。

私も同じ問題を抱えています。 2枚のチケットのみがエクスポートされます。
すでにRC3とRC2にあり、現在は安定していますか?!

@JediKev @protich
v1.10(901e5ea)テストサーバーでこのレポートを確認しました。

上記の修正を試しましたが、エクスポートが増えましたが、ログにPHPエラーが表示されます。
[2016年11月4日14:49:25UTC] PHP警告:mysqli_result :: free():185行目の\ support.110 \ include \ mysqli.phpでmysqli_resultをフェッチできませんでした

私の推測では、これは@greezybaconがmysliとORMからDBにアクセスするためのソースの変更をです

@sistemasadが推奨するものを使用してファイルにパッチを適用し、レポートをエクスポートできますが、そうすることで、カスタムの「場所」ドロップダウンフィールドが数値表現を取得することもあれば、数値(カンマ)の場所を取得することもあります。 何か案は?

1.10の最終リリースでも同じ問題が発生しています。 提案されたパッチはそれを修正するようです。

同じ問題、ありがとう@rayfoss

上記の修正を試しましたが、ログにPHPエラーが表示されます。
PHP警告:mysqli_result :: free():\でmysqli_resultをフェッチできませんでした185行目の\ include \ mysqli.php

free()関数(185行目のmysqli.php)の呼び出しをコメント行にすると、エクスポートが機能します。

+1私も同じ問題を抱えています。

@ HansLe-明確にできますか? 問題を解決しましたか? free()関数をどこでどのように呼び出しましたか?

@tdefreest 、私の問題は解決しました。 私はこの行(番号185)にコメントしました:
// $ __ db-> unbuffered_result-> free();
モジュール内include \ mssqli.php

@sistemasadの推奨に従って、問題は解決されました。

3813

@sistemasadのソリューション付けると、エクスポートが再度有効になりますが、カスタムフィールドを正しく書き込むことができません...数値として表示されます...誰かがより良い解決策を見つけましたか?

@demennaと同じ問題が発生しています。 カスタムフィールドが数値としてエクスポートされるようになりました。

私にとってもカスタムフィールドは数値としてエクスポートされるようになりました。

@sistemasadによってコメントアウトされたコードは、生データをフォーマットされたデータに変換する役割を

@HansLeの追加についての私の理解は、最初の修正がすべての人の問題を完全に防ぐことはできなかったということであり、これはさらに必要でした。 私自身はその行動を見たことがありません。

まだ必要なのは、フォーマットロジックを保持する真の修正です。

エクスポートは正常に機能し、すべてのチケットをエクスポートしました。エクスポートにデータが入力されていないため、フォームチケットの詳細を変更して、基本フィールドの使用からカスタムリストにカスタムフィールドを追加した後、カスタムフィールドにデータがありますが、最初の2つしか取得できません。輸出中のライン。 これまでのところ、変更を取り消す成功は見られませんでした。 確かに、適切な解決策が必要なことが起こっています。上記は解決策ではなく、適切な解決策が必要であることに同意します。

こんにちは皆さん、複数のチケットで少し迷ってすみません、それで解決策は何ですか?

少なくともカスタムフィールドを正しくエクスポートしたい場合は、現時点で完全な解決策はありません。 それらが正しくエクスポートされなくても問題がない場合は、10月26日のコメントで正しい方向を示します。

これが役立つかどうかはわかりませんが、同じ問題が発生しており、class.export.phpファイルの54前後のカスタム列を呼び出すコードが原因のようです。 また、このスレッドの他のソリューションはどれも機能していません。ページ全体の読み込みを停止するだけです(私にとって)。

//カスタムフィールドを$ sqlステートメントに追加します
$ cdata = $ fields = array();
foreach(TicketForm :: getInstance()-> getFields()as $ f){
//コアフィールドを無視します
if(in_array($ f-> get( 'name')、array( 'priority')))
継続する;
//非データフィールドを無視します
elseif(!$ f-> hasData()|| $ f-> isPresentationOnly())
継続する;

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

このコードの最後のセクションがコメント化されている場合、エクスポートは正常に機能しますが、カスタムフィールドは省略されます。 コードを変更しようとしましたが、優先度列が2回呼び出される(カスタムフィールド列があるべき場所の代わりに)以外はまったく成功しませんでした。

たぶん、この情報は、より経験豊富な人のために何かを特定するのに役立つでしょう。 誰かが私にフィードバック/提案を与えることができるならば、遠慮なくしてください。

これはすべての専門家を集めるのに役立ちますが、カスタムフィールドがないと、良くありません:(

@protich @JediKev
これを調べることができる可能性はありますか? エクスポートはまだカスタムフィールドデータを正しくフェッチしていません。 もともとv1.9からv1.10にアップグレードした後に発生しました:csvへのチケットのエクスポートは、2つのアイテムのみをエクスポートした後に停止します(ただし、ファイルはまだ作成されています)。 このスレッドの修正により、カスタムフィールドが実行されてキーと値のペアがフェッチされなくなり、情報を接続するための手作業が発生します。 これは、最新のv1.10.1リリースでも発生しています。 どんな助けでも大歓迎です。

こんにちは。

私はここでも同じ問題を抱えています:
osTicketバージョン| v1.10.1(9ae093d)—最新
Webサーバーソフトウェア| Apache / 2.4.6(CentOS)OpenSSL / 1.0.1e-fips PHP / 5.4.16
MySQLバージョン| 5.5.52
PHPバージョン| 5.4.16

カスタムリストがあります。カスタムリストの値の1つを使用してチケットを検索すると、CSVですべて正しく出力されますが、このカスタムリストで何かを検索しないと、2行のみが出力されます。 CSV。

カスタムフィールドを削除する修正により、すべての行が出力されますが、カスタムリストをCSVに含める必要があります。

私は何が起こっているのかを解明しようとしましたが、それに対する修正を見つけることができなかったので、私はこれ以上の提案をいただければ幸いです。

ジェームズ。

この問題についてはまだ調査中です。 恒久的に修正するまで、 include/class.export.php 63行目をコメントアウトできます。

->options(QuerySet::OPT_NOCACHE)

...そして、それらすべてを再度エクスポートする必要があります。

こんにちは。

このソリューションのおかげで、すべてのチケットが表示されるようになりましたが、カスタムリストフィールドの最初のリストアイテムのみが表示され、他のアイテムは表示されないため、カスタムリストに「apple」と「pear」が含まれている必要があります。そのチケットはあなたに「リンゴ」だけを表示します。

ジェームズ。

さて、これを修正する必要があったので、回避策を作成してください...多分私たちが望むほどきれいではありませんが、それは機能します。

これは完全な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のソリューションは、小さな変更を加えるだけで、私にとって魅力のように機能しました。 razarateは、改訂されたダンプチケット機能の次の重要な部分を含めるのを忘れたと思います。

 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
        );

こんにちは、これがv1.10.1でいつ修正されるかについてのニュースはありますか?

1.10.1はすでにリリースされています...したがって、1.10.1では修正されません。
1.11でリリースされると修正されると思います。

こんにちは、
@ntozier変更を加えたclass.export.phpを見つけることができますか?
どうもありがとう!

@ elma1003え

コメントして1.10にパッチを適用しました
//-> options(QuerySet :: OPT_NOCACHE)
この後、エクスポートは正常に機能していました

これでv1.10.1(9ae093d)をインストールしました
エクスポートはOKではなく、3行だけです。
私はpachしようとしていますが、それは大丈夫ではありません、何も機能しません
https://github.com/osTicket/osTicket/releases/tag/v1.10.2から1.10.2をダウンロードしました
ただし、class.export.phpは1.10と同じです。
助けてください....

@ elma1003 Razarateのソリューションを使用してみましたか?

@ elma1003 @kclubok

これに対する修正は、v1.11.0rc-1の次のバージョンに含まれています(まもなくリリースされます)。

@ elma1003

v1.10.1インスタンスでその行をコメントアウトしたところ、インスタンスで何が起こっているのかを確認してください。すべてのチケットが適切にエクスポートされています。

乾杯。

カスタムフィールドを含むエクスポートを機能させる人はいますか? 私はそれを理解できないようです。

kclubokのフィードバックを含むrazarateのソリューションを試し、class.export.phpファイルの1.11.xバージョンを試しましたが、カスタムフィールドは含まれていません。

おそらく、管理した親切な人が、変更されたclass.export.phpファイルをここに投稿できますか?

この修正は私のために働いていました。 突然、それはもはや機能していません。 何が起こったのかわかりませんか?

@JediKev

これを修正するv.11.0rc-1のコミットを教えていただけますか? それは非常に役に立ちます!

修正が単にその行をコメントアウトするだけではないことを願っています。 前に述べたように、カスタムリストフィールドがある場合、それは正しい動作を生成しません。

evertvhにあるclass.export.phpファイルを使用しても、この問題は引き続き発生します。

私はこの問題にリストされているさまざまな修正を試しましたが、喜びはありません。

osticketフォーラム( http://osticket.com/forum/discussion/92606/customising-ticket-csv-)で詳しく説明されているように、各ユーザーが属する「組織」を示すために追加の列が追加されたcsv形式が変更されました

@Zixt

ありがとうございますが、実際にはv1.11.0rc-1これらの問題に対処しました(まもなくリリースされます。できれば月曜日までにリリースされます)。 元の問題に対処することに加えて、エクスポートするフィールドをカスタマイズする機能が追加されています。

乾杯。

EdiJediKev

ああ、いいね。

乾杯。

こんにちは@JediKev

インストール時に最新リリースに更新しましたが、自分の仕様に合わせてキューをカスタマイズするのに問題がありますか?

これが正しい質問場所ではない場合はお詫びします!

プライマリデータソースが「ユーザー/組織/名前」に設定されたカスタムフィールドを使用して、「組織」をキューページに正しく追加することができました。

ただし、-カスタムフィールドを[エクスポート]タブに追加するオプションはなく、事前定義されたフィールドヘッダーのセットからのみ選択できます。

足りないものはありますか?

@Zixt

これはあなたの問題を報告する場所ではありません。 独自の問題

_免責事項:以下はv1.11.0rc-1のみ適用されます_

現在、この機能はフェーズ1(またはバージョン1)のみであり、制限されているため、ユーザーフィールドや組織フィールドなどをカスタムキューエクスポートに追加することはできません。 あらゆる種類のフィールドを許可するために、時間の経過とともにますます拡張されると私は信じています。 [管理パネル]> [設定]> [チケット]> [キュー]> [キュー名]> [エクスポート]> [その他のフィールドの追加]で、追加/再配置できるすべてのフィールドを確認でき

_(以前に間違った回答をしたことをお詫びします。新しいエクスポーターにはこれらのタイプのフィールドを追加するオプションがあると思いましたが、そうではないことがわかりました。少なくともエクスポートは現在カスタマイズ可能です!)_

** サイドノート

[エージェントパネル]> [ユーザー]> [ユーザーディレクトリ]に移動し、下部にある[エクスポート]をクリックすると、いつでもユーザーの組織名をエクスポートできます。


乾杯。

1.10.1からの更新後の1.10.4の同じ「1.10-チケットリストのエクスポートは最初の2行のみを出力します」

これはそれについてかもしれません:
[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 JOIN ost_ticket Q8 ON(Q7。 object_type = 'T' ANDQ7。 object_id = Q8。 ticket_id )LEFT JOIN ost_thread_collaborator R0 ON(Q7。 id = R0。 thread_id )WHEREQ8。 ticket_id = A1。 ticket_id )AS collab_count、(SELECT COUNT(R1。 id )AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON(Q7。 object_type = 'T' ANDQ7。 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' ANDR0。 id = R1。 object_id )WHEREQ8。 ticket_id = A1。 ticket_id ANDR1。 inline = 0)AS attachment_count、(SELECT COUNT(R0。 id )AS count FROM ost_thread Q7 JOIN ost_ticket Q8 ON(Q7。 object_type = 'T' ANDQ7。 object_id = Q8。 ticket_id )LEFT JOIN ost_thread_entry R0 ON(Q7。 id = R0。 thread_id )WHERE Q8。 ticket_id = A1。 ticket_idあり、R0ではありません。 flags &4!= 0)AS thread_count FROM ost_ticket A1 JOIN (SELECTQ7。 ticket_id FROM ost_ticket Q7 JOIN ost_ticket_status Q8 ON(Q7。 status_id = Q8。 id )WHEREQ8。 state state = 'open' AND(Q7。 staff_id = 2または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」。 'order句'で



----バックトレース----

0(ルート)/include/mysqli.php(204):osTicket-> logDBError( 'DBエラー#1054'、 '[SELECT A3.`sta ...')

1(ルート)/include/class.orm.php(3136):db_query( 'SELECT A3.`staf ...'、true、true)

2(ルート)/include/class.orm.php(3183):MySqlExecutor-> execute()

3(ルート)/include/class.orm.php(1868):MySqlExecutor-> getArray()

4(ルート)/include/class.orm.php(1818):HashArrayIterator-> {closure}()

5(ルート)/include/class.orm.php(1797):CallbackSimpleIterator-> next()

6(ルート)/include/class.orm.php(1806):CallbackSimpleIterator-> rewind()

7(ルート)/include/class.orm.php(1463):CallbackSimpleIterator-> valid()

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(root)/scp/tickets.php(495):require_once( '(root)/ in ...')

12 {メイン}

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ヘッダーに2行、チケットが1つだけです。

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

その1行をコメントアウトすると、phpエラーが発生しますか? ya 'がそれを間違えたように聞こえます。 あなたがしなければならないのは1行をコメントアウトすることだけであり、それは機能します。
#3264(コメント)

乾杯。

このスレッドで推奨されているように、_include / class.export.php_の58行目をコメントアウトしました。これで、すべてのチケットを.csv形式にエクスポートできます。
//->options(QuerySet::OPT_NOCACHE)

Ubuntu16のOSTicketv1.10.4

このスレッドで推奨されているように、_include /class.export.php_の58行目をコメントアウトしました。
これで、すべてのチケットを.csv形式にエクスポートできます。
//->options(QuerySet::OPT_NOCACHE)

はい、
また、私のファイルでは、コードの一部が63行目ですが、メモリを消費しているようです...チケットの小さなリストをエクスポートできますが、数十万のチケットを含むリストを取得すると、必然的にエラーで終了します。 :-(

_PHP致命的なエラー:3146行目のinclude / class.orm.phpで、許可された536870912バイトのメモリサイズが使い果たされました(32バイトを割り当てようとしました)。

制限を最大512MBに変更しましたが、より重大な問題を回避するために、停止して古い制限を復元しました。

注意: @JediKevによって投稿された他の修正も試しましたが、リストが大きい場合は、いずれにせよ、RAMが多すぎます。

73代、
アルトゥーロ。

@ iw0der

大規模なデータセットのチケットエクスポートタイムアウトに対処する1.12.xシリーズの修正が間もなく開始されます。 しばらくお待ちください。

乾杯。

このページは役に立ちましたか?
0 / 5 - 0 評価