Développement > Utilitaires > Patchs > Intégration de patchs 

Les progiciels utilisant la technologie SAFE X3 intègrent une fonction permettant d'intégrer des correctifs ou des évolutions fonctionnelles délivrées sous forme de fichier archives nommés « patches ». C'est ainsi qu'un développement tiers peut être intégré, que des données supplémentaires peuvent être chargées dans une table, que des correctifs peuvent être apportés.

Un patch peut contenir un ou plusieurs éléments tels que des écrans, des définitions de tables, des codes activités, des types de données, des objets, des menus locaux, des chapitres de messages, des traitements, des demandes d'exécution de traitements, des données...

SEEWARNING L'intégration d'un patch modifie le dictionnaire et la base de données des dossiers sur lesquels il est appliqué. Une seule exception à ce principe : les traitements livrés par patch ne sont installés que sur le dossier superviseur (sauf cas particuliers explicités plus loin).

Cas particulier : Intégration d'une table

L'intégration d'une table se fait en deux étapes :

1. Mise à jour de la description de la table dans SAFE X3.

2. Validation de cette table (exécution du valfil) : durant cette dernière étape, si des statistiques bdd (base de données) existent sur cette table, elles peuvent être supprimées.
Ceci dépend des types de modifications de la table.

Exemples :

  • Ajout d'un champ en fin de description de la table : les statistiques bdd sont conservées.
  • Insertion d'un champ entre deux autres : les statistiques bdd sont perdues sur toute la table.
    En effet la table est supprimée puis recréée.
Fichiers

Un fichier patch se caractérise par un nom intégrant en principe une séquence de numéros, afin de permettre de contrôler, lorsque plusieurs fichiers existent, que les patches sont bien intégrés dans l'ordre.

Le cas des patches correctifs livrés en standard est géré de la façon suivante :

  • les fichiers sont définis avec le nom P_nnnn_vvv.dat, nnnn étant un numéro chronologique, et vvv la version majeure sur laquelle le patch peut s'appliquer (jusqu'à présent, vvv peut être égal à 110, 120, 130, 140, 150). Un fichier de ce type contient un ensemble d'objets ou d'éléments constitutifs d'un correctif ou d'une évolution fonctionnelle (par exemple, la livraison d'un nouveau point d'entrée).
  • plusieurs fichiers de patches (en général au moins une dizaine, mais cela peut être bien davantage) sont organisés sous la forme d'une liste qui est disponible auprès des partenaires Sage.
  • la mise en place d'une ou plusieurs listes se fait par cette fonction, qui intègre les fichiers dans l'ordre séquentiel des numéros chronologiques, un certain nombre de contrôles de cohérence étant réalisés (numéro de version sur laquelle le patch s'applique, séquentialité depuis la dernière mise à jour de patches).

Il est conseillé aux partenaires Sage désirant livrer des fonctionnalités sous formes de patches d'adopter la même politique de nommage des fichiers, en utilisant une première lettre différente (par exemple X, Y, ou Z). En effet, un contrôle de séquentialité est fait dès lors que le nom du fichier intègre les caractères _ (underscore) en position 2 et 7 du nom du fichier : les caractères 3 à 6 sont alors un numéro séquentiel sur lequel (à racine égale) va se faire un contrôle de séquentialité, et les caractères au delà du huitième (extension exclue) sont contrôlés par rapport au numéro de version majeure.

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

Ecran de saisie

Présentation

On saisit, dans la fenêtre qui s'ouvre, les informations relatives à l'intégration de patch désirée, puis on valide l'écran.

L'intégration se fait alors; elle peut être longue si de nombreux fichiers patches sont présents, mais une barre de progression permet de suivre le processus d'intégration.

A la fin de l'intégration des patchs, on obtient un fichier trace qui se situe physiquement dans le répertoire trace du dossier d'où s'est lancée l'intégration. Une visualisation attentive de ce fichier est conseillée pour repérer les erreurs éventuelles.

 

Champs

Les champs suivants sont présents dans cet onglet :

Fichier

  • champ AW

 

  • Type de destination (champ TYPEXP)

 

  • Patch (champ VOLFIL)

 

Bloc numéro 2

  • Intégration de patch (champ INTEG)

Si ce champ n'est pas coché, l'intégration sera simulée. Dans ce cas, l'intégration est tracée mais les transferts ou mise à jour ne sont pas réalisés.

  • Ecrasement commentaire (champ REM)

Cette case à cocher est utile si l'on intègre les patchs dans un environnement étranger. Si elle est cochée, le fichier trace du résultat de l'intégration sera en anglais.

  • Validation différée (champ AVALDIF)

Cette option désactive la validation directe des fenêtres et des écrans pour optimiser la durée de validation de ces objets.

Lorsque cette case est sélectionnée, les fenêtres et écrans sont validés à leur première utilisation.

  • Synchronisation des liens (champ ALNKSYNC)

 

  • Synchronisation fenêtres (champ AFLGSYNCH)

 

Tableau Dossiers

Permet de donner la liste des Dossiers sur laquelle l'intégration des patches va être faite; par défaut l'ensemble des dossiers se trouvant dans l'environnement est proposé pour l'intégration des patches, mais il est possible d'en supprimer de la liste. Sauf cas particuliers, il est nécessaire qu'au minimum le dossier superviseur soit patché.

  • Version (champ VERSION)

 

  • Date (champ MAJ)

 

  • Langues (champ LANGUES)

 

 

Tâche batch

Cette fonction peut être lancée en batch. La tâche standard PATCH est prévue à cet effet.

L'intégration des listes de patch peut s'effectuer en batch sur 50 dossiers maximum.

Cette option est très intéressante car l'intégration des patchs peut être effectuer la nuit après la sauvegarde alors que l'exploitation n'a pas repris. En effet, l'intégration des patches peut être une opération longue. La consultation du fichier trace pourra alors se faire directement depuis le gestionnaire des requêtes de la tâche batch.

Attention, un patch standard déjà intégré ou qui n'est pas en séquence ne pourra pas être intégré en batch : ce qui n'est qu'un message d'avertissement qui peut être forcé lorsque le patch est intégré directement devient une cause d'arrêt automatique en cas d'exécution batch.

Patch de documentation

L'installation d'un patch de documentation suit le même procédé que celui expliqué ci-dessus et s'applique aux dossiers sélectionnés. 

Les fichiers sont définis avec le nom Dy_nnnnn_vvv_ppp.dat, 'y' étant l'abrégé du produit, 'nnnnn' étant le numéro chronologique, 'vvv' la version majeure sur lequel le patch peut s'appliquer, et 'ppp' le code législation.

Il existe un seul fichier par législation qui contient l'ensemble des documentations créées ou modifiées depuis le précédent patch.

Les patchs de documentations sont livrés en même temps que les patchs applicatifs. Ils peuvent être intégrés avant ou après le patch applicatif. Le système vérifie la chronologie des numéros.

L'intégration d'un patch de documentation met à jour le dictionnaire des documentations mais ne touche pas aux documents déposés sur le serveur de documentation. Pour que ces derniers soient mis à jour, il faut lancer une génération de la documentation.

Génération de la documentation

Si vous utilisez le mode d'accès au format compressé (CHM), vous devez avant de lancer la mise à jour des documents automatisés, exécuter une décompression de votre fichier de documentation (cf serveur de documentation).

Si vous utilisez le mode d'accès au format éclaté (HTML), vous pouvez directement lancer la mise à jour. 

Mise à jour des documentations automatique

Dans la fonction de documentation, cliquer sur le bouton Générationet saisir les données suivantes selon votre code langue :

PATCH_001.jpg

N.B : le répertoire est issu du paramètre utilisateur DIRDOC.

Relancer ensuite 3 autres générations avec les mêmes paramètres sauf le type de donnée ou vous indiquerez successivement AML puis ATB puis ATY.

Génération des documents sur le serveur de documentation

Pour faire la mise à jour des documentations sur le serveur de documentation, lancer la génération suivante, selon votre code langue :

PATCH_002.jpg

Si vous utiliser l'accès à la documentation en mode compressé, vous devez recompresser les fichiers (cf serveur de documentation).

Si vous utiliser l'accès en mode éclaté, la mise à jour est terminée.

Messages d'erreur

Messages d'erreur au lancement de la fonction

Outre les messages génériques, les messages d'erreur suivants peuvent apparaître lors de la saisie :

Pas de patch dans le répertoire

On a indiqué un répertoire vide.

Messages d'erreur dans la trace

Les autres messages d'erreur sont tous affichés dans le fichier trace. Parmi ceux-ci, on trouvera les messages suivants :

Le dossier doit être au moins dans la version nnn

Le patch ne peut pas être appliqué, car la version minimale requise des dossiers n'est pas respectée.

xxxxx : module non implanté dans le dossier

Le patch n'a pas été appliqué sur le dossier, car le module fonctionnel n'est pas utilisé.

Fin de fichier anormale
Structure fichier incorrect

Le fichier de patch est probablement corrompu, le processus d'intégration n'a pas pu relire jusqu'au bout les données correspondantes, ou est tombé sur une structure non conforme.

Gestion de fichier XXX : <<message d'erreur>>

Une erreur de type transactionnelle s'est produite durant la mise à jour du dictionnaire

Erreur en ligne NNN : <<message d'erreur>>

Une erreur s'est produite à l'exécution d'un traitement accompagnant le patch.

Patch plus récent déjà intégré
Il manque des patches, le dernier intégré est ###
Patch normalement inclus dans la version NNN

Ces trois messages concernent la vérification de séquentialité de passage des patches. Normalement, si le patch standard numéro N est le dernier à avoir été passé, on s'attend à ne pas passer un patch plus ancien (message numéro 1), ni de patch de numéro strictement supérieur à N+1 (message numéro 2). Par ailleurs, l'installation d'une version intermédiaire inclut de fait des patches standard qu'il ne faut donc pas intégrer (message numéro 3). En tout état de cause, en mode interactif, ces messages ne sont pas bloquants, et il est possible de continuer quand même, en répondant Oui à la question Voulez-vous continuer malgré les erreurs ?.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre