Ugrás a fő tartalomra

APEX alapok

Az Oracle Application Express (APEX) grafikus felülettel rendelkező integrált
alkalmazásfejlesztő eszköz, melynek segítségével Oracle adatbázist használó webes
alkalmazások fejleszthetők.


Ez a fejlesztőeszköz ingyenesen elérhető oracle adatbázisokhoz.
Használata kliens oldalon csak web böngészőt igényel.


Az APEX gyakorlatilag egy webes fejlesztőeszköz, mely indulásnál akár programozói tudás nélkül
is lehetőséget ad web alkalmazások fejlesztésére.


Mindemellett komolyabb rendszer fejlesztése a keretrendszer belső működésének ismerete és
némi webprogramozói tudást is igényelni fog gyakorlatilag bármilyen kinézetű
és funkcionalitású alkalmazás elkészíthető benne, igény szerint.


A hangsúly itt azon van, hogy nem a semmiből kell elkezdeni építkezni, illetve el lehet kezdeni
építeni az alkalmazást úgy is, hogy a későbbiekben tovább lehet finomítani a működést, amennyiben
igény van rá és a fejlesztő is érez magában késztetést, hogy mélyebben utánanézzen a dolgoknak,
például ezen a blogon keresztül.



Összefoglalva, aki APEX alkalmazás fejlesztésére szánja rá magát, nem szükséges, hogy egyből
egy felkészült programozó legyen.


Online tanulás és tesztcélú használat:

https://apex.oracle.com/en/
https://apex.oracle.com/pls/apex


Demo :



Online doksi:



Verziok :


Verzio kronologia:

HTML DB 1.5  / HTML DB 1.6     2004
HTML DB 2.0                             2005


2.1          2006.01
2.2          2006.10
3            2007.02
3.0.1       2007.07
3.1         2008.04
3.2         2009
4            2010.06
4.1         2011.08
4.1.1      2012.02
4.2         2012.10
4.2.1      2012.12
4.2.2      2013.04
4.2.3      2013.09
4.2.4      2013.12
4.2.5      2014.04
4.2.6      2014.09
5.           2015.04
5.0.1      2015.07
5.0.2      2015.10
5.0.3      2015.12
5.0.4      2016.07
5.1         2016.12
5.1.1      2017.03
5.1.2      2017.06
5.1.3      2017.09
5.1.4      2017.12
18.1.0    2018.05
18.2.0    2018.09
19.1.0    2019.03


Egyéb linkek:





 Az alkalmazás előre definiált komponensekből épül fel így a gyors fejlesztés során
 az implementációs részletek rejtve maradnak


Fejlesztő környezet jellemzői

   Alulról felfelé építkező (bottom up) módszertant köve a fejlesztési folyamat.
   Alapvetően deklaratív programfejlesztés, mely során feladatunk a komponensek
   jellemzőinek megfelelő beállítása.


 

   Oracle APEX alkalmazás komponensek (page types):


   – Jelentés (report): lekérdezés megjelenítése táblázatban
   – Chart (diagram): lekérdezés grafikus megjelenítése
   – Űrlap (form / tabular form): DML művelet végrehajtásához
   – Report and form: egy táblára vonatkozó DQL és DML művelet
   – Master Detail: az egymáshoz kapcsolódó táblák együttes kezeléséhez;
      a főtábla report és a részletező tábla módosítható (form)
   – Adatfeltöltő lap (Data Loading)
 


 

   Oracle APEX képernyő komponensek (aktív kezelőszervek):

     – Szövegmező (text field): alapértelmezés szerint módosítható a tartalma, de beállítható csak olvashatóra
    – Választógombok (radio button): egymást kizáró választási lehetőségek
    – Kapcsoló / jelölőnégyzet (checkbox): kétállapotú kapcsoló (kikapcsolt vagy bekapcsolt)
– Lista (list of values, LOV): lehet
         - egy ill. többválasztós
         - inline vagy popup (külön ablakban megjelenő)
         - statikus vagy dinamikus (sql lekérdezés eredménye)



Online minták:

 klajosw_websheet:  https://apex.oracle.com/pls/apex/ws?p=135666:home
klajosw_tracker :      https://apex.oracle.com/pls/apex/f?p=121145:LOGIN::::::
  klajos_ujlap  : https://apex.oracle.com/pls/apex/f?p=4900:101:8167624683199::NO::WS_APP_ID:135672&p_lang=en&p_territory=HUNGARY


Képernyő képek:
























Az ínyenceknek jelezném, hogy itt is van már dark téma használat:

















Pár hasznos script:


— Kizár/kizáródott apex felhasználó feloldása:
alter user APEX_xxxxxx account unlock; — APEX_040100




— Felhasználó kizárása
alter user APEX_xxxxxx account lock;




— Táblatér beállítására a SYS | SYSDBA role userrel alábbi parancs kiadása:
@apexins tablespace_apex tablespace_files tablespace_temp images
@apxrtins tablespace_apex tablespace_files tablespace_temp images



CREATE OR REPLACE TRIGGER tr_master_kl_tabla
BEFORE INSERT ON kl_tabla
FOR EACH ROW
BEGIN
:new_id := NVL(:new_id, seq_master.NEXTVAL); -- egész adatbázisban egy sekvencia ost azonosítot így a kulcsokkal rosz kapcsolatot nem tudnak létrehozni
END;




--- Névtelen blokk futtatás új admin felvételére a jelszó beállítására

BEGIN
wwv_flow_api.set_security_group_id (p_security_group_id=>10);
wwv_flow_fnd_user_api.create_fnd_user(
 p_user_name => 'kl_admin',
 p_email_address => 'kl@mierdekel.hu',
 p_web_password => 'kl_admin_password') ;
END;
/
COMMIT
/




— Adamin jeszó (újra) beállítása
— apxchpwd.sql



set define '&'
set verify off
prompt Enter a value below for the password for the Application Express ADMIN user.
prompt
prompt
accept PASSWD CHAR prompt 'Enter a password for the ADMIN user [] ' HIDE
alter session set current_schema = APEX_040000;
prompt ...changing password for ADMIN
begin
wwv_flow_security.g_security_group_id := 10;
 wwv_flow_security.g_user := 'ADMIN';
 wwv_flow_security.g_import_in_progress := true;
for c1 in (select user_id
 from wwv_flow_fnd_user
 where security_group_id = wwv_flow_security.g_security_group_id
 and user_name = wwv_flow_security.g_user) loop
wwv_flow_fnd_user_api.edit_fnd_user(
 p_user_id => c1.user_id,
 p_user_name => wwv_flow_security.g_user,
 p_web_password => '&PASSWD',
 p_new_password => '&PASSWD');
 end loop;
wwv_flow_security.g_import_in_progress := false;
end;
/
commit;





Mintak:






--- APEX alkalmazás link szerkezete:
http://<hostname>/ords/f?p=<appid>:<pageid >




--- Az APEX alapvdetően 3 db adatbázis sémát használ:
• APEX_PUBLIC_USER
• FLOWS_FILES
• APEX_050000





Hasznos APEX SQL


--- adatbázis nézetek lekérdezése(kb. 130 db)
select distinct apex_view_name from APEX_DICTIONARY order by 1;



--- Munkaterületek listája
select workspace ,workspace_id,schemas from APEX_WORKSPACES




--- Munkaterülter és sémák összerendelési táblája
select workspace_name,schema,to_char(schema_created,'YYYY/MM/DD HH24:MI:SS') schema_created from APEX_WORKSPACE_SCHEMAS





--- zárolt lapok listája
select workspace_display_name,application_id,page_id,locked_by,locked_on from apex_application_locked_pages




--- Alkalmazások listája
select workspace,application_id appid,application_name name,authentication_scheme auth from APEX_APPLICATIONS order by 1,2 ;




--- Legördülő lista objektumok (List Of Values: LOV)
select application_id ,list_of_values_name,list_of_values_query from APEX_APPLICATION_LOVS
where upper(lov_type) = 'DYNAMIC' and instr(upper(list_of_values_query),'ORDER BY') = 0 and application_id = 100 ;




---- alkalmazás oracle session adatainak lekérdezése
select sid, module, client_info, client_identifier, status from v$session where username = 'APEX_PUBLIC_USER' and status = 'ACTIVE';



---- adat mező érték kitakarás oracle szinten
grant execute on sys.dbms_redact to kl_sch; --- jog megadása
begin
dbms_redact.add_policy(
object_schema => 'KL_SCH',
object_name => 'VENDOR_INFO',
policy_name => 'SSN_INFO',
column_name => 'SSN',
function_type => dbms_redact.partial,
function_parameters => 'VVVFVVFVVVV,VVV-VV-VVVV,#,1,5',
expression => '1=1'
);
end;
/



--- Rövidítések:

APEX : Application Express
ACL  :  Access Control List
EPG  : Embedded PLSQL Gateway
EBS  : E-Business Suite
OAM  : Oracle Access Manager
OHS  : Oracle HTTP Server        // OHS / mod_plsql (Deprecated)
ORDS : Oracle Rest Data Services // GlassFish, Tomcat, and WebLogic
SSN  :  Social Security Number
SCAN : Single Client Access Name
RAS  :  Real Application Security
RASADM: Real Application Security Administration Application
QoS  :  Database Quality of Service
VPD  :  Virtual Private Database
Oracle E-Business Suite (EBS










Megjegyzések