Neuen Modus im Dialog öffen und schließen

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

Neuen Modus im Dialog öffen und schließen

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) » 30.03.2020 14:48
Hallo,

ich habe einen Dialog, bei dem der User auf einen Buton drückt und dann bestimmte Daten in einem zweitem Modus angezeigt bekommt und im ersten Modus weiterarbeitet.

Den zweiten Modus öffne ich mit
Call Function ... starting new task 'UPDATE' destination 'None' ...
Alternativ habe ich auch
Call Function 'ABAP4_CALL_TRANSACTON' starting new task 'UPDATE' destination 'None' ...
ausprobiert.
Beides klappt auch super.

Leider bleibt der Modus offen und beim nächsten Drücken wird ein dritter, vierter, ... Modus eröffnet.
Ich möchte entweder den zusätzlichen Modus von meinem ersten Modus aus löschen der ihn beim zweiten Aufruf den zweiten Modus wiederverwenden.
Leider bin ich kläglich gescheitert.
Ein Versuch mit TH_DELETE_MODE führte nicht zum gewünschten Ergebnis.


Re: Neuen Modus im Dialog öffen und schließen

Beitrag von ewx (Top Expert / 4199 / 193 / 436 ) » 30.03.2020 16:27
Mit TH_LONG_USR_INFO bekommst du eine Übersicht über die offenen Modi.
Mit TH_DELETE_MODE kannst du einen löschen. Evtl. nur mit Nummer aus TH_LONG_USR_INFO-MODE - 1.

Wiederverwenden geht mWn nicht.

Das Löschen eines Modus ist aber auch mit Vorsicht zu genießen, denn der Anwender kann den zuvor geöffneten Modus ja "normal" weiter benutzen. Und wenn er in diesem gerade was wichtiges bearbeitet und die schießt ihm den weg... :(

Re: Neuen Modus im Dialog öffen und schließen

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) » 31.03.2020 08:59
Danke für die Mühe. Genau diesen Weg habe ich bereits probiert und es hat den gewünschten Effekt gehabt. Mit der Info aus TH_LONG_USR_INFO-MODE konnte ich nicht wirklich weiterarbeiten.

Vielleicht hat noch jemand einen ganz anderen Ansatz?

Re: Neuen Modus im Dialog öffen und schließen

Beitrag von gtoXX (Specialist / 143 / 30 / 20 ) » 31.03.2020 11:24
Gedanklich würde ich probieren ein amodales Dialogfenster zu öffnen und deine Zieltransaktion mit SUBMIT ... AND RETURN zu öffen. Hab jetzt nicht im Kopf ob das geht.

Wie vorher schon gesagt wurden : Modi zu schliessen, wo du nicht weißt, was der User da macht ist nicht so schön. Wenn Du Zeit und Muße hast, versuche mal rauszufinden wie der ABAP Debugger das macht. Der ist autark an sich, wenn aber die Ursprüngliche Anwendung geschlossen wird, schliesst er sich mit.
"Code lügt nicht ^^"

Re: Neuen Modus im Dialog öffen und schließen

Beitrag von ewx (Top Expert / 4199 / 193 / 436 ) » 31.03.2020 11:43
Ein amodales Dialogfenster ist ein cl_gui_dialogbox_container. Dort kannst du keine Transaktionen aufrufen.
Der Debugger macht das mit Interprozesskommunikation. Wie das genau läuft und was es für Möglichkeiten gibt, hält SAP relativ geheim. Das einzige, was ich dazu gefunden habe, sind zwei alte Demoprogramme. Keine Ahnung, ob das mit dem Debugger ähnlich läuft, oder ob es hier eine neuere Technik gibt. Mit "mal eben den Debugger debuggen" wirst du nicht weiterkommen. Falls doch, wäre ich an der Lösung interessiert... ;)

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag (Insgesamt 2):
gtoXX (31.03.2020 13:34) • Matthias.Selle (01.04.2020 08:44)


Re: Neuen Modus im Dialog öffen und schließen

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) » 01.04.2020 08:44
Danke für den Hinweis,

mit den Programmen RSIMC* kann ich mein Problem sicherlich lösen. Ich muss nur noch sehen, ob mein Kunde bereit ist, die Zeit für die Forschung zu investieren.

Re: Neuen Modus im Dialog öffen und schließen

Beitrag von ewx (Top Expert / 4199 / 193 / 436 ) » 01.04.2020 10:22
Ich verstehe nicht, warum das mit den TH_-Bausteinen bei dir nicht funktioniert.
Ich bezweifle auch, dass du die Interprozesskommunikation zum Starten von Transaktionen nutzen kannst. ich lasse mich aber gerne überraschen...

Re: Neuen Modus im Dialog öffen und schließen

Beitrag von a-dead-trousers (Top Expert / 3437 / 105 / 884 ) » 01.04.2020 21:10
ewx hat geschrieben:
01.04.2020 10:22
Ich bezweifle auch, dass du die Interprozesskommunikation zum Starten von Transaktionen nutzen kannst. ich lasse mich aber gerne überraschen...
Ich hab sie schon für einige, wenn auch sehr einfache, Anwendungen erfolgreich eingesetzt. Meines Erachtens spricht also nichts dagegen.
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: Neuen Modus im Dialog öffen und schließen

Beitrag von Matthias.Selle (ForumUser / 69 / 1 / 0 ) » 14.04.2020 15:16
ewx hat geschrieben:
01.04.2020 10:22
Ich verstehe nicht, warum das mit den TH_-Bausteinen bei dir nicht funktioniert.
Das Problem war, dass ich beim Löschen nie genau den Modus getroffen habe, den ich beenden wollte.
Das Thema ist trotzdem erst einmal beendet, da der Kunde jetzt eine andere Lösung für sein Problem anstrebt.
Vielen Dank allerseits.

Seite 1 von 1