also ich fange gerade an mich mit JCO außernander zu setzten, hab auch erst vor kurzem mit ABAP angefangen.
Habe als Projekt die Aufgabe einen Geteilten Bildschirm (auf der einen Seite ein ABAP Dynpro und auf der anderen eine Java-Applikation). Darstellung und so ist kein Problem. Für JCO gibt es ja genügend Beispiele (auch in diesem Forum).
Frage:
Alle Beispiele die ich bis jetzt durchgeschaut habe wird auf der Java-Seite mittels JCO auf Functions in SAP zugegriffen. Gibt es eine Möglichkeit auf ein Ein-/Ausgabefelder auf einem Dynpro zuzugreifen und den Inhalt zu verändern?
Genauere Beschreibung meines Problems:
Wenn man auf der Java-Seite einen Button drückt sollen auf dem Dynpro Informationen dazu erscheinen.
Also von Java aus funktioniert es den Funktionsbaustein aufzurufen. Es werden auch alle Daten korrekt übergeben.
Es werden aber keine Daten ins aktuelle Dynpro eingetragen. Ich hab auch eine Vermutung warum nicht: Die Daten werden bestimmt eingetragen (in dem Dynpro was ich angebe) aber nicht in dem Fenster, wo das Dynpro gerade läuft.
Meine Vermutung hat sich daduch gestärkt, da in dem Programm selbst die Funktion auf gerufen habe und die Daten übergab. Die Felder wurden eingetragen. (Bis hier stimmt noch alles) hab ich aber das Programm 2 mal laufen werden auch nur die Felder gefüllt von wo aus ich die Funktion aufgerufen habe.
Weis vielleicht jemand wie man genau bestimmen kann welches Fenster?
Das war aber nicht das einzigste was ich jetzt wieder wollte. Hab warscheinlich jetzt die Lösung meines Problems.
Ich lasse einfach alle Daten was ich auf dem Dynpro aktualisieren will in eine Tabelle auf dem SAP System schreiben und das Dynpro lasse ich immer Refreshen (ca. alle 2 Sekunden oder so). So sollte es eigentlich funktionieren.
Werde es warscheinlich morgen fertig stellen (Will ja auch mal Feierabend machen)
Das Problem kam daher, das der JCO in einer anderen Transaktion als dein aktuelles Dynpro abläuft, und Datenübergabe zwischen Transaktionen ist nicht wirklich gut möglich. (Ausser eben über Datenbanktabellen). Du kannst aber einen Timer (cl_gui_timer oder so) laufen lassen der alle 5sec die Tablle auf andere Daten prüft und Felder updatet.