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: 57
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 7 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: 35
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: 697
Registriert: 13.09.2012, 13:01
Wohnort: Hagen
Dank erhalten: 125 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: 57
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 7 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: 57
Registriert: 20.03.2017, 10:31
Wohnort: Augsburg
Dank erhalten: 7 mal
Ich bin: Freiberufler/in


Zurück zu ABAP Objects®

  Aktuelle Beiträge   
Barcodes in Warenbewegungen & Belegen
vor 14 Stunden von marc.braun 0 Antw.
HTML Daten als Anhang an Mail unter AOO
vor 16 Stunden von SAP_ENTWICKLER 0 Antw.
SAP Access & Identity Management - noch aktuell?
vor 19 Stunden von SaskuAc 0 Antw.
gelöst SELECT...WHERE mit ähnlichen String-Feldern
vor 18 Stunden von Suta_K 4 Antw.
gelöst Seitensteuerung Adobe Forms
vor 15 Stunden von Lucyalison 12 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!