Scripting Abfrage auf gefüllte Variable (null)

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

In JavaScript und FormCalc wird ein initialer Wert geprüft mit "null" (NAL gesprochen). Das ABAP-Äquivalent ist "if feld is initial".

Siehe auch Scripting Bedingungen.

Gleichheitsbedingung

Die Gleichheitsbedingung ist "==" und nicht "=", wie in ABAP.

Boolesche Operatoren

Abfrage nach Initialwert (null)

JavaScript und FormCalc sind kontextsensitiv und daher ist bei der Abfrage nach dem Initialen Wert auch "null" abzufragen und nicht "NULL".

Es kann passieren, dass SAP und der LiveCycle Designer unterschiedliche Vorstellungen von einem Initialwert haben.

Der Initialwert von Variablen im Kontext kann SPACE oder 0 sein. Das ist dann aus Sicht des LiveCycle Designers nicht "null". Hier muss dann im Kontext bei den entsprechenden Variablen <variablenname> eine Bedingung eingefügt werden "variablenname is not initial". Dadurch wird dem Designer nun nicht ein/mehrere Space(s) bzw. eine 0 übergeben, sondern eine wirklich nicht gefüllte Variable.

Alternativ muss die Abfrage nach dem NULL-Wert erweitert werden z. B. nach der Abfrage nach 0.

In diesem Beispiel wurde das Feld als NUMC8 definiert.

if (Feld.rawValue ne null and Feld.rawValue ne 0) then  //Form-Calc
  $.presence = "hidden"
endif

Java-Script

Bei JavaScript sind die geschweiften Klammern notwendig, um die Anweisungen zuzuordnen. Sie sollten entsprechend eingerückt werden, um sie besser lesen zu können.

Anweisungen werden mit einem „;“ beendet und somit können in einer Klammer auch mehrere Anweisungen stehen.

if

if (Bedingung) 
  {
  ... Anweisungen;
  }
if (this.rawValue == null)     // "!=" für ungleich, "&&" für und
  {
  this.parent.presence = "hidden";
  }

if-else

if (Bedingung) 
 {
  ... Anweisungen;
 }  
else
 {
  ... Anweisungen;
 }

if-else if-else

Zu beachten ist, dass die Else if-Klausel nicht wie in ABAP "elseif" geschrieben wird.

Die Else-Klausel kann auch weggelassen werden.

if (Bedingung) 
   {
  ... Anweisungen;
   }  
else if (Bedingung1) 
   {
  ... Anweisungen;
   }
else if (Bedingung2) 
   {
  ... Anweisungen;
   }
else
   {
  ... Anweisungen;
   }
if (xfa.record.NO_RABATT.value == "X" && xfa.record.GV_LANGU.value == "D")
  {
  this.rawValue = "Gesamtpreis";
  }
else if (xfa.record.NO_RABATT.value == null && xfa.record.GV_LANGU.value == "D")
  {
  this.rawValue = "Gesamtpr. ohne Rabatt";
  }
else
  {
this.rawValue = "Sonstiges";
  }

Form-Calc

Besser merkbar und intuitiver ist das entsprechende FormCalc-Coding.

 if ($ == null) then       // "ne" für ungleich, "&" oder "and" für und
   $.parent.presence = "hidden"
 endif
if (Bedingung1) then
 ... Anweisungen
elseif (Bedingung2) then
 ... Anweisungen
else
 ... Anweisungen
endif

Scripting Formularobjekte adressieren