ESM-Listener – Implementierte Quellbedingungen
ESM-Listener – Implementierte Quellbedingungen
Kombinierte Quellbedingung
Kombiniert Bedingungen (die auch CombinedSourceConditions sein können) mit UND- oder ODER-Operatoren. Im XML ist das äußerste source_conditions-Element selbst eine CombinedSourceCondition.
<source_conditions boolean="AND">
<combined_source_condition boolean="OR">
<source_condition>
...
</source_condition>
<source_condition>
...
</source_condition>
</combined_source_condition>
<source_condition>
...
</source_condition>
</source_conditions>AlwaysTrueSourceCondition
Immer wahr, d. h. die Datenkarte wird immer mit dieser Bedingung abgeglichen.
<source_condition>
<always_true/>
</source_condition>In Version 4105 und früher
<source_condition>
<alwaysTrue/>
</source_condition>Eigentlich müssen Sie diese Bedingung überhaupt nicht verwenden. Der Listener wird immer ausgeführt, auch wenn Sie source_conditions weglassen.
EntitySourceCondition
Ist die Datenkarte vor dem Speichern oder nach dem Speichern ausgeblendet (aktueller_Wert): ja oder nein
Wird die Datenkarte vor dem Speichern oder nach dem Speichern entfernt (im Papierkorb): ja oder nein
<!-- Source condition that matches a data card which was in the trashcan before saving (restored from trashcan?) -->
<source_condition>
<entity>
<state>entityIsDeleted</state>
<value>true</value>
<current_value>false</current_value>
</entity>
</source_condition>
<!-- Source condition that matches a data card which was hidden in saving -->
<source_condition>
<entity>
<state>entityIsHidden</state>
<value>false</value>
<current_value>false</current_value>
</entity>
</source_condition>
<source_condition>
<entity>
<state>entityIsHidden</state>
<value>true</value>
<current_value>true</current_value>
</entity>
</source_condition>FolderSourceCondition
Befindet sich die Datenkarte in einem bestimmten Ordner oder in einem anderen (Operator !=). Verwenden Sie Ordnercodes, keine IDs.
<source_condition>
<folder>
<code>computers</code>
<operator>=</operator>
</folder>
</source_condition>GuiEditSourceCondition
Wahr, wenn die Quelldatenkarte vom Efecte-GUI-Editor aus bearbeitet wird.
<source_condition>
<gui_edit/>
</source_condition>NewDataCardSourceCondition
Sollen wir eine neue Datenkarte speichern: ja oder nein
<source_condition>
<new_datacard>
<value>true</value>
</new_datacard>
</source_condition>Pro
Vergleichen Sie vor oder nach dem Speichern ein Feld in der Datenkarte (Attribut) (aktueller Wert „true“ oder „false“) mit einem anderen Feldwert vor oder nach dem Speichern mithilfe eines Operators. Die unterstützten Operatoren hängen vom Datentyp ab.
<!-- Source condition that tests if the name attribute's old value is not the same as the new value -->
<source_condition>
<property>
<attribute>
<code>name</code>
<current_value>false</current_value>
</attribute>
<operator><></operator>
<compared_attribute>
<code>name</code>
<current_value>true</current_value>
</compared_attribute>
</property>
</source_condition>Wertquellenbedingung
Vergleichen Sie vor oder nach dem Speichern ein Feld (Attribut) (aktueller Wert true oder false) mit einem konstanten Wert mithilfe eines Operators. Die unterstützten Operatoren hängen vom Datentyp ab. Sie können beispielsweise keine Referenz mit einer Konstanten (wie der ID oder dem Namen einer Datenkarte) vergleichen.
<!-- Source condition that tests if the status attribute's value is "Closed" -->
<source_condition>
<value>
<attribute>
<code>status</code>
<current_value>true</current_value>
</attribute>
<operator>=</operator>
<compared_value>Closed</compared_value>
</value>
</source_condition>
<!-- Source condition that tests if the status attribute's value is not empty -->
<source_condition>
<value>
<attribute>
<code>status</code>
<current_value>true</current_value>
</attribute>
<operator>IS NOT NULL</operator>
<compared_value></compared_value>
</value>
</source_condition>ReferenzPfadWertQuellenbedingung
Vergleichen Sie einen Wert, der in einem Referenzpfad ($code1:code2:code3$) vor oder nach dem Speichern (aktueller Wert true oder false) gefunden wurde, mit einem konstanten Wert mithilfe eines Operators. Unterstützte Operatoren hängen vom Datentyp ab. Sie können beispielsweise keine Referenz mit einer Konstanten (wie der ID oder dem Namen einer Datenkarte) vergleichen.
<source_condition>
<reference_path_value>
<reference>
<path>$code1:code2$</path>
<current_value>true</current_value>
</reference>
<operator>=</operator>
<compared_value>Removed</compared_value>
</reference_path_value>
</source_condition>Die obige Bedingung wird erfüllt, wenn das Attribut „Code1“ der aktuellen Datenkarte auf eine Datenkarte verweist, die ein Attribut mit dem Code „Code2“ und dem Wert „Entfernt“ hat.
Notiz:
Die aktuelle Implementierung funktioniert so, dass die Ausführung auch dann normal fortgesetzt wird, wenn die referenzierte Vorlage kein Attribut mit dem Code „code2“ enthält oder „code1“ eine leere Referenz ist. Wenn der Operator beispielsweise != ist und der verglichene Wert eine Konstante ist, ist die gesamte Quellbedingung in diesem Fall weiterhin erfüllt.
ReferencePath Pro
Mit dieser Quellbedingung ist es möglich, die Werte zweier Attribute zu vergleichen, von denen eines oder beide referenziert sein können. Das erste kann ein Verweis auf ein lokales (nicht referenziertes) Attribut sein, das andere muss ein referenziertes Datenkartenattribut sein. Beide Attribute müssen denselben Datentyp haben . Diese Quellbedingung unterstützt auch mehrwertige Attribute wie unten beschrieben.
Mehrwertige Attribute und Übereinstimmung mit der Bedingung
- Wenn alle Werte übereinstimmen müssen, bedeutet dies, dass alle Werte des ersten Attributs mit einigen Werten des zweiten Attributs übereinstimmen müssen.
- Wenn das erste oder zweite Attribut keinen Wert hat, stimmt die Bedingung nicht überein.
- Wenn nicht alle Werte übereinstimmen müssen, reicht es aus, dass einer der vielen Werte im ersten Attribut mit einigen der vielen Werte im zweiten Attribut übereinstimmt.
Im folgenden Beispiel gibt es einen Verweis auf das eigene Feld der Datenkarte und ein Feld auf einer anderen Datenkarte:
<reference_path_property>
<reference>
<path>$code1$</path>
<current_value>true</current_value>
</reference>
<operator>!=</operator>
<compared_reference>
<path>$code2:code3$</path>
</compared_reference>
<require_all_values_match>false</require_all_values_match>
</reference_path_property>Im folgenden Beispiel gibt es Verweise auf zwei Felder in einer anderen Datenkarte:
<reference_path_property>
<reference>
<path>$code1:code4$</path>
<current_value>true</current_value>
</reference>
<operator>!=</operator>
<compared_reference>
<path>$code2:code3$</path>
</compared_reference>
<require_all_values_match>false</require_all_values_match>
</reference_path_property>