Lange Texte im Tabellenpflegegenerator


Getting started ... Alles für einen gelungenen Start.

Moderatoren: Jan, Steff

Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 10.01.2019, 14:35

Hallo zusammen,

in einer eigenen Customizingtabelle möchte ich gerne lange Texte hinterlegen. Optimalerweise als Datentyp STRING, notfalls würde auch ein langes CHAR-Feld gehen.

Der SE11-Tabellenpflegegenerator kann jedoch nicht mit Tabellen umgehen, die Stringfelder enthalten, und bei CHAR-Feldern geht es im Dynpro maximal bis 255 Zeichen. Selbst die "Rollbar"-Funktionalität erlaubt es nicht, im vom Tabellenpflegegenerator erzeugten Table Control längere Texte einzugeben.

Kennt jemand eine Lösung, wie ich das zum Laufen bekomme, oder bedeutet das, dass ich ein passendes Pflegeprogramm für die Tabelle komplett von Hand schreibe? Und wenn ich es komplett von Hand schreiben muss, wie kriege ich dann die Anbindung ans Transportsystem hin (also dass er beim Sichern einen passenden Transportauftrag verlangt und darin einen entsprechenden Eintrag anlegt)?
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon ewx » 10.01.2019, 15:27

Tja, das ist leider eine große Schwachstelle in SAP-Systemen...

Traditionsgemäß werden "Standardtexte" mit SO10 erstellt, in eine Customizingtabelle eingetragen und dann werden die Einträge über Standardcustomizing transportiert und die Texte selber über Report RSTXTRAN.

Wenn du die Langtextpflege selbst programmierst, kannst du dich hieran orientieren:
https://www.tricktresor.de/blog/tabelle ... aufnehmen/

Ich bin mir aber gar nicht sicher, das Transportsystem Strings in dieser Form überhaupt unterstützt oder ob es dann einen Fehler gibt.
ewx
Top Expert
 
Beiträge: 3885
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 343 mal

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 10.01.2019, 15:33

Vielen Dank, das hilft mir schon weiter.

Ich bin mir aber gar nicht sicher, das Transportsystem Strings in dieser Form überhaupt unterstützt oder ob es dann einen Fehler gibt.

SSTRINGs würden mir schon reichen; die taugen ja sogar für Tabellenschlüssel.

Aber selbst, wenn es gar nicht geht, kann ich mich über CHAR mit 800 Zeichen Länge retten; die langen mir. Blöd wird nur die Programmierung des Pflegedialogs. Da werde ich dann wohl im Dynpro Strings haben müssen, die ich für die Datenbank dann in CHAR konvertieren muss. Außerdem ist das Ganze natürlich aufwendig.
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon ewx » 10.01.2019, 15:38

In Dynpros kannst du Strings nicht verwenden.
Du musst sie mit Hilfe des Controls CL_GUI_TEXTEDIT darstellen.
ewx
Top Expert
 
Beiträge: 3885
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 343 mal

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 10.01.2019, 16:52

In Dynpros kannst du Strings nicht verwenden.

Das halte ich für ein Gerücht. Das entsprechende Table Control habe ich soeben angelegt.
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon ewx » 10.01.2019, 16:54

Und wie viele Zeichen kannst du eingeben?
ewx
Top Expert
 
Beiträge: 3885
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 343 mal

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon ewx » 10.01.2019, 16:58

ewx hat geschrieben:Und wie viele Zeichen kannst du eingeben?

132 Zeichen
SAP Doku hat geschrieben:Da ein Dynpro-Feld maximal 132 Zeichen lang sein kann, können maximal 132 Zeichen bzw. Bytes einer Zeichen- bzw. Bytefolge an das Dynpro transportiert werden.

https://help.sap.com/doc/abapdocu_752_i ... fields.htm
ewx
Top Expert
 
Beiträge: 3885
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 343 mal

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 10.01.2019, 17:33

Es stimmt nicht, was Du sagst. Das Feld kann doch in seiner visiblen Länge auf dem Dynpro schon länger sein als 132 Zeichen, dazu noch rollbar und damit als Stringfeld von unbegrenzter Länge (deswegen ist im Layout-Editor das Feld "def. Länge" auch leer und ausgegraut, wohingegen das Feld "vis.Länge" mit der Spaltenbreite im Dynpro gefüllt ist).

Gerade habe ich in ein solches Feld meines (per Wizard angelegten) Table Controls 170 Zeichen eingegeben. Anschließend habe ich den Debugger gestartet und diese 170 Zeichen auch tatsächlich in der internen Tabelle vollzählig wiedergefunden.
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon ewx » 10.01.2019, 17:43

Das sage ich ja nicht, sondern die SAP-Doku! ;)
Aber gut zu wissen, dass auch STRING dargestellt und bearbeitet werden kann.
Da hat sich in den letzten GUI-Versionen wahrscheinlich auch einiges getan.
Ich kann mich erinnern, dass ich Probleme mit Strings auf Dynpros hatte.
ewx
Top Expert
 
Beiträge: 3885
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 343 mal

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 10.01.2019, 18:03

Vor allem geht es sogar im Table Control. Das ist keine Selbstverständlichkeit: Gerade vor ein paar Tagen habe ich erst geflucht, weil ich eine Passworttabelle pflegbar machen und dabei die Passwörter aussternen sollte. Ein entsprechendes Feld-Flag im Layouteditor gibt es ja ("unsichtbar"), nur kann man es bei Table Control-Feldern nicht benutzen.
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon black_adept » 10.01.2019, 19:27

DeathAndPain hat geschrieben:Ein entsprechendes Feld-Flag im Layouteditor gibt es ja ("unsichtbar"), nur kann man es bei Table Control-Feldern nicht benutzen.
Warum sollte das nicht gehen? LOOP AT SCREEN verwenden
Unbenannt.png
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 3196
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 560 mal
Ich bin: Freiberufler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 11.01.2019, 11:15

Warum sollte das nicht gehen?

Weil der entsprechende Haken im Layout Editor bei Table Control-Feldern ausgegraut ist.

LOOP AT SCREEN verwenden

Netter Schleichweg. Hätte ich auch drauf kommen können. :x Na ja, dass ich ihn nicht gesehen habe, hat dazu geführt, dass ich mir einen kreativen Workaround ausgedacht habe, auf den ich auch stolz bin:

o Ich stelle das Passwortfeld der internen Tabelle nicht mehr im Table Control dar.

o Stattdessen stelle ich im Table Control eine mit "Passwort" überschriebene Spalte dar, die es in der internen Tabelle gar nicht gibt. Diese definiere ich als Dropdown mit den möglichen Werten "******" und "Passwort ändern". Da es die Spalte in der internen Tabelle, die dem Table Control zugrundeliegt, nicht gibt, kommt das Feld bei allen Zeilen defaultmäßig mit dem ersten Wert der VRM_VALUES, also mit "******" hoch. Das steht also bei allen Zeilen der Liste.

o Außerdem hinterlege ich an dem Dropdown einen OKCODE. Wird dieser bei einem Feld des Table Controls ausgeführt (was nur geht, indem der Benutzer im Dropdown den alternativen Wert "Passwort ändern" wählt), dann habe ich bei der Auswertung des OKCODEs die Zeile der Tabelle. Ich rufe einen modalen Subscreen mit zwei ausgesternten Nicht-Tablecontrol-Feldern, die identisch einzutippen sind. Wenn der Benutzer das gemacht hat, wird die Passwort-Spalte der entsprechenden Zeile internen Tabelle (die es, wie gesagt, im Table Control gar nicht gibt) entsprechend aktualisiert.

o Der Dropdown springt anschließend (im Rahmen des neuen PBO) wieder auf den Wert "******" zurück, da es ja kein Quellfeld in der internen Tabelle dafür gibt, so dass die vom Benutzer vorgenommene Auswahl keinen Bestand haben kann.

Kannste sagen, was Du willst: das war kreativ. Wer hätte gedacht, dass man produktiv mit Table Control-Spalten ohne zugehöriges Feld in der internen Tabelle arbeiten kann? :D

Für diese Nachricht hat DeathAndPain einen Dank bekommen :
a-dead-trousers
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon a-dead-trousers » 11.01.2019, 12:05

Und intuitiv verwendbar scheint es obendrein zu sein, weil man mit den zwei Passwortfeldern Verwechslungen bei der Eingabe vorbeugen kann.
Muss ich mir merken :up:
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.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 3180
Registriert: 07.02.2011, 13:40
Dank erhalten: 789 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon DeathAndPain » 11.01.2019, 15:28

Na ja, dass man ein unsichtbares Passwort doppelt eingeben muss, ist jetzt keine neue Innovation, die ich mir als meine Leistung an die Brust heften wollte. Dafür hätte man auch mit ausgesterntem Table Control-Feld eine Lösung finden können. Ich hätte das wahrscheinlich so gemacht, dass ich in der internen Tabelle eine weitere unsichtbare Spalte für das erneut eingegebene Passwort eingefügt hätte. Die Lösung, die ich jetzt habe, ist noch schöner, war aber auch deutlich aufwendiger zu bauen (zumal ich mir vorher nicht ganz sicher war, ob das so überhaupt hinhauen würde), und die Lösung mit der Zweitspalte im Table Control hätte wahrscheinlich ausgereicht.
DeathAndPain
Expert
 
Beiträge: 971
Registriert: 05.05.2006, 10:14
Dank erhalten: 222 mal
Ich bin: Entwickler/in

Re: Lange Texte im Tabellenpflegegenerator

Beitragvon black_adept » 12.01.2019, 08:18

Die Lösung mit dem modalen Screen ist schöner als das Pflegen in der Tabelle, da so (falls später mal benötigt) auch einzeln berechtigt werden kann, was im TC zwar auch möglich aber dennoch weniger intuitiv gewesen wäre.
Aber eine Frage zur Dropdownbox: Was du da implementiert hast ist die Funktionalität einer Drucktaste - mit dem Unterschied, dass der User etwas mehr klicken muss. Kann in gewissen Situationen durchaus gewollt sein - besonders wenn man viele User hat die sehr "Trigger-Happy" sind. Hier auch?
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de
black_adept
Top Expert
 
Beiträge: 3196
Registriert: 08.01.2003, 13:33
Wohnort: Lehrte ( bei Hannover )
Dank erhalten: 560 mal
Ich bin: Freiberufler/in

Nächste

Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
(LKW)Bedarfsvorschau je Debitor
vor 54 Minuten von owny 0 Antw.
(LKW)Bedarfsvorschau je Debitor
vor 54 Minuten von owny 0 Antw.
Lieferplan, Einteilungen, Feinabrufe
vor 15 Stunden von bapimueller 0 Antw.
gelöst Smartforms Struktur rechtsbündig
vor 19 Stunden von qyurryus 3 Antw.
CALL_FUNCTION_SYSCALL_ONLY in RFC-Aufruf
vor 20 Stunden von lausek 0 Antw.

  Ähnliche Beiträge beta
gelöst SAPMV45A USEREXIT Itab Pos.Texte / Head Texte
04.02.2014, 15:03 von ewx 17 Antw.
gelöst Länge von Nachrichten in SAP GUI
05.06.2018, 18:13 von ralf.wenzel 30 Antw.
Länge einer Struktur ?
14.10.2005, 21:47 von black_adept 1 Antw.
Unterschiede in der ABAP-Länge
18.12.2012, 12:18 von Frank Dittrich 5 Antw.
Feldabfrage nach Zeichen und Länge
25.07.2005, 14:23 von Gast 5 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Google Adsense [Bot]