Das ist wohl richtig. Für mich ist es aber der einzig richtige Ansatz, den Haken rauszunehmen. Ich meine, wozu verwendet man die SE16? Doch nicht für die tägliche Arbeit, sondern wenn man wissen möchte, was wirklich in der Datenbanktabelle drinsteht (und worauf man sich dementsprechend mit seinem SELECT wird einstellen müssen). Die SE16 ist ein Datenbanktool; da will man nicht Werte sehen, die völlig anders aussehen als die auf der Datenbank. (Deswegen ist es ja auch so verwerflich, wenn mit der SE16 produktiv gearbeitet wird, was freilich in der Realität durchaus vorkommt.)Bei allem, bei dem du eine Dictionary-Verknüpfung hast, werden die Dictionary-Einstellungen auch verwendet. Und dazu gehört auch der Konvertierungsexit.
Wenn du ein Feld auf dem Dynpro mit Bezug zum DDIC anlegst, dann wird der KonvExit durchlaufen.
Wenn du eine interne Tabelle ausgibst, die Bezug zum DDIC hat, dann wird der Konv.Exit berücksichtigt.
Du musst in allen Fällen die Verbindung zum DDIC aktiv lösen. Siehe Screenshot "Quelltext SE16".
BSEG-HKONT ist der Domäne SAKNR zugeornet und hat den ConvExit ALPHA.ewx hat geschrieben:Das ist merkwürdig. Aber das wussten wir ja bereits...
In "meinem" System ist das definitiv nicht so.
Kannst du denn dort die Einträge HKONT selektieren?
Und um sicher zu gehen: BSEG-HKONT ist die Domäne SAKNR zugeordnet und SAKNR hat den ConvExit ALPHA?
DeathAndPain hat geschrieben:Das ist wohl richtig. Für mich ist es aber der einzig richtige Ansatz, den Haken rauszunehmen. Ich meine, wozu verwendet man die SE16? Doch nicht für die tägliche Arbeit, sondern wenn man wissen möchte, was wirklich in der Datenbanktabelle drinsteht (und worauf man sich dementsprechend mit seinem SELECT wird einstellen müssen). Die SE16 ist ein Datenbanktool; da will man nicht Werte sehen, die völlig anders aussehen als die auf der Datenbank. (Deswegen ist es ja auch so verwerflich, wenn mit der SE16 produktiv gearbeitet wird, was freilich in der Realität durchaus vorkommt.)Bei allem, bei dem du eine Dictionary-Verknüpfung hast, werden die Dictionary-Einstellungen auch verwendet. Und dazu gehört auch der Konvertierungsexit.
Wenn du ein Feld auf dem Dynpro mit Bezug zum DDIC anlegst, dann wird der KonvExit durchlaufen.
Wenn du eine interne Tabelle ausgibst, die Bezug zum DDIC hat, dann wird der Konv.Exit berücksichtigt.
Du musst in allen Fällen die Verbindung zum DDIC aktiv lösen. Siehe Screenshot "Quelltext SE16".
Wer benutzerfreundlich-anschauliche Werte sehen möchte, der nimmt die SM30 oder die normalen Pflegetransaktionen für das jeweilige Sachgebiet.
Edit: Auch die Konvertierung kannst du da ausschalten.DeathAndPain hat geschrieben:Nene. Das fängt doch schon damit an, dass die SE16N in der Übersichtsliste alle Spaltenüberschriften als DDIC-Beschreibungstext anzeigt anstatt mit ihrem richtigen Datenbanknamen. Das ist doch Mist! ich will den Inhalt der Tabelle auf der Datenbank sehen, also will ich sehen, was z.B. im Feld KUNNR drinsteht und nicht im Feld "Kundennummer" - denn mit letzterem Begriff kann ich in meinem ABAP-Programm nichts anfangen. Nebenbei führt das auch dazu, dass die SE16N defaultmäßig alle Spalten so breit macht, dass der ganze DDIC-Beschreibungstext reinpasst - mit der Konsequenz, dass ich zunächst einmal nur einen Bruchteil der Spalten auf dem Bildschirm habe, den ich bei der SE16 hätte und rumscrollen muss.
Also von der Handhabung her gefällt mir die SE16N gar nicht. Die SE16 erfüllt perfekt ihre Funktion. Die soll mir einfach nur zeigen, wie es - wirklich! - auf der Datenbank aussieht. Da will ich keine Beschreibungstexte, keine Conversion Exits oder sonstigen kosmetisch verändernden Mist haben, sondern einfach nur das, was ich auch bekommen würde, wenn ich händisch einen SELECT eintippen und mir die Ausgabe anschauen würde. Und den Job macht die SE16 klar besser.
Das stimmt tatsächlich, wenn du die SE16-Standardliste als Ausgabe eingestellt hast.DeathAndPain hat geschrieben:Schon besser. Aber ich hab das gerade gemacht und habe auch "Ausgabe ohne Konvertierungsexit" gesetzt, aber er zeigt mir dennoch die Personalnummer (TYPE PERSNO, das ist ein achtstelliges Feld vom Typ N) ohne führende Nullen, obwohl TYPE N immer führende Nullen auf der Datenbank hat. SE16 macht das nicht.
Das ist wahr, das kann man als kleine Schwachstelle der SE16 deuten - aber keine, die die SE16N nicht auch hätte. Wogegen ich mich auch nur gewehrt habe, war die Behauptung "SE16N kann alles, was SE16 kann and then some." In der SE16 kann ich auch schon Feldlängen abzählen und vergleichen. Im ALV der SE16N mit seiner Proportionalschrift geht das nicht. Und in der SE16 kann ich auch bei den ersten 10 Spalten die jeweils 5 ersten Zeichen mit Strg+Y markieren und kopieren. In der SE16N kriege ich mit Strg+Y nur ganzen Zellen markiert.Und auch da gaukelt dir die Se16 was vor: Das Datum wird nämlich trotzdem benutzerfreundlich nach DD.MM.JJJJ konvertiert und nicht im internen Format JJJJMMDD angezeigt.
Sicherlich, IMHO sollte die inhaltlich so aussehen, wie man ein Literal des betreffenden Datentyps in ABAP schreiben würde. Also keine Grütze, aber auch keine kosmetischen Manipulationen, die für Endandwender gedacht sind. EInfach der echte Wert des Feldes in menschenlesbarer Form.Dass eine "Typ-Ausgabe-Konvertierung" gemacht wird, finde ich auch gut, denn mit der internen Darstellung von gepackten Zahlen z.B. könnte ich nichts anfangen.
Das stimmt. Ist mir noch nie wirklich aufgefallen, weil ich es wahrscheinlich noch nie gebraucht habe. auf jeden Fall gut zu wissen. Auch wenn - oder gerade weil - es nur Kleinigkeiten sind.DeathAndPain hat geschrieben:Und in der SE16 kann ich auch bei den ersten 10 Spalten die jeweils 5 ersten Zeichen mit Strg+Y markieren und kopieren. In der SE16N kriege ich mit Strg+Y nur ganzen Zellen markiert.
Jetzt verstehe ich auch, warum du so auf den "wirklichen Werten" herumreitest (bzw. warum dir das wichtig ist). Gerade die Personalnummer wird mal als NUMC und mal als CHAR gespeichert. Und man weiß im ersten Moment nicht, welches Datenelement verwendet wurde. Und Kostenstelle ist auch so ein Fall. Wenn man natürlich mit solchen Feldern immer und immer wieder zu tun hat, verstehe ich, dass man ein Tool benutzt von dem man diese Unterschiede sofort erkennen kann.DeathAndPain hat geschrieben:Und der Unterschied zur SE16N mit den führenden Nullen ist nicht unwichtig, denn es gibt in SAP viele Felder, die eigentlich numerisch sind, aber warum auch immer trotzden als TYP C und nicht N definiert sind (beispielsweise die Nummern von Kostenstellen. Ob die real auch Buchstaben enthalten dürfen, keine Ahnung. Ich kenne aber niemanden, der da welche nutzt.) Und wenn man z.B. in einem SELECT auf Initialwert vergleichen will, dann muss man angesichts der Tatsache, das IS INITIAL in einer WHERE-Bedingung nicht erlaubt ist, bei Typ N-Feldern schon auf so etwas wie '00000000' vergleichen. Und sowas will ich sehen können, indem ich mir per SE16 anschaue, in welcher Form die Werte auf der Datenbank liegen. Die SE16N lässt mich da im Stich.
Höre ich das erste Mal. Ich kann mir auch nicht vorstellen, dass es direkt zusammen hängt.DeathAndPain hat geschrieben:Auf der anderen Seite kann ich mich erinnern, dass der WRITE-Befehl kurz nach Einführung der ALVs quälend langsam geworden ist.
Ich kann mir schon vorstellen, dass du dieses Verhalten festgestellt hast. Aber die möglichen Gründe sollte etwas differenzierter betrachtet werden:DeathAndPain hat geschrieben:Das war ziemlich offensichtlich, da schlagartig. Wir haben damals den größtmöglichen unterstützten Upgradeschritt gemacht, nämlich von 3.1i direkt auf 4.7. Danach waren Write-Listen extrem langsam, während die neuen ALVs einwandfrei performt haben. Mein subjektiver Eindruck ist, dass das auch nie wieder gefixt worden ist, aber mit zunehmender Hardwareleistung über die Jahre irgendwann egal gewesen ist.
Vielleicht hängt die miese Performance ja damit zusammen, dass bei dem Schritt auch OO eingeführt worden ist... *duckundweg*