function als eigenen Prozess anlegen?

Rund um Java und SAP®.

function als eigenen Prozess anlegen?

Postby William4545 » Fri Jul 16, 2004 12:13 pm

Moin
ist es eigentlich möglich, die von SAP aufrufenden Funktionen in eigene Prozesse zu packen? Kann man schon beim Einstieg in die methode an SAP was zurückliefern, ohne dass die Methode beendet ist?
steffi
William4545
..
..
 
Posts: 55
Joined: Tue Jul 13, 2004 11:40 am

Postby Alva1590 » Fri Jul 16, 2004 1:47 pm

Das macht m.E. nicht viel Sinn. Wenn Du aus SAP heraus einen RFC aufrufst, geht das entweder synchron oder asynchron. Im synchronen Fall würde das ABAP-Programm warten, bis es eine Rückmeldung vom aufgerufenen Baustein bekommen hat und mit der Bearbeitung dann fortfahren. Wenn Du also aus Java heraus ein Ergebnis an SAP schickst (zumindest an denselben Baustein) geht das Ergebnis im weiteren Verlauf im Java verloren (kommt nie im SAP an).
Eine andere Möglichkeit wäre, einen RFC-Call aus der Funktion an einen anderen Baustein im SAP zu schicken, der dann bspw. eine mail erzeugt und versendet (innerhalb der SAPOffice-Funktion). Nur ist die Frage, ob es wirklich so lange Laufzeiten gibt, die solch einen Aufwand rechtfertigen und es unbedingt nötig ist, jemanden davon in Kenntnis zu setzen, dass eine entsprechende Verarbeitung im Gange ist.

Dann gibt es noch den asynchronen Fall, d.h. das ABAP-Programm arbeitet weiter, ohne auf das Ergebnis des Java-Programms zu warten. Das Java-Programm müsste dann in diesem Fall nach der Bearbeitung einen RFC ins SAP machen um ggf. einen Log-Eintrag o.ä. zu erzeugen und die Ergebnisse zurückliefern.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby William4545 » Fri Jul 16, 2004 2:04 pm

ich wollte eigentlich die asynchrone Version machen.
wie schaffe ich es denn, dass das ABAP weitermacht, ohne zu warten?

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

Postby Alva1590 » Fri Jul 16, 2004 2:29 pm

So:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. CALL FUNCTION func STARTING NEW TASK task DESTINATION dest
  2.  
GeSHi ©


Aus der Docu:

Für task muss ein zeichenartiges Datenobjekt angegeben werden, das eine maximal achtstellige frei wählbare Aufgabenkennung für den aufgerufenen remote-Funktionsbaustein enthält. Diese Aufgabenkennung sollte pro Aufruf eindeutig sein und wird den Callback-Routinen zur Identifikation der Funktion übergeben. Jede Aufgabenkennung definiert eine eigene RFC-Verbindung mit eigenem Kontext, so dass bei wiederholten Aufrufen von Funktionsbausteinen derselben Aufgabenkennung auf die globalen Daten der zugehörigen Funktionsgruppe zugegriffen werden kann, falls die Verbindung noch vorhanden ist.

Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby William4545 » Fri Jul 16, 2004 3:07 pm

jo, das hab ich jetzt gemacht, aber nun bekomme ich folgenden Fehler:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. Fehler bei der Ausführung asynchronem RFC via RFC-Destination ...
  2.  
GeSHi ©
William4545
..
..
 
Posts: 55
Joined: Tue Jul 13, 2004 11:40 am

Postby Alva1590 » Mon Jul 19, 2004 9:52 am

Schau mal in der SM59, Menü 'Trace' -> 'Anzeigen', ob Du dort einen Log-Eintrag findest, der Hinweis auf den Fehler geben könnte.
Zusätzlich kannst Du noch in der SM21 und in der ST22 nachschauen, ob sich dort weitere Hinweise auf das Problem finden lassen.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm


Return to Java & SAP®

Who is online

Users browsing this forum: No registered users and 5 guests