Manuel d'exemples > Maintenance de la base de données avec options

Maintenance de la base de données avec options

Objectif : L'archivage de la base de données AE doit être automatisé avec un workflow. Une boîte de dialogue s'ouvre dans laquelle l'utilisateur doit saisir les paramètres spécifiques.

Objets utilisés : Job, Workflow, Script et Variable

Eléments de script utilisés : ACTIVATE_UC_OBJECT, :BEGINREAD, GET_VAR, :PRINT, :PUT_VAR et :READ


Exemple

La maintenance régulière de la base de données AE représente une part importante de la gestion d'un système AE. Pour cela, des utilitaires pouvant également être utilisés en mode batch sont à votre disposition. La création d'un workflow décrivant les étapes données pour la maintenance de la base de données est très utile. Les paramètres (p.ex. client) peuvent être saisis par l'utilisateur à travers une boîte de dialogue de saisie.

Variable

Créez tout d'abord une Variable statique avec les attributs suivants :

La variable statique contient le numéro du client et les valeurs "YJ" ou "N" pour chaque étape de la procédure de maintenance, selon que l'utilisateur veut réaliser cette étape ou non.

Script

Créez ensuite un script qui génère une boîte de dialogue à l'aide de l'élément de script :BEGINREAD. Ce dialogue reçoit les informations correspondantes saisies par l'utilisateur :

Utilisez les paramètres de :BEGINREAD pour spécifier que seuls les nombres compris entre 0 et 9999 peuvent être saisis pour le client. Concernant les réglages possibles, les valeurs "O" et "N" doivent être sélectionnables. Les options sélectionnées doivent être enregistrées dans l'objet Variable. Utilisez également ce dernier pour entrer automatiquement les options utilisées lors de la dernière maintenance dans la boîte de dialogue de saisie. Bien sûr, l'utilisateur peut spécifier des paramètres différents.

Le script démarre un workflow chargé de la procédure de maintenance avec la fonction ACTIVATE_UC_OBJECT. N'oubliez pas de demander avant si la valeur "N" a été sélectionnée pour toutes les options (archivage, réorganisation, déchargement). Le workflow n'a alors pas besoin d'être démarré.

!Settings of the last maintaining procedure are to be retrieved.

:SET &default_value_m# = GET_VAR('VARA.DATABASE_MAINTENANCE','CLIENT')

:SET &default_value_a# = GET_VAR('VARA.DATABASE_MAINTENANCE','ARCHIVING')

:SET &default_value_r# = GET_VAR('VARA.DATABASE_MAINTENANCE','REORGANIZING')

:SET &default_value_e# = GET_VAR('VARA.DATABASE_MAINTENANCE','UNLOADING')

 

 

!A Dialog is to be displayed in which the user can specify the options for database maintenance

:BEGINREAD

:PRINT "MAINTAINING THE AE database"

:PRINT "--------------------------------------------------------------------------"

:READ &client#, "0-9999", 'client (0-9999)', &default_value_m#

:PRINT "--------------------------------------------------------------------------"

:PRINT ""

:PRINT "Archiving"

:READ &archiving#, "'Y','N'",'Shall the database be archived?', &default_value_a#

:PRINT ""

:PRINT "Reorganizing"

:READ &reorganizing#, "'Y','N'",'Shall the database be reorganized?', &default_value_r#

:PRINT ""

:PRINT "Unloading the DB"

:READ &unloading#, "'Y','N'",'Shall the database be unloaded?', &default_value_e#

:PRINT ""

:PRINT "--------------------------------------------------------------------------"

:ENDREAD

 

 

!If the user selects "No" for each option, database maintenance is not necessary.

:IF &archiving# = 'N'

:   IF &reorganizing# = 'N'

:      IF &unloading# = 'N'

:      SET &start# = 'N'

:      ENDIF

:   ENDIF

:ENDIF

 

:IF &start# = 'N'

:  BEGINREAD

:  PRINT 'Database maintenance not necessary.'

:  ENDREAD

:ELSE

:  PUT_VAR 'VARA.DATABASE_MAINTENANCE','CLIENT',&client#

:  PUT_VAR 'VARA.DATABASE_MAINTENANCE','ARCHIVING',&archiving#

:  PUT_VAR 'VARA.DATABASE_MAINTENANCE','REORGANIZING',&reorganizing#

:  PUT_VAR 'VARA.DATABASE_MAINTENANCE','UNLOADING',&unloading#

!The workflow for database maintenance is started.

:  SET &ret = ACTIVATE_UC_OBJECT('JOBP.DATABASE_MAINTENANCE')

:ENDIF 

Si l'option Générer à l'exécution est activée dans les attributs du script, la fenêtre de dialogue n'est pas affichée. Dans ce cas, les valeurs par défaut sont utilisées. Ceci s'applique également aux autres objets activables.

Workflow et Jobs

Créez un workflow contenant un job pour chaque étape de la maintenance. Les scripts sont tous identiques, sauf pour l'appel de l'utilitaire. Il s'agit tout d'abord de déterminer si cette étape particulière doit être effectuée, et le client concerné. Ensuite, selon que l'utilitaire est exécuté en mode batch ou noté dans le statut d'activation, cela indique que cette étape de maintenance n'est pas exécutée.

ARCHIVER.JOBS

:SET &archiving# = GET_VAR('VARA.DATABASE_MAINTENANCE','ARCHIVING')
:
SET &client# = GET_VAR('VARA.DATABASE_MAINTENANCE','CLIENT')

:
IF &archiving# = 'Y' 
UCYBDBar -B -S&client

:
ELSE
:   
PRINT 'Archiving shall not take place.'
:
ENDIF

REORGANISER.JOBS

:SET &reorganizing# = GET_VAR('VARA.DATABASE_MAINTENANCE','REORGANIZING')
:
SET &mclient# = GET_VAR('VARA.DATABASE_MAINTENANCE','CLIENT')

:
IF &reorganizing# = 'Y' 
UCYBDBre -B -S&client#

:
ELSE
:   
PRINT 'Reorganization shall not take place.'
:
ENDIF

JOBS.UNLOADING

:SET &unloading# = GET_VAR('VARA.DATABASE_MAINTENANCE','UNLOADING')

:
IF &unloading# = 'Y' 
UCYBDBun -BREORG

:ELSE
:   
PRINT 'Unloading of data records shall not take place.'
:
ENDIF

 

Automic recommande d'effectuer une recherche d'erreurs après chaque exécution de l'utilitaire si vous utilisez des jobs Windows, et de modifier le code retour si nécessaire. Le Job s'interrompt aussi lorsque l'exécution de l'utilitaire échoue, ce qui vous permet d'identifier les erreurs le plus rapidement possible et d'y remédier.

 

Pour cela, il faut insérer les deux lignes JCL suivantes après l'exécution du programme :

@set retcode=%errorlevel%
@if NOT %ERRORLEVEL% == 0 goto :retcode