starting in new task - messages

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

starting in new task - messages

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
Hallo liebe Kollegen!

Ich komme bei einem Problem nicht weiter - da reichen einfach meine ABAP-Kenntnisse nicht mehr:

Rahmengeschichte: der Anwender soll aus einer Servicemeldung heraus per "Aktivität" die Anlage einer Bestellung starten, die er dann nach initialem Füllen per Programm händisch fertigstellt und sichert. Dabei ist es u.a. stark gewünscht, dass die Anlage in einem neuen Fenster passiert, damit die Meldung parallel sichtbar bleibt.

Und jetzt zu ABAP:
Das heißt, ich bin in einem FuB, der durch die Aktivität aufgerufen wird, von dem aus letztlich ein "call transaction" ausgeht. In dem Fall mit einem "call function ... starting new task" dazwischen, um ein neues Fenster zu öffnen. Funktioniert soweit - nur ist nach dem Sichern die Bestellnummer für den Anwender nirgends zu sehen. Eine "message" aus dem neuen task habe ich nicht sichtbar hingebracht, und die Ursprungsfunktion erhält die retournierte "messtab" nicht, weil "new task", und der Programmablauf fortgesetzt wird.

Jetzt gibt es für mich im Wesentlichen zwei Ansätze:
- doch aus dem neuen task raus eine Meldung generieren, die sichtbar ist
- im aufrufenden FuB irgendwie doch die Rückgabewerte mitbekommen

Für letzteren Fall habe ich was von "PERFORMING subr ON END OF TASK" gelesen, und WAIT FOR ASYNCHRONOUS TASKS UNTIL..., aber ich bin ja in einem FuB - wo schreibe ich subr hin? Kann das wieder ein FuB sein? Was macht subr überhaupt, wenn es nur darum geht, die Rückgabewerte in den aufrufenden FuB zu bringen?

Bitte um Hilfe und vielen Dank im Voraus!

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: starting in new task - messages

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
foxtrot

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: starting in new task - messages

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
a-dead-trousers hat geschrieben:Beschreibung in der SAP Hilfe
https://help.sap.com/doc/abapdocu_751_i ... arting.htm
Einfaches Beispielcoding
https://wiki.scn.sap.com/wiki/display/A ... Processing
Danke schon einmal, der erste link ist eh nur die ABAP-Hilfe, aber im zweiten link werden ein paar Fragen von mir beantwortet.
Eine jedoch noch nicht: ich bin in einem FuB. Die Callback-Routine wird nach, also außerhalb des FuBs deklariert, kennt also die Daten(deklarationen) des FuB nicht - wie kriege ich jetzt die Daten von der Callback-Routine in den FuB?
Im zweiten link wird ja von einem report ausgegangen, der globale Daten hat - die hab ich im FuB nicht...

lg, Wolfgang

Re: starting in new task - messages

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
...das mit den globalen Daten hat sich erübrigt... ein Kollege konnte mir den nötigen Hinweis geben.
Jetzt mal ausprobieren...

Re: starting in new task - messages

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
funktioniert!

WAIT UNTIL it_messtab IS NOT INITIAL.
...

FORM returns USING task.
RECEIVE RESULTS FROM FUNCTION 'Z_PM_SER_ME21N'
TABLES
messtab = it_messtab.

ENDFORM.

Re: starting in new task - messages

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
ja, aber dann muss sichergestellt sein, dass über "messtab" immer Werte zurückgeliefert werden.
Außerdem vergisst du hier den "Fehlerfall", dass der aufgerufene Funktionsbaustein mit einer Ausnahme (Kurzdump) beendet wird. In dem Fall ist die "messtab" auch immer leer.

Die "Luxusvariante" würde ungefähr so ausschauen:

Code: Alles auswählen.

DATA: result_received TYPE abap_bool.

CLEAR result_received.

CALL FUNCTION 'Z_PM_SER_ME21N'
  STARTING NEW TASK 'new_task' PERFORMING receiving_results ON END OF TASK 
  EXPORTING
    parameter = 'XXX'
  EXCEPTIONS
    system_failure = 1
    communication_failure = 2
    resource_failure = 3
    OTHERS = 4.

IF sy-subrc EQ 0.
  WAIT FOR ASYNCHRONOUS TASKS UNITL result_received EQ abap_true.
ENDIF.

FORM receiving_results USING taskname.
  RECEIVE RESULTS FROM FUNCTION 'Z_PM_SER_ME21N'
    TABLES
      messtab = it_messtab
    EXCEPTIONS
      system_failure = 1
      communication_failure = 2 
      OTHERS = 3.
  
  result_received = abap_true.
ENDFORM.
Damit werden alle Fehlersituationen zumindest abgefangen und es kommt zu keiner Endlosschleife. Wie du auf die jeweiligen Fehler reagierst bleibt dir überlassen.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: starting in new task - messages

Beitrag von foxtrot (ForumUser / 28 / 1 / 0 ) »
danke für die Hinweise, denke ich noch darüber nach...

Seite 1 von 1

Vergleichbare Themen

11
Antw.
7614
Views
CALL FUNCTION ... STARTING NEW TASK ... Task nachverfolgbar?
von Obelix1 » 30.01.2017 18:10 • Verfasst in ABAP® Core
0
Antw.
694
Views
RFC FUBA IN BACKROUNG TASK / STARTING NEW TASK
von EZ09 » 05.02.2023 22:54 • Verfasst in ABAP® für Anfänger
1
Antw.
2694
Views
starting new task <-> in update task
von Matthias_L. » 13.09.2007 19:15 • Verfasst in ABAP® Core
6
Antw.
3400
Views
FuBa in neuem Task starten "STARTING NEW TASK"
von jan.se » 19.01.2006 11:20 • Verfasst in ABAP® Core
5
Antw.
5354
Views
CALL FUNCTION STARTING NEW TASK
von Artie200 » 30.03.2011 11:46 • Verfasst in ABAP® Core

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 24 Minuten von Bright4.5 1 / 8
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1680
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8282