Bevorzugter Typ Boolean für die ABAP-Entwicklung
SAP nicht über einen core-Datentyp für Boolesche Werte. Darüber hinaus sind höhere level boolean-Typen in SAP in der Regel haben drei Zustände: true ('X'), false (' ') und unbekannten ('-').
Nun offensichtlich Boolesche Werte sind ein Eckpfeiler von vielen meiner Entwicklung arbeiten, aber ich habe gemerkt, dass ich nicht furchtbar konsequent mein Typ (Datenelement) Verwendung. So weit ich glaube, diese sind die häufigsten:
abap_bool
: definiert in der abap-Typ-pool, lockere, aber Konstanten sind so definiert, true, false, unknown, ja und Neinos_boolean
: Daten-element, ja ('X') oder Nicht (' ')xfeld
: Daten-element, True ('X') oder False (' '), es fehlt ein Feld-label, beschrieben, wie eine checkbox
In meinem code habe ich hauptsächlich abap_bool
wie kann ich dann mit Konstanten anstelle von Charakter-Werte, nicht, dass ich nicht zuordnen abap_true
zu einem xfeld
. Allerdings habe ich schon darauf hingewiesen, dass diese Art pool sind möglicherweise nicht immer verfügbar.
Ich bin jetzt Fragen, was die best practices für boolean-Werte, speziell:
- Gibt es eine bevorzugte Art, die ich verwenden sollte?
- Wird mit dem abap-Typ-pool-Probleme verursacht, in bestimmten Modulen oder Szenarien?
- Hat die Möglichkeit, abap_bool mit einem unbekannten oder überhaupt einen Charakter-Wert eine Rolle?
InformationsquelleAutor Lilienthal | 2014-03-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich mit dem type-pool
ABAP
und seine Konstanten im Code. Es sollte immer verfügbar sein, wenn Sie müssen es manuell auf älteren Systemen. Für dictionary Elemente, die ich bevorzuge, um meine eigene Datenelemente mit einer der Standard-Domänen, so dass ich hinzufügen kann-Beschreibungen auf meine Bedürfnisse anzupassen. Sie können WDY_BOOLEAN als gut.kann verwendet werden, in WebDynpro-Anwendungen.
unterstützt nur binäre Werte, nicht abap_undefined, aber dann so tun
XFELD
undOS_BOOLEAN
.In der Tat, das ist wahr. Muss gestehen, ich bin überhaupt nicht ein fan von abap_undefined (und nicht erinnern jemals verwenden Sie es in der Wut!).
Ich Stimme auf jeden Fall und kann nur an ein einziges mal habe ich es als tri-state-Wert zurückgeben. Die Annahme, dass Boolean nur zwei mögliche Zustände scheint wie eine ziemlich sichere man bei der Entwicklung in ABAP.
InformationsquelleAutor vwegert
Nach Regel 6.11 der Die offiziellen ABAP-Programmierrichtlinien, sollten Sie abap_bool.
InformationsquelleAutor Eduardo Copat
Update für Release 7.40, SP08:
Release 7.40, SP08, bekommen Sie die Aussagend Methodenaufrufe und Sie können code so etwas wie:
Ihre Methode (im Beispiel
is_production_system
) muss wieder eine ABAP_BOOL-Wert (abap_true ('X') oder abap_false (' '))Den online-Hilfe hat ein Beispiel.
abap_true
undabap_false
wird für diese Arbeit aber.InformationsquelleAutor knut
Leider ist der Fluch von ABAP... nicht mit einer grundlegenden booleschen Typ... nur Boolesche Ausdrücke. So das wunderbare in ABAP ist, dass es so viele boolean-Typen zur Auswahl!
Nach vielen Jahren glaube ich, dass die besten Weg ist, um einfach Rollen Sie Ihre eigenen (leider). Wenn Sie Klasse-basierte Entwicklung, dann immer nur ein
true
undfalse
(undundefined
wenn Sie möchten) Konstanten, die in Ihrer Basisklasse, und definieren Sie Ihre eigenen boolean-und/oder boolean_undefined Arten.abap_...
Konstanten in der ABAP-Typ-pool? Ich bin mir nicht sicher, die kürzer und für neue Entwickler mehr offensichtlich wahr/falsch, wiegt der zusätzliche Wartungsaufwand und Unordnung.obwohl type-pools arbeiten, das problem ist, wenn Sie entwickeln die multi-release-software. Auf bestimmten älteren Systemen Sie sind ziemlich empfindlich, wie zu, wo Sie Ihre Typ-pools. Auch möchten wir noch einmal erklären, alle unsere eigenen Typen (auch wenn ein passender vorhanden ist, auf das system), weil es stabiler im Falle SAP entscheidet, zu entfernen/zu ändern in der Zukunft. Mit Ihrer eigenen Art bedeutet auch, können Sie umgestalten einfacher, wenn Sie ändern Ihre grundlegende Arten. (Hinzufügen/ändern
undefined
oderinitial
als bool-Typ zum Beispiel?)InformationsquelleAutor Marius