📄 vericlient.java
字号:
function.getImportParameterList().setValue(counter_in, "COUNTER"); JCO.Client client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); int result = function.getExportParameterList().getInt("RESULT"); int counter_out = function.getExportParameterList().getInt("COUNTER"); if (counter_out != (counter_in + 1)) { throw new Exception("Inconsistency in changing parameter detected, "+ "expected COUNTER='" + (counter_in + 1) + "', got COUNTER='" + counter_out + "'"); }//if if (result != (start_value + counter_in)) { throw new Exception("Inconsistency in changing parameter detected, "+ "expected RESULT='" + (start_value + counter_in) + "', got RESULT='" + result + "'"); }//if printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testDDIF_FIELDINFO_GET() { JCO.Function function = getFunction("DDIF_FIELDINFO_GET"); if (function == null) return; try { printMethod("client.execute(\"DDIF_FIELDINFO_GET\")"); function.getImportParameterList().setValue("DFIES","TABNAME"); JCO.Table dfies_tab = function.getTableParameterList().getTable("DFIES_TAB"); JCO.Client client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testSTFC_PERFORMANCE() { JCO.Function function = getFunction("STFC_PERFORMANCE"); if (function == null) return; try { JCO.ParameterList imp = function.getImportParameterList(); JCO.ParameterList tab = function.getTableParameterList(); imp.setValue("4","LGIT1000"); imp.setValue("3","LGET1000"); JCO.Table itab1000 = tab.getTable("ITAB1000"); for (int irow = 0; irow < 4; irow++) { String row = "ROW" + Integer.toString(irow) + ","; itab1000.appendRow(); itab1000.setValue(row+"COLUMN1","LINE1"); itab1000.setValue(row+"OLUMN2","LINE2"); itab1000.setValue(row+"LUMN3","LINE3"); itab1000.setValue(row+"UMN4","LINE4"); itab1000.setValue(row+"MN5","LINE5"); itab1000.nextRow(); }//for JCO.Table itab1000_save = (JCO.Table)itab1000.clone(); printMethod("ostream.writeObject(function)"); FileOutputStream fos = new FileOutputStream("jcoveri.dat"); ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(function); os.flush(); fos.close(); printStatus(null); printMethod("istream.readObject(function)"); FileInputStream fis = new FileInputStream("jcoveri.dat"); ObjectInputStream is = new ObjectInputStream(fis); JCO.Function function2 = (JCO.Function)is.readObject(); is.close(); printStatus(null); printMethod("client.execute(\"STFC_PERFORMANCE\")"); JCO.Client client = JCO.getClient("BF"); client.execute(function); client.execute(function2); JCO.releaseClient(client); itab1000 = tab.getTable("ITAB1000"); if (itab1000.getNumRows() != itab1000_save.getNumRows() || itab1000.getNumColumns() != itab1000_save.getNumColumns()) { throw new Exception("Inconsistency in table ITAB1000"); }//if itab1000.firstRow(); itab1000_save.firstRow(); for (int irow = 0; irow < itab1000.getNumRows(); irow++) { for (int icol = 0; icol < itab1000.getNumColumns(); icol++) { if (!itab1000.getString(icol).equals(itab1000_save.getString(icol))) { throw new Exception("Inconsistency in table ITAB1000"); }//if }//for itab1000.nextRow(); itab1000_save.nextRow(); }//for printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testSBC_STRING() { JCO.Function function = getFunction("SBC_STRING"); if (function == null) return; try { byte xstring_out[], xstring_in[] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }; String string_out, string_in = "ABCdghtjuierpoie985()/&%"; printMethod("client.execute(\"SBC_STRING\")"); function.getImportParameterList().setValue(string_in, "STRING_IN" ); function.getImportParameterList().setValue(xstring_in,"XSTRING_IN"); JCO.Client client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); xstring_out = function.getExportParameterList().getByteArray("XSTRING_OUT" ); string_out = function.getExportParameterList().getString("STRING_OUT"); string_out = string_out.substring(7); if (xstring_in.length != xstring_out.length) throw new Exception("Inconsistency in length of XSTRING parameters, got " + xstring_out.length + ", expected " + xstring_in.length); for (int i = 0; i < xstring_in.length; i++) { if (xstring_in[i] != xstring_out[i]) throw new Exception("Inconsistency in data XSTRING parameters at position " + i); }//for if (!string_out.equals(string_in)) throw new Exception("Inconsistency in STRING parameters"); printStatus(null); } catch (Exception ex) { printStatus(ex); }//try } private void testRFC_RAISE_ERROR() { JCO.Client client = null; JCO.Function function = null; try { printMethod("client.execute(\"RFC_RAISE_ERROR(0)\")"); function = getFunction("RFC_RAISE_ERROR"); function.getImportParameterList().setValue("0","METHOD"); client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); } catch (JCO.Exception ex) { if (!ex.getKey().equalsIgnoreCase("RFC_ERROR_SYSTEM_FAILURE")) { printStatus(ex); } else { printStatus(null); }//if } catch (Exception ex) { printStatus(ex); ex.printStackTrace(); }//try try { printMethod("client.execute(\"RFC_RAISE_ERROR(1)\")"); function = getFunction("RFC_RAISE_ERROR"); function.getImportParameterList().setValue("1","METHOD"); client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); } catch (JCO.AbapException ex) { if (!ex.getKey().equalsIgnoreCase("RAISE_EXCEPTION")) { printStatus(ex); } else { printStatus(null); }//if } catch (Exception ex) { printStatus(ex); ex.printStackTrace(); }//try try { printMethod("client.execute(\"RFC_RAISE_ERROR(2)\")"); function = getFunction("RFC_RAISE_ERROR"); function.getImportParameterList().setValue("2","METHOD"); client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); } catch (JCO.AbapException ex) { if (!ex.getKey().equalsIgnoreCase("RAISE_EXCEPTION")) { printStatus(ex); } else { printStatus(null); }//if } catch (Exception ex) { printStatus(ex); ex.printStackTrace(); }//try try { printMethod("client.execute(\"RFC_RAISE_ERROR(3)\")"); function = getFunction("RFC_RAISE_ERROR"); function.getImportParameterList().setValue("3","METHOD"); client = JCO.getClient("BF"); client.execute(function); JCO.releaseClient(client); } catch (JCO.Exception ex) { if (!ex.getKey().equalsIgnoreCase("RFC_ERROR_SYSTEM_FAILURE")) { printStatus(ex); } else { printStatus(null); }//if } catch (Exception ex) { printStatus(ex); ex.printStackTrace(); }//try } public void run() { testRepository(); testSTFC_CONNECTION(); testSTFC_CHANGING(); testSTFC_PERFORMANCE(); testDDIF_FIELDINFO_GET(); testSBC_STRING(); testRFC_RAISE_ERROR(); JCO.removeClientPool("BF"); repository = null; } } public void run() { printProlog(); for (int i = 0; i < tests.length; i++) tests[i].run(); printEpilog(); } public static void usage() { System.out.println(""); System.out.println(""); System.out.println("Usage: 'java VeriClient <file-with-connection-properties> [<trace-level> (0-4)]'"); System.out.println(""); System.out.println("where <file-with-connection-properties> is a file which contains something like"); System.out.println(""); System.out.println("#Login parameters for system BF1"); System.out.println("#Tue Oct 17 12:42:06 GMT+02:00 2000"); System.out.println("jco.client.user=johndoe"); System.out.println("jco.client.passwd=secret"); System.out.println("jco.client.client=000"); System.out.println("jco.client.lang=EN"); System.out.println("jco.client.mshost=bf1.doe-inc.com"); System.out.println("jco.client.r3name=BF1"); System.out.println("jco.client.group=PUBLIC"); System.exit(1); } public VeriClient(String filename) { if (filename != null) properties_filename = filename; JCO.getClientPoolManager().addPoolChangedListener(this); } public VeriClient() { JCO.getClientPoolManager().addPoolChangedListener(this); } public static void main(String[] argv) { if (argv.length == 0) VeriClient.usage(); if (argv.length > 1) JCO.setTraceLevel(Integer.parseInt(argv[1])); VeriClient suite = new VeriClient(argv[0]); suite.run(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -