    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.hayabusa.report2;
    017
    018import java.io.File;
    019
    020import org.opengion.fukurou.util.FileUtil;
    021import org.opengion.fukurou.util.StringUtil;
    022import org.opengion.fukurou.util.ZipArchive;                                    // 6.0.0.0 (2014/04/11) ZIP API変更
    023import static org.opengion.fukurou.system.HybsConst.CR ;                // 6.1.0.0 (2014/12/26)
    024import org.opengion.hayabusa.common.HybsSystem;
    025import org.opengion.hayabusa.common.HybsSystemException;
    026// import org.opengion.hayabusa.report.CSVPrintRequest;                 // 5.9.0.0 (2015/09/04) 8.0.1.0 (2021/10/29) 保留
    027import org.opengion.hayabusa.io.HybsFileOperationFactory;               // 8.0.1.0 (2021/10/29) ExecThread → ExecProcess
    028//import org.opengion.hayabusa.report.ExcelInsert;                      // 7.4.4.0 (2021/06/30) Delete
    029//import org.opengion.hayabusa.report.ProgramRun;                       // 7.4.4.0 (2021/06/30) Delete
    030//import org.opengion.hayabusa.report.RFIDPrintRequest;         // 7.4.4.0 (2021/06/30) Delete
    031// import static org.opengion.fukurou.system.HybsConst.FS;              // 6.1.0.0 (2014/12/26) refactoring // 8.0.0.0 (2021/07/31) Delete
    032
    033/**
    034 * 帳票要求に設定された実行方法により､各種出力､Excel取り込み処理を行います｡
    035 * 1.出力
    036 *  雛形ﾌｧｲﾙを一時ﾃﾞｨﾚｸﾄﾘに展開した後､帳票ﾃﾞｰﾀを埋め込み､最後にOpenOffice.orgの
    037 *  ﾌﾟﾛｾｽを利用して出力を行います｡
    038 *  対応している出力方法は､印刷､PDF出力､Excel出力です｡
    039 *  一時ﾃﾞｨﾚｸﾄﾘは､ｼｽﾃﾑﾘｿｰｽのREPORT_FILE_URLで定義されたﾃﾞｨﾚｸﾄﾘです｡
    040 *  これが定義されていない場合は､ｼｽﾃﾑﾘｿｰｽのFILE_URLで定義されたﾃﾞｨﾚｸﾄ以下の/REPORTに
    041 *  展開されます｡
    042 *  一時ﾌｧｲﾙは､処理が正常に終了した場合､削除されます｡(ODS出力のみにした場合は､出力直前の
    043 *  ODSﾌｧｲﾙは残ります)
    044 *  処理でｴﾗｰが発生した場合は､一時ﾌｧｲﾙはﾃﾞﾊﾞｯｸﾞのため､削除されません｡
    045 * 2.取り込み
    046 *  旧帳票ｼｽﾃﾑの取り込み処理及びその後のPG起動を行います｡
    047 *
    048 * 実行方法により､出力､入力を行います｡
    049 *
    050 * @og.group 帳票ｼｽﾃﾑ
    051 *
    052 * @version  4.0
    053 * @author   Hiroki.Nakamura
    054 * @since    JDK1.6
    055 */
    056public class ExecProcess {
    057
    058        /** 帳票処理ｷｭｰ */
    059        private final ExecQueue queue;
    060
    061        /** 出力ﾀｲﾌﾟ */
    062        private final String type;
    063
    064        private final long start = System.currentTimeMillis();          // 6.3.9.1 (2015/11/27) 修飾子を､なし → private に変更｡
    065        private final boolean debug;            // 4.3.0.0 (2008/07/15) ﾃﾞﾊﾞｯｸﾞの追加
    066
    067        private final String outTemp ;          // 8.0.1.0 (2021/10/29)
    068
    069        /**
    070         * ｺﾝｽﾄﾗｸﾀ
    071         *
    072         * @og.rev 4.3.0.0 (2008/07/15)引数にdebugを追加
    073         *
    074         * @param qu            ExecQueueｵﾌﾞｼﾞｪｸﾄ
    075         * @param debugFlag ﾃﾞﾊﾞｯｸﾞﾌﾗｸﾞ[true/false]
    076         */
    077        public ExecProcess( final ExecQueue qu , final boolean debugFlag ) {
    078                queue = qu;
    079                type  = qu.getOutputType();
    080                debug = debugFlag;
    081
    082                // 8.0.1.0 (2021/10/29)
    083                outTemp = HybsSystem.url2dir( StringUtil.nval( HybsSystem.sys( "REPORT_FILE_URL" ) ,HybsSystem.sys( "FILE_URL" ) + "REPORT/" ) )
    084                        + queue.getSystemId() + File.separator + queue.getListId() + File.separator + queue.getYkno();
    085        }
    086
    087        /**
    088         * 帳票処理ﾌﾟﾛｾｽを実行します｡
    089         *
    090         * @og.rev 4.3.0.0 (2008/07/15) debugの追加
    091         * @og.rev 4.3.3.4 (2008/11/01) ODS出力追加
    092         * @og.rev 5.1.2.0 (2010/01/01) 256ｼｰﾄを超えた場合の対応
    093         * @og.rev 8.0.1.0 (2021/10/29) CSV出力対応(ﾕﾘﾆﾀ帳票)は､一旦保留にします｡
    094         * @og.rev 8.0.1.0 (2021/10/29) OUT_ODS_XSLX (Excel2007形式) 評価用
    095         */
    096        public void process() {
    097                // 処理開始
    098                addDebugMsg( "[INFO]EXEC-TIME:START=" + start );
    099
    100                // 5.1.2.0 (2010/01/01) 基本的には1回で終了｡256ｼｰﾄを超える場合のみ内部でfalseを立てる(2回目を処理させる)
    101                queue.setEnd( true );
    102
    103                /*
    104                 * ======================================================================
    105                 * = 出力処理
    106                 * ======================================================================
    107                 */
    108                // ﾊﾟｰｽ
    109//              if( ExecQueue.OUT_ODS_ONLY.equals( type )
    110//                              || ExecQueue.OUT_ODS_PRINT.equals( type ) || ExecQueue.OUT_ODS_PDF.equals( type ) || ExecQueue.OUT_ODS_EXCEL.equals( type )
    111//                              || ExecQueue.OUT_ODS_PRINT_PDF.equals( type ) || ExecQueue.OUT_ODS_ODS.equals( type ) ) {
    112//                      parse();
    113//              }
    114
    115                // 8.0.1.0 (2021/10/29) ﾊﾟｰｽ CSV出力を保留にしたので､印刷のみ以外はﾊﾟｰｽする｡
    116                if( !ExecQueue.OUT_PRINT_ONLY.equals( type ) ) {
    117                        parse();
    118                }
    119
    120                // 印刷
    121                if( ExecQueue.OUT_PRINT_ONLY.equals( type ) || ExecQueue.OUT_ODS_PRINT.equals( type ) ) {
    122                        output( "PRINT" );
    123                }
    124                // PDF出力
    125                else if( ExecQueue.OUT_ODS_PDF.equals( type ) ) {
    126                        output( "PDF" );
    127                }
    128                // EXCEL出力
    129                else if( ExecQueue.OUT_ODS_EXCEL.equals( type ) ) {
    130                        output( "EXCEL" );
    131                }
    132                // 8.0.1.0 (2021/10/29) Excel2007出力
    133                else if( ExecQueue.OUT_ODS_XSLX.equals( type ) ) {
    134                        output( "XSLX" );
    135                }
    136                // 印刷 + PDF出力
    137                else if( ExecQueue.OUT_ODS_PRINT_PDF.equals( type ) ) {
    138                        output( "PRINT", "PDF" );
    139                }
    140                // 4.3.3.4 (2008/11/01) 追加 ODS出力
    141                else if( ExecQueue.OUT_ODS_ODS.equals( type ) ) {
    142                        output( "ODS" );
    143                }
    144
    145        //      /*
    146        //       * ======================================================================
    147        //       * = 取込処理
    148        //       * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(EXCEL取込廃止)
    149        //       * ======================================================================
    150        //       */
    151                // 取込 7.4.4.0 (2021/06/30) Delete
    152        //      if( ExecQueue.IN_INPUT_ONLY.equals( type ) || ExecQueue.IN_INPUT_EXEC.equals( type ) ) {
    153        //              input();
    154        //      }
    155
    156                // PG起動 7.4.4.0 (2021/06/30) Delete
    157        //      if( ExecQueue.IN_EXEC_ONLY.equals( type ) || ExecQueue.IN_INPUT_EXEC.equals( type ) ) {
    158        //              pgexec();
    159        //      }
    160
    161        //      /*
    162        //       * ======================================================================
    163        //       * = RFID出力処理
    164        //       * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(RFID出力廃止)
    165        //       * ======================================================================
    166        //       */
    167                // RFID出力 7.4.4.0 (2021/06/30) Delete
    168        //      if( ExecQueue.RFID_PRINT.equals( type ) || ExecQueue.RFID_ALLPRINT.equals( type )
    169        //                      || ExecQueue.RFID_ALLERASE.equals( type ) || ExecQueue.RFID_SEQERASE.equals( type ) ) {
    170        //              rfid();
    171        //      }
    172
    173        //      // 8.0.1.0 (2021/10/29) CSV出力対応(ﾕﾘﾆﾀ帳票)は､一旦保留にします｡
    174        //      /*
    175        //       * ======================================================================
    176        //       * = CSV出力処理(ﾕﾆﾘﾀ 帳票形式のCSV)
    177        //       * 5.9.4.2 (2016/01/13) Excel2追加
    178        //       * ======================================================================
    179        //       */
    180        //      if( ExecQueue.CSV_PRINT.equals( type ) || ExecQueue.CSV_PRINT_EXCEL.equals( type )
    181        //                      || ExecQueue.CSV_PRINT_PDF.equals( type ) || ExecQueue.CSV_PRINT_EXCEL2.equals( type ) ) {
    182        //              csv();
    183        //      }
    184
    185                addDebugMsg( "[INFO]EXEC-TIME:END=" + System.currentTimeMillis() );
    186        }
    187
    188        /**
    189         * 雛形ﾌｧｲﾙを解析し､帳票ﾃﾞｰﾀを挿入します｡
    190         *
    191         * 雛形ﾌｧｲﾙは､ｸﾗｳﾄﾞ設定されていてもﾛｰｶﾙから取得します｡
    192         *
    193         * @og.rev 6.0.0.0 (2014/04/11) ZIP API変更
    194         */
    195        private void parse() {
    196                final File templateFile = new File( queue.getTemplateName() + ".ods" );         // 6.0.0.0 (2014/04/11) ZIP API変更
    197
    198//              final String tmp =
    199//                      HybsSystem.url2dir( StringUtil.nval( HybsSystem.sys( "REPORT_FILE_URL" ) ,HybsSystem.sys( "FILE_URL" ) + "REPORT/" ) )
    200//                      + queue.getSystemId() + File.separator + queue.getListId() + File.separator + queue.getYkno();
    201//              final String tmpdir = tmp + File.separator;
    202                final String tmpdir = outTemp + File.separator;                                 // 8.0.1.0 (2021/10/29)
    203//              final File tmpdirFile = new File( tmp + File.separator );               // 6.0.0.0 (2014/04/11) ZIP API変更
    204                final File tmpdirFile = new File( tmpdir );                                             // 8.0.1.0 (2021/10/29)
    205//              final File tmpodsFile = new File( tmp + ".ods" );                               // 6.0.0.0 (2014/04/11) ZIP API変更
    206                final File tmpodsFile = new File( outTemp + ".ods" );                   // 8.0.1.0 (2021/10/29)
    207
    208                // 一時ﾌｧｲﾙを削除(ｴﾗｰ発生時の前のﾌｧｲﾙを削除)
    209                FileUtil.deleteFiles( tmpdirFile );                                             // 6.0.0.0 (2014/04/11) ZIP API変更
    210
    211                // 雛形ODSをﾃﾝﾎﾟﾗﾘﾌｫﾙﾀﾞに解凍
    212                ZipArchive.unCompress( tmpdirFile, templateFile );              // 6.0.0.0 (2014/04/11) ZIP API変更
    213                addDebugMsg( "[INFO]EXEC-TIME:UNCOMP=" + ( System.currentTimeMillis() - start ) );
    214
    215                // DBTableModelのｾｯﾄ
    216                queue.setData();
    217                addDebugMsg( "[INFO]EXEC-TIME:DATA=" + ( System.currentTimeMillis() - start ) );
    218
    219                // content.xml,meta.xmlのﾊﾟｰｽ
    220                final OdsContentParser contentParser = new OdsContentParser( queue, tmpdir );
    221                contentParser.exec();
    222                addDebugMsg( "[INFO]EXEC-TIME:PARSE=" + ( System.currentTimeMillis() - start ) );
    223
    224                // 雛形ODSを再圧縮
    225                ZipArchive.compress( tmpdirFile, tmpodsFile );                  // 6.0.0.0 (2014/04/11) ZIP API変更
    226                addDebugMsg( "[INFO]EXEC-TIME:COMP=" + ( System.currentTimeMillis() - start ) );
    227
    228                // 一時ﾌｧｲﾙを削除
    229                FileUtil.deleteFiles( tmpdirFile );                                             // 6.0.0.0 (2014/04/11) ZIP API変更
    230                addDebugMsg( "[INFO]EXEC-TIME:DELETE=" + ( System.currentTimeMillis() - start ) );
    231        }
    232
    233        /**
    234         * 出力処理を行います｡
    235         *
    236         * @og.rev 4.2.3.1 (2008/06/04) 中間ﾌｧｲﾙの存在ﾁｪｯｸを追加
    237         * @og.rev 4.3.0.0 (2008/07/18) ﾌﾟﾘﾝﾄ時のﾌﾟﾘﾝﾀ名ﾁｪｯｸ追加
    238         * @og.rev 4.3.0.0 (2008/07/18) 出力ﾌｧｲﾙ名を指定していない場合に要求番号にする
    239         * @og.rev 4.3.3.4 (2008/11/01) ODS出力追加
    240         * @og.rev 5.1.2.0 (2010/01/01) 例外発生時にCalcｵﾌﾞｼﾞｪｸﾄをCloseしていないﾊﾞｸﾞを修正
    241         * @og.rev 5.1.6.0 (2010/05/01) 変換ｸﾗｽの大幅見直しによる修正(元のｺｰﾄﾞも削除します)
    242         * @og.rev 8.0.1.0 (2021/10/29) ﾛｰｶﾙﾌｧｲﾙとｸﾗｳﾄﾞﾌｧｲﾙ間の移動は､ExecProcess#output(String...) で行う｡
    243         * @og.rev 8.0.1.0 (2021/10/29) OUT_ODS_XSLX (Excel2007形式) 評価用
    244         *
    245         * @param String... types
    246         */
    247        private void output( final String... types ) {
    248//              final String tmpods =
    249//                      HybsSystem.url2dir( StringUtil.nval( HybsSystem.sys( "REPORT_FILE_URL" ) ,HybsSystem.sys( "FILE_URL" ) + "REPORT/" ) )
    250//                      + queue.getSystemId() + File.separator + queue.getListId() + File.separator + queue.getYkno() + ".ods";
    251
    252                final String tmpods = outTemp + ".ods";
    253                // 4.2.3.1 (2008/06/04) 中間ﾌｧｲﾙの存在ﾁｪｯｸ
    254                if( ! new File( tmpods ).exists() ){
    255                        queue.addMsg( "中間ﾌｧｲﾙが存在しません｡" + tmpods + CR );
    256                        throw new HybsSystemException();
    257                }
    258
    259                // 変換ｸﾗｽの生成
    260                final DocConverter_OOO dc = new DocConverter_OOO( tmpods );
    261                try {
    262                        // 起動
    263                        dc.open();
    264                        addDebugMsg( "[INFO]EXEC-TIME:OPEN=" + ( System.currentTimeMillis() - start ) );
    265
    266                        for( int i=0; i<types.length; i++ ) {
    267                                if( "PRINT".equals( types[i] ) ) {
    268                                        // 4.3.0.0 (2008/07/18) ﾌﾟﾘﾝﾄ時のﾌﾟﾘﾝﾀ名ﾁｪｯｸ
    269                                        if( queue.getPrinterName() == null || queue.getPrinterName().isEmpty() ){
    270                                                queue.addMsg( "出力先ﾏｽﾀが正しく設定されていません｡" + CR );
    271                                                throw new Exception();
    272                                        }
    273                                        dc.print( queue.getPrinterName() );
    274                                }
    275                                else {
    276                                        // 8.0.1.0 (2021/10/29) ｸﾗｳﾄﾞｺﾋﾟｰをここで行う｡
    277                                        final String outFilename = queue.getOutputName();
    278                                        if( "PDF".equals( types[i] ) ) {
    279                                                dc.pdf( outFilename, queue.getPdfPasswd() );
    280                                        }
    281                                        else {
    282                                                dc.auto( outFilename );                                         // 8.0.1.0 (2021/10/29)
    283                                        }
    284        //                              else if( "EXCEL".equals( types[i] ) ) {
    285        //                                      dc.xls( outFilename );
    286        //                              }
    287        //                              // 8.0.1.0 (2021/10/29) Excel2007出力
    288        //                              else if( "XSLX".equals( types[i] ) ) {
    289        //                                      dc.xlsx( outFilename );
    290        //                              }
    291        //                              // 4.3.3.4 (2008/11/01) 追加
    292        //                              else if( "ODS".equals( types[i] ) ) {
    293        //                                      dc.ods( outFilename );
    294        //                              }
    295                                        HybsFileOperationFactory.local2cloud( false, () -> new File( outFilename ) );   // false:ｼｽﾃﾑ定義のｸﾗｳﾄﾞ設定に従う｡
    296                                }
    297//                              else if( "PDF".equals( types[i] ) ) {
    298//                                      dc.pdf( queue.getOutputName(), queue.getPdfPasswd() );
    299//                              }
    300//                              else if( "EXCEL".equals( types[i] ) ) {
    301//                                      dc.xls( queue.getOutputName() );
    302//                              }
    303//                              // 4.3.3.4 (2008/11/01) 追加
    304//                              else if( "ODS".equals( types[i] ) ) {
    305//                                      dc.ods( queue.getOutputName() );
    306//                              }
    307                                addDebugMsg( "[INFO]EXEC-TIME:EXEC["+types[i]+"]=" + ( System.currentTimeMillis() - start ) );
    308                        }
    309
    310                        // Calcを閉じる
    311                        dc.close();
    312                        addDebugMsg( "[INFO]EXEC-TIME:RELEASE=" + ( System.currentTimeMillis() - start ) );
    313                }
    314                catch( final Throwable th ) {
    315                        // Calcを閉じる(ｴﾗｰ発生時)
    316                        dc.close( true );
    317                        queue.addMsg( "[INFO]EXEC-TIME:ERROR=" + ( System.currentTimeMillis() - start ) + CR );
    318                        throw new HybsSystemException( th );
    319                }
    320                // 一時ﾌｧｲﾙの削除
    321                FileUtil.deleteFiles( new File( tmpods ) );
    322                addDebugMsg( "[INFO]EXEC-TIME:DELETE=" + ( System.currentTimeMillis() - start ) );
    323        }
    324
    325        // /**
    326        // * 取込処理を行います｡
    327        // *
    328        // * @og.rev 4.3.0.0 (2008/07/15) debugの追加
    329        // * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(EXCEL取込廃止)
    330        // */
    331        // 7.4.4.0 (2021/06/30) Delete
    332        // private void input() {
    333        //      boolean flag = false;
    334
    335        //      // ｴｸｾﾙ入力の基底となるﾊﾟｽ
    336        //      final String excelinUrl = HybsSystem.url2dir( StringUtil.nval( HybsSystem.sys( "EXCEL_IN_FILE_URL" ), HybsSystem.sys( "FILE_URL" ) + "EXCELIN/" ) );
    337        //      final String excelinDir = excelinUrl + queue.getSystemId() + FS + queue.getListId();
    338
    339        //      final ExcelInsert ei = new ExcelInsert( queue.getSystemId(), queue.getYkno(), queue.getListId(), excelinDir, false );
    340        //      flag = ei.execute();
    341        //      if( !flag ) {
    342        //              queue.addMsg( ei.getErrMsg() );
    343        //              queue.addMsg( "取り込み処理に失敗しました" );
    344        //              throw new HybsSystemException();
    345        //      }
    346        //      addDebugMsg( "[INFO]EXEC-TIME:INPUT=" + ( System.currentTimeMillis() - start ) );
    347        // }
    348
    349        // /**
    350        // * Excel取込後のPG起動処理を行います｡
    351        // *
    352        // * @og.rev 4.3.0.0 (2008/07/15) debugの追加
    353        // * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(EXCEL取込廃止)
    354        // */
    355        // 7.4.4.0 (2021/06/30) Delete
    356        // private void pgexec() {
    357        //      boolean flag = false;
    358
    359        //      final ProgramRun pr = new ProgramRun( queue.getSystemId(), queue.getYkno(), queue.getListId(), false );
    360        //      flag = pr.execute();
    361        //      if( !flag ) {
    362        //              queue.addMsg( "取り込み後のPG起動に失敗しました" );
    363        //              queue.addMsg( pr.getErrMsg() );
    364        //              throw new HybsSystemException();
    365        //      }
    366        //      addDebugMsg( "[INFO]EXEC-TIME:PGEXEC=" + ( System.currentTimeMillis() - start ) );
    367        // }
    368
    369        // /**
    370        // * RFID出力処理を行います｡
    371        // *
    372        // * @og.rev 4.3.0.0 (2008/07/15) debugの追加
    373        // * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応
    374        // * @og.rev 5.4.3.9 (2012/01/25) 雛形ﾌｧｲﾙ名
    375        // * @og.rev 7.4.4.0 (2021/06/30) openGionV8事前準備(RFID出力廃止)
    376        // */
    377        // 7.4.4.0 (2021/06/30) Delete
    378        // private void rfid() {
    379        //      boolean flag = false;
    380
    381        //      // RFIDPrintRequest rpr = new RFIDPrintRequest( queue.getSystemId(), queue.getYkno(), queue.getListId(), queue.getLang(), type, queue.getPrinterName(), false );
    382        //      // 4.3.3.0 (2008/10/01) 板金RFID対応｡
    383        //      // 5.4.3.9 (2012/01/25) 雛形ﾌｧｲﾙ名を渡す
    384        //      final RFIDPrintRequest rpr = new RFIDPrintRequest( queue.getSystemId(), queue.getYkno(), queue.getListId(), queue.getLang(), type, queue.getPrtId()
    385        //                                                                                               ,queue.getPrgDir(), queue.getPrgFile(), queue.getOutputName(),queue.getTemplateName(), false );
    386        //      flag = rpr.initialDataSet();
    387        //      if( flag ) {
    388        //              flag = rpr.execute();
    389        //      }
    390        //      if( !flag ) {
    391        //              queue.addMsg( "RFID出力処理に失敗しました" );
    392        //              queue.addMsg( rpr.getErrMsg() );
    393        //              throw new HybsSystemException();
    394        //      }
    395        //      addDebugMsg( "[INFO]EXEC-TIME:RFID=" + ( System.currentTimeMillis() - start ) );
    396        // }
    397
    398        //      /**
    399        //       * CSV出力処理を行います｡
    400        //       *
    401        //       * @og.rev 5.9.0.0 (2015/09/04)
    402        //       * @og.rev 5.9.2.2 (2015/11/22) grpid,demgrp
    403        //       * @og.rev 5.9.2.3 (2015/11/27) 件数対応
    404        //       * @og.rev 8.0.1.0 (2021/10/29) CSV出力対応(ﾕﾘﾆﾀ帳票)は､一旦保留にします｡
    405        //       */
    406        //      private void csv() {
    407        //              boolean flag = false;
    408        //
    409        //              final CSVPrintRequest rpr = new CSVPrintRequest( queue.getSystemId(), queue.getYkno(), queue.getListId(), queue.getLang(), type, queue.getPrtId()
    410        //                                                      ,queue.getPrgDir(), queue.getPrgFile(), queue.getOutputName(), queue.getTemplateName(), queue.getGrpId(), queue.getDmnGrp(), debug );
    411        //              flag = rpr.initialDataSet();
    412        //              if( flag ) {
    413        //                      flag = rpr.execute();
    414        //              }
    415        //              if( !flag ) {
    416        //                      queue.addMsg( "CSV出力処理に失敗しました" );
    417        //                      queue.addMsg( rpr.getErrMsg() );
    418        //                      throw new HybsSystemException();
    419        //              }
    420        //              queue.setExecRowCnt( rpr.getBodyCount() ); // 5.9.2.3 (2015/11/27)
    421        //
    422        //              addDebugMsg( "[INFO]EXEC-TIME:CSV=" + ( System.currentTimeMillis() - start ) );
    423        //      }
    424
    425        /**
    426         * ﾃﾞﾊﾞｯｸﾞ用のﾒｯｾｰｼﾞを出力します｡
    427         *
    428         * @param       msg     ﾒｯｾｰｼﾞ
    429         */
    430        private void addDebugMsg( final String msg ) {
    431                if( debug ){
    432                        queue.addMsg( msg + CR );
    433                }
    434        }
    435}