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.

French
FI Finnish
SE Swedish
FR French
PL Polish
DE German
US English (US)
  • Log in
  • Home
  • Plate-forme
  • ESM
  • Autres documents techniques ESM
  • Auditeurs

ESM Listener - Débogage et exemples de code

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.

  • Gestion des services
    Solution Matrix42 Professional Solution Matrix42 Core Gestion des services d'entreprise Matrix42 Intelligence
  • Gouvernance et administration des identités ( IGA )
    Aperçu IGA Bibliothèque de solutions IGA
  • Plate-forme
    ESM ESS2 ESS Effet Chat pour la gestion des services Efecte Integrations Modules complémentaires
  • Notes de version pour M42 Core & Pro , IGA , IA conversationnelle
    2025.3 2025.2 2025.1 2024.2 2024.1 2023.4 2023.3 2023.2 2023.1 2022.4 2022.3 Informations et politiques de publication
  • Autre matériel
    Conditions uid et directives de documentation Déclarations d'accessibilité
  • Services
+ More
    • Gestion des services

    • Gouvernance et administration des identités ( IGA )

    • Plate-forme

    • Notes de version pour M42 Core & Pro , IGA , IA conversationnelle

    • Autre matériel

    • Services

ESM Listener - Débogage et exemples de code

Débogage

Lors du chargement, ESM valide le contenu et les éléments non fonctionnels ne peuvent pas être insérés.

  • Le message d’erreur affiché est souvent ininterprétable, comme par exemple « XML ne peut pas être vide ».
  • Vérifiez que vous avez fermé tous les composants </> et que tous les codes de champ sont corrects, etc.
  • Consultez la documentation de l'auditeur pour vous assurer que vous n'essayez pas de faire des choses qui ne sont pas possibles, comme comparer des champs de texte ou des champs de référence externes.
  • Essayez de supprimer ou de modifier les composants suspects et essayez sans eux.

Vous pouvez essayer d'extraire des informations supplémentaires en ouvrant certaines de ces classes pour la journalisation d'exécution et définir le niveau DEBUG lorsque vous essayez d'importer le 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

Si vous avez un auditeur généralement acceptable qui ne travaille pas comme vous le souhaiteriez :

Vous pouvez essayer d'extraire des informations supplémentaires en ouvrant les classes qui correspondent à vos conditions de journalisation d'exécution et en définissant le niveau DEBUG et vous devriez voir ce qui se déclenche et ce qui ne se déclenche pas :

  • com.effet.datamodel.entity.listener.condition.(?????)
  • com.effet.modèle de données.entité.action.chaîne.condition.(?????)
  • com.efecte.datamodel.entity.action.implementations.(?????)
  • (?????) = chaque composant XML

N'oubliez pas de redéfinir la journalisation au niveau INFO après avoir corrigé les écouteurs, sinon vous produirez d'énormes quantités de fichiers journaux !!

Exemples de code

Spécialités de structure

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

Liaison des appareils aux modèles d'appareils

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


Insertion des noms de modèles d'appareils lors de la création d'un nouveau fichier vierge

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

Envoi d'e-mails

<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

  • Cycle de vie de l'auditeur ESM
  • Opérateurs et conditionnels de l'écouteur ESM
  • Structure XML de l'écouteur ESM

Copyright 2026 – Matrix42 Professional.

Matrix42 homepage


Knowledge Base Software powered by Helpjuice

0
0
Expand