FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

Finnish
FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)
  • Log in
  • Home
  • Alusta
  • ESM
  • Muu tekninen ESM-dokumentaatio
  • Listenerit

ESM Listener - virheenjäljitys ja koodiesimerkkejä

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Palveluhallinta
    Matrix42 Core -ratkaisu Matrix42 Intelligence Matrix42 Professional -ratkaisu
  • Identity Governance and Administration (IGA)
    IGA-ratkaisukirjasto IGA-yleiskatsaus
  • Alusta
    ESM ESS2 ESS Efecte Chat for Service Management Lisäosat
  • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle
    2026.1 2025.3 2025.2 2025.1 2024.2 2023.4 2023.3 2023.2 2023.1 2022.4 2022.3 Julkaisutiedot ja käytännöt
  • Muu materiaali
    Saavutettavuusselosteet Termit ja dokumentaatio-ohjeet
  • Palvelut
+ More
    • Palveluhallinta

    • Identity Governance and Administration (IGA)

    • Alusta

    • Julkaisutiedot M42 Professionalille, IGA:lle ja konversationaaliselle tekoälylle

    • Muu materiaali

    • Palvelut

ESM Listener - virheenjäljitys ja koodiesimerkkejä

Virheenjäljitys

Kun uusi ladataan, ESM validoi sisällön, eikä toimimattomia voida lisätä.

  • Annettu virheilmoitus on usein vaikeasti tulkittava, kuten “XML cannot be empty”.
  • Tarkista, että olet sulkenut kaikki komponentit </> ja että kaikki kenttäkoodit ovat oikein jne.
  • Tarkista listener-dokumentaatiosta, ettet yritä tehdä jotain mahdotonta, kuten vertailla tekstikenttiä tai ulkoisia reference-kenttiä.
  • Yritä poistaa tai muokata epäilyttäviä komponentteja ja kokeile ilman niitä.

Voit yrittää saada lisätietoa avaamalla joitakin näistä luokista ajonaikaista lokitusta varten ja asettamalla DEBUG-tason, kun yrität tuoda XML:ää:

  • com.bitmount.equipment.importing.ValidatingEntityXMLImporter
  • com.efecte.datamodel.entity.listener.importing.XMLActionChainImporter
  • com.efecte.datamodel.entity.listener.importing.XMLDataCardListenerImporter
  • com.efecte.datamodel.entity.listener.importing.XMLSourceConditionsImporter
  • com.efecte.datamodel.entity.listener.importing.XMLTemplatesDataCardListenerImporter
  • com.bitmount.equipment.action.TemplateListenerImport

Jos sinulla on yleisesti hyväksyttävä listener, joka ei toimi haluamallasi tavalla:

Voit yrittää saada lisätietoa avaamalla ehtojasi vastaavat luokat ajonaikaista lokitusta varten ja asettamalla DEBUG-tason, jolloin näet, mikä laukeaa ja mikä ei:

  • com.efecte.datamodel.entity.listener.condition.(?????)
  • com.efecte.datamodel.entity.action.chain.condition.(?????)
  • com.efecte.datamodel.entity.action.implementations.(?????)
  • (?????) = kukin XML-komponentti

Muista asettaa lokitus takaisin INFO-tasolle listenerien korjaamisen jälkeen, tai tuotat valtavia määriä lokitiedostoja!!

Koodiesimerkkejä

Rakenteen erikoispiirteet

<?xml version="1.0" encoding="iso-8859-1"?>
<template code=”template code where listener is run">
    <listener>
        <name>Name of the listener</name>
        <trigger>post save</trigger>
        <source_conditions boolean="AND">
            <source_condition>
                ...
            </source_condition>
            <combined_source_condition boolean=”OR”>
                <source_condition>
                    ...
                </source_condition>
            </combined_source_condition>
        </source_conditions>
        <action_chain>
            <name>Set something</name>
            <root_target_condition>
                <template_condition>
                    <code>template code of target if used</code>
                </template_condition>
                <combined_target_condition boolean="AND">
                    <target_condition>
                        ...
                    </target_condition>
                </combined_target_condition>
            </root_target_condition>
            <action>
                ...
            </action>
            <action>
                ...
            </action>
        </action_chain>
    </listener>
</template>

Laitteiden linkittäminen laitemalleihin

 <template code="computer_model">
	<listener>
        <name>postsave.1.Link workstation to computer model if system type matches and no link exists</name>
        <trigger>post save</trigger>
        <source_conditions boolean="AND">
			<source_condition>
				<always_true/>
			</source_condition>
        </source_conditions>
<action_chain>
            <name>Link to computer model</name>
            <root_target_condition>
			 	<template_condition>
					<code>workstation</code>
				</template_condition>
				<combined_target_condition boolean="AND">
					<target_condition>
						<value>
							<attribute>
								<code>computer_model</code>
							</attribute>
							<operator>IS NULL</operator>
							<compared_value></compared_value>
						</value>
					</target_condition>
					<target_condition>
						<source_property>
							<attribute>
								<code>system_type</code>
							</attribute>
							<operator>=</operator>
							<compared_attribute>
								<code>sccm_model</code>
								<current_value>true</current_value>
							</compared_attribute>
						</source_property>
					</target_condition>
					<target_condition>
						<entity>
							<state>entityIsHidden</state>
							<value>false</value>
						</entity>
					</target_condition>							
				</combined_target_condition>
			</root_target_condition>
			<action>
<name>Link to computer model</name>
<class>com.efecte.datamodel.entity.action.implementations.CopySourceReferenceAction</class>
				<configuration_item>
					<name>Code</name>
					<value>computer_model</value>
				</configuration_item>
            </action>
        </action_chain>
    </listener>
</template>


Laitemallinimien lisääminen, kun tuonti loi tyhjän uuden

<template code="workstation">
	<listener>
        <name>postsave.2.Insert model name from linked datacard if empty</name>
        <trigger>post save</trigger>
        <source_conditions boolean="AND">
            <source_condition>
                <value>
                    <attribute>
                        <code>workstation_model</code>
                        <current_value>true</current_value>
                    </attribute>
                    <operator>IS NOT NULL</operator>
                    <compared_value/>
                </value>
            </source_condition>
            <source_condition>
                <value>
                    <attribute>
                        <code>workstation_model_text</code>
                        <current_value>true</current_value>
                    </attribute>
                    <operator>IS NOT NULL</operator>
                    <compared_value/>
                </value>
            </source_condition>
			<source_condition>
				<reference_path_value>
					<reference>
						<path>$workstation_model:workstation_model$</path>
						<current_value>true</current_value>
					</reference>
					<operator>IS NULL</operator>
					<compared_value/>
				</reference_path_value>
			</source_condition>
        </source_conditions>
<action_chain>
            <name>Copy model name</name>
			<root_target_condition>
			 	<template_condition>
					<code>workstation_model</code>
				</template_condition>
				<combined_target_condition boolean="AND">
					<target_condition>
						<reference_from_source>
							<source_attribute>
								<code>workstation_model</code>
							</source_attribute>
						</reference_from_source>
					</target_condition>
					<target_condition>
						<entity>
							<state>entityIsHidden</state>
							<value>false</value>
						</entity>
					</target_condition>					
				</combined_target_condition>
			</root_target_condition>
<action>
<name>Copy model name</name>
              <class>com.efecte.datamodel.entity.action.implementations.CopyDataCardValuesAction</class>
                <configuration_item>
                    <name>Value</name>
                    <value>workstation_model_text</value>
                </configuration_item>
                <configuration_item>
                    <name>Code</name>
                    <value>workstation_model</value>
                </configuration_item>
            </action>
        </action_chain>
    </listener>
</template>

Sähköpostin lähettäminen

<template code="standard_change">
    <listener>
        <name>postsave.5. Notify development team on incoming email changing timestamps-04.05.2017</name>
        <trigger>post save</trigger>
        <source_conditions boolean="AND">
			<combined_source_condition boolean="OR">
				<source_condition>
					<property>
						<attribute>
							<code>implementation_start</code>
							<current_value>false</current_value>
						</attribute>
						<operator>!=</operator>
						<compared_attribute>
							<code>implementation_start</code>
							<current_value>true</current_value>
						</compared_attribute>
					</property>
				</source_condition>
				<source_condition>
					<property>
						<attribute>
							<code>implementation_end</code>
							<current_value>false</current_value>
						</attribute>
						<operator>!=</operator>
						<compared_attribute>
							<code>implementation_end</code>
							<current_value>true</current_value>
						</compared_attribute>
					</property>
				</source_condition>
				</combined_source_condition>
            <source_condition>
                <value>
                    <attribute>
                        <code>incoming_emails</code>
                        <current_value>true</current_value>
                    </attribute>
                    <operator>IS NOT NULL</operator>
                    <compared_value/>
                </value>
            </source_condition>
            <source_condition>
                <value>
                    <attribute>
                        <code>development_team</code>
                        <current_value>true</current_value>
                    </attribute>
                    <operator>IS NOT NULL</operator>
                    <compared_value/>
                </value>
            </source_condition>
        </source_conditions>
         <action_chain>
            <name>Notify</name>
			<action>
               <name>Send mail</name>
               <class>com.efecte.datamodel.entity.action.implementations.SendMailAction</class>
               <configuration_item>
                   <name>Message</name>
                   <value>Your requested Standard change $efecte_id$ has a changed scheduled datetime

Subject: $subject$
Description: $description$

Latest worklog comment:
$worklog$

This is an automatic mail from https://efecteitsm.dna.fi</value>
               </configuration_item>
               <configuration_item>
                   <name>To</name>
                   <value>$development_team:members_emails$</value>
               </configuration_item>
               <configuration_item>
                   <name>From</name>
                   <value>efecte-no-reply@dna.fi</value>
               </configuration_item>
               <configuration_item>
                   <name>Subject</name>
                   <value>Your requested Standard change $efecte_id$ has a changed scheduled datetime</value>
               </configuration_item>
           </action>
        </action_chain>
    </listener>
</template>

 

 

 

Was this article helpful?

Yes
No
Give feedback about this article

Table of Contents

Related Articles

  • ESM Listener Overview
  • ESM Listenerin elinkaari
  • ESM Listenerin XML-rakenne
  • ESM Listenerin operaattorit ja ehtolausekkeet
  • ESM Listenerin toimintojen tarkat kuvaukset

Copyright 2026 – Matrix42 Professional.

Matrix42 homepage


Knowledge Base Software powered by Helpjuice

0
0
Expand