Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
deejey
Warum sollte ich ALV-Handling in einem Vorstellungsgespräch erwähnen, kuriose Idee ... das Problem ist nicht sich damit beschäftigen sondern die mangelnde Routine: der Dialogprogrammanteil der letzten 10 Jahre beträgt bei mir gefühlt 10 - 15%, viele mühsam erarbeitete Details gehen einfach mangels Wiederholung verlorenjocoder hat geschrieben: ↑11.03.2020 09:58Das gehört zum Beruf des Softwareentwicklers bzw. Beraters doch dazu, sich mit Sachen zu beschäftigen, die einem neu sind. Man wächst schließlich mit seinen Aufgaben. Ein Tipp von mir: Erwähne so was nie in einem Vorstellungsgespräch. Sässe ich auf der anderen Seite, hätte sich dieses Gespräch sofort erledigt.
Ich werde es mal probieren, DATA_CHANGED_FINISHED habe ich erst heute morgen zufällig entdeckt, weiß noch nicht genau was dahinter steckt, da ist auch noch eine ganze Menge anderer Sache was die liefern, mal schauen wozu das alles gut ist.a-dead-trousers hat geschrieben: ↑11.03.2020 10:17Bezüglich dem Punkt a.
Nur so eine Vermutung, aber wenn man im Eventhandler von Controls eine Message auslöst befindet man sich normalerweise NICHT in einem gewöhnlichen PAI/PBO Lauf. Daher könnte ich mir vorstellen, dass durch die Message der Eventhandler nicht sauber beendet werden kann und deswegen beim nächsten Enter nicht mehr triggert. Deswegen vermutlich auch das "Fenster", welches Bestandteil des ALV-Grid selbst ist.
Du könntst versuchen, die Fehler im DATA_CHANGED Event nur zu sammeln und im DATA_CHANGED_FINISHED (oder so ähnlich) dann die Messages auszugeben. Das Event wird ganz am Schluss der ALV-Verarbeitung getriggert. Möglich, dass das "näher" am PAI/PBO des SapGui liegt. Man kann Events aber auch als "Application-Event" registrieren lassen (Parameter i_appl_events im Constructor). Dann wird immer PAI/PBO ausgelöst, was aber bei großen Datenmengen im ALV zu Performanceproblemen (unschönes Flackern, Verlust des Eingabe-Focus usw.) führen kann. Ob daher die DATA_CHANGED-Events intern auch als "Application-Event" registriert werden können, kann ich jetzt leider nicht sagen.
Das hat jetzt nichts speziell mit dem ALV-Grid zu tun. In der Hilfe zum Befehl MESSAGE sollte eine Tabelle aufscheinen, in der beschrieben ist, zu welchen "Zeitpunkten" in der Ablauflogik, der Befehl sich wie verhällt. Weil er sich eben je nach Kontext anders verhallten kann, sollte man ihn auch im Sinne des klassischen MVC (oder ähnlichen Programmierparadigmen) besser nicht verwenden.deejey hat geschrieben: ↑11.03.2020 10:32Interessant ist noch Folgendes: wenn man in der Prüfmethode eine E-Message ausgibt, dann wird sie zwar angezeigt, aber beim nächsten Enter wird das Programm einfach beendet, ohne erkennbare Spur oder Debugmöglichkeit 😜 das zerreisst den ALV-Ablauf offenbar komplett.
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
deejey