Parametertransaktion für einen Modulpool

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

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
30 Beiträge • Vorherige Seite 2 von 2 (current)
30 Beiträge Vorherige Seite 2 von 2 (current)

Re: Parametertransaktion für einen Modulpool

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
Dafür gibt es ABAP_TRUE und ABAP_FALSE.
Es ist ja nicht so, dass man für jedes Programm 280 Literale bräuchte.
Normalerweise kann man die entsprechende Code Inspector Prüfung ja auch mit Pragmas + Begründung ausschalten.
Und Letztendlich ist sogar GC_X oder ABAP_TRUE etc. häufig wenig hilfreich, zum Beispiel dann, wenn ich die Konstante an eine Methode übergebe: refresh( abap_true ).
Was heißt denn in dem Fall ABAP_TRUE?
Ich muss also entweder den Übergabeparameter benennen oder eine sprechende Konstante nehmen:
refresh( i_soft_refresh = abap_true ).
oder
refresh( c_flag_soft_refresh ).

Bei PERFORMs bleibt nur die zweite Variante...

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


Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
ewx hat geschrieben:Dafür gibt es ABAP_TRUE und ABAP_FALSE.
Und wie prüfst du auf einen sy-subrc?

Code: Alles auswählen.

case sy-subrc.
when gc_1.
when gc_2.
when others
endcase.
Oder sind Zahlen keine Literale?
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing


Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Parametertransaktion für einen Modulpool

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
Ich glaube aber nicht, dass der CI das prüft. Der beachtet nur Text-Literale.

Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
ewx hat geschrieben:Ich glaube aber nicht, dass der CI das prüft. Der beachtet nur Text-Literale.
Warum muss ich immer erst alles beweisen?
code_inspector.png
Das Programm dazu:

Code: Alles auswählen.

REPORT zzrwtest.

case sy-subrc.
when 1.
when 2.
when 3.
when 4.
when 5.
when 6.
when 7.
when 8.
when 9.
when 10.
when 11.
when 12.
when 13.
when 14.
when 15.
when others.
endcase.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Parametertransaktion für einen Modulpool

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo Reinhard,

auch wenn das Thema an sich schon gelöst ist würde ich gern interssehalber wissen, was ihr in folgenden Situationen macht, wenn ihr keine Literale verwenden dürft?


1.) Aufruf von Funktionsbausteinen:
Beispiel:

Code: Alles auswählen.

  call function 'STATUS_CHECK'
    exporting
      objnr             = lf_objnr
      status            = lc_status_noco  " Notification Completed
    exceptions
      object_not_found  = 1
      status_not_active = 2
      others            = 3.
Hier haben wir 2x Literale - Einmal den Funktionsbausteinnamen und dann die Zahlenliterale der Returncode-Rückgaben

2.) Definition von Konstanten ( Katze-beißt-sich-in-den-Schwanz-Problem) oder Defaultwerten (hier insbes. bei Checkboxen auf Selscreen oder bei optionalen Parametern), wo man ja üblicherweise Konstanten verwendet.
Beispiel3:

Code: Alles auswählen.

constants logo_classtype type bapibds01-classtype value 'OT'. "#EC NOTEXT
PARAMETERS: cb_initf AS CHECKBOX DEFAULT 'X'.
DATA: FORBIDDEN_CHARS type char10 value '\$!§%&''##',   "#EC STRING_OK
method xxx importing iv_no_commit default 'X' ...
3.) Abhandlung von OK-Codes eines GUI-Status. - Müsst ihr hier tatsächlich für die oftmals einzige Verwendung des ok-codes eine Konstante anlegen um das Literal zu umgehen?

Code: Alles auswählen.

CASE ok_code_dynnr_9017.
when 'CODE1'.
when 'CODE2'.
4.) Textsymboldeklaration im Code mittels Literal(xxx) um einen Defaultwert zu haben im Fall einer fehlenden Übersetzung

Code: Alles auswählen.

WRITE 'Hinweistext'(tx1).
5.) Setzen von GUI-Status oder Aufruf von Dynpros ( letzteres insbes. im Fall, dass es nur einen einzigen Dynproaufruf im Programm gibt und gebenwird )

Code: Alles auswählen.

SET PF-STATUS 'ALV'.
CALL SCREEN '9000'.
6.) Hier wird mich Ralf gleich rüffeln , weil es veraltet ist. Aber ich finde das trotzdem wichtig *lach*. Erstellen von Call-Transaction-Steuertabellen oder Erstellung von Batch-Input-Mappen
Wenn über SHDB ein Code generiert wird - legt ihr für jedes Dynprofeld, Programmnamen, Dynpronummer Konstanten an. Und was ist mit den Vorbelegung des ctu_params Übergabeparameters?

Code: Alles auswählen.

  perform bdc_dynpro      using 'SAPLSPO1' '0500'.
  perform bdc_field       using 'BDC_OKCODE' '=OPT1'.

 opt-dismode = 'N'.
 opt-updmode = 'S'.
7.) Navigation - hier insbes. Absprung in Transaktionen -

Code: Alles auswählen.

  call transaction 'MM02' using bdcdata options from opt.
8.) Message:

Code: Alles auswählen.

Message ... DISPLAY LIKE 'E'
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Einen Teil der Beispiele habe ich ja schon gebracht, ewx meinte daraufhin, Zahlen seien keine Literale. Hinweis noch dazu: Durch das Verwenden von Konstanten z. B. für Screens oder GUI-Status werden die Verwendungsnachweise kaputtgemacht. Ein wichtiger Grund dafür, Konstanten dafür NICHT einzusetzen.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Parametertransaktion für einen Modulpool

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
ralf.wenzel hat geschrieben:Warum muss ich immer erst alles beweisen?
Weil man vieles erst dann glauben kann.

Hier mal die genaue Ausgabe bei mir (SLIN):

Sieht so aus, als ich auch ein bisschen Recht. Die "Literale" 1 - 10 werden nicht angemeckert.

Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
ewx hat geschrieben:Sieht so aus, als ich auch ein bisschen Recht. Die "Literale" 1 - 10 werden nicht angemeckert.
Das liegt an der Prüfung - trotzdem sind Ziffern Literale.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Parametertransaktion für einen Modulpool

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
ralf.wenzel hat geschrieben:
ewx hat geschrieben:Sieht so aus, als ich auch ein bisschen Recht. Die "Literale" 1 - 10 werden nicht angemeckert.
Das liegt an der Prüfung - trotzdem sind Ziffern Literale.
Ja, du hast Recht. Es ging jedoch darum, ob es notwendig ist, für jedes numerische Literal - wegen des CI - eine Konstante anlegen zu müssen. Und das ist - zumindest bezüglich deines ersten Beispiels mit SY-SUBRC - nicht der Fall.
Ich gebe zu, dass ich davon ausgegangen bin, dass Integer-Werte nicht als Literale behandelt werden, da ich es noch NIE gesehen, habe, dass z.B. der Returncode mit gc_1, gc_2 etc. abgefragt wird.

Re: Parametertransaktion für einen Modulpool

Beitrag von a-dead-trousers (Top Expert / 4395 / 223 / 1182 ) »
ewx hat geschrieben:Ich gebe zu, dass ich davon ausgegangen bin, dass Integer-Werte nicht als Literale behandelt werden, da ich es noch NIE gesehen, habe, dass z.B. der Returncode mit gc_1, gc_2 etc. abgefragt wird.
Macht auch nicht viel Sinn. Dann eher was sprechendes wie "gc_assigning_failed" oder "gc_exc_missing_parameter".

EDIT: Siehe auch die hitzige Debatte zum Thema "ungarische Notation" die hier vor kurzem stattgefunden hat.
http://www.abapforum.com/forum/viewtopi ... =1&t=20491
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: Parametertransaktion für einen Modulpool

Beitrag von ewx (Top Expert / 4846 / 311 / 641 ) »
Das stimmt, das wäre wenig sinnvoll.
Viel Spaß bei der Verwendung dieser Bausteine:
TR_APPEND_TO_COMM_OBJS_KEYS, VENDOR_BDCDATA oder MATERIAL_READ_ALL
:)

Re: Parametertransaktion für einen Modulpool

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
ralf.wenzel hat geschrieben:...
Hinweis noch dazu: Durch das Verwenden von Konstanten z. B. für Screens oder GUI-Status werden die Verwendungsnachweise kaputtgemacht. Ein wichtiger Grund dafür, Konstanten dafür NICHT einzusetzen.
Hier muss ich jetzt auch mal Einspruch erheben.
Ein Verwendungsnachweis für Dynpro 7654 oder 9999 findet tatsächlich die korrekte Stelle ( 7.40 EHP 6-7 )
demo.png
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Parametertransaktion für einen Modulpool

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Das ist aber noch nicht so lange - ich weiß von einem Ex-Kunden von mir, dass der aus diesem Grunde das Verwenden von Konstanten für diese Fälle verboten hat.
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

0
Antw.
2477
Views
Parametertransaktion Start_Report: Bedeutung der Parameter?
von Jufo » 15.02.2008 14:35 • Verfasst in ABAP® Core
2
Antw.
2007
Views
Tagesdatum der Parametertransaktion übergeben (FDTA)
von miru77 » 24.03.2014 08:37 • Verfasst in ABAP® Core
2
Antw.
2495
Views
Selektionsvarianten für Modulpool
von SAP_ENTWICKLER » 07.01.2014 12:50 • Verfasst in ABAP® Core
4
Antw.
2217
Views
Programme suchen mit Programmtyp xx (z.B. M^=Modulpool)
von gse » 29.06.2006 09:50 • Verfasst in ABAP® Core
5
Antw.
3336
Views
Pfelge-View als Modulpool nachprogrammiert mit TC + App Log
von MarkusW » 29.01.2007 15:15 • Verfasst in Dialogprogrammierung

Ü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 2 Tagen von Bright4.5 1 / 753
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2377
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8962