Code: Alles auswählen.
...."@TC corr:L?_hugo
Die wären dann ja im Ergebnis des Compileraufrufs und könnten dann noch genauer untersucht werden, ob der Präfix wirklich korrekt ist . (Die erweiterte Prüfung der erweiterten Prüfung)Aber was ist denn jetzt mit all den Variablen, die zwar korrekt global/lokal sind aber nicht in der Typprüfung?
Code: Alles auswählen.
CALL METHOD cl_gui_frontend_services=>gui_download
EXPORTING
filename = fname
CHANGING
data_tab = t_lines[]
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
not_supported_by_gui = 22
error_no_gui = 23
OTHERS = 24.
Ich hatte nicht vor, eine neue Grundsatzdiskussion zu dem Thema anzustoßen. Meine Idee war, dass Tron seinen Arbeitgeber darauf aufmerksam machen könnte, dass das, was dort bislang (womöglich unkritisch aus Gewohnheit) gefordert wird, veraltet ist. Möglicherweise könnte das dort zu einer Entscheidung führen, die die Aufgabenstellung hinfällig macht. Das muss natürlich nicht von Erfolg gekrönt sein (je nachdem, ob die dortigen Entscheider sich überzeugen lassen oder nicht), wäre im Erfolgsfall aber eine einfache und elegante Lösung des Problems.@D&P: Bitte keine Diskussion in diesem Thread über den Sinn oder Unsinn der HN.
Jens Brötchengeber hat sich für die HN entschieden und jetzt soll da halt was umgesetzt werden. Die Grundsatzdiskussion kann gerne geführt werden - aber dann doch bitte in einem eigenen Thread.
Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
black_adept
DeathAndPain hat geschrieben: ↑07.10.2019 15:20Ich schau gelegentlich mal in die Codeprüfung rein, um Sachen wie deklarierte, aber unbenutzte Felder zu finden, aber der Löwenanteil dessen, was da angemeckert wird, ist für mich Hintergrundrauschen, das zu ignorieren ist. Beispielsweise dass alle Literale angemeckert werden. Wenn ich weiß, dass in meinem Unternehmen jeder englisch spricht, dann finde ich es bedeutend besser les- und pflegbar, eine Popup-Meldung im Klartext als englischsprachiges Literal in den Code zu schreiben, als über eine Textreferenz, bei der man dann beim Lesen des Codes nicht weiß, was drin ist
Code: Alles auswählen.
CALL FUNCTION 'POPUP_TO_GET_VALUE'
EXPORTING
fieldname = FIELD
tabname = TABLE
titel = 'I am the title'(001) " <== Wo ist das Problem?
valuein = VALUEIN
....
DeathAndPain hat geschrieben: ↑07.10.2019 15:20[...]dann finde ich es bedeutend besser les- und pflegbar, eine Popup-Meldung im Klartext als englischsprachiges Literal in den Code zu schreiben, als über eine Textreferenz, bei der man dann beim Lesen des Codes nicht weiß, was drin ist, und erst wieder irgendwelchen Referenzen folgen muss, um es herauszufinden.
Code: Alles auswählen.
message 'Tolle Meldung'(815) type 'I' display like 'E'.
Code: Alles auswählen.
message 'Tolle Meldung' type 'I' display like 'E'.
Ahja, Nachrichten haben keine Vorteile, wenn man keine Übersetzung braucht. Parametrisierung braucht keiner, Langtexte sind was für Idioten, die Kurztexte immer ausreichend finden. Aber darum geht es hier ja nicht, es geht um Literale.DeathAndPain hat geschrieben: ↑08.10.2019 13:31Wenn man diese wenig verbreitete Syntax nimmt, nicht. Trotzdem hat man damit das Affentheater, im Hintergrund noch eine Nachricht dazu anlegen zu müssen, die keine Vorteile bringt (wenn man keine Übersetzung braucht).
Dass sind gute Argumente, jedenfalls in der Theorie. In der Praxis habe ich freilich noch niemals eine Non-SAP-Message gesehen, die einen Langtext gehabt hätte. Das benutzt so oder so keiner. Genau wie auch niemand die erweiterten Texte selbstdefinierter Datenelemente pflegt.Parametrisierung braucht keiner, Langtexte sind was für Idioten, die Kurztexte immer ausreichend finden.
1. Es ist prozeduraler Code, nicht prozessualer.DeathAndPain hat geschrieben: ↑08.10.2019 16:00Dass sind gute Argumente, jedenfalls in der Theorie. In der Praxis habe ich freilich noch niemals eine Non-SAP-Message gesehen, die einen Langtext gehabt hätte. Das benutzt so oder so keiner. Genau wie auch niemand die erweiterten Texte selbstdefinierter Datenelemente pflegt.Parametrisierung braucht keiner, Langtexte sind was für Idioten, die Kurztexte immer ausreichend finden.
Das ist, wie dass OO mit seiner feingliedrigen Zerfaserung in Klassen und Unterklassen und -methoden verständlich wäre, wenn man jede einzelne Klasse und Methode sorgsam dokumentieren würde. Da das aber auch keiner macht (und viele Entwickler noch nicht einmal die hierfür erforderlichen Sprachfertigkeiten aufzuweisen haben), sind OO-Programme, die man nicht selber entwickelt hat, in der Praxis viel schlechter zu verstehen und zu warten als herkömmlicher prozessualer Code, bei dem man sich in aller Regel ganz gut mit dem Debugger reinfuchsen kann. Ich verweise auf mein Lieblingszitat: "I don’t know the answer but I do know that debugging what happens after pressing a command in VA01 is easier to follow than the equivalent in ME21N. Or is that just because I am an OO novice?"
Ohne es ausprobiert zu haben: Wenn man eine Nummer hinter ein Literal stellt, meckern Erweiterte Programmprüfung und/oder Code Inspector dann nicht mehr, dass es ein Literal ist?
Nukular! Es heißt nukular!1. Es ist prozeduraler Code, nicht prozessualer.
Du hast nicht gelesen, was ich geschrieben habe, bzw. es ist in Deinem Kopf zu dem mutiert, was Deine Erwartungshaltung Dir vorschreibt.2. Es kann sein, dass DU das so machst
DeathAndPain hat geschrieben: ↑08.10.2019 16:00Dass sind gute Argumente, jedenfalls in der Theorie.
DeathAndPain hat geschrieben: ↑08.10.2019 16:00Das benutzt so oder so keiner. Genau wie auch niemand die erweiterten Texte selbstdefinierter Datenelemente pflegt.
16 Uhr:
Wenn du jetzt den Unterschied zwischen deinen Aussagen von 15 und 16 Uhr siehst, sind wir schon einen Schritt weiter.DeathAndPain hat geschrieben: ↑08.10.2019 17:04Ich habe überhaupt noch nie Code von Entwicklern gesehen, die individuellen Code entwickelt haben und sich dabei darum gekümmert hätten, Methoden oder Langtexte zu dokumentieren.
In dieser anderen Realität leben eine Menge Leute, die ich kenne - nicht nur aus dem aktuellen Projekt. Das ist kein Paralleluniversum.... Und wie gesagt: Der Trend wandelt sich, für Unit-Tests und Dokus nimmt man endlich zunehmend Geld in die Hand. Zu viele Kunden haben zu viele Entwicklungen von Leuten, die nicht mehr da sind.DeathAndPain hat geschrieben: ↑09.10.2019 12:38Einigen wir uns darauf, dass Du in einer anderen Realität lebst als ich.
Mach mal ein "clear PB0001" und du weißt, warum der vor Verschattung warnt.DeathAndPain hat geschrieben: ↑09.10.2019 12:38"Der Arbeitsbereich "PB0001" wird durch ein gleichnamiges lokales Datenobjekt (Parameter,Variable) verschattet."