|
The following calls an RPG program that passes back a packed numeric field - the price. It actually works reasonably quickly. Most of the code is just to set up the call and convert the data back and forth. **************************************************************************** ******* try { // create program call com.ibm.as400.access.ProgramCall pgm = new com.ibm.as400.access.ProgramCall(); // identify the program to run String progName = "/QSYS.LIB/YOUR.LIB/GETPRCB.PGM"; RLAccess.xx2000201.connectService(com.ibm.as400.access.AS400.COMMAND); // create parameter list for the program com.ibm.as400.access.ProgramParameter[] pList = new com.ibm.as400.access.ProgramParameter[3]; // this is for conversion of java String to/from native com.ibm.as400.access.AS400Text rtParm = new com.ibm.as400.access.AS400Text(1); // identify fist param pList[0] = new com.ibm.as400.access.ProgramParameter(rtParm.toBytes(" "), 1); // this is used to convert between java(BigDecimal) and Packed floating point decimal com.ibm.as400.access.AS400PackedDecimal cust = new com.ibm.as400.access.AS400PackedDecimal(6, 0); // identify param pList[1] = new com.ibm.as400.access.ProgramParameter(cust.toBytes(new java.math.BigDecimal(custNumber")), 4); // this is for conversion of java String to/from native com.ibm.as400.access.AS400Text item = new com.ibm.as400.access.AS400Text(15); // identify param pList[2] = new com.ibm.as400.access.ProgramParameter(item.toBytes(new String(skuNumber)), 15); // this is used to convert between java(BigDecimal) and Packed floating point decimal com.ibm.as400.access.AS400PackedDecimal pric = new com.ibm.as400.access.AS400PackedDecimal(7, 2); // identify param pList[3] = new com.ibm.as400.access.ProgramParameter(pric.toBytes(new java.math.BigDecimal("0")), 4); // set the system to AS/400 pgm.setSystem(RLAccess.xx2000201); // set program and parameters pgm.setProgram(progName, pList); // run the program if (pgm.run() != true) { com.ibm.as400.access.AS400Message[] messageList = pgm.getMessageList(); for (int msg = 0; msg < messageList.length; msg++) { // this is to print error message to standard out System.out.println(messageList[msg]); } } else { if (((String) (rtParm.toObject(pList[0].getOutputData(), 0))).equals(" ")) { // get the price intPrice = (((java.math.BigDecimal) (new com.ibm.as400.access.AS400PackedDecimal(7, 2)).toObject(pList [3].getOutputData(), 0)).doubleValue()); // add to the orderPrice; OrderDetail.orderPrice = OrderDetail.orderPrice + intPrice; // create number format for displaying the price java.text.NumberFormat nf = java.text.NumberFormat.getCurrencyInstance(); // set the text getJLabelOrderPrice().setText(nf.format(OrderDetail.orderPrice)); // set instance variable this.childPrice = intPrice; } } } catch (Exception e) { e.printStackTrace(); } *********************************************************************** Kalman Shor -----Original Message----- From: owner-rpg400-l@midrange.com [mailto:owner-rpg400-l@midrange.com]On Behalf Of jpcarr@TREDEGAR.COM Sent: Wednesday, June 21, 2000 2:22 PM To: RPG400-L@midrange.com Subject: Calling RPGIV from Java Does anyone have a code example of Java calling an RPGIV program? I'm trying to have Notes call a Java method which would call an RPGIV program to get a "Next Number to be assigned" number for a form. It should be a simple Java example, just a few lines of code to do the program call and return a parm back to Notes that the RPGIV program passed back to it. John Carr +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +--- +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.