ESM Listenerin toteutetut lähde-ehdot
ESM Listenerin toteutetut lähde-ehdot
CombinedSourceCondition
Yhdistää ehtoja (jotka voivat myös olla CombinedSourceConditioneja) AND- tai OR-operaattoreilla. XML:ssä uloin source_conditions-elementti on itsessään 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
Aina tosi, eli tietokortti täsmää aina tämän ehdon kanssa.
<source_condition>
<always_true/>
</source_condition>Versiossa 4105 ja sitä ennen
<source_condition>
<alwaysTrue/>
</source_condition>Itse asiassa tätä ehtoa ei tarvitse käyttää lainkaan. Kuuntelija suoritetaan aina myös, jos jätät source_conditions-elementin pois.
EntitySourceCondition
Onko tietokortti piilotettu ennen tallennusta vai sen jälkeen (current_value): kyllä vai ei
Onko tietokortti poistettu (roskakorissa) ennen tallennusta vai sen jälkeen: kyllä vai ei
<!-- 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
Onko tietokortti tietyssä kansiossa vai jossain toisessa (operator !=). Käytä kansion koodeja, ei ID:itä.
<source_condition>
<folder>
<code>computers</code>
<operator>=</operator>
</folder>
</source_condition>GuiEditSourceCondition
Tosi, kun lähdetietokorttia muokataan Efecten käyttöliittymäeditorista.
<source_condition>
<gui_edit/>
</source_condition>NewDataCardSourceCondition
Ollaanko tallentamassa uutta tietokorttia: kyllä vai ei
<source_condition>
<new_datacard>
<value>true</value>
</new_datacard>
</source_condition>PropertySourceCondition
Vertaa jotakin tietokortin kenttää (attribuuttia) ennen tallennusta tai sen jälkeen (current_value true tai false) toiseen kentän arvoon ennen tallennusta tai sen jälkeen jollakin operaattorilla. Tuetut operaattorit riippuvat tietotyypistä.
<!-- 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>ValueSourceCondition
Vertaa jotakin kenttää (attribuuttia) ennen tallennusta tai sen jälkeen (current_value true tai false) johonkin vakioarvoon jollakin operaattorilla. Tuetut operaattorit riippuvat tietotyypistä, esim. viittausta (reference) ei voi verrata vakioon (kuten tietokortin id:hen tai nimeen).
<!-- 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>ReferencePathValueSourceCondition
Vertaa jotakin viittauspolusta ($code1:code2:code3$) löytyvää arvoa ennen tallennusta tai sen jälkeen (current_value true tai false) johonkin vakioarvoon jollakin operaattorilla. Tuetut operaattorit riippuvat tietotyypistä, esim. viittausta ei voi verrata vakioon (kuten tietokortin id:hen tai nimeen).
<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>Yllä oleva ehto täsmää, jos nykyisen tietokortin attribuutti "code1" viittaa tietokorttiin, jolla on attribuutti koodilla "code2" ja arvolla "Removed".
Huomio:
Nykyinen toteutus toimii siten, että vaikka viitatulla mallilla ei olisi attribuuttia koodilla "code2" tai "code1" olisi tyhjä viittaus, suoritus jatkuu normaalisti. Esimerkiksi jos operaattori on != ja verrattava arvo on jokin vakio, koko lähde-ehto on tässä tapauksessa silti tosi.
ReferencePathPropertySourceCondition
Tällä lähde-ehdolla voidaan verrata kahden sellaisen attribuutin arvoja, joista toinen tai molemmat voivat olla viittauksia. Näistä ensimmäinen voi olla viittaus paikalliseen (ei-viittaus) attribuuttiin, mutta toisen on oltava jonkin viitatun tietokortin attribuutti. Molemmilla attribuuteilla on oltava sama tietotyyppi. Tämä lähde-ehto tukee myös monikkoarvoisia attribuutteja alla määritellyllä tavalla.
Monikkoarvoiset attribuutit ja ehdon täsmäys
- Jos kaikkien arvojen on täsmättävä, tämä tarkoittaa, että ensimmäisen attribuutin kaikkien arvojen on täsmättävä johonkin toisen attribuutin arvoista.
- Jos ensimmäisellä tai toisella attribuutilla ei ole arvoa, ehto ei täsmää.
- Jos kaikkien arvojen ei tarvitse täsmätä, riittää, että jokin ensimmäisen attribuutin monista arvoista täsmää johonkin toisen attribuutin monista arvoista.
Alla olevassa esimerkissä on viittaus tietokortin omaan kenttään ja toisen tietokortin kenttään:
<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>Alla olevassa esimerkissä on viittauksia kahteen kenttään toisessa tietokortissa:
<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>
Table of Contents