Task Name ermitteln

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

Task Name ermitteln

Beitrag von fbo (ForumUser / 30 / 0 / 0 ) »
Hallo ABAPler,

ich starte folgenden BAPI in meinem Programm in einer neuen Task.
Innerhalb des BAPI´s (in einem Enjancement) möchte ich jetzt abfragen, dass ich mich genau in dieser Task "ITALY" befinde. Gibt es irgendeine Methode, FuBa oder sonstiges um den Namen der Task zu ermitteln in der ich mich gerade befinde?

CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'
STARTING NEW TASK 'ITALY'
DESTINATION 'NONE'

Vielen Dank und viele Grüße
Frank


Re: Task Name ermitteln

Beitrag von ewx (Top Expert / 4381 / 214 / 485 ) »
Ich habe mal auf die Schnelle die TH_* Bausteine durchgeschaut, aber nix Gescheites gefunden. Aber wenn es etwas gibt, würde ich das in diesen Bausteinen vermuten.

Re: Task Name ermitteln

Beitrag von fbo (ForumUser / 30 / 0 / 0 ) »
Vielen Dank für die schnelle Antwort.
Leider habe ich da nichts finden können.
Schon merkwürdig, dass SAP da nichts (offensichtliches) anbietet.
Die Information muss doch irgendwo vorhanden sein.
Na ja, werde mal weitersuchen.
Falls noch jemand eine Idee hat, gerne melden.
Viele Grüße und einen schönen Wochenstart
Frank

Re: Task Name ermitteln

Beitrag von black_adept (Top Expert / 3519 / 71 / 696 ) »
Moin Frank,

wenn du in der Session unbedingt die Taskid wissen musst dann lege diese doch vorher einfach ab.
Schreib dir einen simplen RFC-Fähigen FuBa, welcher die Taskid aufnimmt, die du gleich verwenden willst und welcher diese im globalen Funktionsgruppenmemory ablegt. Dann einen zweiten ( nicht notwendigerweise RFC-fähigen ) Fuba, welcher den im Funktionsgruppenmemory abgelegten Wert zurückgibt.

Und bevor du den von dir angesprochenen BAPI via RFC aufrufst schickst du vorher die Taskid mit derselben RFC-Destination und Taskid an den eingangs erwähnten neu geschriebenen Fuba, wartest bis er fertig ist und rufst danach erst deinen BAPI auf. Nun kannst du innerhalb des BAPIs jederzeit den 2. FuBa aufrufen und er gibt dir zurück, ob du dich in der TASKID Italy befindest oder nicht.

Sieht etwa so aus:

Code: Alles auswählen.

REPORT.

DATA: lv_taskid TYPE char32 VALUE 'FRED',
      done      TYPE flag.

CALL FUNCTION 'Y_SS_TEST_RFC_SET_TASKID'
  DESTINATION 'NONE'
  STARTING NEW TASK lv_taskid       
  PERFORMING my_callback ON END OF TASK
  EXPORTING
    iv_taskid = lv_taskid.  " <-- der soll die Taskid nur im FuGrMemory ablegen


WAIT UNTIL done = 'X'.

CALL FUNCTION 'Y_SS_TEST_RFC1' " <-- der kann das Funktionsgruppenmemory auslesen
  DESTINATION 'NONE'           "     da mit derselben Taskid und RFC-Destination
  STARTING NEW TASK lv_taskid. "     aufgerufen wie der Vorschaltbaustein



*&---------------------------------------------------------------------*
*& Form my_callback
*&---------------------------------------------------------------------*
FORM my_callback USING import TYPE clike.
  BREAK-POINT.
  RECEIVE RESULTS FROM FUNCTION 'Y_SS_TEST_RFC_SET_TASKID'
                  KEEPING TASK.  " Damit die RFC-Verbindung das Fugrmemory behält

  done = 'X'.
ENDFORM.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Task Name ermitteln

Beitrag von fbo (ForumUser / 30 / 0 / 0 ) »
Vielen Dank.
Ja, Alternativen gibt es. Aber ich hätte mir gewünscht, dass das ohne große "Schleifen" funktioniert und man diese Info einfach irgendwo abfragen bzw. finden kann. SAP wird das doch irgendwo "im Bauch" haben sonst hätten sie sich ja die ID auch sparen können.

Re: Task Name ermitteln

Beitrag von a-dead-trousers (Top Expert / 3657 / 131 / 953 ) »
Der "Task" wird vom aufrufenden System verwaltet.
Das aufgerufene System hat darüber keine Information (genausowenig wie, welche RFC-Destination verwendet wurde).
Maximal welcher Benutzer verwendet wurde (sy-uname) und ob der Aufruf über RFC erfolgt ist (FUBA RFC_WITHIN_SAME_SYSTEM) sowie welches Programm beim Aufruf verwendet wurde (sy-xprog = Funktionsgruppe des RFC-Funktionsbausteins) lässt sich feststellen.

Wie Stefan bereits geschrieben hat, müsste man den Task dem Aufrufer direkt mitgeben, damit dieser darüber Kenntniss erlangt.
ODER
Man fragt diese Informationen über einen eigenen Callback-Funktionsbaustein (Destination BACK) vom Aufrufer ab. Wobei ich das aber in der "Wildnis" noch nie so gesehen hätte, denn schneller geht's, wie gesagt, wenn man das gleich mitschickt.
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.07
Basis: 7.40

Re: Task Name ermitteln

Beitrag von fbo (ForumUser / 30 / 0 / 0 ) »
Ok.
Vielen Dank für eure aufschlussreichen Antworten und eure Recherche.
Viele Grüße
Frank

Seite 1 von 1

Über diesen Beitrag



ABAP & SAP eBook Flatrate von Espresso Tutorials Sponsorlink
Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Vergleichbare Themen

CALL FUNCTION ... STARTING NEW TASK ... Task nachverfolgbar?
von Obelix1 » 30.01.2017 18:10
starting new task <-> in update task
von Matthias_L. » 13.09.2007 19:15
FuBa in neuem Task starten "STARTING NEW TASK"
von jan.se » 19.01.2006 11:20
Verbuchung in update task
von knk15 » 11.07.2003 14:14
Urgent:Task creation
von sri_deep » 21.08.2005 02:39