M-Detect - Analyseur de log pour IBMI

Différence entre versions

De MappingDoc
(Paramétrage)
(Facultatifs)
 
(51 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
==Prérequis==
 +
Avoir des connaissances sur l'invocation des projets Connect et ses paramètres
 +
 
==Introduction==
 
==Introduction==
Cette documentation décrit le cas d'usage d'un de nos clients de M-Detect permettant de détecter certaines erreurs dans leurs logs IBMI. (QPJOBLOG)
+
Cette documentation décrit le cas d'usage d'un de nos clients de M-Detect permettant de détecter certaines erreurs dans leurs logs QPJOBLOG IBMi.
  
 
De manière générale, l'analyseur de log M-Detect permet de :
 
De manière générale, l'analyseur de log M-Detect permet de :
Ligne 20 : Ligne 23 :
 
[[File:MDE_2.jpg|500px|center|sans_cadre]]
 
[[File:MDE_2.jpg|500px|center|sans_cadre]]
  
==Paramétrage==
+
==Invocation==
Le fichier de paramétrage permet de paramétrer les remontés de logs.
 
===Invocation===
 
 
 
Type de boite de Workflow : M-Connect TEXT
 
 
 
Nom du Connect : SPLFEXTRAC
 
 
 
  
Advanced :
+
Côté IBMI-i le spool est envoyé vers le serveur MAPPING Onyx à l'aide de la commande LPR en passant les métadatas nécessairent au traitement via le paramètre LPR DESTOPT.
  
 +
Une fois sur le serveur MAPPING ONYX, M-Detect repose sur le principe de Connect paramétrable. Celui-ci prend en paramètre le fichier de paramétrage et génère en sortie un fichier de données qui sera le contenu du rapport d'analyse de la log ainsi qu'un fichier de métadonnées nécessaire, dans le cas de notre client, au traitement dans le workflow ONYX.
  
- Type de sortie : LISTING    --> Equivalent à ajouter un paramètre DB.MAPPING_DATASTREAM=LISTING
+
Son invocation se fait dans un workflow Onyx à l'aide d'une boite workflow M-Connect TEXT. Le nom du format Connect en question est : SPLFEXTRAC
  
*Obligatoires :
+
===Connect===
 +
===Paramètres avancés===
  
- DB.INFILE_DATA : fichier SPOOL (QPJOBLOG) encodé en UCS2
+
- Type de sortie : LISTING  (Equivalent à ajouter un paramètre DB.MAPPING_DATASTREAM=LISTING)
- DB.INFILE_PARAM : fichier de paramètres de filtrage
 
  
- DB.OUTFILE_METADATA : fichier XML avec les infos relatives au spool
+
====Obligatoires====
- DB.OUTFILE_DATA : fichier SPOOL après filtrage des lignes
 
  
- DB.MLL_PATH : emplacement des fichiers .mll (sans "/" ni "\" à la fin)
+
Lors de l'invocation du Connect, les paramètres doivent obligatoirement être passés :
  (exemple : D:\Mapping\email) Attention les fichiers .mll doivent être encodés en UCS2
 
  
- DB.MAPPING_WIDTHPAGE=9999
+
*DB.INFILE_DATA : fichier SPOOL (QPJOBLOG) encodé en UCS2
 +
*DB.INFILE_PARAM : fichier de paramètres de filtrage
 +
*DB.OUTFILE_METADATA : fichier XML avec les infos relatives au spool
 +
*DB.OUTFILE_DATA : fichier SPOOL après filtrage des lignes
 +
*DB.MAPPING_WIDTHPAGE=9999
  
 +
====Facultatifs====
  
*Facultatifs :
 
  
 
+
*DB.FROMAS400 : paramètre DESTOPT passé en LPR
- DB.FROMAS400 : paramètre DESTOPT passé en LPR
 
 
  (exemple : USER=SMET;OUTQ=PRT1;SPLF=QPJOBLOG;STARTPAGE=00000;STOPPAGE=000000;JOB=FACPRD;JOBNUM=123456;DATESPL=20201125)
 
  (exemple : USER=SMET;OUTQ=PRT1;SPLF=QPJOBLOG;STARTPAGE=00000;STOPPAGE=000000;JOB=FACPRD;JOBNUM=123456;DATESPL=20201125)
  
Liste des attributs utilisables dans le paramètre "DB.FROMAS400" :
+
Liste des attributs utilisables dans le paramètre "DB.FROMAS400" :
 
 
- USER ou U
 
- SPLF ou S
 
- SPLNUM ou SPLFNUM ou N
 
- JOB ou J
 
- JOBNUM ou JN
 
- OUTQ ou O
 
- HOSTNAME ou H
 
- USRDTA ou UD
 
- DATESPL ou D (date au format AAAAMMJJ)
 
- NBPAGES ou P
 
- STARTPAGE ou F
 
- STOPPAGE ou L
 
 
 
- DB.USER : attribut "USER" du spool AS400
 
- DB.SPLF : attribut SPLFNAME du spool AS400
 
- DB.SPLNUM : attribut Numéro du spool AS400
 
- DB.JOB : attribut JOBNAME du spool AS400
 
- DB.JOBNUM : attribut JOBNUMBER du spool AS400
 
- DB.OUTQ : attribut OUTORI du spool AS400
 
- DB.HOSTNAME : hostname à l'origine du SPLF
 
- DB.USRDTA : attribut USRDTA du spool AS400
 
- DB.DATESPL : attribut DATE du spool AS400 (au format AAAAMMJJ)
 
- DB.NBPAGES : nombre de pages du SPLF (obtenu après comptage avec map_count_page -type:TXT)
 
- DB.STARTPAGE : numéro de la première page à traiter
 
- DB.LASTPAGE : numéro de la dernière page à traiter
 
 
 
- DB.ADD_MESSAGE_IN_FILE : "true" pour ajouter le message de l'email au début du fichier texte DB.OUTFILE_DATA
 
 
 
Les données présentes dans FROMAS400 peuvent être surchargées par les par les paramètres tels que DB.USER , DB.SPLF etc....
 
 
 
===Syntaxe du XML de paramétrage===
 
 
 
 
 
Voir l'exemple joint à ce package
 
 
 
Chaque élément <spool> correspond à une configuration de SPOOL à traiter.
 
 
 
 
 
 
 
Elément <attributes> :
 
----------------------
 
Attributs du spools utilisés pour le filtrage niveau SPOOL
 
 
 
Eléments fils de <attributes> :
 
 
 
<USER>
 
 
 
<SPLF>
 
 
 
<SPLNUM> (ou <SPLFNUM>)
 
 
 
<JOB>
 
 
 
<JOBNUM>
 
  
<OUTQ>
+
::*USER ou U
 +
::*SPLF ou S
 +
::*SPLNUM ou SPLFNUM ou N
 +
::*JOB ou J
 +
::*JOBNUM ou JN
 +
::*OUTQ ou O
 +
::*HOSTNAME ou H
 +
::* USRDTA ou UD
 +
::*DATESPL ou D (date au format AAAAMMJJ)
 +
::*NBPAGES ou P
 +
::*STARTPAGE ou F
 +
::*STOPPAGE ou L
 +
 +
*DB.USER : attribut "USER" du spool AS400
 +
*DB.SPLF : attribut SPLFNAME du spool AS400
 +
*DB.SPLNUM : attribut Numéro du spool AS400
 +
*DB.JOB : attribut JOBNAME du spool AS400
 +
*DB.JOBNUM : attribut JOBNUMBER du spool AS400
 +
*DB.OUTQ : attribut OUTORI du spool AS400
 +
*DB.HOSTNAME : hostname à l'origine du SPLF
 +
*DB.USRDTA : attribut USRDTA du spool AS400
 +
*DB.DATESPL : attribut DATE du spool AS400 (au format AAAAMMJJ)
 +
*DB.NBPAGES : nombre de pages du SPLF (obtenu après comptage avec map_count_page -type:TXT)
 +
*DB.STARTPAGE : numéro de la première page à traiter
 +
*DB.LASTPAGE : numéro de la dernière page à traiter
 +
*DB.MLL_PATH : emplacement des fichiers .mll (sans "/" ni "\" à la fin)
 +
(exemple : D:\Mapping\email) Attention les fichiers .mll doivent être encodés en UCS2
 +
*DB.ADD_MESSAGE_IN_FILE : "true" pour ajouter le message de l'email au début du fichier texte DB.OUTFILE_DATA
  
<HOSTNAME>
+
Les données présentes dans FROMAS400 peuvent être surchargées par les par les paramètres tels que DB.USER , DB.SPLF etc....
  
<USRDTA>
+
==Flux impliqués dans le traitement==
 +
===Fichier de paramétrage===
 +
Le fichier de paramétrage permet de paramétrer les remontés de logs. Il est passé au Connect paramétrable via le paramètre '''DB.INFILE_PARAM'''
  
<NBPAGES>
+
Chaque élément <spool> correspond à une configuration de SPOOL à traiter.
  
 +
Elément <attributes> :
  
Attributs xml
+
Attributs du spools utilisés pour le filtrage niveau SPOOL
  
- cmp : permet de définir le type de comparaison à effectuer
+
Eléments fils de <attributes> :
  
- égalité : cmp="-eq" (valeur par défaut si non spécifié)
+
*<USER>
 +
*<SPLF>
 +
*<SPLNUM> (ou <SPLFNUM>)
 +
*<JOB>
 +
*<JOBNUM>
 +
*<OUTQ>
 +
*<HOSTNAME>
 +
*<USRDTA>
 +
*<NBPAGES>
  
- commence par : cmp="begin"
 
  
- différent : cmp="-ne"
+
Attributs xml
  
- supérieur : cmp="-gt"
+
cmp : permet de définir le type de comparaison à effectuer
  
- supérieur ou égal : cmp="-ge"
+
*égalité : cmp="-eq" (valeur par défaut si non spécifié)
 +
*commence par : cmp="begin"
 +
*différent : cmp="-ne"
 +
*supérieur : cmp="-gt"
 +
*supérieur ou égal : cmp="-ge"
 +
*inférieur : cmp="-lt"
 +
*inférieur ou égal : cmp="-le"
 +
*contient : cmp="contains"
 +
*ne contient pas : cmp="not-contains"
  
- inférieur : cmp="-lt"
+
Attention : les comparaisons "-lt" , "-gt" , "-le" et "-ge" sont de type numériques (1 < 00002)
  
- inférieur ou égal : cmp="-le"
+
Exemple :
  
- contient : cmp="contains"
+
Pour traiter les Spools dont le nom commence par QP
  
- ne contient pas : cmp="not-contains"
+
<attributes>
 +
    <SPLF cmp="begin">QP</SPLF>
 +
</attributes>
  
Attention : les comparaisons "-lt" , "-gt" , "-le" et "-ge" sont de type numériques (1 < 00002)
 
  
Exemple :
+
Elément <variables> :
<attributes>
 
<SPLF cmp="begin">QP</SPLF>
 
</attributes>
 
  
Pour traiter les Spools dont le nom commence par QP
+
Permet de définir une liste de valeurs à récupérer directement dans le spool
 +
et de les nommer afin de les réutiliser pour l'objet, le message du mail,
 +
les adresses d'expéditeur ou de destinataires, mais aussi à partir du workflow
 +
en lisant le XML de réponse.
  
 +
Un élément fils <variable> par variable à récupérer. Chaque variable sera disponible dans le
 +
fichier XML de réponse, mais également utilisables au niveau des propriétés d'envoi de l'email
 +
via la syntaxe suivante : [[NOM_VARIABLE]]
  
 +
Attributs :
 +
*name : nom de la variable
 +
*page : page du spool dans laquelle se trouve la valeur
 +
*line : numéro de la ligne
 +
*col : position du caractère dans la ligne
 +
*len : longueur de la valeur à récupérer
  
Elément <variables> :
+
Exemple :
---------------------
+
<variables>
        Permet de définir une liste de valeurs à récupérer directement dans le spool
+
    <variable name="VARENV" page="1" line="4" col="42" len="3"/>
        et de les nommer afin de les réutiliser pour l'objet, le message du mail,
+
</variables>
        les adresses d'expéditeur ou de destinataires, mais aussi à partir du workflow
 
        en lisant le XML de réponse.
 
  
Un élément fils <variable> par variable à récupérer. Chaque variable sera disponible dans le
 
fichier XML de réponse, mais également utilisables au niveau des propriétés d'envoi de l'email
 
via la syntaxe suivante : [[NOM_VARIABLE]]
 
  
Attributs :
+
Elément <email> :
- name : nom de la variable
 
- page : page du spool dans laquelle se trouve la valeur
 
- line : numéro de la ligne
 
- col : position du caractère dans la ligne
 
- len : longueur de la valeur à récupérer
 
  
Exemple :
 
<variables>
 
<variable name="VARENV" page="1" line="4" col="42" len="3"/>
 
</variables>
 
  
 +
Propriétés de l'email à envoyer
  
 +
*<from> : expéditeur
 +
*<to> : destinataire(s)
 +
*<cc> : destinataire(s) en copie
 +
*<object> : sujet du message
 +
*<message> : corps du message
 +
*<mll-file> : fichier mailing list (.mll) (5 maximum)  <span style="color:green">//Pour l'utilisation de cette propriété, le paramètre DB.MLL_PATH doit obligatoirement être renseigné</span>
  
Elément <email> :
+
Tous ces éléments peuvent contenir des variables sous la forme [[xxxxx]],
-----------------
+
que ce soient des attributs du spools ou des valeurs issues du contenu du Spool
  
Propriétés de l'email à envoyer
+
Les éléments <to> , <cc> et <mll-file> peuvent être multiples, mais 5 maximum pour <mll-file>
  
- <from> : expéditeur
+
Exemple :
- <to> : destinataire(s)
 
- <cc> : destinataire(s) en copie
 
- <object> : sujet du message
 
- <message> : corps du message
 
- <mll-file> : fichier mailing list (.mll) (5 maximum)
 
  
Tous ces éléments peuvent contenir des variables sous la forme [[xxxxx]],
+
<email>
que ce soient des attributs du spools ou des valeurs issues du contenu du Spool
+
  <from>citmapping_[[VARENV]]@mappingsuite.com</from>
 +
  <to>nsmet@mappingsuite.com</to>
 +
  <to>test@gmail.com</to>
 +
  <to>mon_fichier_mll.mll</to>
 +
  <cc>jdieu@mappingsuite.com</cc>
 +
  <cc>user2@mappingsuite.com</cc>
 +
  <mll-file>Mailing_list1.mll</mll-file>
 +
  <mll-file>Mailing_list2_425.mll</mll-file>
 +
  <object>ASP1 ANO - Journalière - [[JOB]] de [[USER]] n° [[JOBNUM]] - [[DATESPL]]</object>
 +
  <message>Ceci est le corps de message de mon mail pour [[USER]]</message>
 +
</email>
  
Les éléments <to> , <cc> et <mll-file> peuvent être multiples, mais 5 maximum pour <mll-file>
+
Elément <lines> :
  
Exemple :
+
Liste les critères de sélection de chaque ligne
  
<email>
+
*<include> : lignes à récupérer
<from>citmapping_[[VARENV]]@mappingsuite.com</from>
+
*<exclude> : lignes à éliminer parmi les lignes récupérées
<to>nsmet@mappingsuite.com</to>
+
*<nextline> : permet de définir comment reconnaitre une "ligne suivante",
<to>test@gmail.com</to>
+
C'est à dire la suite d'une ligne répondant aux critères de sélection.
<to>mon_fichier_mll.mll</to>
+
*<reject-splf> : si une ligne correspond à ce critère, alors le spool est entièrement rejeté
<cc>jdieu@mappingsuite.com</cc>
 
<cc>user2@mappingsuite.com</cc>
 
<mll-file>Mailing_list1.mll</mll-file>
 
<mll-file>Mailing_list2_425.mll</mll-file>
 
<object>ASP1 ANO - Journalière - [[JOB]] de [[USER]] n° [[JOBNUM]] - [[DATESPL]]</object>
 
<message>Ceci est le corps de message de mon mail pour [[USER]]</message>
 
</email>
 
  
  
 +
Attributs :
 +
*cmp : type de comparaison à effectuer
 +
**cmp="contains" : contient (par défaut)
 +
**cmp="not-contains" : ne contient pas
 +
**cmp="empty" : doit être vide (ou uniquement des espaces)
 +
*col : recherche à partir d'une position particulière dans la ligne
 +
*len : longueur de la ligne à prendre en compte pour la recherche
  
Elément <lines> :
+
====Exemple====
-----------------
 
  
Liste les critères de sélection de chaque ligne
 
 
- <include> : lignes à récupérer
 
- <exclude> : lignes à éliminer parmi les lignes récupérées
 
- <nextline> : permet de définir comment reconnaitre une "ligne suivante",
 
              c'est à dire la suite d'une ligne répondant aux critères de sélection.
 
- <reject-splf> : si une ligne correspond à ce critère, alors le spool est entièrement rejeté
 
 
 
Attributs :
 
- cmp : type de comparaison à effectuer
 
cmp="contains" : contient (par défaut)
 
cmp="not-contains" : ne contient pas
 
cmp="empty" : doit être vide (ou uniquement des espaces)
 
- col : recherche à partir d'une position particulière dans la ligne
 
- len : longueur de la ligne à prendre en compte pour la recherche
 
 
 
Change log V1 :
 
---------------
 
 
- Implémentation de la comparason "begin"
 
- Prise en charge de la comparaison sur le nombre de pages, avec notamment les comparateurs "-gt" , "-lt" , "-le" et "-ge"
 
- Remplacement de "system" par "hostname"  (plus logique)
 
- Suppression des paramètres STARTPAGE et STOPPAGE en entrée (ça ne sert à rien pour ce traitement)
 
- Corrections diverses et simplification du code pour le rendre plus "PROD" que "POC"
 
 
 
 
Change log V2 du 25/11/2020 :
 
-----------------------------
 
 
- Passage de paramètres en une seule fois avec le contenu de DESTOPT
 
- Prise en charge d'un seule paramétrage du XML dès qu'il est trouvé
 
- Ajout de l'objet et du message pour le mail
 
- Prise en charge des variables dans l'objet et le message sous la forme [[xxxxxx]]
 
 
Change log V3 du 26/11/2020 :
 
-----------------------------
 
 
- Prise en charge des fichiers .mll directement en cas de besoin, ce qui nécessite d'utiliser le paramètre DB.MLL_PATH
 
 
 
Change log V4 du 02/12/2020 :
 
-----------------------------
 
 
- Ajout des comparateurs "contains" et "not-contains" pour les tests sur les attributs de SPOOL
 
- Remplacement de cmp="-neq" par cmp="-ne" (pour "différent de")
 
 
 
Change log V4.1 du 07/12/2020 :
 
-----------------------------
 
 
- Correction : suppression d'une ligne de source orpheline de sa variable qui a été supprimée  (  =""  )
 
 
 
Change log V5 du 10/12/2020 :
 
-----------------------------
 
 
- Optimisation temps de traitement : prise en compte des filtres "exclude" uniquement si la ligne est potentiellement à récupérer
 
- Ajout de la prise en charge de la variable [[USRDTA]] dans le sujet et le corps du mail
 
- Ajout d'un flag dans le XML permettant de savoir si des lignes ont été trouvées ou non dans le spool : <content-found>
 
- Création systématique d'un fichier texte en sortie, même si aucune ligne n'a été récupérée
 
 
 
Change log V5.1 du 10/12/2020 :
 
-----------------------------
 
 
- Correction : le remplacement de [[USRDTA]] dans l'email n'utilisait pas la bonne donnée...
 
 
 
Change log V6 du 11/12/2020 :
 
-----------------------------
 
 
- Ajout de la prise en charge des variables [[xxxxxx]] dans les éléments <from> , <to> et <cc> pour les emails
 
- Ajout d'un paramètre DB.ADD_MESSAGE_IN_FILE=true si besoin d'ajouter le message de l'email au début du fichier texte généré
 
 
 
Change log V7 du 14/12/2020 :
 
-----------------------------
 
 
- Suppression des lignes blanches dans le fichier de sortie
 
- Fix : correction d'un bug sur la récupération des lignes suivantes (<nextline>)
 
 
 
Change log V8 du 16/12/2020 :
 
-----------------------------
 
 
- Bypass du traitement pour les lignes du Spool qui sont vides
 
 
 
Change log V9 du 21/12/2020 :
 
-----------------------------
 
 
- Ajout de l'attribut USRDTA en tant que critère de filtrage de SPOOL
 
 
 
Change log V9.1 du 24/12/2020 :
 
-----------------------------
 
 
- Fix : init check USRDTA entre chaque lecture de paramétrage de spool.
 
        Ce bug rendait inactives les configurations de spool sans filtre sur USRDTA
 
        se trouvant après une configuration possédant un filtre sur USRDTA
 
 
 
Change log V10 du 25/12/2020 :
 
-----------------------------
 
 
- Evol : le fichier .mll peut être nommé avec des attributs du spool (ex : [[JOB]])
 
- Ajout d'infos de debug dans le xml de réponse :
 
- fichiers mll trouvés : <mll-files>
 
- fichier xml de paramétrage : <param-file>
 
- position de la config trouvée dans le XML de paramétrage : <config-position>
 
- Ajout d'une balise spécifique <mll-file> dans le xml de paramétrage pour spécifier le nom d'un fichier de mailing list
 
- Possibilité d'utiliser plusieurs fichiers .mll pour les destinataires
 
- Trim des variables trouvées dans le spool avant utilisation (très important pour les adresses emails)
 
- Si une variable n'est pas trouvée dans le spool (page ou ligne inexistante), remplacement de son nom entre doubles crochets par une chaine vide
 
- Suppression des CDATA sur les éléments du XML de réponse pour lesquels ce n'est pas nécessaire (true, false, nombre, splf attribute, emails)
 
- Possibilité d'utiliser plusieurs balises <to> , <cc> et <mll-file> dans le XML de paramétrage
 
- Rework améliorant la maintenabilité générale et les évolutions potentielles
 
 
 
Change log V11 du 30/12/2020 :
 
-----------------------------
 
 
- Ajout de l'attribut JOBNUM en tant que critère de filtrage de SPOOL
 
 
 
Change log V12 du 30/12/2020 :
 
-----------------------------
 
 
- Ajout de l'attribut SPLFNUM en tant que critère de filtrage de SPOOL et comme meta donnée
 
- L'absence de filtre <include> sur les lignes revient à toutes les récupérer
 
 
 
Change log V13 du 05/01/2021 :
 
-----------------------------
 
 
  - Fix : possibilité de nommer les fichier .mll avec des variables issues du contenu du spool (ex : maliste_[[VARENV]].mll)
 
- Evol : si le champ "from" (expéditeur) de l'email n'est pas spécifié dans la config, sa valeur par défaut sera noreply@mapping
 
  - Evol : ajout d'un nouvel élément au niveau de l'analyse de lignes : <reject-splf>
 
Si une ligne correspondante est trouvée, alors le SPOOL est complètement rejeté, même si d'autres lignes sont valides
 
- L'attribut SPLFNUM devient SPLNUM, mais l'ancien nom reste valide pour rétro-compatibilité
 
 
 
Change log V14 du 12/01/2021 :
 
-----------------------------
 
 
  - Evol : création d'alias pour les attributs du paramètre FROMAS400 afin de prendre moins de place
 
 
- U --> USER
 
- S --> SPLF
 
- N --> SPLNUM
 
- J --> JOB
 
- JN --> JOBNUM
 
- O --> OUTQ
 
- H --> HOSTNAME
 
- UD --> USRDTA
 
- D --> DATESPL
 
- P --> NBPAGES
 
- F --> STARTPAGE (First page)
 
- L --> STOPPAGE (Last page)
 
 
Exemple : U=PRODSNI;O=QEZJOBLOG;S=QPJOBLOG;J=SSLDCDE_DP;JN=00002;N=1;F=1;L=999;UD=foo
 
 
- Ajout des infos STARTPAGE et STOPPAGE dans le XML de réponse
 
 
 
Change log V15 du 13/01/2021 :
 
-----------------------------
 
 
  - Evol : formatage de la date du spool [[DATESPL]] sous la forme JJ/MM/AAAA
 
 
===Exemple===
 
 
  <param>
 
  <param>
 
     <spool>
 
     <spool>
Ligne 411 : Ligne 232 :
 
               <to>test@gmail.com</to>
 
               <to>test@gmail.com</to>
 
               <cc>jdieu@mappingsuite.com</cc>
 
               <cc>jdieu@mappingsuite.com</cc>
               <mll-file>ACH600_CDCHS.mll</mll-file>
+
               <mll-file>ACH600_ADJHS.mll</mll-file>
 
               <mll-file>Mailing_list_2.txt</mll-file>
 
               <mll-file>Mailing_list_2.txt</mll-file>
 
               <nowiki><object>[[test]] [[VARENV]]- ASP1 ANO - Journalière - [[JOB]] de [[USER]] n° [[JOBNUM]] - [[DATESPL]] --&gt; QPJOBLOG</object>
 
               <nowiki><object>[[test]] [[VARENV]]- ASP1 ANO - Journalière - [[JOB]] de [[USER]] n° [[JOBNUM]] - [[DATESPL]] --&gt; QPJOBLOG</object>
Ligne 436 : Ligne 257 :
 
     </spool>
 
     </spool>
 
  </param>
 
  </param>
 +
 +
===Fichier de sortie métadata===
 +
 +
Ce fichier est généré via le paramètre de sortie du Connect paramétrable '''DB.OUTFILE_METADATA'''. Ce fichier est de manière générale pas obligatoire. Mais pour notre client, celui-ci est bien obligatoire et contient des données pour les traitements à réaliser côté workflows.
 +
 +
<metadatas>
 +
    <!--  Attributs de Spool -->
 +
    <USER>SMET</USER>
 +
    <SPLF>QPJOBLOG</SPLF>
 +
    <SPLNUM>1</SPLNUM>
 +
    <JOB>FACPRD</JOB>
 +
    <JOBNUM>123456</JOBNUM>
 +
    <OUTQ>PRT1</OUTQ>
 +
    <HOSTNAME>ASP2</HOSTNAME>
 +
    <USRDTA></USRDTA>
 +
    <DATESPL>20210113</DATESPL>
 +
    <NBPAGES>500</NBPAGES>
 +
    <STARTPAGE>000000</STARTPAGE>
 +
    <STOPPAGE>000000</STOPPAGE>
 +
    <!--  Déclinaisons de la date du spool sous plusieurs formats -->
 +
    <DATESPL_ISO>2021-01-13</DATESPL_ISO>
 +
    <DATESPL_EU>13/01/2021</DATESPL_EU>
 +
    <DATESPL_US>01/13/2021</DATESPL_US>
 +
    <!--  Variables -->
 +
    <variable name="VARENV"><![CDATA[JOB]]></variable>
 +
    <variable name="test"><![CDATA[268967]]></variable>
 +
    <!--  Informations eMail -->
 +
    <from>citmapping@mappingsuite.com</from>
 +
    <to>assistancedf@macompany.fr;DSI_Assistance_GF@macompany.fr;Assistance-fonctionnelle-
 +
groupeGF@macompany.fr;assistancedf@macompany.fr;DSI_Assistance_GF@macompany.fr;Assistance-fonctionnelle-groupeGF@macompany.com</to>
 +
    <cc>jtest@macompany.com;Dtest@macompany.fr;stest@macompany.fr;dtest2@macompany.fr;Atest@macompany.fr</cc>
 +
    <object><![CDATA[268967 JOB- ASP1 ANO - Journalière - FACPRD de SMET n° 123456 - 20201125 --> QPJOBLOG]]></object>
 +
    <message><![CDATA[Ceci est le corps de message de mon mail pour SMET]]></message>
 +
    <!-- Flag Spool pris en charge ou non  -->
 +
    <processed>true</processed>
 +
    <!--  Flag lignes trouvées ou non -->
 +
    <content-found>true</content-found>
 +
    <!-- Infos supplémentaires pour debug  -->
 +
    <mll-files><![CDATA[C:\mapping\temp\MACOMPANY/test_QPJOBLOG.ml2;C:\mapping\temp\MACOMPANY/Mailing_list_2.txt]]></mll-files>
 +
    <param-file><![CDATA[C:\mapping\temp\MACOMPANY\20201215\PARAM_QPJOBLOG.xml]]></param-file>
 +
    <config-position>2</config-position>
 +
</metadatas>
 +
 +
===Fichier de sortie de donnée===
 +
Ce fichier '''DB.OUTFILE_DATA''' contient les lignes extraites du fichier de log QPJOBLOG répondant aux critères listés dans le fichier de paramétrage. Ce fichier d'extraction sera utilisé comme contenu de l'email final.
 +
 +
 +
Please find below the log extract for PRODSNI
 +
 
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/017885/C/000827495.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/042683/C/000301552.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/100251/C/001182500.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/105047/C/001206325.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/105301/C/001207792.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/105380/C/001207900.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/105402/C/001208506.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/127566/C/001195815.
 +
Message . . . . :  ERR: Guichet-BIC(17607/00001/CCBPFRPPSTR)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/148443/C/001347783.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/149033/C/001349110.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/149079/C/001250625.
 +
Message . . . . :  ERR: Guichet-BIC(15607/00010/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/162128/C/001658969.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/170489/C/001387332.
 +
Message . . . . :  ERR: Guichet-BIC(15607/00073/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/182243/C/001378071.
 +
Message . . . . :  ERR: Guichet-BIC(15607/00073/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/182243/C/001378071. 
 +
Message . . . . :  ERR : Mandat sans ICS
 +
Message . . . . :  ERR : payeur L01/185571/C/001562325.
 +
Message . . . . :  ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/187434/C/001372800.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/211115/C/001754827.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/215515/C/001774196.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/231382/C/001892359.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/348757/C/002194119.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/371000/C/002114636.
 +
Message . . . . :  ERR: Guichet-BIC(18025/10501/CEPAFRPP802)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/394697/C/002489654.
 +
Message . . . . :  ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/398221/C/002508753.
 +
Message . . . . :  ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/398221/C/002508753.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/400862/C/002527741.
 +
Message . . . . :  ERR: Guichet-BIC(//NTSBDEB1XXX)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/428481/C/002626022.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/433464/C/002683070.
 +
Message . . . . :  ERR: Guichet-BIC(10178/00017/CCBPFRPPCHX)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/441381/C/002665507.
 +
Message . . . . :  ERR: Guichet-BIC(//CREGBEBB)inexistant ds référentiel Guich-BIC
 +
Message . . . . :  ERR : payeur L01/453860/C/002670858.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/455952/C/002534965.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/464899/C/002018145.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/465221/C/001966120.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/465265/C/002706900.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/465894/C/002705095.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/465962/C/002708612.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/466003/C/001777779.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/466211/C/002489635.
 +
Message . . . . :  ERR : Mandat absent
 +
Message . . . . :  ERR : payeur L01/466363/C/002524605.
 +
 +
===Fichier mll===
 +
 +
Comme nous l'avons vu précédemment, il est possible de faire référence à des fichiers mailing list (mll).<br>
 +
Leur nom doit être indiqué dans le fichier de paramétrage à l'aide de la balise <mll-file>.<br>
 +
Le chemin du répertoire ayant le ou les fichiers mll doit être stipulé via le paramètre d'entrée '''DB.MLL_PATH'''<br>
 +
Attention : Ce fichier doit être encodé en UCS2<br>
 +
 +
</u>Exemple de contenu de fichier mll</u>
 +
 +
to:assistancetest@macompany.fr
 +
to:DSI_test@macompany.fr
 +
to:AssistanceF@macompany.fr
 +
cc:dtest@macompany.fr
 +
cc:stest@macompany.fr
 +
cci:test@mappingsuite.com
 +
cc:Dtest@macompany.fr
 +
cc:Atest@macompany.fr
 +
cc:ctest@macompany.fr
 +
cc:ltest@macompany.fr
 +
cc:exploit@macompany.fr

Version actuelle datée du 5 juillet 2021 à 08:11

Prérequis

Avoir des connaissances sur l'invocation des projets Connect et ses paramètres

Introduction

Cette documentation décrit le cas d'usage d'un de nos clients de M-Detect permettant de détecter certaines erreurs dans leurs logs QPJOBLOG IBMi.

De manière générale, l'analyseur de log M-Detect permet de :

  • Anticiper les incidents
  • Identifier les erreurs dans la masse d’information
  • Réduire le temps consacré à l’analyse
  • Prévenir le bon interlocuteur suivant les règles définies


Le but principal étant d'Assurer la qualité de service en anticipant les incidents.

Principe de fonctionnement

Le fichier spool de log QPJOBLOG est envoyé à un serveur ONYX. Un fichier de paramétrage est utilisé pour déterminer quelles lignes du fichier QPJOBLOG doivoient être incluse et/ou excluse du rapport généré et envoyé par email par M-Detect.

MDE 1.jpg


MDE 2.jpg

Invocation

Côté IBMI-i le spool est envoyé vers le serveur MAPPING Onyx à l'aide de la commande LPR en passant les métadatas nécessairent au traitement via le paramètre LPR DESTOPT.

Une fois sur le serveur MAPPING ONYX, M-Detect repose sur le principe de Connect paramétrable. Celui-ci prend en paramètre le fichier de paramétrage et génère en sortie un fichier de données qui sera le contenu du rapport d'analyse de la log ainsi qu'un fichier de métadonnées nécessaire, dans le cas de notre client, au traitement dans le workflow ONYX.

Son invocation se fait dans un workflow Onyx à l'aide d'une boite workflow M-Connect TEXT. Le nom du format Connect en question est : SPLFEXTRAC

Connect

Paramètres avancés

- Type de sortie : LISTING (Equivalent à ajouter un paramètre DB.MAPPING_DATASTREAM=LISTING)

Obligatoires

Lors de l'invocation du Connect, les paramètres doivent obligatoirement être passés :

  • DB.INFILE_DATA : fichier SPOOL (QPJOBLOG) encodé en UCS2
  • DB.INFILE_PARAM : fichier de paramètres de filtrage
  • DB.OUTFILE_METADATA : fichier XML avec les infos relatives au spool
  • DB.OUTFILE_DATA : fichier SPOOL après filtrage des lignes
  • DB.MAPPING_WIDTHPAGE=9999

Facultatifs

  • DB.FROMAS400 : paramètre DESTOPT passé en LPR

(exemple : USER=SMET;OUTQ=PRT1;SPLF=QPJOBLOG;STARTPAGE=00000;STOPPAGE=000000;JOB=FACPRD;JOBNUM=123456;DATESPL=20201125)

Liste des attributs utilisables dans le paramètre "DB.FROMAS400" :

  • USER ou U
  • SPLF ou S
  • SPLNUM ou SPLFNUM ou N
  • JOB ou J
  • JOBNUM ou JN
  • OUTQ ou O
  • HOSTNAME ou H
  • USRDTA ou UD
  • DATESPL ou D (date au format AAAAMMJJ)
  • NBPAGES ou P
  • STARTPAGE ou F
  • STOPPAGE ou L
  • DB.USER : attribut "USER" du spool AS400
  • DB.SPLF : attribut SPLFNAME du spool AS400
  • DB.SPLNUM : attribut Numéro du spool AS400
  • DB.JOB : attribut JOBNAME du spool AS400
  • DB.JOBNUM : attribut JOBNUMBER du spool AS400
  • DB.OUTQ : attribut OUTORI du spool AS400
  • DB.HOSTNAME : hostname à l'origine du SPLF
  • DB.USRDTA : attribut USRDTA du spool AS400
  • DB.DATESPL : attribut DATE du spool AS400 (au format AAAAMMJJ)
  • DB.NBPAGES : nombre de pages du SPLF (obtenu après comptage avec map_count_page -type:TXT)
  • DB.STARTPAGE : numéro de la première page à traiter
  • DB.LASTPAGE : numéro de la dernière page à traiter
  • DB.MLL_PATH : emplacement des fichiers .mll (sans "/" ni "\" à la fin)

(exemple : D:\Mapping\email) Attention les fichiers .mll doivent être encodés en UCS2

  • DB.ADD_MESSAGE_IN_FILE : "true" pour ajouter le message de l'email au début du fichier texte DB.OUTFILE_DATA

Les données présentes dans FROMAS400 peuvent être surchargées par les par les paramètres tels que DB.USER , DB.SPLF etc....

Flux impliqués dans le traitement

Fichier de paramétrage

Le fichier de paramétrage permet de paramétrer les remontés de logs. Il est passé au Connect paramétrable via le paramètre DB.INFILE_PARAM

Chaque élément <spool> correspond à une configuration de SPOOL à traiter.

Elément <attributes> :

Attributs du spools utilisés pour le filtrage niveau SPOOL

Eléments fils de <attributes> :

  • <USER>
  • <SPLF>
  • <SPLNUM> (ou <SPLFNUM>)
  • <JOB>
  • <JOBNUM>
  • <OUTQ>
  • <HOSTNAME>
  • <USRDTA>
  • <NBPAGES>


Attributs xml

cmp : permet de définir le type de comparaison à effectuer

  • égalité : cmp="-eq" (valeur par défaut si non spécifié)
  • commence par : cmp="begin"
  • différent : cmp="-ne"
  • supérieur : cmp="-gt"
  • supérieur ou égal : cmp="-ge"
  • inférieur : cmp="-lt"
  • inférieur ou égal : cmp="-le"
  • contient : cmp="contains"
  • ne contient pas : cmp="not-contains"

Attention : les comparaisons "-lt" , "-gt" , "-le" et "-ge" sont de type numériques (1 < 00002)

Exemple :

Pour traiter les Spools dont le nom commence par QP

<attributes>
   <SPLF cmp="begin">QP</SPLF>
</attributes>


Elément <variables> :

Permet de définir une liste de valeurs à récupérer directement dans le spool

et de les nommer afin de les réutiliser pour l'objet, le message du mail, les adresses d'expéditeur ou de destinataires, mais aussi à partir du workflow en lisant le XML de réponse.

Un élément fils <variable> par variable à récupérer. Chaque variable sera disponible dans le fichier XML de réponse, mais également utilisables au niveau des propriétés d'envoi de l'email via la syntaxe suivante : NOM_VARIABLE

Attributs :

  • name : nom de la variable
  • page : page du spool dans laquelle se trouve la valeur
  • line : numéro de la ligne
  • col : position du caractère dans la ligne
  • len : longueur de la valeur à récupérer

Exemple :

<variables>
   <variable name="VARENV" page="1" line="4" col="42" len="3"/>
</variables>


Elément <email> :


Propriétés de l'email à envoyer

  • <from> : expéditeur
  • <to> : destinataire(s)
  • <cc> : destinataire(s) en copie
  • <object> : sujet du message
  • <message> : corps du message
  • <mll-file> : fichier mailing list (.mll) (5 maximum) //Pour l'utilisation de cette propriété, le paramètre DB.MLL_PATH doit obligatoirement être renseigné

Tous ces éléments peuvent contenir des variables sous la forme xxxxx, que ce soient des attributs du spools ou des valeurs issues du contenu du Spool

Les éléments <to> , <cc> et <mll-file> peuvent être multiples, mais 5 maximum pour <mll-file>

Exemple :

<email>
  <from>citmapping_VARENV@mappingsuite.com</from>
  <to>nsmet@mappingsuite.com</to>
  <to>test@gmail.com</to>
  <to>mon_fichier_mll.mll</to>
  <cc>jdieu@mappingsuite.com</cc>
  <cc>user2@mappingsuite.com</cc>
  <mll-file>Mailing_list1.mll</mll-file>
  <mll-file>Mailing_list2_425.mll</mll-file>
  <object>ASP1 ANO - Journalière - JOB de USERJOBNUM - DATESPL</object>
  <message>Ceci est le corps de message de mon mail pour USER</message>
</email>

Elément <lines> :

Liste les critères de sélection de chaque ligne

  • <include> : lignes à récupérer
  • <exclude> : lignes à éliminer parmi les lignes récupérées
  • <nextline> : permet de définir comment reconnaitre une "ligne suivante",

C'est à dire la suite d'une ligne répondant aux critères de sélection.

  • <reject-splf> : si une ligne correspond à ce critère, alors le spool est entièrement rejeté


Attributs :

  • cmp : type de comparaison à effectuer
    • cmp="contains" : contient (par défaut)
    • cmp="not-contains" : ne contient pas
    • cmp="empty" : doit être vide (ou uniquement des espaces)
  • col : recherche à partir d'une position particulière dans la ligne
  • len : longueur de la ligne à prendre en compte pour la recherche

Exemple

<param>
   <spool>
     <attributes>                                      //Si le spool reçu depuis IMBI respecte les critères suivants
             <USER cmp="not-contains">MER</USER>                  //Le nom de l'utilisateur du spool ne contient pas la valeur "MER"                  
             <SPLF>QPJOBLOG</SPLF>                                //Le nom du spool est QPJOBLOG                  
             <SPLF>QPJOBLOG1</SPLF>                               //OU Le nom du spool est QPJOBLOG1                                
             <SPLNUM cmp="-le">1<SPLNUM>                          //Le numéro de spool est inférieur ou égal à 1  
             <JOB cmp="begin">FACPRD</JOB>                        //Le nom du job commence par FACPRD
             <HOSTNAME>ASP2</HOSTNAME>                            //Le nom du host vaut FACPRD
             <NBPAGES cmp="-le">500</NBPAGES>                     //Le nombre de pages est inférieur ou égal à 500
             <OUTQ cmp="-ne">PRT9</OUTQ>                          //L'OUTQ d'origine IBMI est différent de PRT9
             <USRDTA>MY CUSTOM DATA</USRDTA>                      //L'attribut du spool Référence utilisateur est égale à MY CUSTOM DATA
     </attributes>
     <variables>                                       //On initialise des variables avec le contenu du spool
             <variable name="VARENV" page="1" line="4" col="42" len="3"/>   //On crée et initialise la variable VARENV avec le contenu du spool en page 1, ligne 4, colonne 42 sur une longueur de 3
             <variable name="test" page="2" line="9" col="60" len="6"/>     //On crée et initialise la variable test avec le contenu du spool en page 2, ligne 9, colonne 60 sur une longueur de 6
     </variables>
     <email>                                          //paramétrage de l'envoi d'email
             <from>citmapping@mappingsuite.com</from>
             <to>nsmet@mappingsuite.com</to>
             <to>test@gmail.com</to>
             <cc>jdieu@mappingsuite.com</cc>
             <mll-file>ACH600_ADJHS.mll</mll-file>
             <mll-file>Mailing_list_2.txt</mll-file>
             <object>[[test]] [[VARENV]]- ASP1 ANO - Journalière - [[JOB]] de [[USER]] n° [[JOBNUM]] - [[DATESPL]] --> QPJOBLOG</object>
              <message>Ceci est le corps de message de mon mail pour [[USER]]</message>
     </email>
     <lines>                                          //paramétrage des lignes à inclure/exclure dans le rapport
             <include col="58" cmp="-eq">ERR</include>    //Inclure si dans la ligne il y a la valeur "ERR" en colonne 58
             <include col="40" len="50">err</include>     //Inclure si dans la ligne il y a la valeur "err" entre la colonne 40 et la colonne 90
             <include>non restauré(s) dans</include>      //Inclure si dans la ligne il y a la valeur "non restauré(s)"
             <include>; code fin 40 .</include>           //Inclure si dans la ligne il y a la valeur "'; code fin 40"'
             <include>; code fin 30 .</include>           //Inclure si dans la ligne il y a la valeur "; code fin 30"
             <include>; code fin 50 .</include>           //Inclure si dans la ligne il y a la valeur "; code fin 50"
             <include>; code fin 20 .</include>           //Inclure si dans la ligne il y a la valeur "; code fin 20"
             <include>; code fin 60 .</include>           //Inclure si dans la ligne il y a la valeur "; code fin 60"
             <include>LOT DEJA TRAITE LE</include>        //Inclure si dans la ligne il y a la valeur "LOT DEJA TRAITE LE"
             <include>lot refuse</include>                //Inclure si dans la ligne il y a la valeur "lot refuse"
             <exclude>: la facture de la précédente</exclude>               //Exclure si dans la ligne il y a la valeur ": la facture de la précédente"
             <exclude>Message....: ERR : données GOP incomplètes</exclude>  //Exclure si dans la ligne il y a la valeur "Message....: ERR : données GOP incomplètes"
             <exclude>ERR : impossible de traiter Org</exclude>             //Exclure si dans la ligne il y a la valeur "ERR : impossible de traiter Org"
             <exclude>ERR : Paramètrage non trouvé.</exclude>               //Exclure si dans la ligne il y a la valeur >"ERR : Paramètrage non trouvé."
             <nextline col="1" len="39" cmp="empty"></nextline>             //Si une ligne est vide entre la colonne 11 et la colonne 39, alors la ligne correspond à la suite du message de la ligne d'avant. Celle-ci doit alors être inclus dans le rapport           
             <reject-splf>Spool_demo</reject-splf>                          //si une ligne correspond à ce critère, alors le spool est entièrement rejeté
     </lines>
   </spool>
</param>

Fichier de sortie métadata

Ce fichier est généré via le paramètre de sortie du Connect paramétrable DB.OUTFILE_METADATA. Ce fichier est de manière générale pas obligatoire. Mais pour notre client, celui-ci est bien obligatoire et contient des données pour les traitements à réaliser côté workflows.

<metadatas>
   <USER>SMET</USER>
   <SPLF>QPJOBLOG</SPLF>
   <SPLNUM>1</SPLNUM>
   <JOB>FACPRD</JOB>
   <JOBNUM>123456</JOBNUM>
   <OUTQ>PRT1</OUTQ>
   <HOSTNAME>ASP2</HOSTNAME>
   <USRDTA></USRDTA>
   <DATESPL>20210113</DATESPL>
   <NBPAGES>500</NBPAGES>
   <STARTPAGE>000000</STARTPAGE>
   <STOPPAGE>000000</STOPPAGE>
   <DATESPL_ISO>2021-01-13</DATESPL_ISO>
   <DATESPL_EU>13/01/2021</DATESPL_EU>
   <DATESPL_US>01/13/2021</DATESPL_US>
   <variable name="VARENV"><![CDATA[JOB]]></variable>
   <variable name="test"><![CDATA[268967]]></variable>
   <from>citmapping@mappingsuite.com</from>
   <to>assistancedf@macompany.fr;DSI_Assistance_GF@macompany.fr;Assistance-fonctionnelle- 
groupeGF@macompany.fr;assistancedf@macompany.fr;DSI_Assistance_GF@macompany.fr;Assistance-fonctionnelle-groupeGF@macompany.com</to>
   <cc>jtest@macompany.com;Dtest@macompany.fr;stest@macompany.fr;dtest2@macompany.fr;Atest@macompany.fr</cc>
   <object><![CDATA[268967 JOB- ASP1 ANO - Journalière - FACPRD de SMET n° 123456 - 20201125 --> QPJOBLOG]]></object>
   <message><![CDATA[Ceci est le corps de message de mon mail pour SMET]]></message>
   <processed>true</processed>
   <content-found>true</content-found>
   <mll-files><![CDATA[C:\mapping\temp\MACOMPANY/test_QPJOBLOG.ml2;C:\mapping\temp\MACOMPANY/Mailing_list_2.txt]]></mll-files>
   <param-file><![CDATA[C:\mapping\temp\MACOMPANY\20201215\PARAM_QPJOBLOG.xml]]></param-file>
   <config-position>2</config-position>
</metadatas>

Fichier de sortie de donnée

Ce fichier DB.OUTFILE_DATA contient les lignes extraites du fichier de log QPJOBLOG répondant aux critères listés dans le fichier de paramétrage. Ce fichier d'extraction sera utilisé comme contenu de l'email final.


Please find below the log extract for PRODSNI
 
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/017885/C/000827495.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/042683/C/000301552.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/100251/C/001182500.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/105047/C/001206325.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/105301/C/001207792.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/105380/C/001207900.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/105402/C/001208506.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/127566/C/001195815.
Message . . . . :   ERR: Guichet-BIC(17607/00001/CCBPFRPPSTR)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/148443/C/001347783.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/149033/C/001349110.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/149079/C/001250625.
Message . . . . :   ERR: Guichet-BIC(15607/00010/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/162128/C/001658969.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/170489/C/001387332.
Message . . . . :   ERR: Guichet-BIC(15607/00073/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/182243/C/001378071.
Message . . . . :   ERR: Guichet-BIC(15607/00073/CCBPFRPPNCE)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/182243/C/001378071.  
Message . . . . :   ERR : Mandat sans ICS
Message . . . . :   ERR : payeur L01/185571/C/001562325.
Message . . . . :   ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/187434/C/001372800.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/211115/C/001754827.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/215515/C/001774196.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/231382/C/001892359.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/348757/C/002194119.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/371000/C/002114636.
Message . . . . :   ERR: Guichet-BIC(18025/10501/CEPAFRPP802)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/394697/C/002489654.
Message . . . . :   ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/398221/C/002508753.
Message . . . . :   ERR: Guichet-BIC(74202/00001/PRNSFRP1XXX)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/398221/C/002508753.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/400862/C/002527741.
Message . . . . :   ERR: Guichet-BIC(//NTSBDEB1XXX)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/428481/C/002626022.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/433464/C/002683070.
Message . . . . :   ERR: Guichet-BIC(10178/00017/CCBPFRPPCHX)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/441381/C/002665507.
Message . . . . :   ERR: Guichet-BIC(//CREGBEBB)inexistant ds référentiel Guich-BIC
Message . . . . :   ERR : payeur L01/453860/C/002670858.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/455952/C/002534965.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/464899/C/002018145.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/465221/C/001966120.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/465265/C/002706900.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/465894/C/002705095.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/465962/C/002708612.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/466003/C/001777779.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/466211/C/002489635.
Message . . . . :   ERR : Mandat absent
Message . . . . :   ERR : payeur L01/466363/C/002524605.

Fichier mll

Comme nous l'avons vu précédemment, il est possible de faire référence à des fichiers mailing list (mll).
Leur nom doit être indiqué dans le fichier de paramétrage à l'aide de la balise <mll-file>.
Le chemin du répertoire ayant le ou les fichiers mll doit être stipulé via le paramètre d'entrée DB.MLL_PATH
Attention : Ce fichier doit être encodé en UCS2

Exemple de contenu de fichier mll

to:assistancetest@macompany.fr
to:DSI_test@macompany.fr
to:AssistanceF@macompany.fr
cc:dtest@macompany.fr
cc:stest@macompany.fr
cci:test@mappingsuite.com
cc:Dtest@macompany.fr
cc:Atest@macompany.fr
cc:ctest@macompany.fr
cc:ltest@macompany.fr
cc:exploit@macompany.fr