gelöst Methode als Operand in CASE, Zustand im Debugger sehen


Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).

Moderatoren: Jan, Steff

gelöst Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon Romaniac » 10.10.2017, 09:55

Hallo zusammen,

wie kann ich im Debugger den Rückgabewert (Returning Parameter) einer Methode sehen wenn ich diese als Operand in einer CASE Anweisung verwende? In meinen Fall kann ich zwar sehen in welchem WHEN Zweig der Cursor landet, aber es würde mich generell interessieren:

Code: Alles auswählen
* Kontierungsobjekt ermitteln
        CASE me->get_accounting_object( <lw_freight_costs> ). "<-- Wie ist der Rückgabewert?

* COPA Direktkontierung
          WHEN const_accounting_copa.
            me->t_bapi_fi_doc_criteria = me->get_copa_accounting( <lw_freight_costs> ).

* Auftragsposition
          WHEN const_accounting_opos.
            <lw_accountgl>-orderid    = <lw_freight_costs>-vbeln_va.
            <lw_accountgl>-order_itno = <lw_freight_costs>-posnr_va.

* Innenauftrag
          WHEN const_accounting_iord.
            <lw_accountgl>-orderid = lw_ca_iord-aufnr_fvorg.
        ENDCASE.


Gruß Wolfgang
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 42
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 6 mal
Ich bin: Freiberufler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon Obelix1 » 10.10.2017, 10:21

Den Rückgabewert einer Methode kennst Du erst nachdem die Methode ausgeführt wurde, und dann hat in diesem fall das CASE seine Entscheidung bereits getroffen.
Du müsstest also zunächst das Ergebnis der Methode in eine Variable stellen (die kannst Du dann mit dem Debugger anschauen) und dann das CASE auf die Variable loslassen.

VG
Wolfgang
Obelix1
ForumUser
 
Beiträge: 33
Registriert: 28.04.2014, 09:40
Dank erhalten: 0 mal
Ich bin: Entwickler/in

Re: Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon Thanatos82 » 10.10.2017, 10:36

Hi,

wenn deine CASE-Anweisung bereits auf einen WHEN Bereich geht, dann ist das Ergebnis der Methode gleich dem Parameter hinter dem WHEN.
Und in deinem Beispiel scheinen da Konstanten hinterlegt zu sein. Also kennst du das exakte Ergebnis.
Wenn du allerdings das Ergebnis der Methode, also den Returning-Parameter noch an anderer Stelle benötigst, dann musst du dir das Ergebnis in einer eigenen Variable festhalten.
Code: Alles auswählen
DATA(lv_result) = me->get_accounting_object( <lw_freight_costs> ).


Dann kannst du deine CASE-Anweisung im Prinzip auch auf den Inhalt dieser Variablen abfragen und nicht auf die Methode.
Gruß,
der Matze
Thanatos82
Expert
 
Beiträge: 694
Registriert: 13.09.2012, 13:01
Wohnort: Hagen
Dank erhalten: 124 mal
Ich bin: Entwickler/in

Re: Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon Romaniac » 10.10.2017, 10:44

Das mit der Variable ist klar, ist aber so eleganter wenn ich die Methode direkt in dem CASE verwenden kann. In meinem Programm kenne ich natürlich die Ergebnisse und habe dafür Konstanten erstellt(die ich auch in der Methode dem Returnparameter zuweise).

Aber ich habe schon öfter SAP Programme debuggt wo ich gerne gewusst hätte was als Rückgabewert kommt (ohne die Methode zu debuggen, irgendwann muss ja de Returning Parameter versorgt werden), hier kann ich ja keine Variable anlegen.

Hat mich nur interessiert ob das nicht irgendwo doch sichtbar wäre im Debugger?

Gruß Wolfgang
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 42
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 6 mal
Ich bin: Freiberufler/in

Re: Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon lausek » 10.10.2017, 11:35

Hallo Wolfgang,

schau mal unter dem Reiter 'Auto' in der Variablenanzeige. Dort sollte es dann ein Returning Symbol geben und dahinter steht der jeweilige Methodenname.

Wird allerdings nur so lange angezeigt, wie man die Aufrufstelle nicht verlässt - logischerweise.

Für diese Nachricht hat lausek 4 Dankeschön bekommen :
a-dead-trousers, black_adept, ewx, Romaniac
lausek
ForumUser
 
Beiträge: 17
Registriert: 23.03.2017, 07:54
Dank erhalten: 7 mal
Ich bin: Student/in

Re: Methode als Operand in CASE, Zustand im Debugger sehen

Beitragvon Romaniac » 10.10.2017, 11:45

Hallo Lausek,

vielen Dank, genau das habe ich gesucht!

Gruß Wolfgang
Geht nicht gibts nicht
Romaniac
ForumUser
 
Beiträge: 42
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 6 mal
Ich bin: Freiberufler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
gelöst Formatschlüssel Sapscript
vor 8 Stunden von dkast 2 Antw.
Merkmalwert in einer Verkaufsbeleg auslesen
vor einer Stunde von cuncon 4 Antw.
Konfig. Position im SD Beleg Sperren
vor 12 Stunden von carlie 0 Antw.
Mussfelder bei VF01
vor 13 Stunden von Gottschall 0 Antw.
Mini-SAP Insatllation
Gestern von SaskuAc 0 Antw.

  Ähnliche Beiträge beta
mehrere PopUps gleichzeitig sehen
25.09.2012, 16:04 von Unit605 8 Antw.
gelöst ALV in Debugger OK im Programm nicht
24.10.2014, 12:53 von PeterPaletti 3 Antw.
ALV - Methode GET_SELECTED_CELLS
17.04.2003, 07:52 von Azreal 1 Antw.
Private Methode
05.09.2003, 11:14 von Enrique Gonzales 1 Antw.
Methode Überlader?
25.02.2004, 14:29 von LoLo 1 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!