Variablen

Variablen definieren Einzelwerte, ähnlich wie Attribute. Sie können zudem mit einer Zugriffsklasse versehen werden, die die Werte liefert.
Variablen werden im Anschluß an die Datenobjekte definiert (siehe Beispiel 5-2 auf Seite 35).
Variablen haben einen eindeutigen Namen, für den die gleichen Einschränkungen gelten, wie für Datenobjektnamen.
Zudem muß für eine Variable auch ein Datentyp angegeben werden. Die Datentypen werden analog zu denen eines Attributes (Siehe Seite 39) definiert. Auch für Variablen können dort Nachschlageobjekte angegeben werden, die für die möglichen Werte verwendet werden können.

<Variables>
<Variable name=“Weight“>
<DataType dataType=“Number“/>
</Variable>
</Variables>

Zugriffsklassen für eine Variable

Für eine Variable kann eine Zugriffsklasse definiert werden. Diese muß das Interface DLEVariableConnectorIfc implementieren und den entsprechenden Wert zurückliefern.
Zur näheren Erläuterung des Interfaces sei auf die zugehörige JAVADOC Dokumentation hingewiesen.
Die Zugriffsklasse kann noch mit einer beliebigen Anzahl von Parametern versehen werden, um eine weitere Flexibilität zu erhalten:

<Variables>
<Variable name=“BatchMode“>
<DataType dataType=“String“/>
<Accessor class=“at.visionflow.dle.engine.connectors.DLEEnvironmentConnector"
<Parameters>
<Parameter name=“Attribute“ value=“BatchMode“/>
</Parameters>
</Accessor>
</Variable>
</Variables>

Die Parameter hängen von der verwendeten Zugriffsklasse ab. Sie werden bei einer Wertabfrage durch die DLE an die Zugriffsklasse weitergeleitet.

Beispiele:

 

<Accessor class="at.visionflow.dle.engine.connectors.DLEPropertyAccessor">
<Parameters>
<Parameter name="EnvironmentVariable" value="PATH" />
</Parameters>
</Accessor>

 <Accessor class="at.visionflow.dle.engine.connectors.DLEPropertyAccessor">
<Parameters>
<Parameter name="ServiceName" value="FleetboardWebService" />
<Parameter name="ServiceProperty" value="ServiceAddress" />
</Parameters>
</Accessor>

<!-- Brickaufruf, Brick muss als Ergebnis die Variable aus dem Parameter "Variable" setzen. -->
   <Accessor class="at.visionflow.dle.engine.connectors.DLECallBrickAccessor">
    <Parameters>
     <Parameter name="Folder" value="BASE:GeneralBricks" />
     <Parameter name="BASE:BrickName" value="VarChargeableWeight" />
     <Parameter name="GLOBAL:Parameter1" value="DLETEST:CustomerOrder.Order_ID" />
     <Parameter name="Variable" value="GLOBAL:DataServiceResult" />
    </Parameters>
   </Accessor>

Read-Only Variablen

Variablen können als read-only markiert werden. Damit ist es nicht möglich, auch nicht temporär, den Wert einer Variablen zu ändern.
Variablen, die als read-only markiert sind machen jedoch nur Sinn im Zusammenhang mit einer Zugriffsklasse, wie zum Beispiel beim Tagesdatum, das auch im Basispaket als Variable definiert ist:

<Variables>
<Variable name=“CurrentDate“ readOnly=“True“>
<DataType dataType=“Date“/>
<Accessor class=“at.visionflow.dle.engine.connectors.DLEDateConnector"
<Parameters>
<Parameter name=“Format“ value=“yyyy-MM-dd“/>
</Parameters>
</Accessor>
</Variable>
</Variables>

Erlaubte Aktionen auf Variablen festlegen

Die Definition von erlaubten Aktionen mit einer variable erfolgt analog zu der im Kapitel Datenobjektdefinition beschriebenen Definition für Attribute.