ESM-lyssnare implementerade källvillkor
ESM-lyssnare implementerade källvillkor
Kombinerat källvillkor
Kombinerar villkor (som också kan vara CombinedSourceConditions) med AND- eller OR-operatorer. I XML-filen är det yttersta source_conditions-elementet i sig ett 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>AlltidSantKällvillkor
Alltid sant, dvs. datakortet matchas alltid med detta villkor.
<source_condition>
<always_true/>
</source_condition>I version 4105 och tidigare
<source_condition>
<alwaysTrue/>
</source_condition>Egentligen behöver du inte använda det här villkoret alls. Lyssnaren kommer alltid att köras även om du utelämnar source_conditions.
EntitetskällaVillkor
Är datakortet dolt före eller efter att det sparats (nuvarande_värde): ja eller nej
Borttagen datakortet (i papperskorgen) innan eller efter att ha sparat: ja eller nej
<!-- 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>MappkällaVillkor
Ligger datakortet i en specifik mapp eller i någon annan (operator !=). Använd mappkoder, inte id:n.
<source_condition>
<folder>
<code>computers</code>
<operator>=</operator>
</folder>
</source_condition>GuiEditSourceCondition
Sant när källdatakortet redigeras från Efectes grafiska redigerare.
<source_condition>
<gui_edit/>
</source_condition>Nytt datakortkällavillkor
Ska vi spara ett nytt datakort: ja eller nej
<source_condition>
<new_datacard>
<value>true</value>
</new_datacard>
</source_condition>Pro
Jämför ett fält i datakortet (attribut) innan du sparar eller efter att du har sparat (current_value true eller false) med ett annat fältvärde innan du sparar eller efter att du har sparat med någon operator. Vilka operatorer som stöds beror på datatypen.
<!-- 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>VärdeKällvillkor
Jämför ett fält (attribut) innan du sparar eller efter att du har sparat (current_value true eller false) med ett konstant värde med någon operator. Vilka operatorer som stöds beror på datatypen, t.ex. kan du inte jämföra en referens med en konstant (som datakortets ID eller namn).
<!-- 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>ReferenssökvägVärdeKällvillkor
Jämför ett värde som finns i en referenssökväg ($kod1:kod2:kod3$) innan du sparar eller efter att du har sparat (aktuellt_värde sant eller falskt) med ett konstant värde med någon operator. Vilka operatorer som stöds beror på datatypen, t.ex. kan du inte jämföra en referens med en konstant (som datakortets ID eller namn).
<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>Ovanstående villkor matchar om det aktuella datakortets attribut "kod1" refererar till datakortet, som har ett attribut med koden "kod2" och värdet "Borttaget".
Notera:
Den nuvarande implementeringen fungerar på ett sådant sätt att även den refererade mallen inte har attributet med koden "kod2" eller "kod1" som en tom referens, fortsätter exekveringen normalt. Till exempel, om operatorn är != och det jämförda värdet är en konstant, är hela källvillkoret fortfarande sant i detta fall.
Referenssökväg Pro
Med detta källvillkor är det möjligt att jämföra värden för två sådana attribut, varav ett eller båda kan vara referenser. Det första av dessa kan vara en referens till ett lokalt (icke-referens) attribut, men det andra måste vara ett attribut för ett refererat datakort. Båda attributen måste ha samma datatyp . Detta källvillkor stöder även flervärdesattribut på det sätt som definieras nedan.
Flervärdesattribut och matchning av villkoret
- Om alla värden måste matcha betyder det att alla värden för det första attributet måste matcha vissa värden för det andra attributet.
- Om det första eller andra attributet inte har något värde matchar villkoret inte.
- Om inte alla värden behöver matcha, räcker det att något av många värden i det första attributet matchar några av de många värdena i det andra attributet.
I exemplet nedan finns en referens till datakortets eget fält och fält på det andra datakortet:
<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>I exemplet nedan finns referenser till två fält i ett annat datakort:
<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>