Ceci est une ancienne révision du document !
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.
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.
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
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 );
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 );
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 )
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…).
#!/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
#!/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>
"
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)"
Créer un nouveau menu S@M à partir de rien.
4 fichiers CVS (dev_erra\appli\theme APEX\menu) sont à télécharger dans S@M (Shared Components → Static Files) :
2-1) Dans Shared Components → Templates, créer ou modifer la “list” du menu :
<ul class="multiLevelMenu ul_racine">
<li class="pointer_cursor" onclick="location.href='#LINK#';"> <img src="#IMAGE_PREFIX##IMAGE#" #IMAGE_ATTR# /> #TEXT# </li>
<li class="hasSubMenu default_cursor"> <img src="#IMAGE_PREFIX##IMAGE#" #IMAGE_ATTR# /> #TEXT# <div class="right-arrow"></div> </li>
<ul class="multiLevelMenu subMenu">
<li class="hasSubMenu default_cursor"> #TEXT# <div class="right-arrow"></div> </li>
<li class="pointer_cursor" onclick="location.href='#LINK#';"> #TEXT# </li>
</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)” :
<!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="#WORKSPACE_IMAGES#style_menu.css"> </head> <body #ONLOAD#> <!--[if lte IE 6]><div id="outdated-browser">#OUTDATED_BROWSER#</div><![endif]--> #FORM_OPEN#
<div id="footer"><div class="content"> #REGION_POSITION_05# <div id="customize">#CUSTOMIZE#</div> </div></div> #FORM_CLOSE# #DEVELOPER_TOOLBAR# #GENERATED_CSS# #GENERATED_JAVASCRIPT# <!-- RMORICE : ajout des fichiers js pour le menu --> <script src="#WORKSPACE_IMAGES#jquery-2.1.4.min.js"></script> <script src="#WORKSPACE_IMAGES#jquery.hoverIntent.minified.js" type="text/javascript"></script> <script src="#WORKSPACE_IMAGES#menu.js" type="text/javascript"></script> </body> </html>