JCO - Rückgabe an SAP Dateiinhalt

Rund um Java und SAP®.

JCO - Rückgabe an SAP Dateiinhalt

Postby William4545 » Wed Dec 22, 2004 3:40 pm

Hallo,
ich möchte den Inhalt einer Datei und einen String an den SAP RFC Aufruf zurückgeben.
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. CALL FUNCTION 'RFC_TEST' DESTINATION rfcdest
  2.      EXPORTING
  3.        filename      = filename
  4.      IMPORTING
  5.        outfile       = outfile
  6.        error         = error
  7.      TABLES
  8.        filedata      = filedata
  9. ...
  10. fmeta = new JCO.MetaData("RFC_TEST");  
  11. fmeta.addInfo("FILENAME", JCO.TYPE_CHAR,       34,   0,  0, JCO.IMPORT_PARAMETER, null);
  12. fmeta.addInfo("FILEDATA", JCO.TYPE_TABLE,     255,   0,  0, 0, "DATEI");
  13. fmeta.addInfo("OUTFILE",  JCO.TYPE_STRUCTURE, 255,   0,  0, JCO.EXPORT_PARAMETER, "DATEI");
  14. fmeta.addInfo("ERROR",    JCO.TYPE_CHAR,      255,   0,  0, JCO.EXPORT_PARAMETER, null);
  15.  
  16. Struktur DATEI besteht aus ZEILE CHAR 255.
  17.  
GeSHi ©

Bisher lese ich unter JAVA die Datei aus und packe sie in einen StringBuffer. Aber wie übertragen?? Der besteht ja gar nicht aus ZEILE 255. Hat da jemand einen Tipp?
Steffi
William4545
..
..
 
Posts: 55
Joined: Tue Jul 13, 2004 11:40 am

Postby Christian4831 » Wed Dec 22, 2004 5:55 pm

Hi Steffi,

du müsstest einfach deinen String in 255 Character lange String Segmente aufteilen und jedes Segment in eine Tabellenzeile der Tabelle filedata schreiben.

Möchtest du einen SAP Standard Baustein rufen, oder einen eigenen? Wenn letzteres der Fall ist, könntest du einfach eine RAW Variable an deinen RFC Baustein übergeben. In diese schreibst du dann dein Java byte[] array.

frohes Fest,
Tim[/b]
Christian4831
..
..
 
Posts: 91
Joined: Mon Dec 02, 2002 7:33 pm

noch immer nicht gelöst!

Postby William4545 » Thu Jan 13, 2005 2:55 pm

Hallo,
leider habe ich das Problem noch nicht hinbekommen.

meinem Funktionsbaustein habe ich jetzt ein
TABLES returncontent = returncontent
eingesetzt.
In meiner Java-Datei habe ich folgende Angaben:
JCO.MetaData smeta = new JCO.MetaData("DATEI");
smeta.addInfo("ZEILE", JCO.TYPE_CHAR, 255, 0, 0);
repository.addStructureDefinitionToCache(smeta);
fmeta.addInfo("RETURNCONTENT", JCO.TYPE_TABLE, 0, 0, 0, JCO.EXPORT_PARAMETER, "DATEI");


Den Dateiinhalt habe ich in einem String[] mit je max 255 Zeichen.

Wenn ich das alles ausführe, wird aber keine Tabelle übergeben, sondern nur 255 Zeichen ohne Umbrüche.
Ich möchte aber eine Tabelle übergeben und in SAP auslesen.

String[] fileContent ist gefüllt!
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. JCO.Table table = new JCO.Table("tbl_test");
  2. table.addInfo("LINE", JCO.TYPE_STRING, 255);
  3. if (fileContent.length != 0)
  4. {
  5.   for&#40;int i = 0; i < fileContent.length; i++&#41;
  6.   &#123;
  7.     table.appendRow&#40;&#41;;
  8.     table.setValue&#40;fileContent[i], "LINE"&#41;;
  9.     i++;
  10.   &#125;
  11. &#125;
  12. System.out.println&#40;"table:\n"+table&#41;;
  13. --> gesamter Text wird angezeigt.
  14.    
  15. output.setValue&#40;table,"RETURNCONTENT"&#41;;
GeSHi ©

Hm, so richtig weiss ich noch nicht, wie ich das lösen kann.

Ideen??
William4545
..
..
 
Posts: 55
Joined: Tue Jul 13, 2004 11:40 am


Return to Java & SAP®

Who is online

Users browsing this forum: No registered users and 5 guests

cron