Notifier par mail le succès ou l’échec de l’exécution d’un Job SAP Data Services

Dans ce tutoriel vous apprendrez comment développer sous SAP Data Services un Job notifiant par mail son propre succès/échec en passant par un serveur SMTP.

Prérequis :

Contexte :

Vous avez développé un Job SAP Data Services contenant un Workflow effectuant des traitements ETL. Le problème est que ce Job rencontre périodiquement des échecs d’exécution pour certaines données :

Vous souhaitez notifier par mail à des personnes d’intérêt le succès ou l’échec de l’exécution de ce Job, grâce à un développement réalisé à l’intérieur même du Job et en passant par un serveur SMTP.

Solution :

Vous devez tout d’abord configurer le serveur SMTP à utiliser pour envoyer les notifications d’état d’exécution de votre Job. Celà se réalise dans le Server Manager de votre installation SAP Data Services.

Pour rappel, c’est avec cette application que vous avez configuré un Job Server chargé de gérer les exécutions des Jobs hébergés par votre référentiel local.

Ouvrez le Server Manager en mode administrateur :

Dans l’onglet « Divers » entrez le serveur SMTP utilisé et l’adresse de l’expéditeur des notifications :

Connectez vous au Designer de SAP Data Services puis ouvrez le Job à notifier dans l’espace de travail. Ajoutez depuis la boîte à outil un composant « TRY » en début de flux et un composant « CATCH » en fin de flux :

Ajoutez un composant script après votre Workflow de traitements ETL puis connectez tous les composants en séquence depuis le « TRY » vers le « CATCH ». Ce script sera chargé d’envoyer un mail notifiant le succès des traitements ETL contenus dans le Workflow, nous l’appelons ainsi « SC_JOB_SUCCES » :

Ouvrez le composant « CATCH » et vérifiez que toutes les exceptions pouvant être levées pendant un échec d’exécution du Job sont cochées (1). Ajoutez un nouveau script (2). Celui – ci sera chargé de l’envoi de notifications dans le cas ou le Job est en échec, puisque c’est dans ce cas que la partie « CATCH » du Job sera exécutée. Nous l’appelons donc « SC_JOB_ECHEC » :

Ouvrez ce script puis ouvrez son éditeur (1). Depuis l’onglet « Fonctions » allez dans la catégorie des fonctions système puis cliquez – déposez la fonction « smtp_to() » dans votre script (2) :

En argument de votre fonction smtp_to() entrez dans l’ordre les valeurs suivantes (1) :

  • Le ou les mails des destinataires du message.
  • Le sujet du mail (‘Echec SAP BODS du Job : ….’). Nous avons utilisé la fonction job_name() afin de récupérer le nom du Job auquel appartient le script, ainsi que la fonction error_number() pour le numéro de l’erreur.
  • Le message d’erreur, grâce à la fonction error_message().
  • Nombre de lignes envoyées depuis le log de suivit d’exécution (en partant de la fin).
  • Nombre de lignes envoyées depuis le log d’erreur (en partant de la fin).

Validez ensuite le script depuis l’éditeur (2). Si vous recevez un avertissement de conversion d’un entier en chaîne de caractère celà n’a pas d’importance, celà est dû à la concaténation de la chaîne avec le numéro d’erreur :

Ouvrez maintenant le deuxième script, celui qui sera exécuté en cas de succès des traitements ETL contenus dans « WF_TRAITEMENTS_ETL » :

Utilisez la fonction d’envoi SMTP de la même manière que precedemment afin de construire la notification de réussite du Job :

Vous savez désormais comment développer sous SAP Data Services un Job notifiant par mail son propre succès/échec en passant par un serveur SMTP.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *