Upload
oliver-lemm
View
143
Download
1
Embed Size (px)
Citation preview
|
FondsProfiler @ Union InvestmentThe biggest APEX project in the world?Niels de Bruijn, Business Unit Manager APEXOliver Lemm, Supervisor Competence Center APEX
Kscope 2013, June 26th
| FondsProfiler @ Union Investment2
Introduction
Niels de Bruijn 36 year, married, two daughters living in Ratingen (nearby Düsseldorf) since 12/2003 @ MT AG (after 2 years @ Oracle)
- Senior Consultant > Supervisor > Business Unit Manager http://apex.mt-ag.com & http://www.apexsolutions.de you can find me on Skype, Xing, LinkedIn, Twitter, Facebook
| FondsProfiler @ Union Investment3
Introduction
Oliver Lemm 32 year, married, two daughters living in Dinslaken since 02/2007 @ MT AG
- Junior Consultant > Consultant > Senior Consultant> Supervisor APEX
degree „Angewandte Informatik“ from the university of Duisburg-Essen architect and lead developer for APEX projects Blog http://oliverlemm.blogspot.de Twitter https://twitter.com/OliverLemm
| FondsProfiler @ Union Investment4
APEX.MT-AG.COM
| FondsProfiler @ Union Investment5 |
Agenda
1. About the Project2. Key Facts3. Technical Highlights4. Are you ready for doing big (APEX) projects?
| FondsProfiler @ Union Investment6 |
About the Project
| FondsProfiler @ Union Investment7
What is it all about (technically speaking)?
FondsProfiler contains the definition of 960 funds Intranet application used by 650+ registered active users
About the Project
Fund DefinitionAPEX 4.1 /DB 11gR2
Master Data
Enforcement of investment restrictions
Enforcement of benchmark definitions
Reporting
| FondsProfiler @ Union Investment8 |
Key Facts
| FondsProfiler @ Union Investment9
FondsProfiler
A single APEX 4.1 application that consists of: 67 pages, 344 tables, 366 views, 107 packages and 167 LOVs
Development time of 12 months Going live on 07/16/2012
Key Facts
| FondsProfiler @ Union Investment10
Project Team
Employees of MT AG involved during the development phase: 8 - APEX (including PL/SQL experts) 2 - Data Modeling 4 - Interfaces
3 - Project Leaders 1 - Quality Assurance 1 - Admin
Project type: fixed price
Key Facts
| FondsProfiler @ Union Investment11 |
Technical Highlights
|12
Layout, Design, User Interaction
FondsProfiler @ Union Investment - n
Technical Highlights
|13 FondsProfiler @ Union Investment - n
Technical Highlights
Implementation strategy for big projects
|14
Implementation strategy for big projects
FondsProfiler @ Union Investment - n
Technical Highlights
site-specific-databaselayer concept predefined standard functions per page
- fetch/save/check Only a single manual fetch/save process per page
- increased maintainability Single “save” button per page although multiple regions Using an acronym for every template-name which is used
|15
How to handle multiple MRUs on a single page
FondsProfiler @ Union Investment - o
Technical Highlights
|16
How to handle multiple MRUs on a single page
FondsProfiler @ Union Investment - o
Technical Highlights
Multiple MRUs on a single page were necessary APEX collections were used to keep the changed values before the “Save”
button was clicked Handle general mru on global page / Page 0 Overloading apex_item package with own JavaScript/CSS Special functional handling when saving Using overlay when adding lines
|17
The “Master Table”
FondsProfiler @ Union Investment - o
Technical Highlights
|18
Which page contains which items and how do these map to the data model? Which items belong logically together?
- Validation attributes on group level (required?- max. size? - min/max allowed?)
The “Master Table”
FondsProfiler @ Union Investment - o
Technical Highlights
|19
Ensuring that project guide lines are followed
FondsProfiler @ Union Investment - o
Technical Highlights
|20
Ensuring that project guide lines are followed
Using APEX Repository, Metadata from Database and “Master Table” APEX
- Branches, Process, item, region, button, page- Names, Templates, Condition never, help text, alignment, lov
Database- Save_page, fetch_items, check_data, table and column mapped
Master Table- Item on page, compare in tables, reference tables contains data
FondsProfiler @ Union Investment - o
Technical Highlights
|21
Ensuring that project guide lines are followed
FondsProfiler @ Union Investment - o
Technical Highlights
APEX Advisor
Project guidelines were documented- but as usual, nobody follows these, therefore:- QA-Tool was introduced - enforces the project specific guide lines
|22
Validations
FondsProfiler @ Union Investment - n
Technical Highlights
|23
Validations
FondsProfiler @ Union Investment - n
Technical Highlights
|24
Validations
FondsProfiler @ Union Investment - n
Technical Highlights
Each page can be validated by a click on a button Saving data and checking data had to be separated Based on Master Table Type and if field is mandatory should be used
> 270 validations are performed- Simple ones like “is number?” > client-side check- Complex ones > server-side check by PL/SQL
either page-specific or by using a general package
All checks can also be performed at once!
|25
Security Concept
FondsProfiler @ Union Investment - o
Technical Highlights
|26
Security Concept
FondsProfiler @ Union Investment - o
Technical Highlights
Combined LDAP/local authentication used Triggers log every possible change Authenticated users may see every page
- jQuery renders appropriate fields read-only, depending on security settings- No server sided security, no checksum performed (accepted behavior)
Lock a set of data based on functional definition- Lock all pages related to fondsprofil based on time- Lock automatically the page and the related data
|27
Querying the whole data model
FondsProfiler @ Union Investment - n
Technical Highlights
|28
Querying the whole data model
FondsProfiler @ Union Investment - n
Technical Highlights
End user can query data model by using Interactive Reports- Each IR covers a section of business data- Based on a set of data and the definition of the Master Table another row had
to be selected Table functions used
|29
Delta-Reporting
FondsProfiler @ Union Investment - o
Technical Highlights
|30
Delta-Reporting
FondsProfiler @ Union Investment - o
Technical Highlights
Recursive mechanism based on foreign keys Using Master Table to determine dynamically Label Comparing two sets of data Collections were utilized to improve performance Building a direct link to the related APEX page where the attribute can be
maintained
|31
Copy-Functionality
Copying a set of data relying on many tables (1-1,1-n,n-m) Different types of copy
- Using copy as a template- Using copy as a new version of old data
Master Table defines for each field if the field should be copied based on the copy type
FondsProfiler @ Union Investment - o
Technical Highlights
| FondsProfiler @ Union Investment32 |
Are you ready for doing big (APEX) projects?
| FondsProfiler @ Union Investment33
Joel on Software: 12 Steps to Better Code
1) Do you use source control?2) Can you make a build in one step?3) Do you make daily builds?4) Do you have a bug database?5) Do you fix bugs before writing new code?6) Do you have an up-to-date schedule?7) Do you have a spec?8) Do programmers have quiet working conditions?9) Do you use the best tools money can buy?10) Do you have testers?11) Do new candidates write code during their interview?12) Do you do hallway usability testing?
© 2000-2012 Joel Spolsky
Are you ready for doing big (APEX) projects?
|
Enjoy the rest of the conference!MT AGBalcke-Dürr-Allee 940882 Ratingen
Telefon: +49 (0) 21 02 309 61-0Telefax: +49 (0) 21 02 309 61-10
E-Mail: [email protected]