Outils pour utilisateurs

Outils du site


dev_doc:mep:mep_1_09

Ceci est une ancienne révision du document !


MEP -> 1.09

Ce fichier correspond à la TO-DO liste pour la MEP 1.09.

Toutes les opérations à effectuer doivent être classées par “mission” (exemple : modification écran de création d'un ordre, mise en place du rapprochement de stock, etc..).

Chaque mission correspond à une section dans cette page. Un lien pour chaque mission doit être ajouté dans le sommaire ci-dessous pour pouvoir directement se placer sur la mission en cliquant sur ce lien.

Contacter Rénald pour une aide concernant la syntaxe Dokuwiki (ajout d'un lien interne dans le sommmaire, ajout d'une image, etc..)


SOMMAIRE

Rectification des options de profil

Mission

Lors d'un clonage, les options de profil n'étaient pas compatibles de la production vers les env de DEV,MIR etc.. car l'information stockée pour ces options de profil était un ID utilisateur, ID group, etc…

Pour résoudre ce problème, la colonne “val_niveau_prof” (qui stocke les ID) a été remplacée (mais pas supprimée) par la colonne “val_niveau_prof_code” contenant les CODES des users (ex : RMORICE), les codes des groups (ex : BO_SENIOR) etc… qui sont les mêmes d'un serveur à l'autre.

Elements pour MEP

1) Les fichiers à lancer :

Les fichiers sont flaggés sous “1_09”.

  • Jouer le script “alter_val_profil.sql” (emplacement : dev_erra → db → ALTER BDD) pour ajouter la colonne “val_niveau_prof_cod”e à VAL_PROFIL.
  • Jouer le script “UPDATE_VAL_PROFIL_CODE.sql” (emplacement : dev_erra → db → SQL) pour remplir cette colonne (script qui se base sur les valeurs présentes dans la colonne “val_niveau_prof”).
  • Jouer le fichier “profil_v_bdd.sql” (emplacement : dev_erra → db → VIEW) pour recréer la vue utiliser dans l'écran “Gestion de profil”.
  • Jouer le fichier fichier “VAL_PROFIL_AIUD.sql” (emplacement : dev_erra → db → TRIGGER) afin de régénérer le trigger associé à VAL_PROFIL.
  • Recompiler PROFIL_PKG (PKH et PKB).
  • Recompiler OUTILS_PKG (PKB).

2) Modifications APEX :

  • Dans S@M “Paramétrage → Audit”, cliquer sur le bouton “Initialisation des tables” afin que la nouvelle colonne soit paramétrable dans l'écran d'audit.
  • Dans la page 60 APEX : remplacer la “Region source” de la région “Option profil” par :
select 
"VAL_PROFIL_ID",
"PROFIL_ID", 
"NOM_PROFIL",
"DESC_PROFIL",
OUTILS_PKG.decode_desc_val_lov('NIV_PROFIL',niveau_profil) "NIVEAU_PROFIL",

-- ANCIENNE COLONNE AVEC GESTION DE PROFIL PAR ID
--===============================================
-- decode(niveau_profil,1,OUTILS_PKG.decode_desc_val_lov('NIV_PROFIL',niveau_profil)
--        ,2, (select (SELECT application_name
-- 	    FROM APEX_APPLICATION_ITEMS
-- 	    WHERE item_name = 'APP_NAME') from dual)
--        ,3,  APEX_UTIL.GET_GROUP_NAME(p_group_id => VAL_NIVEAU_PROF)
--        ,4, APEX_UTIL.GET_USERNAME(p_userid => VAL_NIVEAU_PROF) 
-- )
-- "VAL_NIVEAU_PROF",
--===============================================

"VAL_PROFIL",
APEX_UTIL.PREPARE_URL('f?p=&APP_ID.:92:&SESSION.:::92:P92_SANS_DATE,P92_NOM_TABLE,P92_CLE_TECH1:O,VAL_PROFIL,' || VAL_PROFIL_ID) URL_AUDIT,
"VAL_NIVEAU_PROF_CODE",

--WHO COLUMNS
"CREE_PAR",
"MODIFIE_PAR",
"DATE_CREATION",
"DATE_MAJ"

from "#OWNER#"."PROFIL_V"
order by profil_id, niveau_profil
  • Dans S@M “Paramétrage → “Option de profil”, directement sur l'écran : cliquer sur “actions → sélectionner colonnes” et positionner la colonne “val_niveau_prof_code” juste avant “audit”.

Ne pas oublier d'enregistrer cet état en cliquant sur “Actions → Enregistrer un état → Comme état par défaut → Principal → Appliquer”

  • Dans la page 60 APEX : remplacer le process “Ins Val Profil” par :
PROFIL_PKG.ins_VAL_PROFIL(
	p_profil_id    		=> :P60_PROFIL_ID
	,p_niveau_profil     	=> :P60_NIVEAU_PROFIL
	,p_val_niveau_prof_code	=> :P60_VAL_NIVEAU_PROF
	,p_val_profil	        => :P60_VAL_PROFIL
	,p_val_profil_id	=> :P60_VAL_PROFIL_ID
);
  • Dans la page 60 APEX : remplacer le process “Updte Val profil” par :
PROFIL_PKG.upd_VAL_PROFIL(
	p_profil_id    		        => :P60_PROFIL_ID
	,p_niveau_profil     		=> :P60_NIVEAU_PROFIL
	,p_val_niveau_prof_code		=> :P60_VAL_NIVEAU_PROF
	,p_val_profil	                => :P60_VAL_PROFIL
	,p_val_profil_id		=> :P60_VAL_PROFIL_ID
);
  • Remplacer le contenu de la liste de valeurs “LOV VAL NIVEAU OPTION PROFIL” par :
SELECT desc_val, return_val
FROM
(
SELECT 'Système' desc_val ,'SYSTEME' return_val
FROM DUAL
WHERE :P60_NIVEAU_PROFIL = 1
UNION
SELECT application_name desc_val, application_name return_val
FROM APEX_APPLICATIONS
WHERE application_id = :APP_ID
AND :P60_NIVEAU_PROFIL = 2
UNION
SELECT group_name desc_val, group_name val
FROM WWV_FLOW_GROUP_USERS
WHERE :P60_NIVEAU_PROFIL = 3
UNION
select user_name desc_val, user_name return_val
from APEX_040200.WWV_FLOW_USERS
WHERE :P60_NIVEAU_PROFIL = 4
)

Mail de supervision d'environnement

Mission

Créer un mail qui permet de visualiser l'état d'un environnement le matin (est-ce que l'historisation c'est bien passée, les imports fournisseurs, dépositaires, etc…).

Elements pour MEP

Les fichiers à lancer :

  • Compiler le nouveau SUPERVISION_PKG (PKH et PKB).
  • Créer le fichier supervision.sh sur l'environnement de PROD. Voici son contenu :

  • la 2eme ligne de ce script est bonne pour l'env de PROD ?

#!/bin/sh

. /u01/app/oracle/.profile

# paramètres du script :
#       $1 : login BDD
#       $2 : mdp BDD
#       $3 : nom du client
#       $4 : adresse(s) de destination (si plusieurs, les séparer d'une virgule

if [ ! $4 ]; then
    dest="support@salamander-soft.com"
else
    dest=$4
fi

script_sql=$(sqlplus -s  /nolog <<EOF
connect $1/$2

BEGIN
    SUPERVISION_PKG.ENVOI_MAIL('$dest');
END;
/
EOF
)

result=$script_sql

if [ $(echo "$result" | grep -e '^ERROR' | wc -l) -ne 0 ];then
    fic_html=$(./supervision_erreur.sh "$3" "$result")
    echo $fic_html | mailx -a "Content-Type: text/html" -s  "Supervision $1/[S@M-$3]" "$dest"
fi
  • Créer le fichier supervision_erreur.sh sur l'environnement de PROD. Voici son contenu :
#!/bin/sh

. /u01/app/oracle/.profile

echo "
<!DOCTYPE HTML PUBLIC '-//W3C//DTD XHTML 1.0 Transitional //EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
    <title>Supervision</title>
    <meta http-equiv='Content-Type' content='text/html; charset=utf-8'>
    <meta content='width=device-width'>
    <style type='text/css'>
    /* Fonts and Content */
    tr, td, h1, h2 { font-family: 'Helvetica Neue', Arial, Helvetica, Geneva, sans-serif; font-size:14px; }
    body { background-color: #2A374E; margin: 0; padding: 0; -webkit-text-size-adjust:none; -ms-text-size-adjust:none; }
    </style>

</head>
<body style='margin:0px; padding:0px; -webkit-text-size-adjust:none;'>
        <table width='100%' cellpadding='0' cellspacing='0' border='0' style='background-color:rgb(42, 55, 78)' >

                <tbody>
            <tr>
                <td align='center' bgcolor='#2A374E'>
                    <table  cellpadding='0' cellspacing='0' border='0'>
                        <tbody>

                            <tr>
                                <td align='center' class='w740'  width='740' height='20'></td>
                            </tr>

                            <!-- entete -->
                            <tr>
                                <td class='w740'  width='740' bgcolor='#696969'>

                                                                        <p style='color:#FFFFFF; font-size:30px; text-align:center;'>Supervision S@M du $(date +"%d-%m-%y")  - $1</p>

                                </td>
                            </tr>

                            <!--  separateur horizontal après header -->
                            <tr>
                                <td class='w740'  width='740' height='15' bgcolor='#ffffff'></td>
                            </tr>

                                                        <tr>
                                                                <td class='w740'  width='740' bgcolor='#ffffff'>
                                                                        <table  cellpadding='0' cellspacing='0' border='0'>
                                                                                <tbody>

                                                                                        <tr>
                                                                                                <!--marge à gauche -->
                                                                                                <td class='w30'  width='30'></td>
                                                                                                <!--FEU ROUGE ou VERT -->
                                                                                                <td class='w50'  width='50'>


                                                                                                <div style='background-color:#FF0000; width: 50px; height: 50px; text-align: center; vertical-align: middle; line-height: 50px; text-align: center; border-radius: 50px;'>K0</div>

                                                                                                </td>
                                                                                                <!--marge à droite du FEU -->
                                                                                                <td class='w30'  width='30'></td>
                                                                                                <!-- TITRE -->
                                                                                                <td class='w630'  width='630'>
                                                                                                <h1 style='color:#0E7693; font-size:22px;'>Connexion à la database $1 impossible</h1>
                                                                                                </td>
                                                                                        </tr>
                                                                                        <tr>
                                                                                                <!-- CONTENU -->
                                                                                                <td colspan='3'></td>
                                                                                                <td class='w600'  width='600'>
                                                                                                        <div style='color: #000000;'>
                                                                                                                $2
                                                                                                        </div>
                                                                                                </td>
                                                                                                <!--marge à droite -->
                                                                                                <td class='w30'  width='30'></td>
                                                                                        </tr>

                                                                                </tbody>
                                                                        </table>
                                                                </td>
                                                        </tr>
                                                        <!--  separateur horizontal-->
                            <tr>
                                <td class='w740'  width='740' height='15' bgcolor='#ffffff'></td>
                            </tr>

                                                        <tr>
                                <td class='w740'  width='740' height='15' bgcolor='#ffffff'></td>
                            </tr>

                            <!-- pied de page -->
                            <tr class='pagebottom'>
                                <td class='w740'  width='740' height='30' bgcolor='#696969'></td>
                            </tr>
                            <tr>
                                <td class='w740'  width='740' height='60'></td>
                            </tr>
                        </tbody>
                    </table>
                </td>
            </tr>
        </tbody>


    </table>
</body>
</html>
"
  • Ajout de la ligne suivante dans la CRONTAB du bon user de la PROD (mettre le bon CHEMIN) :
00 07 * * * /CHEMIN/supervision.sh "LOGIN ORACLE" "MDP ORACLE" "nom du client" "adresse mail de destination (paramètre optionnel : support@salamander-soft.com par défaut)"

Nouveau menu S@M

Mission

Créer un nouveau menu S@M à partir de rien.

Elements pour MEP


1) Les fichiers à télécharger dans S@M :

4 fichiers CVS (dev_erra\appli\theme APEX\menu) sont à télécharger dans S@M (Shared Components → Static Files) :

  • jquery-2.1.4.min.js.
  • jquery.hoverIntent.minified.js.
  • menu.js.
  • style_menu.js.


2) Modifications APEX :

2-1) Dans Shared Components → Templates, créer ou modifer la “list” du menu :

  • Code pour Before List Entry → List Template Before Rows :
<ul class="multiLevelMenu ul_racine">
  • Code pour Template Definition → List Template Current et Template Definition → List Template Noncurrent :
<li class="pointer_cursor" onclick="location.href='#LINK#';">
  <img src="#IMAGE_PREFIX##IMAGE#" #IMAGE_ATTR# />
  #TEXT#
</li>
  • Code pour Template Definition → List Template Current with Sublist Items et Template Definition → List Template Noncurrent with Sublist Items :
<li class="hasSubMenu default_cursor">
  <img src="#IMAGE_PREFIX##IMAGE#" #IMAGE_ATTR# />
  #TEXT#
  <div class="right-arrow"></div>
</li>
  • Code pour Before Sublist Entry → Sublist Template Before Rows :
<ul class="multiLevelMenu subMenu">
  • Code pour Sublist Entry → Sublist Template Current et Sublist Entry → Sublist Template Noncurrent :
<li class="pointer_cursor" onclick="location.href='#LINK#';">
  #TEXT#
</li>
  • Code pour Sublist Entry → Sublist Template Current with Sublist Items et Sublist Entry → Sublist Template Noncurrent with Sublist Items :
<li class="hasSubMenu default_cursor">
  #TEXT#
  <div class="right-arrow"></div>
</li>
  • Code pour After Sublist Entry → Sublist Template After Rows et After List Entry → List Template After Rows :
</ul>


2-2) Dans Shared Components → Templates, créer ou modifer la page “Salamander - One Level Tabs - Left and Right Sidebar (No fixed-width / DIV left and optional table-based right)” :

  • Remplacer le Definition → Header par :
<!DOCTYPE html>
<html lang="&BROWSER_LANGUAGE." xmlns="http://www.w3.org/1999/xhtml" xmlns:htmldb="http://htmldb.oracle.com" xmlns:apex="http://apex.oracle.com">
<head>
  <title>#TITLE#</title>
  <link rel="icon" href="#IMAGE_PREFIX#favicon.ico" type="image/x-icon">
  <link rel="shortcut icon" href="#IMAGE_PREFIX#favicon.ico" type="image/x-icon">
  #APEX_CSS#
#TEMPLATE_CSS#
#THEME_CSS#
#PAGE_CSS#
#APEX_JAVASCRIPT#
#TEMPLATE_JAVASCRIPT#
#APPLICATION_JAVASCRIPT#
#PAGE_JAVASCRIPT#
#HEAD#
  <link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0.css" type="text/css" />
  <!--[if IE]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie.css" type="text/css" /><![endif]-->
  <!--[if IE 6]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie6.css" type="text/css" /><![endif]-->
  <!--[if IE 7]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie7.css" type="text/css" /><![endif]-->

  <!-- RMORICE : ajout des fichiers css pour le menu -->
  <link rel="stylesheet" type="text/css" href="#APP_IMAGES#style_menu.css">

</head>
<body #ONLOAD#>
<!--[if lte IE 6]><div id="outdated-browser">#OUTDATED_BROWSER#</div><![endif]-->
#FORM_OPEN#
  • Remplacer le Definition → Footer par :
<div id="footer"><div class="content">
  #REGION_POSITION_05#
  <div id="customize">#CUSTOMIZE#</div>&nbsp;
</div></div>
#FORM_CLOSE#
#DEVELOPER_TOOLBAR#
#GENERATED_CSS#
#GENERATED_JAVASCRIPT#

  <!-- RMORICE : ajout des fichiers js pour le menu -->
  <script src="#APP_IMAGES#jquery-2.1.4.min.js"></script>
  <script src="#APP_IMAGES#jquery.hoverIntent.minified.js" type="text/javascript"></script>
  <script src="#APP_IMAGES#menu.js" type="text/javascript"></script>
</body>
</html>


2-3) Désactiver (Conditions : never) l'ancien menu sur la page 0 et 1.

2-4) Sur la page 0, créer une nouvelle région :

  • de type HTML.
  • Title : IMAGE.
  • Region Template : Breadcrumb Region.
  • Pas de Parent Region.
  • Display Point : After Header.

Une fois cette région créée, il faut :

  • rajouter “left_img_container” dans sa propriété Attributes → Region CSS Classes.
  • mettre Start New Grid à Yes.
  • mettre Column à 1.
  • s'assurer que Column span est sur Automatic.

2-5) Sur la page 0, créer une nouvelle région :

  • de type List.
  • Title : pulldown_menu.
  • Region Template : No Template.
  • Pas de Parent Region.
  • Display Point : After Header.
  • List : Pull Down Menu.
  • List Template : La List template que vous avez créé précédemment!

Une fois cette région créée, il faut :

  • mettre Start New Grid à NO.
  • mettre Column à 2.
  • s'assurer que Column span est sur Automatic.
  • Sélectionner “Current Page is NOT in Expression 1” pour le Condition Type et écrire 2,101,102 dans Expression 1.

Modifications du template

Mission

Modifier le template pour mieux placer, centrer, etc… les éléments.

Elements pour MEP

1) Pour supprimer la barre d'onglet, il faut :

  • supprimer pour chaque page la référence aux onglets en positionnant dans la définition de la page l'élément Standard Tab Set à %.
  • dans la partie body du page template de “Salamander - One Level Tabs - Left and Right Sidebar (No fixed-width / DIV left and optional table-based right)”, ajouter l'attribut style=“height: 3px;” à la balise div ayant une class=“bg”.

2) Pour placer l'image de la page à gauche du menu, il faut :

  • changer le User Interface → Region sur la région IMAGE qui a été créée précédemment.
  • ajouter une image pour la page 1.

3) Pour placer le Nb ordres à valider FO à droite du menu, commencer par désactiver l'ancien report “Nombre d'ordres validés par FO” puis créer une nouvelle région :

  • de type HTML.
  • Title : Nb Ordres valid FO.
  • Region Template : Region without Title.
  • Pas de Parent Region.
  • Display Point : After Header.

Une fois cette région créée, il faut :

  • mettre Grid Layout → Start New Row à NO.


4) Pour placer le PTF par défaut en dessous du menu :

  • mettre le Display Point sur After Header.


5) Pour appliquer les modifications au template (images du header, le contenu des pages scrollable, supression footer, etc…), modifier le template Salamander - dérivé de One Level Tabs - Left and Right Sidebar (No fixed-width / DIV left and optional table-based right) :

  • remplacer le code de Definition → Header par :
<!DOCTYPE html>
<html lang="&BROWSER_LANGUAGE." xmlns="http://www.w3.org/1999/xhtml" xmlns:htmldb="http://htmldb.oracle.com" xmlns:apex="http://apex.oracle.com">
  <head>
    <title>#TITLE#</title>
    <link rel="icon" href="#IMAGE_PREFIX#favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="#IMAGE_PREFIX#favicon.ico" type="image/x-icon">
    #APEX_CSS#
    #TEMPLATE_CSS#
    #THEME_CSS#
    #PAGE_CSS#
    #APEX_JAVASCRIPT#
    #TEMPLATE_JAVASCRIPT#
    #APPLICATION_JAVASCRIPT#
    #PAGE_JAVASCRIPT#
    #HEAD#
    <link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0.css" type="text/css" />
    <!--[if IE]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie.css" type="text/css" /><![endif]-->
    <!--[if IE 6]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie6.css" type="text/css" /><![endif]-->
    <!--[if IE 7]><link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_1/css/theme_4_0_ie7.css" type="text/css" /><![endif]-->

    <!-- RMORICE : ajout des fichiers css pour le menu -->
    <link rel="stylesheet" type="text/css" href="#APP_IMAGES#style_menu.css">

    <style>
    </style>

  </head>
  <body #ONLOAD#>

    <div id="header_modif">
      <div id="logo_modif"><a href="#HOME_LINK#">#LOGO##REGION_POSITION_06#</a></div>
      <div id="salamander_release">
        <img src="#WORKSPACE_IMAGES#Salamander.jpg" alt="logo Salamander"/>
        #APP_VERSION#
      </div>
      #REGION_POSITION_07#
      <div id="navbar_modif">
        #NAVIGATION_BAR#
        <div class="app-user">#WELCOME_USER#</div>
        #REGION_POSITION_08#
      </div>
    </div>

    <!--[if lte IE 6]><div id="outdated-browser">#OUTDATED_BROWSER#</div><![endif]-->
    #FORM_OPEN#
  • remplacer le code de Definition → Body par :
<style type="text/css">
      #header {
    height: 0px;
}
</style>

<div id="tabs">
  <div class="frame">
    <div class="bg" style="height: 3px;">
      <div class="tab-holder">
        #TAB_CELLS#
      </div>
    </div>
  </div>
</div>
<div id="topbar">#REGION_POSITION_01##REGION_POSITION_04#</div>
<div id="messages">#SUCCESS_MESSAGE##NOTIFICATION_MESSAGE##GLOBAL_NOTIFICATION#</div>

<div id="body">
    <div id="three-col-tbl">
      <table class="tbl-body" cellspacing="0" cellpadding="0" border="0" summary="">
        <tbody>
          <tr>
            <td class="tbl-sidebar">#REGION_POSITION_02#</td>
            <td class="tbl-main" width="100%">#BOX_BODY#</td>
            <td class="tbl-sidebar">#REGION_POSITION_03#</td>     
          </tr>
        </tbody>
      </table>
    </div>
</div>
  • remplacer le code de Definition → Footer par :
    <!-- RMORICE : supression du footer -->
    <!-- <div id="footer">
      <div class="content">
        #REGION_POSITION_05#
        <div id="customize">#CUSTOMIZE#</div>&nbsp;
        </div>
    </div> -->
    #FORM_CLOSE#
    #DEVELOPER_TOOLBAR#
    #GENERATED_CSS#
    #GENERATED_JAVASCRIPT#

    <!-- RMORICE : ajout des fichiers js pour le menu -->
    <script src="#APP_IMAGES#jquery-2.1.4.min.js"></script>
    <script src="#APP_IMAGES#jquery.hoverIntent.minified.js" type="text/javascript"> </script>
    <script src="#APP_IMAGES#menu.js" type="text/javascript"></script>
  </body>
</html>

6) Modifier la taille de l'image de la page de connexion

  • Région “Login Image** / Image Tag Attributes ⇒ style=“width:300px; margin:50 auto;”
  • Région “Salamander Asset Management”:
  1. P101_LOGO ⇒ Condition = Never
  2. P101_USER_NAME ⇒ Label Alignement = Left Center
  3. P101_PASSWORD ⇒ Label Alignement = Left Center

7) Ajustements apportés au fichier menu.css (update KO sur CVS !??!)

li.hasSubMenu > div.right-arrow {
  display : inline-block;
	border-top: 5px solid transparent;
	border-bottom: 5px solid transparent;
	border-left: 10px solid #C72729;
        float: right
}
/* propriétés communes des "ul" du menu header */
/*--------------------------------------------*/

ul.multiLevelMenu li, ul.subMenu li{
  position: relative;
  display: inline-block;
  width: 85px;
  padding: 5px 5px 5px 5px;
  text-align: center;
  background-color: #FFFFFF;
  color: #000000;
}
.showSubMenuNear {
  top: -4px;
  left: 80px;
}

8) Créer liste menu pour dropdown (récupérer celle de DEV) + créer liste dynamique utilisé par template.

dev_doc/mep/mep_1_09.1448383862.txt.gz · Dernière modification: 2020/12/21 19:43 (modification externe)