Projet SIFAC Procédure d’utilisation de l’outil d’import de livraison SIFAC sécurisé DOCUMENT Référence Version Date Objet SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE 1.3 11/02/2010 Procédure d’import de livraison pour sites SIFAC APPROBATION Nom - Fonction Date Signature Astrid Chatin - RQO J. Labonne- Responsable Admin/Exploit 02/10/09 02/10/09 A. Chatin J. Labonne Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria MODIFICATIONS Sections Objet de la mise à jour modifiées Version Auteur 1.0 Philippe MOUGIN – 20/08/09 Toutes Création du document 1.1 Philippe MOUGIN 3.4 Ajout mode suppression Nom – Fonction – Société Date 30/09/09 1.2 Philippe MOUGIN 14/12/09 Toutes Clarification installation runtime sous Linux. Modifications script V.1.2 – (config.ini paramétrable, local.db unique) 1.3 Philippe MOUGIN 11/02/10 Toutes Modif concept multi-référent 1.4 A.Dudognon 03/09/10 10 Correction de l’exemple de fichier ini page 10 SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 2/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria SOMMAIRE 1 DESCRIPTION ................................................................................................................................ 4 2 INSTALLATION .............................................................................................................................. 7 2.1 INSTALLATION DU RUNTIME PYTHON (W INDOWS) ....................................................................... 7 2.2 INSTALLATION DU RUNTIME PYTHON (UNIX/LINUX) ..................................................................... 7 2.3 INSTALLATION DU SCRIPT ......................................................................................................... 8 3 IMPORT D’UNE LIVRAISON PAR UN ETABLISSEMENT .......................................................................... 9 3.1 FORMAT DU FICHIER DE PARAMÉTRAGE IMPORTLIVRAISON.INI .................................................... 9 3.2 CAS DE PLUSIEURS ETABLISSEMENTS SUR LA MEME INSTANCE ................................................. 11 3.3 UTILISATION SOUS WINDOWS ............................................................................................. 12 3.4 UTILISATION SOUS LINUX/UNIX ............................................................................................. 12 3.5 IMPORT D’UNE LIVRAISON ....................................................................................................... 12 3.6 COPIE DE MANDANT ............................................................................................................... 14 3.6.1 Mise à jour du fichier importlivraison.ini ......................................................................... 14 3.6.2 Mise à jour de la base locale ......................................................................................... 14 3.6.3 Exemple ....................................................................................................................... 14 3.7 SUPPRESSION DE MANDANT ................................................................................................... 14 3.7.1 Mise à jour de la base locale ......................................................................................... 15 3.7.2 Mise à jour du fichier importlivraison.ini ......................................................................... 15 3.8 AUTRES FONCTIONS .............................................................................................................. 15 3.8.1 Lister le contenu de la base locale ................................................................................ 15 3.9 IMPORTS DES LIVRAISONS EN PRE-PRODUCTION ............................................................... 16 3.10 EXEMPLE D’IMPORT D’UNE LIVRAISON SIFAC EN PRE-PRODUCTION ................................. 17 3.11 IMPORT DES LIVRAISONS EN PRODUCTION ................................................................ 18 SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 3/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 1 DESCRIPTION Ce document décrit le nouvel outil d’import de livraison sécurisé pour les établissements AMUE dans le cadre du projet SIFAC. L’outil repose sur une base de référence constituée par le groupement pour chaque établissement, mise à jour au moment de chaque livraison et mise à la disposition des sites en même temps que les ordres de transport. Livraison validée PRD N°999 Outil de création base référence site (Interne groupement) Référence établissement A : Référence établissement B : Referentiel_A.db Referentiel_B.db Dépôt sur FTP AMUE Fig.1 : génération des bases référentielles sites Les établissements vont télécharger leur base de référence mise à jour en même temps que leurs OTs et copier le tout sur leurs instances. Le site devra ensuite utiliser l’outil d’import de livraison (importlivraison.py) pour chacune de leurs instances pour importer la nouvelle livraison. Au moment de l’import une vérification d’intégrité sera effectuée en comparant la base locale des ordres déjà importés sur l’instance locale avec la base de référence, c’est-à-dire les numéros de livraisons ayant déjà dû être importées. Au cas où une livraison précédente n’a pas été importée complètement une erreur est signalée à l’utilisateur lui demandant d’importer la ou les livraisons précédentes manquantes. SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 4/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Remarque 1 : ce script ne peut être utilisé que pour les imports des livraisons de type production (PRD-nnn) fourni par l’AMUE. Pour les transports d’OT généré sur une plate-forme établissement ou provenant d’un autre système, l’établissement devra utiliser l’ancien script Python ou passer l’OT directement depuis la STMS. Figure 1 - Import d’une livraison pour un établissement Base locale (historique) établissement A : local_A.db Référence établissement A : import_livraison.py Referentiel_A.db tp import Instance SAP Remarque 2 : Le référentiel est propre à chaque établissement. Il ne contient que les livraisons qui lui sont destinées. Les n° de livraisons ne se suivent pas forcement car une livraison intermédiaire peut être dédiée à un autre établissement. Ex : Livraison PRD-410 pour tous les sites Livraison PRD-411 pour Clermont1 uniquement Livraison PRD-412 pour tous les sites Lors de l’import de la livraison 412, le script vérifiera que les livraisons 411 et 410 (et toutes les précédentes) ont bien été intégrées sur Clermont alors qu’il vérifiera que la livraison 410 (et toutes les précédentes) est bien intégré pour tous les autres sites SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 5/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Cas spécifique : dans le cas où plusieurs établissements (mandants) sont hébergés sur la même instance : Base locale (historique) établissement A+B : Référence établissement A : local_A.db Referentiel_A.db import_livraison.py Référence établissement B : tp import Referentiel_A.db Instance SAP Les outils nécessitent un runtime >=Python 2.5.4 ou 2.5.5 (mais pas Python 3.x !). Le script a également été testé sur la version 2.6.5 sur Linux. Les sources sont disponible sur le FTP de l’Amue sous : /distrisifac/distributions/SAP/pythonV2_script_livraison/ SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 6/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 2 INSTALLATION 2.1 INSTALLATION DU RUNTIME PYTHON (WINDOWS) Avant de pouvoir utiliser cet outil, il est nécessaire d’installer le runtime Python pour la version de Windows utilisée sur le serveur SAP. Celui-ci est téléchargeable depuis http://www.python.org/download en choisissant une version >= 2.5 mais < 3.x !) : Depuis la console du serveur SAP connectez-vous avec l’utilisateur <sid>adm et exécutez le programme d’installation téléchargé précédemment. Installez Python en choisissant les options par défaut et vérifiez qu’une entrée [Python x.y] a bien été crée dans votre menu démarrer de Windows. 2.2 INSTALLATION DU RUNTIME PYTHON (UNIX/LINUX) Python est installé par défaut sur la plupart des systèmes Linux/Unix récents. Néanmoins, comme noté précédemment, une version du runtime >= 2.5 est nécessaire (mais <3.x). Si plusieurs versions de python sont présentes sur le système il est possible de spécifier une version spécifique du runtime en changeant la première ligne d’importlivraison.py #!//usr/local/Python-2.5.4/python SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 7/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Si vous compilez Python depuis le code source assurez-vous que la librairie sqlite3 est installée, lancer la commande : # rpm –qa|grep sqlite3 Le résultat doit inclure : sqlite-3.x sql-devel-3.x avant de lancer les commandes suivantes : # ./configure USE="sqlite" # make # make install Il est ensuite nécessaire de s’assurer que par défaut la nouvelle version de python est celle utilisée par défaut. Pour cela lancer la commande python sans paramètre : # python Python 2.5.4 (rxxx :yyyy, Feb 21 2009, 13:11:45) Type "help", "copyright", "credits" or "license" for more information. >>> ^D 2.3 INSTALLATION DU SCRIPT Copier le script importlivraison.py et le fichier importlivraison.ini dans le répertoire /usr/sap/trans/bin sur le contrôleur de domaine de transport. Assurez-vous que le fichier importlivraison.py appartienne bien à l’utilisateur <sid>adm et qu’il dispose des droits d’exécution. Editer ensuite le fichier import importlivraison.ini comme décrit en 3.1. SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 8/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 3 IMPORT D’UNE LIVRAISON PAR UN ETABLISSEMENT L’outil repose sur un fichier de configuration importlivraison.ini définissant les instances sur lesquelles les livraisons doivent être importées, son format est défini ci-après. 3.1 FORMAT DU FICHIER DE PARAMETRAGE IMPORTLIVRAISON.INI [system] domain: DEV SID du contrôleur de domaine de transport SAP Le nom contrôleur de domaine de transport SAP est défini dans les fichiers DOMAIN.CFG et TP_DOMAIN_<XXX>.PFL dans le répertoire /usr/sap/trans/bin. etablissement: NANTES ou etablissement: NANTES1,NANTES2 Nom de la base de référence du site maxrc=4 Code retour maximum autorisé pour la commande tp. flag_import=U012 Flags à passer à la commande tp. Dans le cas où plusieurs établissements (sur plusieurs mandants) sont hébergés sur la même instance on peut préciser un second établissement en le séparant par une virgule : ETABLISSEMENT1,ETABLISSEMENT2 Valeur conseillée : U012 Mode icond. Description 0 Importe l’OT sans l’effacer du buffer et force un nouvel import par un mode 1 . 1 Force le ré-import de l’OT. 2 Réécrit les objets originaux. 3 Réécrit les objets dépendant du système. 6 Réécrit les objets dans les réparations (repairs) non confirmées. 8 Ignore les sélections basées sur la classification des tables. 9 Force l’import même si ce type de transport est verrouillé sur ce système. [T01] Première instance (pré-production) 300: R,NANTES,ALL Mandant 300 de référence (R), tous les ordres (types SYST ou CUST) doivent être importés} (ALL) 310: T,NANTES,CUST Mandant 310 de travail (T), seuls les ordres de (types CUST) doivent être importés} (CUST) SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 9/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 600: R,NANTES,CUST Mandant 600 de référence (R), seuls les ordres de (types CUST) doivent être importés} (CUST) 610: T,NANTES,CUST Mandant 610 de travail (T), seuls les ordres de (types CUST) doivent être importés} (CUST) [P01] Seconde instance (production) 500: R,NANTES,ALL 600: R,NANTES,CUST Mandant 500 de référence (R), tous les ordres (types SYST ou CUST) doivent être importés} (ALL) Mandant 600 de référence (R), tous les ordres (types CUST) doivent être importés} (CUST) Note : Les lignes commençant par ‘#’ ou ‘;’ sont considérées comme un commentaire. Seuls les mandants de référence (R) sont utilisés pour vérifier qu’une livraison a été importée. Les ordres de transport sont importés sur mandants de travail (T) également mais n’entrent pas en compte dans la vérification des pré-requis (livraisons importées ou non). Un seul mandant de référence R,ALL doit être présent par instance. Exemple : Toulon possède 4 mandants sur sa pré-production dont le 300 qui fait office de mandant de référence et un mandant 500 sur sa machine de production. Le contrôleur de domaine est sur sa machine de production. La base de référence qui lui est livré est « referentiel_TOULON.db » (le nom du référentiel est visible sur le FTP de l’amue dans le répertoire de dépôt des livraisons). Voici le fichier de configuration à créer : SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 10/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 3.2 CAS DE PLUSIEURS ETABLISSEMENTS SUR LA MEME INSTANCE Dans le cas où plusieurs établissements sont présents dans la même instance il est alors nécessaire de définir dans le même fichier importlivraison.ini la liste des établissements dans la section [system] : etablissement: ETABLISSEMENT1,ETABLISSEMENT2 Spécifier ensuite l’établissement dans la liste des mandants des instances concernées. SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 11/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Par exemple : 2 établissements AMUEFRM et AMUEBIS sont présents sur l’instance FRM sur 2 mandants différents. Le 1er établissement AMUEFRM possède 2 mandants sur l’instance, le 400 de référence et le 420 pour ses tests. Le 2ème établissement AMUEBIS possède 2 mandants sur l’instance, le 410 de référence et le 430 et 440 pour ses tests. Voici le fichier de configuration dans ce cas la : 3.3 UTILISATION SOUS WINDOWS Connecté en tant qu’utilisateur <SID>adm depuis la console Windows ou par telnet, depuis la ligne de commande, allez dans le répertoire <X:>\usr\sap\trans\bin (où X: correspond au lecteur sur lequel se situe le répertoire de transport) et lancez le script importlivraison.py en spécifiant les options détaillées § 3.5. 3.4 UTILISATION SOUS LINUX/UNIX A partir d’une session ssh/telnet sur le serveur, se connecter avec <sid>adm : su - <sid>adm Allez dans le répertoire /usr/sap/trans/bin et lancer le script importlivraison.py en spécifiant les options détaillées § 3.5. 3.5 IMPORT D’UNE LIVRAISON Le script doit être lancé en tant qu’utilisateur <sid>adm. Syntaxe : importlivraison.py [options] <SID> <numéro de livraison> SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 12/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Le nom de l’instance ainsi que le numéro de livraison à importer sont les deux seuls paramètres obligatoires. ► Lors du premier lancement du script il est nécessaire de passer l’option --createlocaldb afin de forcer la création de la base d’historique des imports locaux (cette base est commune à toutes les instances du domaine de transport SAP et définies dans le fichier importlivraison.ini). Options: --createlocaldb Option à utiliser lors de la première utilisation du script pour créer la base locale. Exemple : importlivraison.py --createlocaldb T54 415 Dans cette exemple, le script va créer la base locale et commencer l’installation de la livraison 415 sur l’instance T54. La base locale va à la fois servir pour la pré-production et la production. Lors du lancement de l’import sur la production, il ne sera donc pas utile de lancer le script avec l’option --createlocaldb. --cmd=list Liste le contenu de la base locale (cf. §3.8.1) Exemple : importlivraison.py --cmd=list FRM --cmd=copy <mandant effectue une copie de mandant (cf. §3.6) dans la base locale source> <mandant Exemple : dest> importlivraison.py FRM --cmd=copy 420 450 --cmd=del <mandant> efface un mandant (cf. §3.7) dans la base locale Exemple : importlivraison.py FRM --cmd=del 450 --reprise=reset Reprend l’import de la livraison à partir du 1er OT Exemple : importlivraison.py --reprise=reset FRM 12 --reprise=retry Reprend la livraison à l’OT tombé en erreur lors du dernier import Exemple : importlivraison.py --reprise=retry FRM 9 --reprise=next Reprend la livraison à l’OT suivant le dernier qui est tombé en erreur lors du dernier import Exemple : importlivraison.py --reprise=next FRM 4 --dnc Permet de lancer le script d’import sans contrôle des codes retour. A ne pas utiliser sauf consignes explicite Exemple : SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 13/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria importlivraison.py FRM --dnc 14 3.6 COPIE DE MANDANT Lors de la création d’un nouveau mandant par copie de mandant dans SAP il est nécessaire en parallèle de mettre à jour la base locale d’historique des imports afin que les ordres de transports déjà importés dans le mandant source soient également présents dans le mandant cible. 3.6.1 MISE A JOUR DU FICHIER IMPORTLIVRAISON.INI Ajouter le nouveau mandant dans le fichier import livraison.ini pour l’instance donnée, sous la forme : <mandant> : {R|T},{ETABLISSEMENT},{ALL|CUST} R : mandant de référence, T : mandant de travail ALL : tous les ordres sont importés CUST : seuls les ordres mandant-dépendants doivent être importés 3.6.2 MISE A JOUR DE LA BASE LOCALE Lancer importlivraison en mode commande copie : Importlivraison.py P01 –cmd copy <mandant source> <mandant cible> Les ordres copiés sont filtrés en fonction du mandant cible ; si le mandant cible est de type ALL, tous les ordres sont copiés, et inversement si le mandant est de type CUST seuls les ordres CUST sont pris en compte pour la copie. 3.6.3 EXEMPLE Par exemple si l’on veut ajouter un mandant de travail : ajouter le mandant 510 : type T (travail) et CUST. [P01] [P01] 500: R,ETAB,ALL 500: R,ETAB,ALL 600: R,ETAB,CUST 510: T,ETAB,CUST 600: R,ETAB,CUST 3.7 SUPPRESSION DE MANDANT SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 14/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Le mode suppression de mandant permet d’effacer de la base locale un mandant ayant été supprimé sur une instance référencée précédemment afin que les livraisons à venir ne soient pas importées sur le mandant en question. 3.7.1 MISE A JOUR DE LA BASE LOCALE Lancer importlivraison en mode suppression de mandant: Importlivraison.py P01 –cmd del <n° du mandant> 3.7.2 MISE A JOUR DU FICHIER IMPORTLIVRAISON.INI Supprimer le mandant du fichier import livraison.ini pour l’instance donnée. 3.8 AUTRES FONCTIONS 3.8.1 LISTER LE CONTENU DE LA BASE LOCALE L’utilitaire permet également de retourner l’historique des ordres importés sur l’instance, y compris les imports s’étant terminés en erreur ainsi que les ordres importés sans vérification. Lancer importlivraison en utilisant le mode « list » : importlivraison.py –cmd list <SID> Par exemple : importlivraison.py –cmd list P01 SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 15/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria 3.9 IMPORTS DES LIVRAISONS EN PRE-PRODUCTION Une instance de pré-production SAP est habituellement constituée d’un mandant de référence (noté 300 dans la figure ci-dessous) ainsi que de mandants de travail créés par copie du mandant de référence (mandants 301, 302, ... dans cet exemple). Instance SAP Mandant Référence referentiel_<etablissement>.db ( ex . 300 ) : (multi-établissements sur même instance) Mandant 301 Mandant 302 Importlivraison.py referentiel_<etablissement>.db ... Mandant 3 xx Local_sifac.db Les mandants sont à cet effet définis par deux types distincts : Un type ALL, définissant que le mandant doit recevoir tous les ordres de transport. Un type CUST ne contenant que les ordres de transport mandant-dépendants et sur lequel seuls seront importés les OTs de type CUST ou SYST mandant-dépendants avec libellé SIFACD-ALL. Les étapes à suivre lors de l’import d’une livraison sont donc : 1. Extraction du fichier de livraison <etablissement_date>.zip pour l’établissement donné 2. Copie du (ou des) fichier referentiel_<etablissement>.db du serveur FTP vers le répertoire /usr/sap/trans/bin local. 3. Copie du contenu des répertoires cofiles et data extraits vers les répertoires du même nom sur le serveur dans /usr/sap/trans. 4. Lancement de l’import par de la livraison par importlivraison.py en précisant l’instance ainsi que le numéro de la livraison à importer. SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 16/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria Arborescence du serveur SAP /usr /sap /trans referentiel_<site>.db bin cofiles cofiles /... data data /... Copie des fichiers (Note : pour les serveurs sous Windows, /usr/sap/trans est à remplacer par (lettre disque SAP) /usr/sap/trans. 3.10 EXEMPLE D’IMPORT D’UNE LIVRAISON SIFAC EN PREPRODUCTION 1) Extraction du fichier de livraison <etablissement>_AAAAMMJJ-HHhMM.zip pour l’établissement donné 2) Copie du fichier referentiel_<etablissement> du serveur FTP vers le répertoire /usr/sap/trans/bin local. 3) Copie du contenu des répertoires cofiles et data extraits vers les répertoires du même nom sur le serveur dans /usr/sap/trans. 4) Se placer dans le répertoire /usr/sap/trans/bin puis lancer : importlivraison.py <SID> <numero livraison> Exemple : $ su – t99adm Password for t99adm : xxxxxxx $ cd /usr/sap/trans/bin SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 17/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria $ importlivraison.py T99 123 3.11 IMPORT DES LIVRAISONS EN PRODUCTION Une instance de production SAP est habituellement constituée d’un seul mandant de référence par établissement. Suite à l’import en pré-production, le référentiel de l’établissement ainsi que les Ots (data et cofiles) sont déjà présents dans les répertoires 1) Se placer dans le répertoire /usr/sap/trans/bin puis lancer : importlivraison.py <SID> <numero livraison> Exemple : $ su – p99adm Password for p99adm : xxxxxxx $ cd /usr/sap/trans/bin Fin du document SIFAC-EXP-TEC-IMPORT-LIVRAISON-SITE-V1.4_AMUE Page : 18/18 Toute reproduction ou communication, même partielle, tout transfert à un tiers sous quelque forme que ce soit, sont strictement interdits sans autorisation écrite de Steria