|
Hi, and I would suggest create an external stored procedure and use JDBC or sqlj to call your programm. And further I would suggest, hands off of the workarounds of the toolbox. If rpg could do what c can, I would recommend java native interface. Dieter Am Dienstag, 8. Januar 2002 15:50 schrieben Sie: > I would suggest that you use PCML, it makes things a lot simpler. > > If you are not familiar with PCML you can go to > http://www-3.ibm.com/services/learning/spotlight/dl/free.html > > where there is a free online course titled > IK081 - Using PCML to call AS/400 Programs that covers > PCML. They cover a few samples and explain all the > concepts required to help yourself. > > (Also, you can just sit back and listen you do not have to > read every slide). > > -----Original Message----- > From: Dave Wall [mailto:dawall@us.ibm.com] > Sent: Tuesday, January 08, 2002 9:32 AM > To: java400-l@midrange.com > Subject: Re: problems with ProgramCall > > > > It could be the way the parameters are declared. You are defining the > first two parameters as an input/output parameters since you pass in both a > byte array and an int. The second parameter (the int) is the amount of > output data returned in the parm. In your case you say 2 bytes are > returned in the first parm and 3 bytes are returned in the second parm. > Try skipping the second parameter and see if that helps. It would be > pList[0] = new ProgramParameter(coNo); > pList[1] = new ProgramParameter(cycleNo); > pList[2] = new ProgramParameter(7); > > Also, ProgramParameter accepts only byte arrays. If you need to pass a > number to your RPG program use one of the Toolbox converters to convert > your number into a byte array. Converters are available for most AS/400 > numeric types. For example, if you have a bin 4, use: > AS400Bin4 bin4 = new AS400Bin4(); > byte AS400Data = bin4.toBytes(myInt); > > David Wall > AS/400 Toolbox for Java > > > > > "Robert Upshall" > <rupshall@psasoft To: > <java400-l@midrange.com> > .com> cc: > Sent by: Subject: problems with > ProgramCall > java400-l-admin@m > idrange.com > > > 01/07/2002 09:26 > PM > Please respond to > java400-l > > > > > > I'm not sure what I need to so to get this working. I'm trying to call an > rpg program that takes 3 parms, the first 2 input the 3rd output. All 3 > fields are numeric, the only way I could get it to work without compile > errors was to pass all parms as strings. I just convert them in the rpg. > > When I call the rpg from a green screen passing the same parms it gives the > correct output but when I call from the java app it returns an error code > for the 3rd parm. > > I'm guess what I'm looking for would be how to define the java and/or for > the following code? > > Here is the java code: > byte coNo = getKeyCoNo.byteValue(); > byte cycleNo = getKeyCycleNo().byteValue(); > > ProgramParameter[] pList = new ProgramParameter[3]; > pList[0] = new ProgramParameter(coNo, 2); > pList[1] = new ProgramParameter(cycleNo, 3); > pList[2] = new ProgramParameter(7); > > ProgramCall pgm = new ProgramCall(system, > "/QSYS.LIB/PSSTGUI.LIB/CE1099.PGM", pLis); > > . > . > . > byte[] data = pList[2].getOutputData(); > AS400Text textConverter = new AS400Text(data.length, > getSystem()); > bAcctNo = new BigDecimal((String) > textConverter.toObject(data)).setScale(0); > > > Here is the RPG: > C *ENTRY PLIST > C PARM ECO# 20 > C PARM ECYC 30 > C PARM EACC 7 > C MOVE ECO# CO# > C MOVE ECYC CYCLE# 30 > > > I need some help, > > Robert Upshall > Professional Software of Amarillo > (806) 358-8928 > rupshall@psasoft.com > > > _______________________________________________ > This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) > mailing list > To post a message email: JAVA400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l > or email: JAVA400-L-request@midrange.com > Before posting, please take a moment to review the archives > at http://archive.midrange.com/java400-l. > > > > > > _______________________________________________ > This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) > mailing list > To post a message email: JAVA400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l > or email: JAVA400-L-request@midrange.com > Before posting, please take a moment to review the archives > at http://archive.midrange.com/java400-l. > _______________________________________________ > This is the Java Programming on and around the iSeries / AS400 (JAVA400-L) > mailing list To post a message email: JAVA400-L@midrange.com > To subscribe, unsubscribe, or change list options, > visit: http://lists.midrange.com/cgi-bin/listinfo/java400-l > or email: JAVA400-L-request@midrange.com > Before posting, please take a moment to review the archives > at http://archive.midrange.com/java400-l. -- mfG Dieter Bender DV-Beratung Dieter Bender Wetzlarerstr. 25 35435 Wettenberg Tel. +49 641 9805855 Fax +49 641 9805856 www.bender-dv.de
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.