Base de connaissances > Automation Engine et systèmes cibles > SAP > Comparaison des valeurs dans les listes spool SAP

Comparaison de valeurs dans les listes de spool SAP

Les listes de spool SAP affichent les jobs d'impression qui n'ont pas encore été transférés sur un appareil. Les données nécessaires à l'impression ou à la sortie sur un appareil sont temporairement enregistrées sur un format intermédiaire, et ce, jusqu'à leur appel. Les valeurs pour ce type de requêtes de spool dans les listes respectives peuvent être comparées en utilisant les jobs SAP de Automation Engine.

Comparaison des valeurs de requêtes de spool – Workflow

Créez un Workflow avec deux objets Job SAP. Chaque job produit une liste de spool. Un troisième objet job est utilisé pour comparer les nombres des valeurs de la liste spool.

Une fois les deux jobs terminés, les valeurs sont extraites des listes de spool et transférées au troisième job dans le Workflow.

Le statut du Workflow est défini conformément à la comparaison :

Les nombres sont égaux ==> ENDED_OK

Les nombres sont inégaux ==> ENDED_NOT_OK

 

Transfert du contenu d'une liste de spool vers un rapport de job

Ci-dessous, vous trouverez un exemple de l'un des deux Jobs SAP dans le Workflow. Chacun d'entre eux consiste de deux étapes :

Dans la première étape, le programme est exécuté, et au cours de la deuxième étape, le contenu de la liste de spool est ajouté au rapport.

Le rapport de ce Job apparaît comme suit :

Il contient le log du job issu de SAP suivi de la liste de spool.

Extraction des valeurs

Job no 1 :

Pour extraire les valeurs de la liste de spool, le script suivant est utilisé dans l'onglet Post-traitement du job.

Le Script est exécuté dès lors que le Job a terminé. Il traite le rapport et extrait les valeurs suivantes :

La fonction PREP_PROCESS_REPORT filtre toutes les rangées contenant le caractère "|".

Ceci a pour effet de renvoyer uniquement les valeurs suivantes :

| USD 123.456.789,01 1.234.567,89 |
| BEF 12.345.678.901 123.456.789 |
| KUD 123.456.789,01 365.413.243,87 |
| KUD 123.456.789,01 365.413.243,87

Avec PSET, la Variable d'objet &JOB1_SUMME# du Workflow est mise à jour.

Le Workflow contient également une deuxième Variable &JOB2_SUMME# qui est définie par le deuxième Job SAP.

 

Job no 2 :

Le rapport du deuxième Job apparaît comme suit :

Un Script UC4 est alors utilisé dans ce cas pour obtenir la valeur suivante :

Ce Script filtre toutes les rangées contenant le mot "SQ". Le résultat consiste alors d'une rangée :

|SQ| 26|28.02.1995|365 413 243,86 | |DC-10-10| 380 | 2 |1 684,00 | 0 | 0 | 0 | 0 |

Le caractère "|" est défini en tant que caractère servant à séparer les colonnes. Par conséquent, la valeur "5" (Variable &column#) peut être directement utilisée pour obtenir la valeur 365 413 243,86 à partir du rapport.

STR_TRIM est utilisé pour supprimer les espaces. Le résultat est publié en tant que &JOB2_SUMME#

 

Comparaison des Jobs

Les deux Jobs doivent être terminés pour que la comparaison de Jobs ait lieu :

Elle accède aux Variables &JOB1_SUMME# et &JOB2_SUMME#.

Ce job dispose du paramètre "Générer à l'exécution" activé dans l'onglet "Attributs".

Dans cet exemple, il démarre un programme SAP avec des paramètres qui dépendent du résultat de la comparaison.

Le simple programme Z_INFO utilise des MESSAGES de type I ou E en fonction du paramètre SUCCÈS :

REPORT Z_INFO.
parameter text1 type string.
parameter text2 type string.
parameter text3 type string.
parameter success type c.
if success is initial.
MESSAGE I002(SY) WITH text1.
MESSAGE I002(SY) WITH text2.
MESSAGE E002(SY) WITH text3.
else.
MESSAGE I002(SY) WITH text1.
endif.

 

Le Workflow peut être configuré à ENDED_NOT_OK en cas d'échec de la comparaison de Jobs :

Commentaires

La valeur du paramètre spécial (REPORT,REP) pour la commande du paramètre de FICHIER R3_GET_JOB_SPOOL n'est pas documentée, mais existe depuis la v9.
En temps normal, la commande R3_GET_JOB_SPOOL peut uniquement écrire des fichiers. Cependant, l'agent SAP ne peut pas les lire. Un Agent de système d'exploitation est requis pour extraire les valeurs avec PREP_PROCESS_FILE, et supprimer les vieux fichiers dès lors qu'ils ne sont plus nécessaires. Ceci représente également une solution possible, mais plus complexe que celle qui est décrite ici.

Rubriques connexes :

SAP – Solutions personnalisées