100% Generacji Oracle Forms w Designer 6i Tomasz Kazimierski Principle Consultant
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Co to jest Oracle Designer? y =ELyUQDU]G]LGRPRGHORZDQLDL generacji y Projektowanie i budowa aplikacji dla Oracle 8i y Oracle Repository y =ELHUDQLH]DáR*H y Wspieranie pracy grupowej y (ODVW\F]QHURGRZLVNRSURMHNWRZH
Techniki rozwoju systemu Wymagania biznesowe Proces Informacja Analiza Projekt Browser: http:// Action Edit Block Filed Hollywood Customers: + X Aplikacja Budowanie/ µzfljdqlh
Projektowanie oparte o model Triggers Indexes Synonyms Primary Key Unique Keys Check Constraints Sequence Domain EMP_DEPT_FK Mandatory Optional Datatype icons Valid values Foreign Keys Secondary elements EMP_EMP_FK
*HQHUDFMDVHUZHUDLµZFLJDQLH DB2 DB2 workbench DB2 MVS 4.x DB/2 CW Oracle Repository Microsoft SQL Server Sybase Rdb ODBC Databases ANSI SQL DDL
Generatory Dynamic HTML Oracle Forms Java UI Server API y Encapsulate business rules Business logic Auto generation y Support application architecture Transaction support Journaling & denormalization Validate constraints
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Nowe cechy Designera 6i y &HO3UDNW\F]QHZVSLHUDQLHGX*\FK SU]HGVLZ]LüLQIRUPDW\F]Q\FK y 1DMZD*QLHMV]H]PLDQ\ Repozytorium: Wersjonowanie Repozytorium: Pliki i foldery 5HSR]\WRULXP$QDOL]D]DOH*QRFL Generatory: Forms - FDá\NRG]JHQHUDWRUD Generatory: Serwer - wsparcie dla 8i Generatory: WEB PL/SQL
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Wspólna praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
URGRZLVNRSURMHNWRZH y 3UDFD]HVSRáXRSDUWDRZVSyOQH repozytorium y 6NáDGRZH Standardy generacji Biblioteka projektu Gotowy kod
=DU]G]DQLHSOLNDPLLNDWDORJDPL y Synchronizacja z systemem plików
Wersjonowanie y Obiekty Designera y Pliki 'HILQLFMHWDEHOPRGXáyZNROXPQ Binarne i wykonywalne *.FMB, *.FMX Logika aplikacji, skrypty DDL, HTML Pliki klas Javy y 'DQH]GHILQLRZDQHSU]H]X*\WNRZQLND
Wersjonowanie Wersjonowanie pozwala na: y Utworzenie obiektu Jest w repozytorium ale nie ma wersji,qqlx*\wnrzqlf\qlhprjjr]redf]\ü y Wykonanie rejestracji obiektu (check in) Powstaje pierwsza wersja y Tworzenie nowe wersji zachowuje ZHUVMSRSU]HGQL
Wersjonowanie Check in / Check out y Tworzenie obiektu istnieje bez wersji PRG\ILNDFMHVµMHGQRZ\PLDURZH 3LHUZV]\FKHFNLQ ± WZRU]\ZHUVM ± EORNXMHPRG\ILNDFMH 1.0
Werjsonowanie Check in / Check out y Check out: SR]ZDODPRG\ILNRZDüRELHNW WZRU]\MHJRSU\ZDWQNRSL SR]ZDODQDUy*QHVWUDWHJLHEORNDG.ROHMQHFKHFNLQ ± WZRU]NROHMQHZHUVMH ± SXEOLNXM]PLDQ\GODLQQ\FKX*\WNRZQLNyZ ± RGNáDGDMZHUVMHSRSU]HGQLH 1.0 1.1
Wersjonowanie Check in / Check out y Checkout dotyczy samego obiektu i MHJRRELHNWyZVNáDGRZ\FK y &KHFNRXWWDEHOLSRFLJD]DVRE kolumny klucze ZL]\ indeksy wyzwalacze X*\FLDNROXPQSU]H]Z\]ZDODF]H
Wersjonowanie Nadawanie etykiet y Etykieta wersji nadawana przez system MAIN: 1.0, 1.1, 1.2 *Dá]LH y =GHILQLRZDQDSU]H]X*\WNRZQLND Simon <null> y *Dá(QXPHUZHUVML MAIN;1, MAIN;n, MAIN;LATEST HR Beta;1, HR Beta;n, HR Beta;Latest
Wersjonowanie Pliki i foldery y Checkin powoduje pobranie pliku z systemu plików y &KHFNRXWSRZRGXMHVNáDGRZDQLHSOLNX do systemu plików
Wersjonowanie Historia wersji i zdarzenie y Version History Viewer (VHV) pokazuje kolejne wersje obiektu y Zaprojektowany do pokazywania historii i stanu: NRU]HOLüJáyZQH Z]á\ checkouty ELH*FDZHUVMD
Wersjonowanie Historia wersji i zdarzenia y Version Event Viewer (VEV) pokazuje ]GDU]HQLD]PLHQLDMFHVWDQRELHNWXZ jego historii y 0DRGSRZLDGDüQDS\WDQLD Jak wiele razy checkoutowano obiekt od wtorku? -DNGáXJRSOLNE\á]DEORNRZDQ\".WRQDMF]FLHM]PLHQLDáWHQRELHNW" Kto teraz ma checkout na tym obiekcie?
Wersjonowanie Historia wersji i zdarzenia
Porównywanie wersji y Porównywanie dwóch UyZQRU]GQ\FKZHUVML jednego obiektu 3RUyZQDQLH]SRSU]HGQLP 3RUyZQDQLH]]D]QDF]RQ\P
=DU]G]DQLHNRQILJXUDFMDPL y Workarea y Organizacja y Konfiguracje y 5HJXá\ y *Dá]LH y 3RUyZQDQLDLáF]HQLH
Workarea y 0HWRGDGRVWSXGRZHUVMRQRZDQ\FK obiektów y Definiuje widok perspektywy Wyznacza kontekst pracy Repository Tylko jedna wersja obiektu 3URVWHGODX*\WNRZQLNyZ LQDU]G]L 5HJXá\ILOWUXMRELHNW\ Work Area
Organizacja y =DZDUWRü:RUNDUHDMHVWSRG]LHORQDQD kontenery : Workarea Folder Obiekty systemu plików (pliki, katalogi) System Aplikacji Obiekty Oracle Designera (encje, definicje tabel, PRGXá\LWG y.rqwhqhu\prj]dzlhudülqqh kontenery Folder AppSys Folder
Konfiguracje y.rqiljxudfmdvnádgdvl]xvwdorq\fk wersji poszczególnych obiektów 6WDQRZLZDUVWZRELHNWyZUHSR]\WRULXP 7\ONRMHGQDZHUVMDND*GHJRRELHNWX
Konfiguracje Configurations Release 1.0 Release 1.1 Release 2.0
5HJXá\ y Stosowane do: RNUHODQLDNRQILJXUDFML Z\SHáQLDQLDZRUNDUHD y Decyduje która wersja obiektu jest ZLGRF]QDZáF]DQD y 3U]\NáDG\ LATEST(MAIN) LATEST(<BranchName>) INCLUDE_FOLDER(<FolderName>) EXCLUDE_FOLDER(<FolderName>) INCLUDE_CONFIG (<ConfigurationName>)
*Dá]LH y 0R*OLZRüSUDF\UyZQROHJáHM y Izolowanie zmian y 8VWDOHQLHJDá]LGODFKHFNLQ JOREDOQLHGODFDáHMZRUNDUHD SU]\ND*G\PFKHFNLQ
*Dá]LH y %LH*FDZHUVMDZ0$,1
*Dá]LH y Checkout 1.1
*Dá]LH y &KHFNLQZJDá(µG
àf]hqlh y Porównanie wersji i zaznaczenie konfliktów i Uy*QLF 2ELHNWGRFHORZ\PXVLE\üSR FKHFNRXFLH
àf]hqlh y :\V]XNDQLHUy*QLFLNRQIOLNWyZ 5y*QLFD Konflikt
àf]hqlh y Checkin nowej wersji Target is checked in creating a new version
=DU]G]DQLH]DOH*QRFLDPL Problem Form Form Table Table C File Procedure Java File Template Java File Views Form Modules DDL File
=DOH*QRFLZUHSR]\WRULXP y &RWRV]DOH*QRFL" 2ELHNWRGZRáXMHVLGRLQQ\FKRELHNWyZ y 'ODF]HJRVSRWU]HEQHLQIRUPDFMHR ]DOH*QRFLDFK" Odpowiedzi na pytania: y 3RND*ZV]\VWNRFRX*\ZD tego obiektu y 3RND*ZV]\VWNLHRELHNWXX*\ZDQH przez ten obiekt =DU]G]DQLHZ\GDQLDPLRSURJUDPRZDQLD
$QDOL]D]DOH*QRFL Oracle Repository Oracle Repository <?XML?> XML Import File system Dependency Manager Parsers <?XML?> Parser mappings
3DUVHU\GODQDU]G]L2UDFOH y Forms y Reports y Menu y Biblioteki obiektowe y Biblioteki PL/SQL
OHG]HQLH]DOH*QRFL y 8*\WHWDEHOHSHUVSHNW\Z\NROXPQ\ sekwencje y 'RáF]RQHELEOLRWHNL y Dziedziczenia z bibliotek obiektowych i LQQ\FKPRGXáyZ y 8*\WHSOLNLLNRQ-DYDEHDQV y :\ZRá\ZDQHSURFHGXU\LIXQNFMH PLSQL y 8*\FLDPHQX
Inne parsery y Parser Javy i SQLJ %DGD]DOH*QRFLNODVPHWRGLSyO y C/Pro*C 8*\ZDSUHSURFHVRUD& %DGD]DOH*QRFLIXQNFMLW\SyZSXEOLF]Q\FK y SQL and PL/SQL %DGD]DOH*QRFLWDEHONROXPQVHNZHQFML procedur
URGRZLVNRSURMHNWRZH y Repozytorium y Standardy generacji i kodowania y Biblioteka projektowa y 3URFHGXU\G]LDáDQLD
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Standardy generacji y Zdefiniowanie i implementacja SRGVWDZRZHMIXQNFMRQDOQRFL y 6]DEORQJHQHUDFMLPRJVLUy*QLüGOD Uy*Q\FKW\SyZRELHNWyZ y %LEOLRWHNLRELHNWRZD]DZLHUDMFHM standardowe typy obiektów oraz wspólny kod y :VSyáG]LHORQHNRPSRQHQW\Z repozytorium y 3UHIHUHQFMHLZVSyáG]LHORQH]ELRU\ SUHIHUHQFMLVNáDGRZDQHZUHSR]\WRULXP
8*\FLHELEOLRWHNRELHNWRZ\FKMDNR metoda standaryzacji
/RJLNDX*\WNRZQLNDZUHSR]\WRULXP y 0R*OLZRüXPLHV]F]DQLDNRGXZ repozytorium y :L]DQLHNRGX z akcjami y Nadpisywanie akcji
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Kod standardowy i kod aplikacji Kod z OLB Kod klienta APP01.pll APP01.pll SYSTEM.pll Kod aplikacji w bazie.rgvwdqgdugrz\vnãdgrzdq\zed]lh
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
Oracle Developer Server - Architektura Forms Server 3U]HJOGDUND:(% Oracle Developer Server Baza danych àdgrzdqlh przyrostowo Warstwa GUI Forms Server Warstwa GUI Warstwa Warstwa Warstwa GUI Warstwa GUI Warstwa GUI Warstwa GUI Warstwa GUI Warstwa GUI Warstwa GUI GUI Warstwa Warstwa GUI Warstwa GUI GUI GUI Logika aplikacji Data Manager i motor PL/SQL SQL*Net Aplet Jawy Plik FMX Plik wykonywalny
Optymalizacja wykorzystania sieci z )RUPV6HUYHURSW\PDOL]XMHVLHü Meta-data Kompresja komunikatów Bufor komunikatów klienta Klient Oracle Developer Server Oracle 8i
Meta-data Scenariusz #1: Specjalizowany aplet Javy àdgrzdqlh&dáhm Logiki Aplikaci Serwer Aplikacji Oracle 8i Scenariusz #2: Aplikacja zbudowana przy pomocy Oracle Developer Server àdgrzdqlh Meta-data dla aplikacji Developer Server Oracle 8i
Kompresja komunikatów y *UXSRZDQLH]GDU]H y Efektywne rysowanie interfejsu X*\WNRZQLND <TAB> 0R*OLZH]GDU]HQLD Post-Change Post-Item When-Validate-Item Pre-Item When-New-Item-Instance
Klient Javy Bufor komunikatów klienta y 3U]HV\áDQLHUy*QLF y %XIRURZDQLHáDFXFKyZ]QDNyZ Developer Server Bufor komunikatów klienta 3HáHQ zestaw ZáDFLZRFL δ 3U]HV\áDQHW\ONR zmienione ZáDFLZRFL :ádflzrfl obiektu umieszczone buforze Bufor komunikatów serwera
Generowanie wydajnego kodu y 8*\FLH-$5DOER&$% y 8*\FLHSRGREQ\FKRELHNWyZ y 0LQLPDOL]DFMDX*\FLDWHNVWyZLRELHNWyZ typu boilerplate y Minimalizacja liczby wyzwalaczy y 8*\FLH-DYDEHDQVGRREVáXJLDNFMLSR stronie klienta, y 8*\FLHZLHOXPDá\FKPRGXáyZ]DPLDVW MHGQHJRGX*HJR
Agenda y Co to jest Designer 6i? y Nowe cechy Designera 6i y URGRZLVNRSURMHNWRZH Praca w oparciu o repozytorium y Standardy generacji / FORMS / y Budowa kodu y :\GDMQRü y 8UXFKRPLHQLHZURGRZLVNX:(%
8UXFKRPLHQLHZURGRZLVNX:(% y Migracja do WEB y Migracja do UNIX
Migracja do WEB y Ograniczenia Nie ma OLE Nie ma wyzwalaczy czasowy y 1RZHPR*OLZRFL Javabeans OLAF
Migracja do UNIX y Problemy podczas konwersji 5R]Uy*QLDQLXZLHONRFLOLWHUZQD]ZDFKSOLNyZ 8*\FLXVWDQGDUGyZ*,)GRZ\ZLHWODQLDOLWHU Znaki narodowe
Migracja do UNIX y Kroki konwersji Emulator X-Windows Czcionki w standardzie ISO-8859-2. 1D]Z\PRGXáyZZUHSR]\WRULXP 3U]HQRV]HQLHELEOLRWHNLPRGXáyZ Generacja aplikacji (f60genm)