on 11-28-2012 6:04 PM
Hi,
bei der Konvertierung unserer JCo2 Schnittstelle nach JCo3 habe ich folgendes Problem: In JCo2 konnte ich problemlos die Strukturen aus der ImportParameterList oder der TableParameterList per fields() und getString() ermitteln.
Pseudocode:
input= function.getImportParameterList()
kopf = input.getStructure("KOPF")
fi = kopf.fields()
while fi.hasMoreElements()
fld = fi.nextField()
System.out.println(fld.getName()+" "+fld.getString())
wend
tables = function.getTableParameterList()
pos = tables.getTable("POSITION")
for pp=0 to pos.getNumRows()-1
pos.setRow(pp)
fi = pos.fields()
jcoServer.printlog("Position:"+pp)
while fi.hasMoreElements()
fld = fi.nextField()
System.out.println(fld.getName()+" "+fld.getString())
wend
next pp
Meine Versuche, das irgendwie ähnlich mit JCo3 hinzubekommen, waren leider nicht erfolgreich.
Pseudocode:
input= function.getImportParameterList()
kopf = input.getStructure("KOPF")
fields = kopf.getMetaData().getFieldCount()
for feld=0 to fields-1
System.out.println(kopf.getMetaData().getName(feld)+" "+kopf.getMetaData().getString(feld))
// Ergibt: No match for method com.sap.conn.jco.rt.DefaultRecordMetaData.getString(java.lang.Integer)
next
tables = function.getTableParameterList()
pos = tables.getTable("POSITION")
rows = pos.getNumRows()
for row=0 to rows-1
pos.setRow(row)
row=new java.lang.Integer(row)
System.out.println(pos.getMetaData().getName(row)+" "+pos.getMetaData().getString(row))
// Ergibt: java.lang.IndexOutOfBoundsException: Index [32] out of bounds.The metadata 'ZJMM_KMK_GM_POS' contains 26 fields
next
Kann mir da vielleicht ein Experte weiterhelfen?
Vielen Dank
Stephan
Hi Vielen,
Below expection says, you have only 26 fields, but inside for loop you are trying to get more than that.
I doubt return value of rows is more than 26.
So only you are getting this error.
Check your logic, if you have any problem do let us know.
rows = pos.getNumRows()
for row=0 to rows-1
pos.setRow(row) row=new java.lang.Integer(row)
System.out.println(pos.getMetaData().getName(row)+" "+pos.getMetaData().getString(row))
// Ergibt: java.lang.IndexOutOfBoundsException: Index [32] out of bounds.
The metadata 'ZJMM_KMK_GM_POS' contains 26 fields
Note: Post your query in english, you will get more response.
Regards,
Sriram.V
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your answer, Sriram.
I was trying to loop only for valid items, but rows = pos.getNumRows() seems to return invalid values. This would also makes 'sense' with the previous error:
No match for method com.sap.conn.jco.rt.DefaultRecordMetaData.getString(java.lang.Integer)
There seems to be something wrong with my way of using metadata.
I'll follow your advice and post my request in English also.
Best Regards
Stephan Knobloch
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.