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.report; 017 018import java.util.concurrent.ConcurrentMap; // 6.4.3.3 (2016/03/04) 019import java.util.concurrent.ConcurrentHashMap; // 6.4.3.1 (2016/02/12) refactoring 020 021import org.opengion.fukurou.db.DBUtil; 022import org.opengion.fukurou.db.ApplicationInfo; 023import org.opengion.fukurou.util.StringUtil; 024import org.opengion.hayabusa.common.HybsSystem; 025import org.opengion.hayabusa.db.DBTableModel; 026import org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator; 027import org.opengion.hayabusa.resource.ResourceFactory; 028import org.opengion.hayabusa.resource.ResourceManager; 029import static org.opengion.fukurou.system.HybsConst.CR ; // 6.1.0.0 (2014/12/26) 030import static org.opengion.fukurou.system.HybsConst.BUFFER_MIDDLE; // 6.1.0.0 (2014/12/26) refactoring 031 032/** 033 * DBTableModelオブジェクトをレポート形式に返還するタグリブクラスです。 034 * このオブジェクトに、 データ(DBTableModel)と、コントローラ(DBTableReport クラス)を与えて、 035 * 外部からコントロールすることで、各種形式で データ(DBTableModel)を表示させることが 036 * 可能です。 037 * 038 * @og.group 帳票システム 039 * 040 * @version 4.0 041 * @author Hiroki Nakamura 042 * @since JDK5.0, 043 */ 044public class RFIDPrintRequest { 045 private final StringBuilder errMsg = new StringBuilder( BUFFER_MIDDLE ); 046 047 // DBTableModel に対して設定する情報 048 private ResourceManager resource ; 049 050 // 受け渡し変数 051 private final String SYSTEM_ID ; 052 private final String YKNO ; 053 private final String LISTID ; 054 private final String LANG ; 055 private final String FGRUN ; 056 private final String PRTID ; 057 private final String PRGDIR ; // 4.3.3.0 (2008/10/01) 板金RFID対応で追加 058 private final String PRGFILE ; // 4.3.3.0 (2008/10/01) 追加 059 private final String OUTDIR ; // 4.3.3.0 (2008/10/01) 追加 060 private final boolean DEBUG ; 061 private final String FILENAME ; // 5.4.3.9 (2012/01/25) 062 063// private String BASE_SYS_ID = "**" ; // 7.2.6.0 (2020/06/30) ベースシステムID 064 065 // オブジェクト変数 066 private boolean fgLOCAL ; 067 private String prtName ; 068 private String hostName ; 069 private String portnm ; 070 private String fgkan = GE50Access.FG_ERR2; // 4.3.3.0 (2008/10/01) 初期値エラー 071 /** 6.4.3.1 (2016/02/12) PMD refactoring. HashMap → ConcurrentHashMap に置き換え。 */ 072 private final ConcurrentMap<String,String[]> rfidLayoutMap = new ConcurrentHashMap<>(); // 6.4.3.3 (2016/03/04) 073 074 // GE54 の帳票定義情報を取得するSQL文です。 075 private static final String GE54_SELECT = 076 "SELECT BSQL,FGLOCAL,SYSTEM_ID" + 077 " FROM GE54" + 078 " WHERE FGJ = '1'" + 079 " AND SYSTEM_ID IN (?,'**')" + 080 " AND LISTID = ?" ; 081 082 // GE54 の帳票定義情報を取得するSQL文です。 083 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 084 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 085// private static final String GE54_SELECT = 086// "SELECT BSQL,FGLOCAL,SYSTEM_ID" 087// + " from (" 088// + " select 0 as SNO,B.* from GE54 B where SYSTEM_ID='**' and LISTID=? and FGJ='1'" // エンジン共通 089// + " union all" 090// + " select 1 as SNO,B.* from GE54 B where SYSTEM_ID=? and LISTID=? and FGJ='1'" // RESOURCE_BASE_SYSTEM_ID 091// + " union all" 092// + " select 2 as SNO,B.* from GE54 B where SYSTEM_ID=? and LISTID=? and FGJ='1'" // 最上位ののSYSTEM_ID 093// + " ) A" 094// + " order by SNO,SYSTEM_ID" ; 095 096 private static final int GE54_FGLOCAL = 1; 097// private static final int GE54_SYSTEM_ID = 2; 098 099// // 5.4.4.0 (2012/02/01) 互換モード対応漏れ 100// // 6.9.5.0 (2018/04/23) VER4_COMPATIBLE_MODE 廃止 101// private static final String HOST = HybsSystem.sysBool( "VER4_COMPATIBLE_MODE" ) ? "HOST" : "HOST_ID"; 102 103 // GE55 の出力先マスタ情報を取得するSQL文です。 104 // 5.1.0.0 (2009/11/04) HOST ⇒ HOST_ID 105 // 5.4.3.1 (2011/12/27) PORTNM 106 // 5.4.4.0 (2012/02/01) 互換モード 107 // 6.9.5.0 (2018/04/23) VER4_COMPATIBLE_MODE 廃止 108 private static final String GE55_SELECT = 109 "SELECT PRTNM,HOST_ID,SYSTEM_ID,PORTNM" + 110 " FROM GE55" + 111 " WHERE FGJ = '1'" + 112 " AND SYSTEM_ID IN (?,'**')" + 113 " AND PRTID = ?" ; 114 115 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 116 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 117// private static final String GE55_SELECT = 118// "SELECT PRTNM,HOST_ID,SYSTEM_ID,PORTNM" 119// + " from (" 120// + " select 0 as SNO,B.* from GE55 B where SYSTEM_ID='**' and PRTID=? and FGJ='1'" // エンジン共通 121// + " union all" 122// + " select 1 as SNO,B.* from GE55 B where SYSTEM_ID=? and PRTID=? and FGJ='1'" // RESOURCE_BASE_SYSTEM_ID 123// + " union all" 124// + " select 2 as SNO,B.* from GE55 B where SYSTEM_ID=? and PRTID=? and FGJ='1'" // 最上位ののSYSTEM_ID 125// + " ) A" 126// + " order by SNO,SYSTEM_ID" ; 127 128 private static final int GE55_PRTNM = 0; 129 private static final int GE55_HOST_ID = 1; 130// private static final int GE55_SYSTEM_ID = 2; 131 private static final int GE55_PORTNM = 3; 132 133// // 5.2.0.0 (2010/09/01) Ver4互換モード対応 134// // 6.9.5.0 (2018/04/23) VER4_COMPATIBLE_MODE 廃止 135// private static final String CLM = HybsSystem.sysBool( "VER4_COMPATIBLE_MODE" ) ? "COLUMN_NAME" : "CLM"; 136 137 // GE58 の帳票レイアウトテーブルを取得するSQL文です。 138 // 5.2.0.0 (2010/09/01) Ver4互換モード対応 139 // 6.9.5.0 (2018/04/23) VER4_COMPATIBLE_MODE 廃止 140 private static final String GE58_SELECT = 141 "SELECT KBOUT,DATA1,DATA2,DATA3,DATA4,DATA5,DATA6,DATA7,DATA8" + 142 " ,DATA9,DATA10,DATA11,DATA12,DATA13,DATA14,DATA15,CLM" + 143 " FROM GE58 WHERE SYSTEM_ID IN (?,'**')" + 144 " AND LISTID = ?"; 145 146 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 147 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 148// private static final String GE58_SELECT = 149// "SELECT KBOUT,DATA1,DATA2,DATA3,DATA4,DATA5,DATA6,DATA7,DATA8" 150// + " ,DATA9,DATA10,DATA11,DATA12,DATA13,DATA14,DATA15,CLM" 151// + " from (" 152// + " select 0 as SNO,B.* from GE58 B where SYSTEM_ID='**' and LISTID=? and FGJ='1'" // エンジン共通 153// + " union all" 154// + " select 1 as SNO,B.* from GE58 B where SYSTEM_ID=? and LISTID=? and FGJ='1'" // RESOURCE_BASE_SYSTEM_ID 155// + " union all" 156// + " select 2 as SNO,B.* from GE58 B where SYSTEM_ID=? and LISTID=? and FGJ='1'" // 最上位ののSYSTEM_ID 157// + " ) A" 158// + " order by SNO,SYSTEM_ID" ; 159 160 /** GE58カラム番号 {@value} */ public static final int GE58_KBOUT = 0; 161 /** GE58カラム番号 {@value} */ public static final int GE58_DATA1 = 1; 162 /** GE58カラム番号 {@value} */ public static final int GE58_DATA2 = 2; 163 /** GE58カラム番号 {@value} */ public static final int GE58_DATA3 = 3; 164 /** GE58カラム番号 {@value} */ public static final int GE58_DATA4 = 4; 165 /** GE58カラム番号 {@value} */ public static final int GE58_DATA5 = 5; 166 /** GE58カラム番号 {@value} */ public static final int GE58_DATA6 = 6; 167 /** GE58カラム番号 {@value} */ public static final int GE58_DATA7 = 7; 168 /** GE58カラム番号 {@value} */ public static final int GE58_DATA8 = 8; 169 /** GE58カラム番号 {@value} */ public static final int GE58_DATA9 = 9; 170 /** GE58カラム番号 {@value} */ public static final int GE58_DATA10 = 10; 171 /** GE58カラム番号 {@value} */ public static final int GE58_DATA11 = 11; 172 /** GE58カラム番号 {@value} */ public static final int GE58_DATA12 = 12; 173 /** GE58カラム番号 {@value} */ public static final int GE58_DATA13 = 13; 174 /** GE58カラム番号 {@value} */ public static final int GE58_DATA14 = 14; 175 /** GE58カラム番号 {@value} */ public static final int GE58_DATA15 = 15; 176 /** GE58カラム番号 {@value} */ public static final int GE58_CLM_NAME = 16; 177 178 /** コネクションにアプリケーション情報を追記するかどうか指定 */ 179 public static final boolean USE_DB_APPLICATION_INFO = HybsSystem.sysBool( "USE_DB_APPLICATION_INFO" ) ; 180 private final ApplicationInfo appInfo; 181 private final String DBID = HybsSystem.sys( "RESOURCE_DBID" ); // 5.5.5.1 (2012/08/07) リソース系DBID 付け忘れ対応 182 183 /** 184 * コンストラクター 185 * 引数を受けとって、インスタンスを作成します。 186 * @param systemId システムID 187 * @param ykno 要求番号 188 * @param listId 帳票ID 189 * @param lang 言語 190 * @param fgrun 実行方法 191 * @param prtid プリンタID 192 * @param prgdir プログラムディレクトリ 193 * @param prgfile プログラムファイル 194 * @param outdir 出力ディレクトリ 195 * @param layoutFile レイアウトファイル 196 * @param isDebug デバッグフラグ 197 * 198 * @og.rev 4.3.3.0 (2008/10/01) 板金 RFID対応。引数にprgdir,prgfile,outdir追加 199 * @og.rev 5.4.3.1 (2011/12/27) portnm追加 200 * @og.rev 5.4.3.9 (2012/01/25) 雛形ファイル名追加 201 * 202 */ 203 public RFIDPrintRequest( final String systemId, final String ykno 204 , final String listId, final String lang, final String fgrun, final String prtid 205 , final String prgdir, final String prgfile, final String outdir , final String layoutFile, final boolean isDebug ) { 206 SYSTEM_ID = systemId; 207 YKNO = ykno; 208 LISTID = listId; 209 LANG = lang; 210 FGRUN = fgrun; 211 PRTID = prtid; 212 PRGDIR = prgdir; // 4.3.3.0 (2008/10/01) 213 PRGFILE = prgfile; // 4.3.3.0 (2008/10/01) 214 OUTDIR = outdir; // 4.3.3.0 (2008/10/01) 215 DEBUG = isDebug; 216 FILENAME = layoutFile; // 5.4.3.9 (2012/01/25) 217 218 // アクセスログ取得の為,ApplicationInfoオブジェクトを設定 219 if( USE_DB_APPLICATION_INFO ) { 220 appInfo = new ApplicationInfo(); 221 // ユーザーID,IPアドレス,ホスト名 222 appInfo.setClientInfo( SYSTEM_ID,HybsSystem.HOST_ADRS,HybsSystem.HOST_NAME ); 223 // 画面ID,操作,プログラムID 224 appInfo.setModuleInfo( "ReportConverter",YKNO,LISTID ); 225 } 226 else { 227 appInfo = null; 228 } 229 } 230 231 /** 232 * 初期データセットを行います。 233 * ここでは、GE54,GE58,GE55 テーブルより必要な情報を取得します。 234 * 235 * @og.rev 4.3.3.0 (2008/10/01) 板金 RFID対応(PRGDIR,PRGFILE追加等) 236 * @og.rev 5.4.3.0 (2011/12/26) GE54のbSQLは取らないようにする 237 * @og.rev 5.4.3.9 (2012/01/25) GE58はなくてもよい 238 * @og.rev 5.5.5.1 (2012/08/07) リソース系DBID 付け忘れ対策 239 * @og.rev 6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限のチェック追加 240 * @og.rev 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 241 * @og.rev 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 242 * 243 * @return 結果 [true:正常/false:異常] 244 */ 245 public boolean initialDataSet() { 246 // final String baseSystemId = HybsSystem.sys( "RESOURCE_BASE_SYSTEM_ID", false ); 247 // BASE_SYS_ID = StringUtil.isEmpty( baseSystemId ) ? "**" : baseSystemId ; 248 249 // ===== GE54 から帳票定義情報を取得します ========================================= 250 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 251 final String[] args = new String[] { SYSTEM_ID,LISTID }; 252 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 253 // final String[] args = new String[] { LISTID,BASE_SYS_ID,LISTID,SYSTEM_ID,LISTID }; 254 final String[][] vals = DBUtil.dbExecute( GE54_SELECT,args,appInfo, DBID ); // 5.5.5.1 (2012/08/07) 255 if( vals == null || vals.length == 0 ) { 256 errMsg.append( "Data does not exist in GE54 table." ).append( CR ) 257 .append( "==============================" ).append( CR ) 258 .append( "SYSTEM_ID=[" ).append( SYSTEM_ID ) 259 .append( "] , LISTID=[" ).append( LISTID ).append( ']' ) // 6.0.2.5 (2014/10/31) char を append する。 260 .append( CR ); 261 return false; 262 } 263 264 // 検索結果が複数帰ったとき、SYSTEM_ID が 指定されている方のデータ(行)を採用する。 265 // 7.2.6.1 (2020/07/17) 一番最後のデータを採用する。 266 final int row = vals.length; 267// int row = 0; 268// for( int i=0; i<vals.length; i++ ) { 269// if( SYSTEM_ID.equalsIgnoreCase( vals[i][GE54_SYSTEM_ID] ) ) { row = i; break; } 270// } 271 272 // ローカルリソースフラグ 273 // 4.3.3.0 (2008/10/01) 274 // fgLOCAL = ( vals[row][GE54_FGLOCAL] != null && vals[row][GE54_FGLOCAL].trim().equals( "1" ) ) ? true : false ; 275 final String localFlag = vals[row][GE54_FGLOCAL]; 276 fgLOCAL = localFlag != null && "1".equals( localFlag.trim() ) ; 277 278 // ===== GE58 から帳票定義情報を取得します ========================================= 279 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 280 final String[] argsGe58 = new String[] { SYSTEM_ID,LISTID }; 281 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 282 // final String[] argsGe58 = new String[] { LISTID,BASE_SYS_ID,LISTID,SYSTEM_ID,LISTID }; 283 final String[][] valsGe58 = DBUtil.dbExecute( GE58_SELECT,argsGe58,appInfo, DBID ); // 5.5.5.1 (2012/08/07) 284 285 // 7.2.6.1 (2020/07/17) 一番最後のデータを採用する。(CLMユニーク) 286 for( int i=0; i<valsGe58.length; i++ ) { 287 // 6.4.3.3 (2016/03/04) ConcurrentHashMap の not null制限 288 final String key = valsGe58[i][GE58_CLM_NAME]; // 最低限、valsGe58[i] は、null ではない。 289 if( key != null ) { 290 rfidLayoutMap.put( key, valsGe58[i] ); 291 } 292 } 293 294 // ===== GE55 から出力先マスタ情報を取得します ========================================= 295 // 7.2.6.1 (2020/07/17) "**"以外にベースとなるSYSTEM_ID(RESOURCE_BASE_SYSTEM_ID)設定の対応 296 final String[] argsGe55 = new String[] { SYSTEM_ID,PRTID }; 297 // 7.2.8.0 (2020/09/04) RESOURCE_BASE_SYSTEM_ID 対応で、帳票系は難しいので対応しません 298 // final String[] argsGe55 = new String[] { PRTID,BASE_SYS_ID,PRTID,SYSTEM_ID,PRTID }; 299 final String[][] valsGe55 = DBUtil.dbExecute( GE55_SELECT,argsGe55,appInfo, DBID ); // 5.5.5.1 (2012/08/07) 300 if( valsGe55 == null || valsGe55.length == 0 ) { 301 errMsg.append( "Data does not exist in GE55 table." ).append( CR ) 302 .append( "==============================" ).append( CR ) 303 .append( "SYSTEM_ID=[" ).append( SYSTEM_ID ) 304 .append( "] , PRTID=[" ).append( PRTID ).append( ']' ) // 6.0.2.5 (2014/10/31) char を append する。 305 .append( CR ); 306 return false; 307 } 308 309 // 検索結果が複数帰ったとき、SYSTEM_ID が 指定されている方のデータ(行)を採用する。 310 // 7.2.6.1 (2020/07/17) 一番最後のデータを採用する。 311 final int rowGe55 = vals.length; 312// int rowGe55 = 0; 313// for( int i=0; i<vals.length; i++ ) { 314// if( SYSTEM_ID.equalsIgnoreCase( vals[i][GE55_SYSTEM_ID] ) ) { rowGe55 = i; break; } 315// } 316 317 prtName = valsGe55[rowGe55][GE55_PRTNM]; 318 hostName = valsGe55[rowGe55][GE55_HOST_ID]; 319 portnm = valsGe55[rowGe55][GE55_PORTNM]; 320 321 return true; 322 } 323 324 /** 325 * RFID発行用データを作成し、発行リクエストの処理を行います。 326 * 327 * @og.rev 5.4.3.0 (2011/12/26) _DEFAULT対応 328 * @og.rev 5.4.3.4 (2012/01/12) listid追加 329 * @og.rev 5.4.3.9 (2012/01/25) FILENAME追加 330 * @og.rev 6.4.3.1 (2016/02/12) PMD refactoring. Map → ConcurrentMap に置き換え。 331 * 332 * @return 結果 [true:正常/false:異常] 333 */ 334 public boolean execute() { 335 System.out.print( "RRID RequestData Creating ... " ); 336 337 // FGLOCAL 指定時は、SYSTEM_ID を指定してリソース作成 338 if( fgLOCAL ) { 339 // ローカルリソース指定時は、SYSTEM_ID,LANG を使用します。先読みは、使用しません。 340 resource = ResourceFactory.newInstance( SYSTEM_ID,LANG,false ); 341 } 342 else { 343 // 従来と互換性のあるモード(ローカルリソースは使用しない。 344 resource = ResourceFactory.newInstance( LANG ); 345 } 346 347 // ボディー情報の取得 348 // 5.2.3.0 tableのとり方変更 349 final DBTableModelCreator tmc = new DBTableModelCreator( SYSTEM_ID, LISTID, YKNO, "B", resource ); 350 final DBTableModel table = tmc.getTable(); 351 if( table.getRowCount() <= 0 ) { 352 errMsg.append( "Database Body row count is Zero." ).append( CR ); 353 errMsg.append( "==============================" ).append( CR ); 354 // 5.5.2.4 (2012/05/16) 廃止の消し忘れ。 355 errMsg.append( "SYSTEM_ID=" ).append( SYSTEM_ID ); 356 errMsg.append( ",LISTID=" ).append( LISTID ); 357 errMsg.append( ",YKNO=" ).append( YKNO ); 358 errMsg.append( CR ); 359 return false; 360 } 361 // 検索時の最大件数での打ち切りをエラーとする。 362 if( table.isOverflow() ) { 363 errMsg.append( "Database is Overflow. [" ); 364 errMsg.append( table.getRowCount() ); 365 errMsg.append( ']' ).append( CR ).append( CR ); // 6.0.2.5 (2014/10/31) char を append する。 366 errMsg.append( "==============================" ).append( CR ); 367 errMsg.append( "Check SystemParameter Data in DB_MAX_ROW_COUNT Overflow" ); 368 errMsg.append( CR ); 369 return false; 370 } 371 372 // RFID発行用クラスを実行する。 373 RFIDPrintPointService service = null; 374 try { 375 service = (RFIDPrintPointService)StringUtil.newInstance( HybsSystem.sys( "REPORT_RFID_SERVICE_CLASS" ) ); 376 service.setYkno( YKNO ); 377 service.setSystemId( SYSTEM_ID ); 378 service.setFgrun( FGRUN ); 379 service.setHostName( hostName ); 380 service.setPrinterName( prtName ); 381 service.setTable( table ); 382 service.setLayout( rfidLayoutMap ); // 6.4.3.1 (2016/02/12) ConcurrentMap 系は、key,val ともに not null 制限です。 383 service.setPrgDir( PRGDIR ); // 4.3.3.0 (2008/10/01) 板金 RFID対応 384 service.setPrgFile( PRGFILE ); // 4.3.3.0 (2008/10/01) 385 service.setOutDir( OUTDIR ); // 4.3.3.0 (2008/10/01) 386 service.setPrtId( PRTID ); // 5.4.3.0 (2011/12/26) 387 service.setPortnm( portnm ); // 5.4.3.1 (2011/12/27) 388 service.setListId( LISTID ); // 5.4.3.4 (2012/01/12) 389 service.setLayoutFile( FILENAME ); // 5.4.3.9 (2012/01/25) 390 391 // service.execute(); 392 final boolean flag = service.execute(); // 4.3.3.0 (2008/10/01) booleanを返す 393 394 fgkan = service.getFgkan(); // 4.3.3.0 (2008/10/01) FGKANを受け取るようにする 395 396 if( DEBUG ) { 397 System.out.println( service ); 398 } 399 400 if( ! flag ){ // 4.3.3.0 (2008/10/01) 401 errMsg.append( service.getErrMsg() ); 402 return false; 403 } 404 } 405 catch( final Throwable ex ) { 406 fgkan = GE50Access.FG_ERR2; // 4.3.3.0 (2008/10/01) エラー時はアプリエラーにしておく 407 errMsg.append( "RFID Print Request Execution Error. " ).append( CR ) 408 .append( "==============================" ).append( CR ) 409 .append( "SYSTEM_ID=[" ).append( SYSTEM_ID ) 410 .append( "] , YKNO=[" ).append( YKNO ).append( ']' ).append( CR ) // 6.0.2.5 (2014/10/31) char を append する。 411 .append( HybsSystem.sys( "REPORT_RFID_SERVICE_CLASS" ) ).append( CR ) 412 .append( ex.toString() ) 413 .append( CR ); 414 if( service != null ) { errMsg.append( service.getErrMsg() ); } // 5.5.2.6 (2012/05/25) findbugs対応 415 return false; 416 } 417 418 System.out.println( "End." ); 419 return true ; 420 } 421 422 /** 423 * エラーが存在した場合に、エラーメッセージを返します。 424 * 425 * @return エラーメッセージ String 426 * @og.rtnNotNull 427 */ 428 public String getErrMsg() { 429 return errMsg.toString(); 430 } 431 432 /** 433 * 完了フラグを返します。 434 * 435 * @og.rev 4.3.3.0 (2008/10/01) 板金RFID メソッド追加 436 * 437 * @return 完了フラグ String 438 */ 439 public String getFgkan() { 440 return fgkan; 441 } 442}