|
Otto,
I don't know how you can process a java array using RPG, I think you will
have to create a method in your java class to access the elements of the
java array.
Not quite the same, but when I wanted to pass an array of objects as an
object parameter to a java class,
the way I did it was create a java method to load one java array into
another java array.
* new java object
Dnew_string PR O EXTPROC(
D *JAVA:
D 'java.lang.String':
D *CONSTRUCTOR)
D CLASS(
D *JAVA:
D 'java.lang.String')
D bytes 65535A const varying
* loadTo java method
DloadTo PR O EXTPROC(*JAVA:class:
D 'loadTo')
D static
D CLASS(*JAVA:'java.lang.Object')
D O CLASS(*JAVA:'java.lang.Object')
D dim(15)
D const
* java string array object
Dattachments S O CLASS(
D *JAVA:'java.lang.String')
D DIM(30)
// For each attachment
For Z = 1 to NbrFiles;
If AttachFile(Z) <> '*NONE';
attachments(Z) = new_string(%trim(AttachFile(z)));
Endif;
Endfor;
args(8) = loadAtt(attachments);
cheers
Colin.W
Extension 353
Direct dial 0870 429 6676
-----Original Message-----
From: Steffan, Otto (GE Consumer Finance) [mailto:Otto.Steffan@xxxxxx]
Sent: 01 April 2004 18:25
To: 'rpg400-l@xxxxxxxxxxxx'
Subject: Java array in ILE RPG
Hello,
I have run out of ideas how to sort out this problem:
I call a Java method getRSRows in my RPG program that returns an array of
objects; what I need is
Number of returned objects in the array.
Here are several code snippets from my program (I used IBM manual ILE RPG
Programmer's Guide - chapter RPG and Java to write the program). I tried to
pick up the fragments that I believe are relevant to the problem:
d GetCustomerAccountsImpl...
d S O
class(*JAVA:'classes.GetCustomerAccountsImpl')
d RSRows...
d S O
class(*JAVA:'classes.GetCustomerAccountsRSRowImpl')
d dim(10)
d getRSRows...
d PR O extproc(*JAVA:
d 'classes.GetCustomerAccountsImpl':
d 'getRSRows')
d
class(*JAVA:'classes.GetCustomerAccountsRSRow')
d dim(10)
...
RSRows = getRSRows(GetCustomerAccountsImpl); // this row works OK - Java
returns X objects - rows
// but the pgm fails-JVM even ends abnormally on getOuacct method in
for-loop
// if it runs i = X+1 (let's assume X is allways less than 10):
For i = 1 to 10;
Acct = %dec(getOuacct(RSRows(i)));
if Acct = 0.;
leave; // (i-1)=X is Number of objects in the array (??)
endif;
endfor;
And Java documentation contains:
CLASS: classes.GetCustomerAccountsImpl
method summary:
...
classes.GetCustomerAccountsRSRow[] getRSRows()
...
CLASS: classes.GetCustomerAccountsRSRowImpl
INTERFACE: GetCustomerAccountsRSRow
All Known Implementing Classes: classes.GetCustomerAccountsRSRowImpl
method summary:
...
long getOuacct()
....
Thanks for help and sorry about my English.
Otto Steffan
_______________________________________________
This is the RPG programming on the AS400 / iSeries (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or
change list options,
visit: http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/rpg400-l.
This e-mail has been sent by a company of Bertram Group Ltd, whose registered
office is The Nest, Rosary Road Norwich NR1 1TF.
This message, and any attachments, are intended solely for the addressee and
may contain privileged or confidential information. If you are not the
intended recipient, any disclosure, copying, distribution or any action taken
or omitted to be taken in reliance on it, is prohibited and may be unlawful.
If you believe that you have received this email in error, please contact the
sender immediately. Opinions, conclusions and statements of intent in this
e-mail are those of the sender and will not bind a Bertram Group Ltd company
unless confirmed in writing by a director independently of this message.
Although we have taken steps to ensure that this email and any attachments are
free from any virus, we advise that in keeping with good computing practice the
recipient should ensure they are actually virus free.
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.