AXOPEN

Bonnes pratiques de versionning des scripts OJS

Introduction

Les objets de paramétrage P5 de type « scripts » sont plus facilement versionnables que les autres objets. En effet il est recommandé de synchroniser leur contenu (champ DATA) avec des fichiers textes contenant le script OJS (pour OPX2 JavaScript). Cette synchronisation est réalisée via le formulaire de l’objet script P5.

Synchroniser le contenu avec un fichier texte

Synchroniser le contenu avec un fichier texte

 

Pour cela il suffit de sélectionner le fichier et de l’ouvrir. Ensuite synchroniser le contenu du script avec le fichier sélectionné en cliquant sur « Vérifier », le message suivant s’affiche alors :

Popup synchronisation du script

Suivi du message indiquant que la syntaxe du fichier est bien correcte :

Popup évaluation du script

 

Gérer le versionning des scripts

C’est dans le fichier texte du script que l’on va gérer le versionning des scripts (numéros de version, auteurs, description etc…). On retrouve d’ailleurs cette gestion de version dans les scripts développés dans Processes par Planisware.

L’exemple ci-dessous (issu des scripts Processes) donne un modèle de format de script permettant de gérer les versions :

 

//* -*- Mode: C++ -*- *****************************************************
//  COPYRIGHT (C) NOM_CLIENT $Date: 01/01/2013 12:00:00 $                                                
//                                                                          
//  All Rights Reserved                                                     
// 
//  This program and the information contained herein are confidential to
//  and the property of NOM_CLIENT and are made available only to NOM_CLIENT
//  employees for the sole purpose of conducting NOM_CLIENT business.
// 
//  This program and copy therof and the information contained herein shall
//  be maintained in strictest confidence ; shall not be copied in whole or
//  in part except as authorized by the employee's manager ; and shall not
//  be disclosed or distributed (a) to persons who are not NOM_CLIENT employees,
//  or (b) to NOM_CLIENT employees for whom such information is not necessary in
//  connection with their assigned responsabilities.
// 
//  There shall be no exceptions to the terms and conditions set forth
//  herein except as authorized in writing by the responsible NOM_CLIENT General
//  Manager.
//
// 
//  FILE    : $RCSfile: NOM_SCRIPT.ojs $
// 
//  AUTHOR  : $Author: gonint $
// 
//  VERSION : $Id: NOM_CLIENT.ojs,v 01.00.10 01/01/2013 12:00:00 gonint Exp $
// 
//  PURPOSE :
// 
//  Revision 01.00.10 01/01/2013 12:00:00 gonint
//  Modification de la fonction my_function() pour augmenter le niveau de traces 
//
//    /* 
//    Liste des révisions du script
//    */
//
//  Revision 01.00.02 20/12/2012 12:00:00 gonint
//  Ajout de vérification sur le format de la variable my_variable
//
//  Revision 01.00.01 10/12/2012 12:00:00 gonint
//  Ajout de la fonction my_function()
//
// Created by 01.00.00 01/12/2012 12:00:00 gonint
//
//**************************************************************************

/* 
Corps du script P5 (fonctions, variables, méthodes etc...)
*/

writeln("$Id: NOM_SCRIPT.ojs,v 01.00.10 01/01/2013 12:00:00 gonint Exp $");

 

On peut remarquer qu’à la fin du script on a ajouté la ligne suivante :

writeln("$Id: NOM_SCRIPT.ojs,v 01.00.10 01/01/2013 12:00:00 gonint Exp $");

Cette ligne permet d’afficher dans les logs applicatifs la version du script chargé au moment de son évaluation (en général au démarrage si la coche évaluer au démarrage est sélectionnée).

Evaluer au démarrage

Evaluer au démarrage

 

Il est vivement conseillé de respecter les recommandation présentées ici pour assurer un bon suivi des versions des scripts P5. Les bonnes pratiques de versionning des scripts sont donc essentielles pour gérer les différentes versions d’une application.