prog:oracle_apex_show_runtime_enviroment_prd_tst
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
prog:oracle_apex_show_runtime_enviroment_prd_tst [2018/03/21 21:54] – [Oracle Apex 5 - Die aktuelle Umgebung per Banner auf allen Seiten anzeigen] gpipperr | prog:oracle_apex_show_runtime_enviroment_prd_tst [2018/03/21 22:09] (aktuell) – [Oracle Apex 5 - Die aktuelle Umgebung per Banner auf allen Seiten anzeigen] gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | =====Oracle Apex 5 - Die aktuelle Umgebung per Banner auf allen Seiten anzeigen===== | ||
+ | |||
+ | **Apex 5 unter Oracle 12c R1** | ||
+ | |||
+ | **Aufgabe: | ||
+ | |||
+ | Banner einblenden um die Umgebung (TST/PRD) läuft eindeutig zu unterscheiden. | ||
+ | |||
+ | Dazu sollten keine Einstellungen in der Applikation notwendig werden.die Apex App muss das selber merken. | ||
+ | Das Deployment über den sehr weit entfernten und sehr unmotivierten outgesourcten Partner des, vom externen IT Dienstleister, | ||
+ | |||
+ | |||
+ | Banner im Header von Apex um zu erkennen in welcher Umgebung wir sind: | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | **Idee**: | ||
+ | |||
+ | * Globales Applikation Item anlegen um bei Start der Session die Umgebung zu hinterlegen | ||
+ | * Prozess auf Login Page erstellen um diese Variable zu füllen | ||
+ | * Global Page 0 erstellen und dort eine Region für das Banner erstellen, dieser Region "ohne alles" anlegen, diese Region mit einer Static ID und mit eigenen CSS Klassen je nach Umgebung dynamisch konfigurieren | ||
+ | * Stylesheet der Applikation anpassen | ||
+ | |||
+ | |||
+ | Problem: Banner lässt sich nur im Kopf in der " | ||
+ | |||
+ | Mit etwas Java Script ließe sich das auch bestimmt anders wo hinschieben. | ||
+ | |||
+ | **Alternativ** | ||
+ | |||
+ | Alternativ ließe sich das ganze natürlich auch ganz in Java Script lösen, so bleiben wir aber mit wenig Aufwand nah am Standard von Apex, die Wartung sollte dadurch so einfach wie möglich werden. | ||
+ | |||
+ | Etwas schöner wird es noch wenn selber ein DIV mit den entsprechenden Klassen im Template der Page hinterlegt wird, dann lässt sich das besser im Kopf der Seite positionieren, | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | ==== Umsetzung ==== | ||
+ | |||
+ | |||
+ | === Applikation Item anlegen== | ||
+ | |||
+ | Unter Application 500 \ Shared Components \ Application Items anlegen | ||
+ | * GLOBAL_ENV_CLASS | ||
+ | * GLOBAL_ENV_NAME | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | === Process auf Login Page === | ||
+ | |||
+ | |||
+ | Applications > 500 - GPI_ADMIN > Pages > 2 - Login Page > Processes > GET_ENV | ||
+ | |||
+ | <code plsql> | ||
+ | |||
+ | declare | ||
+ | |||
+ | v_http_host varchar2(2000): | ||
+ | v_env | ||
+ | v_class | ||
+ | |||
+ | begin | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | if instr(v_http_host,' | ||
+ | if instr(v_http_host,' | ||
+ | if instr(v_http_host,' | ||
+ | | ||
+ | : | ||
+ | : | ||
+ | |||
+ | end; | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | === Globale Seite 0 === | ||
+ | |||
+ | Über den Page Wizard und über das Template " | ||
+ | |||
+ | Alles auf der Seite 0 wird auf jeder Apex Seite in der gesamten Applikation angezeigt | ||
+ | |||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | === Region für das Banner auf Page 0 === | ||
+ | |||
+ | Region anlegen: | ||
+ | * Titel: Enviroment | ||
+ | * Type: Static Content | ||
+ | * Text: & | ||
+ | * Template: Blank with no Attibute | ||
+ | * CSS Classes: RUNTIME_ENVIRONMENT_& | ||
+ | * Statik ID: RUNTIME_ENVIRONMENT_FLAG | ||
+ | * Comments: Global Value set by Process get_env on the login page | ||
+ | |||
+ | In "CSS Classes" | ||
+ | |||
+ | Über die Referenzierung mit & | ||
+ | |||
+ | Die Statik ID kann dann bei Bedarf verwendet werden um das ganze noch mit JavaScript zu hübschen. | ||
+ | |||
+ | ---- | ||
+ | |||
+ | === CSS Style Sheet der Applikation anpassen=== | ||
+ | |||
+ | Für jede Umgebung ist ein Style hinterlegt, die gemeinsamen Eigenschaften sind über die Klasse | ||
+ | |||
+ | Über den Theme Roller " | ||
+ | <code css> | ||
+ | .RUNTIME_ENVIRONMENT { | ||
+ | border: 1px solid #ffffcc; | ||
+ | position: absolute; | ||
+ | left: 30em; | ||
+ | top: 5px; | ||
+ | width: 250px; | ||
+ | height: 30px; | ||
+ | padding: 5px; | ||
+ | text-align: center; | ||
+ | vertical-align: | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_PROD: | ||
+ | font-family: | ||
+ | top: | ||
+ | left: | ||
+ | padding-right: | ||
+ | font-size: 2rem; | ||
+ | content: " | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_PROD { | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_TEST: | ||
+ | font-family: | ||
+ | top: | ||
+ | left: | ||
+ | padding-right: | ||
+ | font-size: 2rem; | ||
+ | content: " | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_TEST { | ||
+ | background-color: | ||
+ | color: #663300; | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_DEV: | ||
+ | font-family: | ||
+ | top: | ||
+ | left: | ||
+ | padding-right: | ||
+ | font-size: 2rem; | ||
+ | content: " | ||
+ | } | ||
+ | |||
+ | .RUNTIME_ENVIRONMENT_DEV | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | Passende Icons über https:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ==== Quellen ==== | ||
+ | |||
+ | Icons: | ||
+ | |||
+ | * https:// | ||
+ | |||
+ | Oracle OWA_UTIL | ||
+ | * https:// | ||
prog/oracle_apex_show_runtime_enviroment_prd_tst.txt · Zuletzt geändert: 2018/03/21 22:09 von gpipperr