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 org.opengion.fukurou.system.OgRuntimeException ; // 6.4.2.0 (2016/01/29) 019import java.io.File; 020 021import org.opengion.fukurou.util.StringUtil; // 6.9.8.1 (2018/06/11) 022import org.opengion.hayabusa.db.DBTableModel; 023import static org.opengion.fukurou.system.HybsConst.BUFFER_MIDDLE; // 6.1.0.0 (2014/12/26) refactoring 024 025/** 026 * 帳票処理要求を管理するキューオブジェクトです。 027 * このオブジェクトでは、帳票の定義及びデータと、処理中に発生したエラーメッセージを管理します。 028 * また、このキューを生成したオブジェクトもこのオブジェクトにセットされます。 029 * 030 * @og.group 帳票システム 031 * 032 * @version 4.0 033 * @author Hiroki.Nakamura 034 * @since JDK1.6 035 */ 036public class ExecQueue { 037 038 /** 実行方法 {@value} */ 039 protected static final String OUT_ODS_ONLY = "1"; 040 /** 実行方法 {@value} */ 041 protected static final String OUT_PRINT_ONLY = "2"; 042 /** 実行方法 {@value} */ 043 protected static final String OUT_ODS_PRINT = "3"; 044 /** 実行方法 {@value} */ 045 protected static final String OUT_ODS_PDF = "P"; 046 /** 実行方法 {@value} */ 047 protected static final String OUT_ODS_PRINT_PDF = "Q"; 048 /** 実行方法 {@value} */ 049 protected static final String OUT_ODS_EXCEL = "E"; 050 /** 実行方法 {@value} */ 051 protected static final String OUT_ODS_ODS = "S"; // 4.3.3.4 (2008/11/01) 追加 052 /** 実行方法 {@value} */ 053 protected static final String IN_INPUT_ONLY = "5"; 054 /** 実行方法 {@value} */ 055 protected static final String IN_EXEC_ONLY = "6"; 056 /** 実行方法 {@value} */ 057 protected static final String IN_INPUT_EXEC = "7"; 058 /** 実行方法 {@value} */ 059 protected static final String RFID_PRINT = "A"; 060 /** 実行方法 {@value} */ 061 protected static final String RFID_ALLPRINT = "B"; 062 /** 実行方法 {@value} */ 063 protected static final String RFID_ALLERASE = "C"; 064 /** 実行方法 {@value} */ 065 protected static final String RFID_SEQERASE = "D"; 066 067 // 5.9.0.0 (2015/09/04) CSV出力対応 068 /** 実行方法 {@value} */ 069 protected static final String CSV_PRINT = "G"; 070 /** 実行方法 {@value} */ 071 protected static final String CSV_PRINT_EXCEL = "H"; 072 /** 実行方法 {@value} */ 073 protected static final String CSV_PRINT_PDF = "I"; 074 /** 実行方法 {@value} */ 075 protected static final String CSV_PRINT_EXCEL2 = "J"; // 5.9.4.2 (2016/01/15) EXCEL2追加 076 077 /** 最大シート数 {@value} */ 078 protected static final int MAX_SHEETS_PER_FILE = 256; // 5.1.2.0 (2010/01/01) 079 080 private String ykno ; 081 private String systemId ; 082 private DBTableModel body ; 083 private DBTableModel header ; 084 private DBTableModel footer ; 085 private String listId ; 086 private String pdfPasswd ; 087 private String lang ; 088 private String threadId ; 089 private String templateName; 090 private String outputType ; 091 private String printerName ; 092 private String outputName ; 093 private boolean fglocal ; 094 private boolean fgcut ; 095 private QueueManager manager ; 096 private String prgdir ; // 4.3.3.0 (2008/10/01) 板金RFID対応。 097 private String prgfile ; // 4.3.3.0 (2008/10/01) 098 private String prtid ; // 4.3.3.0 (2008/10/01) 099 100 private String grpid ; // 5.9.2.2 (2015/11/20) 101 private String dmngrp ; // 5.9.2.2 (2015/11/20) 102 private int pageCnt ; // 5.1.2.0 (2010/01/01) 処理したページ数 103 private int rowCnt ; // 5.1.2.0 (2010/01/01) 処理した行数 104 private boolean isDataEnd ; // 5.1.2.0 (2010/01/01) 全データが処理されたか (メソッド名と同じ変数名変更) 105 106 private boolean useSheetName; // 5.7.6.2 (2014/05/16) PAGEBREAKカラムの値を、シート名として使うかどうか。 107// private String fgnoml = "0"; // 5.10.0.0 (2018/06/08) メール不要フラグ 108 private boolean fgnoml ; // 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要) 109 110 private final StringBuilder errMsg = new StringBuilder( BUFFER_MIDDLE ); 111 112 /** 113 * デフォルトコンストラクター 114 * 115 * @og.rev 6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor. 116 */ 117 public ExecQueue() { super(); } // これも、自動的に呼ばれるが、空のメソッドを作成すると警告されるので、明示的にしておきます。 118 119 /** 120 * 要求NOをセットします。 121 * 122 * @param ykno 要求NO 123 */ 124 public void setYkno( final String ykno ) { 125 this.ykno = ykno; 126 } 127 128 /** 129 * 要求NOを取得します。 130 * 131 * @return 要求NO 132 */ 133 public String getYkno() { 134 return ykno; 135 } 136 137 /** 138 * システムIDをセットします。 139 * 140 * @param systemId システムID 141 */ 142 public void setSystemId( final String systemId ) { 143 this.systemId = systemId; 144 } 145 146 /** 147 * システムIDを取得します。 148 * 149 * @return StringシステムID 150 */ 151 public String getSystemId() { 152 return systemId; 153 } 154 155 /** 156 * ボディー部分のDBTableModelをセットします。 157 * 158 * @param body DBTableModelオブジェクト 159 */ 160 public void setBody( final DBTableModel body ) { 161 this.body = body; 162 } 163 164 /** 165 * ボディー部分のDBTableModelを取得します。 166 * 167 * @return ボディー部分のDBTableModelオブジェクト 168 */ 169 public DBTableModel getBody() { 170 return body; 171 } 172 173 /** 174 * ヘッダー部分のDBTableModelをセットします。 175 * 176 * @param header DBTableModelオブジェクト 177 */ 178 public void setHeader( final DBTableModel header ) { 179 this.header = header; 180 } 181 182 /** 183 * ヘッダー部分のDBTableModelを取得します。 184 * 185 * @return ヘッダー部分のDBTableModelオブジェクト 186 */ 187 public DBTableModel getHeader() { 188 return header; 189 } 190 191 /** 192 * フッター部分のDBTableModelをセットします。 193 * 194 * @param footer DBTableModelオブジェクト 195 */ 196 public void setFooter( final DBTableModel footer ) { 197 this.footer = footer; 198 } 199 200 /** 201 * フッター部分のDBTableModelを取得します。 202 * 203 * @return フッター部分のDBTableModelオブジェクト 204 */ 205 public DBTableModel getFooter() { 206 return footer; 207 } 208 209 /** 210 * 帳票IDをセットします。 211 * 212 * @param listId 帳票ID 213 */ 214 public void setListId( final String listId ) { 215 this.listId = listId; 216 } 217 218 /** 219 * 帳票IDを取得します。 220 * 221 * @return 帳票ID 222 */ 223 public String getListId() { 224 return listId; 225 } 226 227 /** 228 * PDFパスワードをセットします。 229 * 230 * @param pdfPasswd PDFパスワード 231 */ 232 public void setPdfPasswd( final String pdfPasswd ) { 233 this.pdfPasswd = pdfPasswd; 234 } 235 236 /** 237 * PDFパスワードを取得します。 238 * 239 * @return PDFパスワード 240 */ 241 public String getPdfPasswd() { 242 return pdfPasswd; 243 } 244 245 /** 246 * 言語をセットします。 247 * 248 * @param lang 言語 249 */ 250 public void setLang( final String lang ) { 251 this.lang = lang; 252 } 253 254 /** 255 * 言語を取得します。 256 * 257 * @return 言語 258 */ 259 public String getLang() { 260 return lang; 261 } 262 263 /** 264 * 雛形ファイル名をセットします。 265 * 266 * @param templateName 雛形ファイル名 267 */ 268 public void setTemplateName( final String templateName ) { 269 this.templateName = templateName; 270 } 271 272 /** 273 * 雛形ファイル名を取得します。 274 * 275 * @return 帳票雛形ファイル名 276 */ 277 public String getTemplateName() { 278 return templateName; 279 } 280 281 /** 282 * 実行方法をセットします。 283 * 284 * @param outputType 実行方法 285 */ 286 public void setOutputType( final String outputType ) { 287 this.outputType = outputType; 288 } 289 290 /** 291 * 出力タイプを取得します。 292 * 293 * @return 出力タイプ 294 */ 295 public String getOutputType() { 296 return outputType; 297 } 298 299 /** 300 * プリンター名をセットします。 301 * 302 * @param printerName プリンター名 303 */ 304 public void setPrinterName( final String printerName ) { 305 this.printerName = printerName; 306 } 307 308 /** 309 * プリンター名を取得します。 310 * 311 * @return プリンタ名 312 */ 313 public String getPrinterName() { 314 return printerName; 315 } 316 317 /** 318 * 処理要求を処理するスレッドIDをセットします。 319 * 320 * @param threadId スレッドID 321 */ 322 public void setThreadId( final String threadId ) { 323 this.threadId = threadId; 324 } 325 326 /** 327 * 処理要求を処理するスレッドIDを取得します。 328 * 329 * @return スレッドID 330 */ 331 public String getThreadId() { 332 return threadId; 333 } 334 335 /** 336 * 出力ファイル名をセットします。 337 * 338 * @param outputName 出力ファイル名 339 */ 340 public void setOutputName( final String outputName ) { 341 this.outputName = outputName; 342 } 343 344 /** 345 * 出力ファイル名を設定します。 346 * GE50に設定されていない場合は第四引数(要求番号)を利用する。 347 * その場合、タイプに応じた拡張子が自動設定される。 348 * 349 * ".xls" : OUT_ODS_EXCEL 350 * ".pdf" : OUT_ODS_PDF , OUT_ODS_PRINT_PDF 351 * ".ods" : OUT_ODS_ODS 352 * ".xml" : RFID_PRINT , RFID_ALLPRINT , RFID_ALLERASE , RFID_SEQERASE 353 * ".csv" : CSV_PINT , CSV_PRINT_EXCEL , CSV_PRINT_PDF 354 * 355 * @og.rev 4.3.3.4 (2008/11/01) ODS出力対応 356 * @og.rev 5.4.3.0 (2011/12/26) RFIDデフォルト対応 357 * @og.rev 5.4.4.1 (2012/02/03) RFID拡張子変更 358 * @og.rev 5.9.0.0 (2015/09/04) CSV対応 359 * 360 * @param outputDir 出力ディレクトリ名 361 * @param outputFile 出力ファイル名 362 * @param type タイプ 363 * @param yokyu 要求番号(ファイル名が指定されていない場合のファイル名) 364 * 365 */ 366 public void setOutputName( final String outputDir, final String outputFile, final String type, final String yokyu ){ 367 final StringBuilder filePath = new StringBuilder( BUFFER_MIDDLE ); 368 filePath.append( outputDir ).append( File.separator ); // 6.0.2.5 (2014/10/31) char を append する。 369 370 if( outputFile == null || outputFile.isEmpty() ){ // ファイル名が指定されていない場合は要求番号を利用する。 371 if( OUT_ODS_EXCEL.equals( type ) ){ 372 filePath.append( yokyu ); 373 filePath.append( ".xls" ); 374 } 375 else if( OUT_ODS_PDF.equals( type ) || OUT_ODS_PRINT_PDF.equals( type ) ){ 376 filePath.append( yokyu ); 377 filePath.append( ".pdf" ); 378 } 379 // 4.3.3.4 (2008/11/01) 追加 380 else if( OUT_ODS_ODS.equals ( type ) ){ 381 filePath.append( yokyu ); 382 filePath.append( ".ods" ); 383 } 384 // 5.4.3.0 (2011/12/26) 追加 385 // 5.4.4.2 (2012/02/03) .txtではなく.xml 386 else if( ExecQueue.RFID_PRINT.equals( type ) || ExecQueue.RFID_ALLPRINT.equals( type ) 387 || ExecQueue.RFID_ALLERASE.equals( type ) || ExecQueue.RFID_SEQERASE.equals( type ) ) { 388 filePath.append( yokyu ); 389 filePath.append( ".xml" ); //txt-xml 390 } 391 // 5.9.0.0 (2015/09/04) 追加 392 // 5.9.4.2 (2016/01/13) EXCEL2追加 393 else if( ExecQueue.CSV_PRINT.equals( type ) || ExecQueue.CSV_PRINT_EXCEL.equals( type ) 394 || ExecQueue.CSV_PRINT_PDF.equals( type ) || ExecQueue.CSV_PRINT_EXCEL2.equals( type ) ) { 395 filePath.append( yokyu ); 396 filePath.append( ".csv" ); 397 } 398 } 399 else { 400 filePath.append( outputFile ); 401 } 402 403 this.outputName = filePath.toString(); 404 } 405 406 /** 407 * 出力ファイル名を取得します。 408 * 409 * @og.rev 5.1.2.0 (2010/01/01) 256シートを超える場合に対応。2ファイル目以降は、_1、_2・・・をファイル名の後ろにつける 410 * @og.rev 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs) 411 * 412 * @return 出力先ファイル名 413 * @og.rtnNotNull 414 */ 415 public String getOutputName() { 416 // 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs) 417 if( outputName == null ) { 418 final String errMsg = "#setOutputName(String) または、#setOutputName(String,String,String,String)を先に実行しておいてください。" ; 419 throw new OgRuntimeException( errMsg ); 420 } 421 422 if( pageCnt <= MAX_SHEETS_PER_FILE ) { 423 return outputName; 424 } 425 else { 426 final StringBuilder fileName = new StringBuilder( BUFFER_MIDDLE ); 427 428 final int idx = outputName.lastIndexOf( '.' ); 429 final String name = outputName.substring( 0, idx ); 430 final String suffix = outputName.substring( idx ); 431 final int addNo = (int)Math.ceil( (double)pageCnt/(double)MAX_SHEETS_PER_FILE ) - 1; 432 433 fileName.append( name ).append( '_' ).append( addNo ).append( suffix ); // 6.0.2.5 (2014/10/31) char を append する。 434 435 return fileName.toString(); 436 } 437 } 438 439 /** 440 * 実行ファイルディレクトリを指定します。 441 * 442 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 443 * 444 * @param dir ディレクトリ 445 */ 446 public void setPrgDir( final String dir ) { 447 this.prgdir = dir; 448 } 449 450 /** 451 * 実行ファイルディレクトリを取得します。 452 * 453 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 454 * 455 * @return プログラムディレクトリ 456 */ 457 public String getPrgDir() { 458 return prgdir; 459 } 460 461 /** 462 * 実行ファイル名をセットします。 463 * 464 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 465 * @param file ファイル名 466 */ 467 public void setPrgFile( final String file ) { 468 this.prgfile = file; 469 } 470 471 /** 472 * 実行ファイル名を取得します。 473 * 474 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 475 * 476 * @return プログラムファイル名 477 */ 478 public String getPrgFile() { 479 return prgfile; 480 } 481 482 /** 483 * プリンタIDをセットします。 484 * 485 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 486 * @param id プリンタID 487 */ 488 public void setPrtId( final String id ) { 489 this.prtid = id; 490 } 491 492 /** 493 * プリンタIDを取得します。 494 * 495 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID対応 496 * 497 * @return プリンタID 498 */ 499 public String getPrtId() { 500 return prtid; 501 } 502 503 /** 504 * グループIDをセットします。 505 * 506 * @og.rev 5.9.2.2 (2015/11/20) 507 * 508 * @param id グループID 509 */ 510 public void setGrpId( final String id ) { 511 this.grpid = id; 512 } 513 514 /** 515 * グループIDを取得します。 516 * 517 * @og.rev 5.9.2.2 (2015/11/20) 518 * 519 * @return グループID 520 */ 521 public String getGrpId() { 522 return grpid; 523 } 524 525 /** 526 * デーモングループをセットします。 527 * 528 * @og.rev 5.9.2.2 (2015/11/20) 529 * 530 * @param name デーモングループ 531 */ 532 public void setDmnGrp( final String name ) { 533 this.dmngrp = name; 534 } 535 536 /** 537 * デーモングループを取得します。 538 * 539 * @og.rev 5.9.2.2 (2015/11/20) 540 * 541 * @return デーモングループ 542 */ 543 public String getDmnGrp() { 544 return dmngrp; 545 } 546 547 /** 548 * ローカルリソース使用フラグをセットします(初期値:false)。 549 * 550 * @param fglocal ローカルリソース使用フラグ[true:使用する/false:使用しない] 551 */ 552 public void setFglocal( final boolean fglocal ) { 553 this.fglocal = fglocal; 554 } 555 556 /** 557 * ローカルリソース使用フラグを取得します。 558 * 559 * @return ロールリソース使用フラグ[true:使用する/false:使用しない] 560 */ 561 public boolean isFglocal() { 562 return fglocal; 563 } 564 565 /** 566 * ページエンドカットフラグをセットします(初期値:false)。 567 * 568 * @param fgcut ページエンドカットの使用可否[true:使用/false:通常] 569 */ 570 public void setFgcut( final boolean fgcut ) { 571 this.fgcut = fgcut; 572 } 573 574 /** 575 * ページエンドカットフラグを取得します。 576 * 577 * @return ページエンドカットフラグ 578 */ 579 public boolean isFgcut() { 580 return fgcut; 581 } 582 583 /** 584 * PAGEBREAKカラムの値を、シート名として使うかどうかをセットします(初期値:false)。 585 * 586 * @og.rev 5.7.6.2 (2014/05/16) 新規追加 587 * 588 * @param useSheetName PAGEBREAKカラムのシート名使用可否[true:使用/false:使用しない] 589 */ 590 public void setUseSheetName( final boolean useSheetName ) { 591 this.useSheetName = useSheetName; 592 } 593 594 /** 595 * PAGEBREAKカラムの値を、シート名として使うかどうかを取得します。 596 * 597 * @og.rev 5.7.6.2 (2014/05/16) 新規追加 598 * 599 * @return PAGEBREAKカラムのシート名使用可否[true:使用/false:使用しない] 600 */ 601 public boolean isUseSheetName() { 602 return useSheetName; 603 } 604 605 /** 606 * キューマネージャーをセットします。 607 * 608 * @param manager キューマネージャー 609 */ 610 public void setManager( final QueueManager manager ) { 611 this.manager = manager; 612 } 613 614 /** 615 * 帳票処理データをセットします。 616 * 既にテーブルモデルがセットされている場合は、再セットしません。 617 * 618 */ 619 public void setData() { 620 if( body == null && manager != null ) { 621 manager.set( this ); 622 } 623 } 624 625 /** 626 * キューを実行中の状態に更新します。 627 * 628 */ 629 public void setExecute() { 630 if( manager != null ) { 631 manager.execute( this ); 632 } 633 } 634 635 /** 636 * キューを完了済の状態に更新します。 637 * 638 */ 639 public void setComplete() { 640 if( manager != null ) { 641 manager.complete( this ); 642 } 643 } 644 645 /** 646 * キューをエラーの状態に更新します。 647 */ 648 public void setError() { 649 if( manager != null ) { 650 manager.error( this ); 651 } 652 } 653 654 /** 655 * エラーメッセージをセットします。 656 * 657 * @param msg エラーメッセージ 658 */ 659 public void addMsg( final String msg ) { 660 errMsg.append( msg ); 661 } 662 663 /** 664 * エラーメッセージを取得します。 665 * 666 * @return エラーメッセージ 667 * @og.rtnNotNull 668 */ 669 public String getMsg() { 670 return errMsg.toString(); 671 } 672 673 /** 674 * 処理したページ数を引数の分だけカウントアップします。 675 * 676 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 677 * 678 * @param pgs カウントアップするページ数 679 */ 680 public void addExecPageCnt( final int pgs ) { 681 pageCnt += pgs; 682 } 683 684 /** 685 * 処理したページ数を返します。 686 * 687 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 688 * 689 * @return 処理したページ数 690 */ 691 public int getExecPagesCnt() { 692 return pageCnt; 693 } 694 695 /** 696 * 処理した行数をセットします。 697 * 698 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 699 * 700 * @param rws 処理した行数 701 */ 702 public void setExecRowCnt( final int rws ) { 703 rowCnt = rws; 704 } 705 706 /** 707 * 処理した行数を返します。 708 * 709 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 710 * 711 * @return 処理した行数 712 */ 713 public int getExecRowCnt() { 714 return rowCnt; 715 } 716 717 /** 718 * 全ての行が処理されたかをセットします(初期値:false)。 719 * 720 * これは、処理結果が、256シートを超えていた場合、再度残りのデータについて 721 * 処理を行うかどうかの判定するために、利用します。 722 * 723 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 724 * 725 * @param flag 全ての行が処理されたか 726 */ 727 public void setEnd( final boolean flag ) { 728 isDataEnd = flag; 729 } 730 731 /** 732 * 全ての行が処理されているかを返します。 733 * 734 * これは、処理結果が、256シートを超えていた場合、再度残りのデータについて 735 * 処理を行うかどうかの判定するために、利用します。 736 * 737 * @og.rev 5.1.2.0 (2010/01/01) 新規追加 738 * 739 * @return 全ての行が処理されたか 740 */ 741 public boolean isEnd() { 742 return isDataEnd; 743 } 744 745 /** 746 * FGNOMI(メール不要フラグ)を設定します(初期値=false:送信する)。 747 * 748 * 帳票エラー時のメール送信は帳票IDの正規表現でコントロール可能でしたが、 749 * ID単位に未送信フラグを持たせてコントロール可能にします。 750 * GE54にFGNOMLカラムを追加し、これが1の場合はエラーメールを送信しないようにします。 751 * 帳票の動作にDBのカラム追加が伴うためバージョンを5.10系に上げます。 752 * エラーメールが不要の場合は、"true", もしくは、1文字の場合のみ、"0" 以外の場合が、 753 * メール不要として、エラーメールを送信しません。 754 * 755 * @og.rev 5.10.0.0 (2018/06/08) 新規追加 756 * @og.rev 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要) 757 * 758// * @param fgnoml 759 * @param flag メール不要フラグ 760 */ 761// public void setFgnoml( final String fgnoml) { 762 public void setFgnoml( final String flag ) { 763// this.fgnoml = fgnoml; 764 fgnoml = StringUtil.nval( flag,fgnoml ); // true,TRUE,0以外の1文字の場合、true、それ以外は、初期値 765 } 766 767 /** 768 * FGNOMI(メール不要フラグ)を取得します。 769 * 770 * @og.rev 5.10.0.0 (2018/06/08) 新規追加 771 * @og.rev 6.9.8.1 (2018/06/11) 帳票エラーメールの改修(メール不要フラグ=trueで不要、falseが必要) 772 * 773// * @return fgnomi 774 * @return メール不要フラグ [true:メール不要/false:エラーメール送信する] 775 */ 776// public String getFgnoml() { 777 public boolean isFgnoml() { 778// return this.fgnoml; 779 return fgnoml; 780 } 781}