Ob Feld etwas beinhaltet

Getting started ... Alles für einen gelungenen Start.
24 Beiträge • Vorherige Seite 2 von 2 (current)
24 Beiträge Vorherige Seite 2 von 2 (current)

Re: Ob Feld etwas beinhaltet

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
Murdock hat geschrieben:Ich behaupte nicht 0 sei kein Wert, sondern SAP / ABAP.
Enno hat mich ja schon angekündigt...
Das stimmt so nicht. INITIAL ist lt. SAP-Definition der "typgerechte Initialwert"(, den man z.B. dann erhält wenn man ein "CLEAR variable" ausführt ). Siehe auch http://help.sap.com/saphelp_470/helpdat ... ontent.htm.
Man kann also für Zahlentypen völlig gleichberechtigt schreiben "... = 0" oder "... IS INITIAL", da 0 der Initialwert aller Zahlentypen ist. Somit behauptet auch ABAP/SAP nicht, dass 0 kein Wert ist, sondern lediglich dass 0 der Initialwert ist.

Die ganze Verwirrung rührt hauptsächlich daher, dass einige hier mit zu viel Vorwissen aus anderen Programmiersprachen herangehen, wo frisch definierte Variablen eben in unbestimmten Zustand ( NULL ) angelegt werden wohingegen ABAP diese bei Definition gleich initialisiert. ABAP ist eigentlich echt simpel und nimmt einem die üblichen Fallstricke einfach ab, indem es die NULL-Problematik ( oder auch Pointer-problematiken) einfach pprachintern verhindert. Man muss am Besten möglichst einfach gestrickt denken - dann geht einem ABAP leicht von der Hand.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

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


Re: Ob Feld etwas beinhaltet

Beitrag von black_adept (Top Expert / 3946 / 105 / 886 ) »
ewx hat geschrieben:Ich persönlich kenne keinen Fall, in dem es nötig wäre in einem Programm erkennen kennen zu müssen, ob eine Variable tatsächlich "gefüllt" ist (oder wurde) oder nicht.
Doch - das kennst du auch. Dies ist z.B. bei optionalen Parametern in Schnittstellen der Fall, wo es durchaus interessant ist zu sehen, ob eine Variable initial übergeben wurde oder eben gar nicht.

Aber für genau diese Fälle bietet SAP dann den Zusatz "IS SUPPLIED / IS REQUESTED" an - zumindest für Klassenmethoden.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Ob Feld etwas beinhaltet

Beitrag von JHM (Top Expert / 1189 / 1 / 196 ) »
Murdock hat geschrieben:Mit "is NULL" wäre das nicht passiert.
Kannst du "IS NULL" definieren und beschreiben welchen Text dieser Code ausgeben soll:

Code: Alles auswählen.

DATA: x TYPE i.      

IF x IS NULL.
  WRITE: / 'X IS NULL'.
ELSE.
  WRITE: /  'X IS NOT NULLt'.
ENDIF.
Jede Programmiersprache behandelt NULL anders (weiterlesen), ABAP hat IS NULL eben nicht, aber dafür andere schöne Dinge.
Gruß Hendrik

Re: Ob Feld etwas beinhaltet

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Sorry! IS NULL natürlich! danke!

Re: Ob Feld etwas beinhaltet

Beitrag von JHM (Top Expert / 1189 / 1 / 196 ) »
ewx hat geschrieben:Sorry! IS NULL natürlich! danke!
Hi ewx,

demnach ist 0 = NULL?

Denn X wurde in dem ABAP-Code als Integervariable mit Initialwert 0 definiert. Hat also den Wert 0. Das gleiche sieht in C; C#; VBA wieder anders aus, denn dort wird X ohne Initialwert definiert.
Erst dann macht doch die Abfrage auf IS NULL erst Sinn.
Gruß Hendrik

Re: Ob Feld etwas beinhaltet

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
IS NULL bezog sich auf den SELECT:
ich hat geschrieben:Möchte man nun einen Datensatz selektieren mit "WHERE feld = SPACE", dann bekommt man keine Werte! Erst mit "WHERE feld IS INITIAL" funktioniert es.
Das ist falsch, es muss "WHERE feld IS NULL" heißen.
Im ABAP selbst gibt es IMHO kein IS NULL, da - wie black_adept richtig schrieb - alle Variablen automatisch initialisiert werden.
Ob dann dadurch IF x IS NULL gleichbedeutend mit IF x IS INITIAL ist, müsste man mal prüfen...

Re: Ob Feld etwas beinhaltet

Beitrag von Murdock (Specialist / 115 / 55 / 8 ) »
JHM hat geschrieben:
Murdock hat geschrieben:Mit "is NULL" wäre das nicht passiert.
Kannst du "IS NULL" definieren und beschreiben welchen Text dieser Code ausgeben soll:

Code: Alles auswählen.

DATA: x TYPE i.      

IF x IS NULL.
  WRITE: / 'X IS NULL'.
ELSE.
  WRITE: /  'X IS NOT NULLt'.
ENDIF.
NULL = Variable besitzt keinen Wert
Gesetzt den Fall, in ABAP gäbe es "is NULL" und (was dann ein konsequenter Schritt wäre) Variablen würden beim Anlegen nicht automatisch initialisiert werden, dann sollte der Beispielcode "X IS NULL" ausgeben.

Ich denke mal black_adept hat es ganz gut formuliert:
black_adept hat geschrieben: Die ganze Verwirrung rührt hauptsächlich daher, dass einige hier mit zu viel Vorwissen aus anderen Programmiersprachen herangehen, wo frisch definierte Variablen eben in unbestimmten Zustand ( NULL ) angelegt werden wohingegen ABAP diese bei Definition gleich initialisiert.
Ich komme aus der Oracle Ecke, da gibt es "NULL". Was manchmal ein Fluch und manchmal ein Segen ist :D

Gruß,
Murdock.

Re: Ob Feld etwas beinhaltet

Beitrag von a-dead-trousers (Top Expert / 4285 / 214 / 1141 ) »
Einen hab ich noch...
Einen hab ich noch...
Einen hab ich noch...

Objekt- und Datenreferenzen:
Die sind (streng genommen) IS NULL. Nur heißt das in ABAP-Jargon IS BOUND. Erst wenn man den Konstruktor (CREATE OBJECT bzw CREATE DATA) aufruft, ist auch tatsächlich eine Instanz mit Inhalt vorhanden.

:P

lg ADT
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

Re: Ob Feld etwas beinhaltet

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Macht Sinn, ADT:
shortdump hat geschrieben:Zugriff über 'NULL' Objektreferenz nicht möglich.
;)

Vergleichbare Themen

2
Antw.
1430
Views
Überprüfen ob einer Rolle auch User beinhaltet
von chnollu » 03.03.2010 14:32 • Verfasst in ABAP® Core
0
Antw.
3571
Views
IDoc-Datei beinhaltet Segmente weniger als 1063 Byte
von genua » 10.01.2008 13:06 • Verfasst in Java & SAP®
2
Antw.
1888
Views
Feld sperren, wenn in and. Feld gerade etwas eingegeben wird
von kbit100 » 18.07.2018 11:41 • Verfasst in ABAP® für Anfänger
0
Antw.
342
Views
Setze EMARA Feld in Bapi bei IDOC Verarbeitung. Feld aber nachher leer
von Woelli » 12.02.2021 16:32 • Verfasst in ABAP® Core
0
Antw.
1733
Views

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.