Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry...
Transcript of Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry...
![Page 1: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/1.jpg)
Forms to APEX Project Lifecycle ManagementDmitry Mezhuev, Intrum
![Page 2: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/2.jpg)
Intro….
• Dmitry Mezhuev
• 20 years of Oracle experience and 15 years with Forms
• Now working as IT architect in Intrum
Intrum – (former Intrum Justitia ) credit management service company
2
![Page 3: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/3.jpg)
Agenda
• Forms to APEX project intro
• Architecture and Development environment & process
• APEX
• Q&A
3
![Page 4: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/4.jpg)
Project
4
![Page 5: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/5.jpg)
Forms Application
Intrum debt collection system
• Developed and maintained in-house• Originally was developed in 90s• In early 2000s was migrated from Forms 3 to Forms 9i• A lot of legacy Pro*C and SQR code
… and some numbers….• About 1000 tables• 350 forms• C/+SQR• 2 500 000 cases• Generate about 50 000 letters daily • 350 users
5
![Page 6: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/6.jpg)
Motivation
• Very difficult to maintain and implement new features
• Steep learning curve – 3-4 weeks for a new employee to start working
• Outdated UI and UX
• Stop Java support in browsers
• Difficult to automate UI testing
6
![Page 7: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/7.jpg)
Project Goals
• Improve maintainability
• Modern web UI/UX
• Intuitive UI
• Test automation
• Continuous delivery
7
![Page 8: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/8.jpg)
Why APEX
• Critical to use the same development team
• Easy to learn for Forms developers
• Web UI/UX
• Standard tools to for UI testing
• Free tools
8
![Page 9: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/9.jpg)
Development process
9
![Page 10: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/10.jpg)
Project schedule
Go live – beginning 2020
10
![Page 11: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/11.jpg)
Project structure
Development team
• 8 developers, including 1 dedicated APEX developer
• 3 testers
Requirements team
• 8 functional owners• Also responsible for
acceptance testing
End Users team
• 20 end users• “Release” testing
11
![Page 12: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/12.jpg)
Development Process
Requirements
Prioritization
DevelopmentQA Testing
Acceptance Testing
12
• “Continuous Delivery” is one of the project goals• Agile approach
o 2 weeks sprinto 1 week delivery cycle to acceptance test
environmento Fix bugs first
![Page 13: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/13.jpg)
Development Workflow
13
Make change Unit Test Auto Test QA Test
AcceptanceTest
Build system
![Page 14: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/14.jpg)
Architecture
14
Oracle Database with Multitenant option
ORDSTomcat
SolrCamunda
BMPNBI
Publisher
![Page 15: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/15.jpg)
Environments
15
![Page 16: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/16.jpg)
Build/Tools
16
Git
Jenkins
Gradle (custom scripts)
SQLclAPEX exp/imp
DockerRobot framework
Selenium
![Page 17: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/17.jpg)
Build/Tools
17
Git
Jenkins
Gradle (custom scripts)
SQLclAPEX exp/imp
DockerRobot framework
Selenium
Convention over configuration
• All automation is done by Gradle tasks• Developers can run all tasks locally• Jenkins automates build&deploy
processes• Automate as much as possible. Manual
work must be minimized• Use standards and conventions.
Minimized configuration file usage• Standards must be validated
automatically
![Page 18: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/18.jpg)
APEX
18
![Page 19: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/19.jpg)
APEX
• APEX application architecture
• Version control and build process
• Testing
• Standards
• Issues
19
![Page 20: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/20.jpg)
APEX Architecture
20
Master Login
App1 App2 AppN…
UI
<application schemas>
Dat
abas
e
Template
![Page 21: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/21.jpg)
APEX Architecture
21
Master Login
App1 App2 AppN…
UI
<application schemas>
Dat
abas
e
Template
APEX development environmentShared by all developers
PL/SQL sandboxes, each developer has a sandbox
![Page 22: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/22.jpg)
Version control and build process
All developers are working in the same database
22
Lock page(s) Implement changes
Export page(s) Commit/push Create code
review
Exportapplication
Commit/push Build system Run tests
Every night
![Page 23: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/23.jpg)
Environments and build process
23
DEV
DEV_NIGHT
DEV_APEX DEV_AT
(1) Build from Master
Sundbox1..N
(3) snapshot
(2) copy
(3) snapshot
(3) Run regression tests(4) Create <build> tag, build123
(3) snapshotTest
(5) copyTest 1..N
(6) snapshot
(7) Run system and integration tests
![Page 24: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/24.jpg)
Testing
Robot framework with Selenium
- Unit – automatic/manual
- Regression – automatic
- System/Integration – automatic
- QA – manual
- Acceptance – manual
24
![Page 25: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/25.jpg)
Standards
25
Database Naming
Standards
Database Design
Standards Standards
PL/SQLStandards
APEXNaming
Standards
Apex Development
Standards
JavaScript Standards
UI/UX Standards
![Page 26: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/26.jpg)
Standards
26
Database Naming
Standards
Database Design
Standards Standards
PL/SQLStandards
APEXNaming
Standards
Apex Development
Standards
JavaScript Standards
UI/UX Standards
• Database object names• DDL scripts naming standards
The basics for the build system – convention over configuration approach
![Page 27: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/27.jpg)
Standards
27
Database Naming
Standards
Database Design
Standards Standards
PL/SQLStandards
APEXNaming
Standards
Apex Development
Standards
JavaScript Standards
UI/UX Standards
Standards for:• Application Ids• Application aliases• Page Ids• Page aliases• Item names• etc.
![Page 28: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/28.jpg)
Standards
28
Database Naming
Standards
Database Design
Standards Standards
PL/SQLStandards
APEXNaming
Standards
Apex Development
Standards
JavaScript Standards
UI/UX Standards
• Put PL/SQL code to the packages, create a “page” package for PL/SQL code
• Reference only UI schema objects in the pages• Put JavaScript code to the external files• Use static ids from all items – needed for test automation
![Page 29: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/29.jpg)
Standards
29
Database Naming
Standards
Database Design
Standards Standards
PL/SQLStandards
APEXNaming
Standards
Apex Development
Standards
JavaScript Standards
UI/UX Standards
![Page 30: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/30.jpg)
Standards. Examples
PL/SQL package - <prefix>_<name>[_<postfix>] => cli_client_api
• api – API level, build system generate GRANT EXECUTE TO UI
Page package - pge_<application allias>_<page_id>
JavaScript - <application allias>_<page_id> and the same namespace
Standards enforced by:
- DLL triggers on the database level
- Git hook scripts
- Code reviews
30
![Page 31: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/31.jpg)
UI/UX standards
• Visual standards – custom CSS
• UX standards
o Navigationo Tableso View formso Edit formso Master-detailo Pop-upso Data formatso Error handlingo Etc.o Standard UI scenarios
31
![Page 32: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/32.jpg)
32
![Page 33: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/33.jpg)
Working with UI/UX experts
• They know nothing about APEX and it limitations
• Forms/Oracle developers do not have experience working with UI/UX experts
• We spent 3-4 month only to start talking the same language
33
![Page 34: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/34.jpg)
Other issues
• Printing
• Version control
• API documentation
34
![Page 35: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/35.jpg)
Good Issues
Low code Version control
Easy to learn APEX 5.1 lack of the API documentation
Rapid development Printing
Prototyping Dynamic forms, staff like editing in Report (Interactive greed?), copy regions
Integration wit JS libraries
REST integrations
35
Summaty
![Page 36: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/36.jpg)
Q&A
36
![Page 37: Forms to APEX project lifecycle management · Forms to APEX Project Lifecycle Management Dmitry Mezhuev, Intrum. Intro ... Docker Robot framework Selenium Convention over configuration](https://reader030.fdocuments.in/reader030/viewer/2022040121/5ecf3e86fc81594a355956ef/html5/thumbnails/37.jpg)