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="hasSubMenu default_cursor">
  #TEXT#
  <div class="right-arrow"></div>
</li>
  • Code pour Sublist Entry → Sublist Template Current with Sublist Items et Sublist Entry → Sublist Template Noncurrent with Sublist Items :
<li class="pointer_cursor" onclick="location.href='#LINK#';">
  #TEXT#
</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>
dev_doc/mep/mep_1_09.1447941273.txt.gz · Dernière modification: 2020/12/21 19:43 (modification externe)