npsobj modifyvar append

Syntax

npsobj_modifyvar_append ::=

  <npsobj modifyvar = "append" 
    varname = "name" 
    name = "varValueKey"
    [ local = "( true | false )" ] />

Aufgabe

Dieses Element prüft zunächst, ob die Export-Variable name existiert und eine Kontextliste ist. Existiert die Variable und ist sie keine Kontextliste, wird ein Fehler erzeugt. Existiert sie nicht, so wird ihr eine leere Kontextliste zugewiesen. Anschließend wird an die Export-Variable name die Kontextliste angehängt, die sich aus der Evaluierung von varValueKey ergibt.

Ist das ab Version 6.7.1 verfügbare Attribut local mit dem Wert true angegeben und existiert die Exportvariable noch nicht, so wird sie angelegt und ihr Geltungsbereich auf das aktuelle Layout beschränkt, d.h. sie wird zu einer lokalen Variablen. Dadurch ist sie weder im aufrufenden Layout noch in Sublayouts sichtbar. Verwenden Sie eindeutige Namen für Variablen oder eine modifyvar-set-Anweisung mit lokalem Geltungsbereich vor modifyvar append, um sicherzustellen, dass die verwendete Variable lokal ist. Bitte beachten Sie, dass ab Version 6.7.1 Variablen als Argumente an Layouts übergeben werden können, die mit insertvalue-template-Anweisungen inkludiert werden.

An die Export-Variable kann eine Linkkontext- oder Dateikontext-Liste angehängt werden, unabhängig von den Kontexten, die bereits in der Export-Variablen gespeichert sind. Wenn Ihre Liste potenziell sowohl Link- als auch Dateikontexte enthält, sollte Ihr NPSOBJ-Code eine entsprechende Fallunterscheidung machen, indem beispielsweise der Wert eines nur bei Dateien vorhandenen und nie leeren Feldes (wie objClass) geprüft wird. Ist der Wert von objClass leer, handelt es sich um einen Linkkontext.

Beispiel

<npsobj modifyvar="append" varname="mixedList" name="freelinks2" />
<npsobj list="mixedList">
  <npsobj condition="isEmpty" name="objClass">
    <!-- Muss Linkkontext sein -->
  </npsobj>
  <npsobj condition="isNotEmpty" name="objClass">
    <!-- Muss Dateikontext sein -->
  </npsobj>
</npsobj>