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.

German
FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)
  • Log in
  • Home
  • Plattform
  • ESM
  • Weitere technische ESM-Dokumentation
  • Zuhörer

ESM Listener – Debugging und Codebeispiele

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.

  • Serviceverwaltung
    Matrix42 Professional Lösung Matrix42 Core Enterprise-Servicemanagement Matrix42 Intelligenz
  • Identitätsverwaltung und -administration ( IGA )
    IGA Übersicht IGA Lösungsbibliothek
  • Plattform
    ESM ESS2 ESS Efecte Chat für Service Management Efecte Integrationen Add-ons
  • Versionshinweise für M42 Core & Pro , IGA , Conversational AI
    2025.3 2025.2 2025.1 2024.2 2023.4 2023.3 2023.2 2023.1 2022.4 2022.3 Veröffentlichungsinformationen und Richtlinien
  • Sonstiges Material
    Bedingungen und uid Erklärungen zur Barrierefreiheit
  • Leistungen
+ More
    • Serviceverwaltung

    • Identitätsverwaltung und -administration ( IGA )

    • Plattform

    • Versionshinweise für M42 Core & Pro , IGA , Conversational AI

    • Sonstiges Material

    • Leistungen

ESM Listener – Debugging und Codebeispiele

Debuggen

Beim Neuladen validiert ESM den Inhalt und nicht funktionsfähige Inhalte können nicht eingefügt werden.

  • Die ausgegebene Fehlermeldung ist oft nicht interpretierbar, beispielsweise „XML darf nicht leer sein“.
  • Überprüfen Sie, ob Sie alle Komponenten geschlossen haben </> und alle Feldcodes korrekt sind usw.
  • Überprüfen Sie die Listener-Dokumentation, um sicherzustellen, dass Sie nicht versuchen, Dinge zu tun, die nicht möglich sind, wie z. B. das Vergleichen von Textfeldern oder externen Referenzfeldern.
  • Versuchen Sie, verdächtige Komponenten zu entfernen oder zu ändern und versuchen Sie es ohne sie.

Sie könnten versuchen, weitere Informationen zu extrahieren, indem Sie einige dieser Klassen für die Laufzeitprotokollierung öffnen und die DEBUG-Ebene festlegen, wenn Sie versuchen, das XML zu importieren:

  • 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

Wenn Sie einen allgemein akzeptablen Listener haben, der nicht wie gewünscht funktioniert:

Sie könnten versuchen, weitere Informationen zu extrahieren, indem Sie die Klassen öffnen, die Ihren Bedingungen für die Laufzeitprotokollierung entsprechen, und die DEBUG-Ebene festlegen. Sie sollten dann sehen, was ausgelöst wird und was nicht:

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

Denken Sie daran, die Protokollierung nach der Reparatur der Listener wieder auf die INFO-Ebene zurückzusetzen, da Sie sonst riesige Mengen an Protokolldateien produzieren!!

Codebeispiele

Strukturspezialitäten

<?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>

Verknüpfen von Geräten mit Gerätemodellen

 <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>


Einfügen von Gerätemodellnamen beim Importieren von „Leer neu“

<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>

E-Mail senden

<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

Related Articles

  • ESM-Listener-Lebenszyklus
  • ESM-Listener-Operatoren und -Bedingungen
  • XML-Struktur des ESM-Listeners

Copyright 2026 – Matrix42 Professional.

Matrix42 homepage


Knowledge Base Software powered by Helpjuice

0
0
Expand