ESM-kuuntelijan elinkaari
Yleiskatsaus
Kuuntelijan elinkaaressa on kolme tai neljä vaihetta riippuen siitä, onko kyseessä tallennusta edeltävä vai tallennuksen jälkeinen kuuntelija:
- Datakortin tallennus : Kuuntelija aktivoituu datakortin tallennuksen aikana.
- Lähdeolosuhteiden tarkistaminen : Lähdeolosuhteet tarkistetaan.
- Kohdeehtojen tarkistus (vain tallennuksen jälkeiset kuuntelijat) : Kohdetietokorttien ryhmä määritellään kohdeehtojen perusteella. Tämä vaihe tapahtuu vain, jos kuuntelija on tallennuksen jälkeinen kuuntelija.
- Toimintojen suorittaminen : Kohdetietokortille suoritetaan yksi tai useampi toiminto.
- Tallennusta edeltävän kuuntelijan tapauksessa kohdedatakortti on niin kutsuttu "lähdedatakortti", joka "isännöi" kuuntelijaa.

Datakortin tallennus
Kuuntelija laukeaa datakortin tallennuksen aikana.

Kuuntelijoiden käynnistäminen

Käsittelijöiden ja kuuntelijoiden suoritusjärjestys

Kuuntelijat, käsittelijät ja visuaalisen työnkulun automatisointi
- Työnkulun toimintoja ei suoriteta viimeisenä tallennusta edeltävänä kuuntelijana. Se alkaa ensimmäisestä työnkulun solmusta (tai viimeksi käsitellystä solmusta) ja käsittelee yhdellä suorituksella useita solmuja, kunnes se saapuu solmuun (kuten ajastin tai hyväksyntä), joka ei salli sen jatkamista.
- Visuaalisen työnkulun automatisoinnin __alustus__ tapahtuu tallennussyklin tallennusta edeltävän osan lopussa.
- Visuaalisen työnkulun automatisointi __ Pro tapahtuu tallennussyklin tallennuksen jälkeisen osan lopussa.
Lähdeolosuhteiden tarkistaminen
Jokaisella kuuntelijalla on lähdeehtoja, jotka kuvaavat, milloin kuuntelijan tulisi reagoida tapahtumaan. Ehto voi olla esimerkiksi seuraava:
(attribute "state" old value!= attribute "state" new value) && (attribute "state" new value == "closed")Ehtoja voidaan tehdä paljon monimutkaisempia "ja"- ja "tai"-operaattoreilla ja jopa sisäkkäisillä operaattoreilla. Jos lähdetietokortti vastaa ehtoja, suoritus jatkuu.

Esitallennuksen kuuntelija

Tallennuksen jälkeinen kuuntelija

JA-esimerkki

TAI-esimerkki

Yhdistetty SC

Toteutetut lähdeehdot
| Nimi | Kuvaus |
|---|---|
| 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. |
| AlwaysTrueSourceCondition | Aina tosi, eli datakortti täsmää aina tähän ehtoon. |
| EntiteetinLähteenEhto |
|
| KansioLähdeehto | Onko datakortti tietyssä kansiossa vai jossain muussa (operaattori !=)? |
| GuiMuokkaaLähdeehto | Tosi, kun lähdedatakorttia muokataan ESM-käyttöliittymästä. |
| Uusi tietokortin lähdeehto | Olemmeko tallentamassa uuden datakortin: kyllä vai ei |
| 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ä. |
| 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). |
| ViitePolkuArvoLähdeEhto | Vertaa jotakin viitepolusta ($code1:code2:code3$) löytyvää arvoa ennen tallennusta tai tallennuksen jälkeen (current_value true tai false) johonkin vakioarvoon tietyn operaattorin avulla. Tuetut operaattorit riippuvat tietotyypistä. |
| 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 datakortin attribuutti. Molemmilla attribuuteilla on oltava sama tietotyyppi. Moniarvoattribuutit ja ehdon täsmäytys:
|
Katso lisää esimerkkejä lähdeehdoista tiedostosta SourceConditionExamples.xml :

Kohdeolosuhteiden tarkistaminen
Kohdeehdot ovat samanlaisia kuin ESM-käyttöliittymän hakuehdot. Kuuntelijan toiminnot suoritetaan ehtoja vastaaville datakorteille. Huomaa, että lähdedatakortti tulisi sulkea pois näitä ehtoja käyttämällä.
Esimerkki kohdeehdosta voisi olla seuraava:
(template == "ticket") && (reference attribute "caused by" target == source data card) && (attribute "state" value == "open")



Huomautus:
Jos kuuntelijan suorituksen aikana havaitaan mahdollinen ääretön silmukka → kuuntelijan suoritus päättyy ja näkyviin tulee virhe.
Esimerkiksi, jos kuuntelija A muokkaa datakorttia B, se laukaisee kuuntelijan B ja kuuntelija B muokkaa datakorttia A.
Toteutetut tavoiteolosuhteet
| Nimi | Kuvaus |
|---|---|
| Yhdistetty kohdeehto | Yhdistää useita ehtoja (jotka voivat olla myös itse CombinedTargetConditions-ehtoja) yhdeksi ehtoksi JA- tai TAI-operaattoreilla. |
|
Arvokohdeehto
|
Vertaa datakortin attribuutin arvoa johonkin vakioon, jossa on jokin operaattori. Tuetut operaattorit riippuvat datatyypistä, esimerkiksi viittauksia ei voida verrata datakortin nimeen tai tunnukseen. Poikkeuksena tästä on viittaus lähteeseen tai viittaus lähteestä (konfiguroidaan attribuuttikoodilla). |
| Ammattilaisen Pro | Vertaa datakortin attribuutin arvoa jonkin toisen attribuutin arvoon tietyn operaattorin avulla. Tuetut operaattorit riippuvat käytetyistä tietotyypeistä. |
| Lähde Pro pertyTargetCondition | Vertaa kohdedatakortin attribuutin arvoa lähdedatakortin attribuutin arvoon jonkin operaattorin avulla. Tuetut operaattorit riippuvat käytetyistä tietotyypeistä. |
| Entiteetin kohdeehto |
|
| Erikoiskohdeehto |
Tätä ehtoa voidaan käyttää seuraavien ominaisuuksien määrittelyyn/tarkistamiseen:
|
Katso esimerkkejä kohdeehdoista tiedostossa TargetConditionExamples.xml:

Toimien suorittaminen
Kohdedatakortille suoritetaan yksi tai useampi toiminto. Tallennusta edeltävän kuuntelijan tapauksessa kohdedatakortti on niin kutsuttu "lähdedatakortti", joka "isännöi" kuuntelijaa.

Toteutetut toimenpiteet
| Nimi | Esitallennus | Lähetä Tallenna | Kuvaus |
|---|---|---|---|
| AlwaysFailDataCard (Toiminto) | Kyllä | Ei | Estää datakortin tallentamisen. |
| ChangeDataCardValues | Kyllä | Kyllä | Asettaa kentän arvon. |
| KopioiTietokortinArvot | Kyllä | Kyllä | Kopioi arvon lähdedatakortista toisen attribuutin arvoon tai kohdedatakortin attribuutin arvoon. Voi myös kopioida arvoja viitteiden taakse. Jos arvoja on useita, olemassa olevat arvot KORVATAAN. Moniarvot toimivat vain isäntädatakortilla, eivät viitteiden takana. |
| CopySourceReference | Kyllä | Ei | Luo viittauksen kohdetietokorteista lähdetietokorttiin. |
| CreateDataCard | Ei | Kyllä | Luo uuden datakortin määritettyyn malliin ja määritettyyn kansioon perustuen. Valinnaisesti lisää viittaukset luojan ja luotujen datakorttien välille ja asettaa luodun kortin mahdolliset attribuuttiarvot. Erikoistapauksena voi lisätä ajan, jolloin muokkaus aloitettiin Efecte-käyttöliittymässä. |
| EntityDataCard | Kyllä | Ei | Siirtää datakortin roskakoriin, palauttaa sen roskakorista, poistaa, piilottaa tai tekee datakortin näkyväksi pysyvästi. |
| Lauseke(Toiminto) | Kyllä | Kyllä | Suorittaa määritetyn Python-skriptin kohdetietokorteilla. |
| KansioTiedotKortti | Kyllä | Kyllä | Siirtää datakortin tiettyyn kansioon. |
| TallennaTietokortti | Ei | Kyllä | Tallentaa datakortin. Tämä mahdollistaa uusien arvojen laskemisen käsittelijän (ExpressionHandler tai vastaava) sisältäville attribuuteille. |
| TallennaTietokorttiXmlTiedostoon | Ei | Kyllä | Tallentaa datakortin XML-muodossa määritettyyn tiedostoon ja kansioon. Huomaa, että tämä toiminto toimii vain tallennettavalle lähdedatakortille. Jos tiedosto on olemassa, se korvataan (tiedosto poistetaan ennen uuden tiedoston kirjoittamista). Toiminto yrittää ensin kirjoittaa XML-tiedoston väliaikaiseen tiedostoon ja sitten nimeää väliaikaisen tiedoston uudelleen määritettyyn tiedostoon. Tämä estää ketään lukemasta tulostiedostoa ennen kuin se on kirjoitettu kokonaan. |
| SendDataCardXmlToWebService | Ei | Kyllä | HUOMAUTUS: Nimessä ei ole ”Toimintoa”. Lähettää datakortin XML-muodossa konfiguroituun SOAP-verkkopalveluun. Huomaa, että tämä toiminto toimii vain tallennettavalla lähdedatakortilla. |
| Lähetä sähköpostia -toiminto | Ei | Kyllä | Lähettää postia. |
| SendSourceChangedJMSMessage(Toiminto) | Kyllä | Kyllä | Toiminto lähettää JMS-viestin jonoon, kun datakortti on tallennettu. Viestin sisältö on koko datakortti Efecte XML -muodossa. |
| KohdennettuSccm-päivitys | Ei | Kyllä | Käynnistää kohdennetun SCCM päivityksen. Käytetään vain yhdessä SccmIntegrationTask-funktion kanssa. |
| TransformDataCard | Ei | Kyllä | Toiminto muuntaa parhaillaan muokatun datakortin toiseksi datakortiksi. Käyttää muunnossääntöjä ja kohdekansiota, jotka on määritetty mallineditorin muunnoksissa. |
| SendDataCardXmlToHttp-toiminto | Ei | Kyllä | Lähettää datakortin XML-muodossa valittuun verkkopalveluun. Huomaa, että tämä toiminto toimii vain tallennettavalla lähdedatakortilla. |
Katso esimerkkejä kohdeehdoista tiedostossa TargetConditionExamples.xml:
