Dans cet article


Offres d'emploi

Tags

Bonnes pratiques de versionning des scripts OJS

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.

L'équipe AXOPEN

Voir aussi les articles suivants

Description Lorsque l’on travaille sur des objets scripts OPX2 au bout d’un certain nombre de vérifications/exécutions des scripts il arrive fréquemment que le client lourd P5 affiche un message d’erreur. du type suivant : Cause Il s’agit globalement d’un problème de saturation mémoire car le client lourd présente des difficultés à libérer/recycler la mémoire RAM utilisée. Résolution La solution la plus simple et la plus radicale est de réaliser les opérations suivantes :
Lire l'article

Scripting OJS : comment générer la documentation OPX2 Script ?
Il est possible de générer en client lourd la documentation OPX2 Script (sous forme de rapport HTML). Pour cela il suffit de se connecter à l’application en client lourd, puis de cliquer sur le menu _? > Documentation OPX2 script _ Outil de génération de la documentation OPX2 Script   Voici un extrait de la documentation OPX2 Script : Documentation OPX2 Script : exemple avec de la fonction « Setmonth » (source : Planisware)  
Lire l'article

Scripting OJS : remplacer une chaine de caractère par une autre dans un champ de type string avec la méthode « replaceregexp »
Introduction : Il est relativement fréquent d’avoir à remplacer une chaine de caractères par une autre dans des traitements réalisés en script OJS dans une application sous P5. La méthode « replaceregexp » appliquée sur des variables ou des champs de type « string » permet de réaliser simplement cette opération. Principe : La méthode « replaceregexp » s’utilise de la manière suivante : new_label = old_label.replaceregexp(reg_exp,target_sub_string); Ainsi la variable « new_label » aura pour valeur celle de la variable « old_label » dont les caractères répondant à l’expression régulière « reg_exp » auront été remplacés par « target_sub_string ».
Lire l'article