Scripting Abfrage auf gefüllte Variable (null)

Aus SAP-Wiki
Zur Navigation springenZur Suche springen


Siehe JavaScript und FormCalc Scripting im LiveCycle Designer.

Siehe Scripting Formularobjekte adressieren.

In JavaScript und FormCalc wird ein nicht gefüllter Wert geprüft mit "null" (NAL gesprochen). Der initiale Wert ABAP mit "if feld is initial" ist da etwas unterschiedlich, da in ABAP ein initialer CHAR-Wert mit Space(s) gefüllt ist, bzw. Zahlenfelder mit 0. Wenn tatsächlich in einem Feld nichts steht, dann wird auch in ABAP auf "is NULL" abgeprüft.

Siehe 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 (ABAP) kann SPACE oder 0 sein. Das ist 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 kann im Scripting 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 <> null and Feld.rawValue <> 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 || this.rawValue == "")     // "!=" für ungleich, "&&" für und "||" für or
  {
  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