ESM-kuuntelijan toteuttamat lähdeehdot
ESM-kuuntelijan toteuttamat lähdeehdot
Yhdistetty Lähdeehto
Yhdistää ehdot (jotka voivat olla myös CombinedSourceConditions-ehtoja) AND- tai OR-operaattoreilla. XML:ssä uloin source_conditions-elementti itsessään on 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 datakortti täsmää aina tähän ehtoon.
<source_condition>
<always_true/>
</source_condition>Versiossa 4105 ja sitä vanhemmissa
<source_condition>
<alwaysTrue/>
</source_condition>Itse asiassa sinun ei tarvitse käyttää tätä ehtoa ollenkaan. Listener suoritetaan aina, vaikka jätät source_conditions-oletukset pois.
EntiteetinLähteenEhto
Onko datakortti piilotettu ennen tallennusta vai tallennuksen jälkeen (nykyinen_arvo): kyllä tai ei
Onko datakortti poistettu (roskakoriin) ennen tallennusta vai tallennuksen 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>KansioLähdeehto
Onko datakortti tietyssä kansiossa vai jossain muussa (operaattori !=)? Käytä kansiokoodeja, älä tunnisteita.
<source_condition>
<folder>
<code>computers</code>
<operator>=</operator>
</folder>
</source_condition>GuiMuokkaaLähdeehto
Tosi, kun lähdedatakorttia muokataan Efecte GUI -editorissa.
<source_condition>
<gui_edit/>
</source_condition>Uusi tietokortin lähdeehto
Olemmeko tallentamassa uuden datakortin: kyllä vai ei
<source_condition>
<new_datacard>
<value>true</value>
</new_datacard>
</source_condition>Pro Lähdeehto
Vertaa jotakin datakortin (attribuutin) kenttää ennen tallennusta tai tallennuksen jälkeen (nykyinen_arvo true tai false) toisen kentän arvoon ennen tallennusta tai tallennuksen jälkeen jollakin operaattorilla. Tuetut operaattorit riippuvat datatyypistä.
<!-- 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>ArvoLähdeEhto
Vertaa jotakin kenttää (attribuuttia) ennen tallennusta tai tallennuksen jälkeen (nykyinen_arvo true tai false) johonkin vakioarvoon jollakin operaattorilla. Tuetut operaattorit riippuvat tietotyypistä, esim. et voi verrata viittausta vakioon (kuten datakortin tunnukseen 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>ViitePolkuArvoLähdeEhto
Vertaa jotakin viittauspolusta ($code1:code2:code3$) löytyvää arvoa ennen tallennusta tai tallennuksen jälkeen (nykyinen_arvo true tai false) johonkin vakioarvoon jollakin operaattorilla. Tuetut operaattorit riippuvat tietotyypistä, esim. et voi verrata viittausta vakioon (kuten datakortin tunnukseen 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äyttyy, jos nykyisen datakortin attribuutti "koodi1" viittaa datakorttiin, jolla on attribuutti koodilla "koodi2" ja arvolla "Poistettu".
Huomautus:
Nykyinen toteutus toimii siten, että vaikka viitatulla mallineella ei olisikaan attribuuttia koodilla "code2" tai "code1" olisi tyhjä viite, suoritus jatkuu normaalisti. Esimerkiksi jos operaattori on != ja verrattava arvo on jokin vakio, koko lähdekoodin ehto on tässä tapauksessa edelleen tosi.
ReferencePath Pro ominaisuusLähdeehto
Tämän lähdeehdon avulla on mahdollista verrata kahden sellaisen attribuutin arvoihin, joista toinen tai molemmat voivat olla viittauksia. Ensimmäinen näistä voi olla viittaus paikalliseen (ei-viittaus) attribuuttiin, mutta toisen on oltava jonkin viitatun tietokortin attribuutti. Molempien attribuuttien on oltava samaa tietotyyppiä . Tämä lähdeehto tukee myös moniarvoisia attribuutteja alla määritellyllä tavalla.
Moniarvoattribuutit ja ehdon täsmäytys
- Jos kaikkien arvojen on täsmättävä, se tarkoittaa, että kaikkien ensimmäisen attribuutin arvojen on vastattava joitakin toisen attribuutin arvoja.
- Jos ensimmäisellä tai toisella attribuutilla ei ole arvoa, ehto ei täsmää.
- Jos kaikkien arvojen ei tarvitse täsmätä, riittää, että mikä tahansa ensimmäisen attribuutin arvoista vastaa jotakin toisen attribuutin monista arvoista.
Alla olevassa esimerkissä on viittaus datakortin omaan kenttään ja toisen datakortin 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 toisella datakortilla:
<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>