====== Installer une livraison ====== Cette page présente les étapes d'une installation de livraison. ---- ===== SOMMAIRE ===== * **[[#refresh_rec|1) Rafraîchir l'environnement de recette]]**. * **[[#composants|2) Installer les nouveaux composants BDD]]**. * **[[#reports|3) Reports JASPER]]**. * **[[#ecrans|4) Installer les nouveaux écrans sur l'environnement de recette]]**. * **[[#mep_officium|5) Opérations sur le fichier f104.sql pour la MEP]]**. ---- ===== 1) Rafraîchir l'environnement de recette ===== AVANT-PROPOS : Exporter l'environnement de recette pour posséder une sauvegarde (grâce au menu "**Export / Import**"de l'interface de développement de l'application APEX). Pour le rafraîchissement, toute la démarche à suivre est [[dev_doc:clonage:refresh_dev_mir_demo_recette_depuis_prod#recette|disponible ICI]] (rubrique : **Rafraîchir __RECETTE___SALAMANDER**). ---- ===== 2) Installer les nouveaux composants BDD ===== Bien remplacer la version surlignée comme ici par celle de votre livraison Soit la montée de version correspondant au flag CVS "**V1_10**" : * Sur son poste, créer un par exemple le répertoire "**check_V1_10**". * Clic droit dessus puis choisir "**CVS Emprunter**". Cela ouvre Tortoise. {{ :dev_doc:mep:tortoise_livraison.png?nolink |Tortoise}} * Aller dans l’onglet "**Version**" Puis sélectionner "**Choisir une branche/balise**". * Cocher "**Parcourir les sous-répertoires**" et cliquer sur "**Actualiser la liste...**". Le menu déroulant (HEAD) est à jour. * Dans le menu déroulant, choisir V1_10 et cliquer sur "**OK**". * **Ne pas fermer la fenêtre TORTOISE qui apparaît !!!!** * Tous les composants à livrer sont maintenant isoler dans le répertoire "**check_V1_10**". * Clic droit sur la fenêtre Tortoise qu’on a laissé ouverte. * Choisir "**Select All**". * Clic droit à nouveau puis copier. \\ Il s’agit maintenant de préparer un script de livraison que l’on exécutera pas à pas. * Ouvrir un éditeur de texte (avoir retour-chariots UNIX) et coller le contenu du presse-papier (combinaison CTRL-V ou clic droit -> coller). * Supprimer l’entête CVS : Dans C:\Users\alex\Documents\cvs_salamander\check_V1_10 : "C:\Program Files (x86)\CVSNT\cvs.exe" -q checkout -r V1_10 -P dev_erra CVSROOT=:pserver:agalmiche@176.31.124.216:/home/dev_erra/cvs * Voici l'ensemble des autres modifications à apporter au fichier : - Les rapports Jasper sont directement transférer via FTP, cependant on les laissent pour en garder la liste. - Modifier "**ALTER BDD**" par "**ALTER_BDD**". Renommer également le dossier associé. - Modifier "**SCRIPTS DATAFIX**" par "**SCRIPTS_DATAFIX**". Renommer également le dossier associé. - Remplacer les "**U 'espace'**" par "**@**" - Pour éliminer au maximum les dépendances, mettre dans l’ordre les sous-parties "**ALTER_BDD**", "**BDD**", "**SQL**", "**PLSQL**" (avec d’abord les familles PKH + PKB dans cet ordre, puis les PKB seuls), "**VIEWS**", puis **les triggers**. __Voici un script exemple :__ U dev_erra/appli/reports/report_client_MIFID.jasper U dev_erra/appli/reports/report_client_MIFID.jrxml U dev_erra/appli/reports/report_client_cash.jasper U dev_erra/appli/reports/report_client_cash.jrxml U dev_erra/appli/reports/report_client_detail_MIFID.jasper U dev_erra/appli/reports/report_client_detail_MIFID.jrxml U dev_erra/appli/reports/report_client_detail_frais.jasper U dev_erra/appli/reports/report_client_detail_frais.jrxml U dev_erra/appli/reports/report_client_espece.jasper U dev_erra/appli/reports/report_client_espece.jrxml U dev_erra/appli/reports/report_client_liste_conso.jasper U dev_erra/appli/reports/report_client_liste_conso.jrxml U dev_erra/appli/reports/report_client_page1_MIFID.jasper U dev_erra/appli/reports/report_client_page1_MIFID.jrxml U dev_erra/appli/reports/report_client_synth.jasper U dev_erra/appli/reports/report_client_synth.jrxml U dev_erra/appli/reports/report_client_synth_conso.jasper U dev_erra/appli/reports/report_client_synth_conso.jrxml @dev_erra/db/ALTER_BDD/ALTER_PORTEFEUILLE_3.sql @dev_erra/db/ALTER_BDD/alter_tiers3.sql @dev_erra/db/ALTER_BDD/alter_valeur3.sql @dev_erra/db/SQL/INIT_LOV_BDD_FILTRE_CLIENTS_FO.sql @dev_erra/db/SQL/INIT_LOV_BDD_SYS_JOUR_SEMAINE.sql @dev_erra/db/SQL/INIT_PROFIL_HEURE_CUTOFF_DEFAUT.sql @dev_erra/db/SQL/INIT_PROFIL_TOLERANCE_ECH_RISK_PTF.sql @dev_erra/db/SQL/INIT_PROFIL_TOLERANCE_TX_RETRO_REEL_PTF.sql @dev_erra/db/PLSQL/FEEDBACK_PKH.sql @dev_erra/db/PLSQL/FEEDBACK_PKB.sql @dev_erra/db/PLSQL/PORTEFEUILLE_PKH.sql @dev_erra/db/PLSQL/PORTEFEUILLE_PKB.sql @dev_erra/db/PLSQL/GESTION_ACCES_PKH.sql @dev_erra/db/PLSQL/GESTION_ACCES_PKB.sql @dev_erra/db/PLSQL/REPORTING_PKH.sql @dev_erra/db/PLSQL/REPORTING_PKB.sql @dev_erra/db/PLSQL/TIERS_PKH.sql @dev_erra/db/PLSQL/TIERS_PKB.sql @dev_erra/db/PLSQL/USER_CONNEXION_PKH.sql @dev_erra/db/PLSQL/USER_CONNEXION_PKB.sql @dev_erra/db/PLSQL/VALEUR_PKH.sql @dev_erra/db/PLSQL/VALEUR_PKB.sql @dev_erra/db/PLSQL/JOBS_PKB.sql @dev_erra/db/PLSQL/CALCUL_PTF_BATCH_PKB.sql @dev_erra/db/PLSQL/CONSOLIDATION_PKB.sql @dev_erra/db/VIEW/Extournable_v_bdd.sql @dev_erra/db/VIEW/Extournes_cours_v_bdd.sql @dev_erra/db/VIEW/Ordre_masse_v.sql @dev_erra/db/VIEW/Ordre_v_bdd.sql @dev_erra/db/VIEW/Rappro_mvt_v.sql @dev_erra/db/VIEW/operation_v.sql @dev_erra/db/VIEW/portefeuille_synth_v_bdd.sql @dev_erra/db/VIEW/portefeuille_v_bdd.sql @dev_erra/db/VIEW/ptf_ligne_masse_detach_v.sql @dev_erra/db/VIEW/ptf_ligne_masse_ha_vte_v.sql @dev_erra/db/VIEW/tiers_synth_v_bdd.sql @dev_erra/db/VIEW/tiers_v_bdd.sql @dev_erra/db/VIEW/valeur_synth_v_bdd.sql @dev_erra/db/TRIGGER/PORTEFEUILLE_AIUD.sql @dev_erra/db/TRIGGER/TIERS_AIUD.sql @dev_erra/db/TRIGGER/VALEUR_AIUD.sql * Sous Linux, créer le répertoire "**/u01/app/livraison/V1_10**". * Transférer par FTP le contenu de "**check_V1_10**" dans ce répertoire. * Vérifier que le répertoire "**/u01/app/livraison/V1_10/dev_erra**" (et sous-répertoires) ont bien pour utilisateur propriétaire 'ora11g2' et pour groupe propriétaire 'dba'. * Recompiler les objets invalides en lancant les commande : - cd /u01/app/ora11g2/product/11.2.0/xe/rdbms/admin - sqlplus / as sysdba - @utlrp.sql - //SQL>// select count(*) from all_objects where status = 'INVALID' and owner ='RECETTE_SALAMANDER'; (**cela doit retourner 0**) * Aller dans "**/u01/app/livraison/V1_10**" puis exécuter la commande "**sqlplus RECETTE_SALAMANDER/RECETTE_SALAMANDER**". Il faut ensuite lancer pas à pas les commandes "**@ ......**" du script. Par exemple : SQL*Plus: Release 11.2.0.2.0 Production on Sam. Févr. 13 14:33:42 2016 Copyright (c) 1982, 2010, Oracle. All rights reserved. Entrez le mot de passe : Connecté à : Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> @dev_erra/db/ALTER_BDD/ALTER_PORTEFEUILLE_3.sql Table modifiée. SQL> @dev_erra/db/ALTER_BDD/alter_tiers3.sql Table modifiée. SQL> @dev_erra/db/ALTER_BDD/alter_valeur3.sql Table modifiée. SQL> … Etc … SQL> SQL> @dev_erra/db/TRIGGER/PORTEFEUILLE_AIUD.sql Déclencheur créé. SQL> @dev_erra/db/TRIGGER/TIERS_AIUD.sql Déclencheur créé. SQL> @dev_erra/db/TRIGGER/VALEUR_AIUD.sql Déclencheur créé. SQL> SQL> SQL> SQL> exit * Corriger les éventuelles erreurs (lignes vides dans les scripts, pas de / à la fin, format UTF-8 non respecté, dépendances, …) * Dans le cas des dépendances, penser à mettre le script à jour. * Recompiler les objets invalides au besoin : - cd /u01/app/ora11g2/product/11.2.0/xe/rdbms/admin - sqlplus / as sysdba - @utlrp.sql - //SQL>// select count(*) from all_objects where status = 'INVALID' and owner ='RECETTE_SALAMANDER'; (**cela doit retourner 0**) ---- ===== 3) Reports JASPER ===== * Se connecter au serveur en tant que root. * Lancer la commande : **cp -r /var/lib/tomcat6/webapps/JasperReportsIntegration/reports/MyReports /var/lib/tomcat6/webapps/JasperReportsIntegration/reports/MyReports_SAV_before_1_10** * Lancer la commande : ** cd /u01/app/livraison/V1_10/dev_erra/appli/reports** * Lancer la commande **cp *jasper /var/lib/tomcat6/webapps/JasperReportsIntegration/reports/MyReports** * Lancer la commande **cp *jrxml /var/lib/tomcat6/webapps/JasperReportsIntegration/reports/MyReports** * Lancer la commande **cd /var/lib/tomcat6/webapps/JasperReportsIntegration/reports/MyReports** * Lancer la commande **chown tomcat6:tomcat6 * ** ---- ===== 4) Installer les nouveaux écrans sur l'environnement de recette ===== Exporter l'environnement contenant les nouveaux écrans. Ne pas oublier de mettre l'option "Export Private Interactive Reports" à YES ! Sauvegarder l'environnement de recette ! === 4-1) Nouvel écran === * Importer l'environnement contenant les nouveaux écrans sur l'environnement de recette juste 'à côté' de l'application recette. * Se rendre dans l'application recette puis importer les nouveaux écrans en utilisant l'option "**New page as copy**". ATTENTION : le fait de copier la page d'une application vers une autre demande à repositionner certains paramètres. Penser à checker : - repositionner les LOV des colonnes report si elles ont sautées. - pour les messages d'alerte Javascript, s'assurer que le shortcut APEX soit bien créé pour la variable globale Javascript du message. - les boutons déclencheurs de processus. - positionnement et contenu de l'historique de navigation (breadcrumbs). Vérifier qu'il fonctionne à l'écran ! - positionnement de l'image de la page. - alias de page. - groupe de page. Ne pas oublier de préciser le numéro de la nouvelle version sur l'environnement de recette après installation. === 4-2) Écran modifier === Si un écran à subit des modifications, deux cas sont possibles : - **Soit cet écran en PRODUCTION n'a pas été modifié depuis le refresh de l'environnement de développement**. Dans ce cas, il faut supprimer puis recréer la page comme copie en suivant la même procédure que le paragraphe précédent.\\ \\ - **Soit il a été modifié depuis le refresh de l'environnement de développement**. Dans ce cas, il faut effectuer manuellement toutes les modifications sur l'écran de l'environnement de recette si elles sont minimes. Dans le cas contraire, supprimer l'écran sur recette pour le réinstaller depuis la sauvegarde de dev. ---- ===== 5) Opérations sur le fichier f104.sql pour la MEP ===== Opérations à réaliser uniquement pour la MEP ! Changement d'adresse IP Jasper + nom de l'appli : sed -e 's/p_substitution_value_03.*176.31.124.216/p_substitution_value_03=>'"'"'37.59.28.36/g' f104.sql > f104_new.sql sed -e 's/RECETTE_SALAMANDER/SALAMANDER/g' f104_new.sql > f104.sql sed -e 's/p_substitution_value_02.*support@salamander-soft.com/p_substitution_value_02=>'"'"'middle@officium.com/g' f104.sql > f104_new.sql sed -e 's/p_substitution_value_06.*recette_apex5/p_substitution_value_06=>'"'"'defaut_apex5/g' f104_new.sql > f104.sql Vérifier le code suivant dans le fichier : 'v_data_source varchar2(30):=''default'';'||unistr('\000a')|| 'begin'||unistr('\000a')|| '--APEX_APPLICATION.G_REQUEST := ''NO_PRINT'';'||unistr('\000a')|| ''||unistr('\000a')|| ' xlib_jasperreports.set_report_url(:G_TOMCAT_URL);'||unistr('\000a')|| 'IF :P5_TYPE_EDITION = ''EDIT_ORDRE'' then'||unistr('\000a')|| ' xlib_jasperreports.show_report (p_rep_name => ''MyReports/ordre5_1'','||unistr('\000a')|| ' p_rep_format => xlib_jaspe'; p:=p||'rreports.c_rep_format_pdf,'||unistr('\000a')|| ' p_data_source => v_data_source,'||unistr('\000a')|| ' p_out_filename => ''officium_ordre_''|| :P5_ORDRE_ID||''.pdf'','||unistr('\000a')|| ' p_rep_locale => ''fr_FR'','||unistr('\000a')|| ' p_additional_params => ''OrdreID='' || :P5_ORDRE_ID);'||unistr('\000a')|| p_substitution_string_01 => 'G_TOMCAT_URL', p_substitution_value_01 => 'http://37.59.28.36:8580/JasperReportsIntegration/report', p_substitution_string_02 => 'G_MAIL_MO', p_substitution_value_02 => 'middle@officium.com', p_substitution_string_03 => 'G_DOMAIN_DOKUWIKI', p_substitution_value_03 => '176.31.124.216', p_substitution_string_04 => 'G_CLIENT_NAME', p_substitution_value_04 => 'Officium', Ensuite pour installer, se positionner dans le répertoire du fichier 104.sql. Ensuite : sqlplus / as sysdba select ID,to_char(SECURITY_GROUP_ID) , ALIAS, NAME from APEX_050000.wwv_flows where NAME = 'SALAMANDER'; sqlplus SALAMANDER begin apex_application_install.set_workspace_id( to_char(SECURITY_GROUP_ID) du select au-dessus ); apex_application_install.set_application_id( ID du select au-dessus ); apex_application_install.generate_offset; apex_application_install.set_schema( 'SALAMANDER'); apex_application_install.set_application_alias( 'F' || apex_application_install.get_application_id ); end; / @f104.sql