fehlerhafte Datenbanktabelle

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

Getting started ... Alles für einen gelungenen Start.
48 Beiträge • Vorherige Seite 3 von 4 (current) Nächste
48 Beiträge Vorherige Seite 3 von 4 (current) Nächste

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
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".
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.)

Wer benutzerfreundlich-anschauliche Werte sehen möchte, der nimmt die SM30 oder die normalen Pflegetransaktionen für das jeweilige Sachgebiet.

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


Re: fehlerhafte Datenbanktabelle

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
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?
BSEG-HKONT ist der Domäne SAKNR zugeornet und hat den ConvExit ALPHA.

Aber... das Problem hat sich in Luft aufgelöst... :twisted:
Ich habe gerade die SE16N gedebuggt, konnte nichts verdächtiges im Debugger feststellen und als ich dann raus aus dem Debugger bin und die Anzeige vor mir hatte, Stand im Feld unkonvertiert das HKONT mit führenden Nullen...

Wenn ich die SE16N jetzt aufrufe und mir die Daten anzeige (aus Tabelle BSEG oder auch aus meiner Z-Tabelle) wird alles richtig dargestellt.

Liebe Grüße
abuma

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
Fassen wir also zusammen, dass das Problem gestern da war und heute nicht mehr, und damit ist das gut. Da freut sich Ralf. :-D

Re: fehlerhafte Datenbanktabelle

Beitrag von gtoXX (Specialist / 185 / 34 / 31 ) »
DeathAndPain hat geschrieben:
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".
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.)

Wer benutzerfreundlich-anschauliche Werte sehen möchte, der nimmt die SM30 oder die normalen Pflegetransaktionen für das jeweilige Sachgebiet.

SE16N kann alles, was SE16 kann und mehr und ist komfortabler. Das ist eher so ein alte Gewohnheitenproblem. Für mich gibt es keinen Einzigen Grund SE16 mehr einzusetzen. ^^
"Code lügt nicht ^^"

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
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.

Re: fehlerhafte Datenbanktabelle

Beitrag von Somani (ForumUser / 81 / 12 / 20 ) »
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.
Edit: Auch die Konvertierung kannst du da ausschalten.

Re: fehlerhafte Datenbanktabelle

Beitrag von abuma (Specialist / 102 / 36 / 14 ) »
Und auch die Anzeige der technischen Namen.

Grundsätzlich kann es aber auch Vorteilhaft sein die SE16 wie DeathAndPain geschrieben hat, als reine Anzeige für Daten wie sie auf der DB abgelegt sind zu verwenden und die SE16N als reine Anzeige mit den Bezeichnungen und Konvertierten Werten.

Mir persönlich gefällt die SE16N aber dennoch mehr.

Liebe Grüße
abuma

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
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.

Re: fehlerhafte Datenbanktabelle

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
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 stimmt tatsächlich, wenn du die SE16-Standardliste als Ausgabe eingestellt hast.
Alles andere ist die externe Aufbereitung von Datentypen.
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. :P
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.
Und grundsätzlich darf man sich, denke ich, schon darauf verlassen, dass die Daten Typgerecht in der DB abgelegt werden. Da muss ich nicht wissen, das NUMC10 tatsächlich 0000012345 ist und nicht 12345.

Viel ärgerlicher finde ich eigentlich, dass Zeitstempel nicht konvertiert werden und in einem völlig unleserlichen Format ausgegeben werden:
20.180.108.132.319,1538400
Anstelle von
2018-01-08 13:23:19,1538400

Übrigens auch in der SE16-Standardliste... :P

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
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. :P
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.
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.
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.

Abgesehen von dem von Dir erwähnten Schnitzer mit dem Datum macht die SE16 das auch. 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.

Hingegen habe ich keine Probleme, dass ich in der SE16 keine Rohfassung gepackter Zahlen sehe, denn die brauche ich in ABAP in aller Regel auch nicht (also die gepackten Zahlen schon, aber ihre binären Wertangaben nicht).

Re: fehlerhafte Datenbanktabelle

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
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.
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 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.
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.

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
Zumal die SE16N keine zusätzlichen Features bietet, in denen ich für meine Person einen Nutzen wahrnehmen würde.

Historisch (d.h. bei Einführung der SE16N) war es sogar so, dass diese auf den damaligen Systemen vergleichsweise langsam war und man mit der SE16 einfach schneller ein Ergebnis zu sehen bekommen hat. Dadurch ist die SE16N bei mir emotional noch zusätzlich negativ belegt, auch wenn dieses Argument heute keine Rolle mehr spielen dürfte.

Auf der anderen Seite kann ich mich erinnern, dass der WRITE-Befehl kurz nach Einführung der ALVs quälend langsam geworden ist. Rückblickend frage ich mich, ob das ein Kollateralschaden war oder gar eine gezielte Boshaftigkeit der SAP, um Entwickler zum Umstieg zu bewegen. Es wurden dadurch aber auch viele bereits bestehende, auf WRITE aufsetzende Reports langsam. War ziemlich ärgerlich.

Re: fehlerhafte Datenbanktabelle

Beitrag von ewx (Top Expert / 4786 / 294 / 629 ) »
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.
Höre ich das erste Mal. Ich kann mir auch nicht vorstellen, dass es direkt zusammen hängt.

Re: fehlerhafte Datenbanktabelle

Beitrag von DeathAndPain (Top Expert / 1799 / 214 / 396 ) »
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* :-D

Re: fehlerhafte Datenbanktabelle

Beitrag von a-dead-trousers (Top Expert / 4286 / 214 / 1142 ) »
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* :-D
Ich kann mir schon vorstellen, dass du dieses Verhalten festgestellt hast. Aber die möglichen Gründe sollte etwas differenzierter betrachtet werden:
Ich wage nämlich zu behaupten, dass die WRITE-Listen über die Jahre an sich kaum an Performance eingebüst haben dürften. Vielmehr dürften die ALV-Grids wesentlich schneller sein, da sie nicht sofort die ganzen Daten an den Client schicken müssen, sondern in Blöcken zu X-KB (Einstellbar?) aufteilen. Ganz leicht zu sehen, wenn man in einer "großen" Tabelle nach unten scrolt und man kurz die Ikonen für das nachladen sieht. Hingegen müssen für die Write-Listen die Daten "irgendwo" in aufbereiteter Form erst mal abgelegt werden, sonst könnte man z.B. den Scrolbalken im SAPGui nicht sauber zeichnen. Im gleichen Zuge sind dann zwischen 3.1 und 4.7 sicher jede Menge neue Sachen dazugekommen und die SAP wird natürlich ihr Augenmerk eher darauf gelegt haben. Diese neuen Dinge werden aber auch einen gewissen "impact" auf das bestehende System gehabt haben der es verlangsamt, wie es mit vielen dermaßen "hochkomplexen" System passiert. Bis man da die richtigen Einstellungen für Puffer usw. gefunden hat, dauerts halt ein bisschen. Und nicht zu vergessen die Sch*%§=$ Krücke von SAPgui. Die Qualität von dem Ding schwankt auch jetzt noch im 21 Jhdt. dermaßen stark zwischen den einzelnen Releases (und sogar Patchlevel) das ich mir ohne gesicherte Laufzeitanalyse (SAT) schon keine Aussage mehr zu machen traue, was die Performance eines einzelnen Reports beeinflusst. Eine Vorher/Nachher-Laufzeitanalyse zwischen dem 3.1er und 4.7er Release wäre sicher interessant gewesen, um zu erfahren was da alles für die "Bremswirkung" (mit-)verantwortlich war.
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

Vergleichbare Themen

4
Antw.
2230
Views
Fehlerhafte XML-Datei
von einar46 » 03.09.2014 21:56 • Verfasst in ABAP® Core
4
Antw.
2215
Views
ALV Grid OO fehlerhafte Filterung
von erich86 » 20.02.2014 00:07 • Verfasst in ABAP® für Anfänger
2
Antw.
6987
Views
2
Antw.
3237
Views
fehlerhafte workflows aus business-workplace entfernen?
von Loki » 20.08.2004 12:27 • Verfasst in ABAP Objects®
1
Antw.
479
Views
Fehlerhafte FAX-Sendungen (SCOT) erneut anstoßen - Job
von f.weissenberger » 23.09.2019 13:03 • Verfasst in ABAP® für Anfänger

Ü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.