Key challenges and solution for migrating oracleform to Angular
- Anand Nerurkar
- 3 hours ago
- 4 min read
Key Challenges & How We Handled Them
1. Business Logic Locked in Forms & PL/SQL
Challenge:Oracle Forms often embed complex validations, triggers, and calculations inside the form itself or inside PL/SQL stored procedures. These are hard to discover and map.
Solution:
Reverse-engineer: Use Oracle Forms2XML or Ora2Pg to extract metadata.
Created a business rules catalog documenting validations, dependencie.
Collaborate with SMEs: Walk through the functionality with business users to validate extracted rules and took their signoff.
Refactor: Re-implemented business logic as REST APIs in Spring Boot using DDD principles for clean separation.API can be used across channels (web, mobile, APIs).
Unit-test: Validate correctness by comparing outputs with legacy system.
2. Stateful UI → Stateless Web
Challenge:Oracle Forms maintain state (session-based), but Angular + REST APIs are stateless.
Solution:
Introduce API gateways and JWT-based session tokens.
Use client-side state management (NgRx/Redux) for workflows and form states.
Design APIs to return minimal but sufficient data for front-end orchestration.
3.UI/UX Modernization
Challenge:Oracle Forms are not responsive and follow a transactional, form-heavy paradigm.
Oracle Forms have canvas, tabs, LOVs, and master-detail blocks, which don’t directly translate to Angular components.
End-users were used to certain shortcuts and workflows, so UX changes had to be gradual and intuitive.
Solution:✅ User-Centric Design
Conducted UX workshops to identify pain points in existing UI.
Designed responsive Angular screens using Material Design with better navigation, search, and filtering.
Added keyboard shortcuts and hotkeys where possible to maintain user productivity.
Used component-driven design – reusable Angular components for (LOV → dropdown, canvas → grid layout). date pickers, etc.
Define Angular component library
Use Material Design or PrimeNG for enterprise-grade UI controls.
Standardize UI templates for consistency and accessibility (WCAG compliance).
4. Tight Coupling with Database
Challenge:Forms directly access DB tables, bypassing abstraction layers.
Solution:
Introduce a service layer (Spring Boot microservices).
Encapsulate database calls into APIs.
Gradually deprecate direct DB calls and enforce access through APIs only.
5. Performance Optimization
Challenge:Oracle Forms work with bulk fetches & server-side processing. Angular + REST APIs may introduce latency.
Solution:
Enable pagination, lazy loading, and caching at the API and UI layer.
Optimize DB queries (indexes, execution plans).
Introduced caching (Redis) for reference data and LOVs.
Built REST APIs with pagination, filtering, and async calls to avoid UI freezes.
Use async/non-blocking APIs to improve throughput.
6. Validation & Regression Testing
Challenge:Risk of breaking business-critical workflows during migration.
Solution:
Build automated regression test suite (Selenium, Cypress for UI + JUnit for API).
Compare results of new system vs. legacy system side-by-side.
Conduct UAT with real business scenarios.
7. Security & Role Mapping
Challenge:Oracle Forms use database roles. Angular needs app-level RBAC.
Solution:
Implement centralized Identity & Access Management (Azure AD / Keycloak).
Map old DB roles to application roles, implement fine-grained authorization in APIs
Implemented OAuth2 + OpenID Connect (Azure AD / Keycloak).
Applied role-based access control (RBAC) at API and UI component levels.
Added audit logging for compliance (important for BFSI).
8. Change Management & User Adoption
Challenge:End users are familiar with Oracle Forms UI (keyboard shortcuts, workflows).
Solution:
Provide training sessions and sandbox environments for users.
Ensure UI parity with legacy system wherever possible before enhancing UX.
Implement feedback loop during pilot rollout.
9. Parallel Run & Data Consistency
Challenge:During phased rollout, some users used Oracle Forms while others used Angular UI. Data consistency and synchronization were critical.
Solution:✅ Coexistence Strategy
Enabled dual-write mode for APIs.
Built data reconciliation jobs for early detection of mismatches.
Conducted parallel UAT before cutover.
10. Authentication & Authorization
Challenge:Oracle Forms often rely on DB-level security. Migration requires modern RBAC & SSO.
Approach:
Integrated Azure AD / OAuth2.0 for single sign-on.
Externalized RBAC in microservices using Spring Security + JWT.
Implemented role-based menu rendering in Angular.
KPIs Tracked
% Business Rules Migrated & verified by SMEs
% Test Automation Coverage for Angular UI & REST APIs
Response Time (ms) for APIs vs. Oracle Forms benchmark
User Adoption Rate post go-live
Defect Leakage Rate during UAT/Production
11.Deployment & CI/CD
Challenge:Earlier deployment was manual with Oracle Forms runtime; Angular + microservices required cloud-native DevOps.
Solution:
Set up Azure DevOps pipelines for build, test, and deployment of Angular and Spring Boot apps.
Used Docker + Kubernetes (AKS) for containerized deployment.
Implemented blue-green deployments to minimize downtime.
12.Delivery Approach (Sample)
Phase 1 – Discovery: Forms2XML extraction, rule cataloging, DB dependency mapping.
Phase 2 – API & UI Design: Build microservices, design Angular components.
Phase 3 – Iterative Migration: Migrate modules one by one, run dual-run comparison.
Phase 4 – Hard Cutover: Switch users after full regression pass.
Outcome
✅ Delivered Angular-based responsive UI with 70-80% reusability of business logic through REST APIs.
✅ Reduced future change efforts by decoupling UI from backend.
✅ Improved performance by 20-30% due to optimized APIs and caching.
✅ Enhanced security via SSO, RBAC, and audit logging.
🏛 Modernized Architecture Flow (Oracle Forms ➝ Angular + Spring Boot + API Gateway)
[ User Browser ]
│
▼
[ Angular Frontend (SPA) ]
- Replaces Oracle Forms UI
- Implements responsive UX
- Uses Angular Reactive Forms for validation
- Calls REST APIs (JSON)
│ HTTP/HTTPS (REST API Calls)
▼
[ API Gateway (Azure API Management) ]
- Single entry point for all APIs
- Enforces security (OAuth2/JWT)
- Rate limiting, throttling
- Request/response transformation
│
▼
[ Spring Boot Microservices (Modularized by Domain) ]
- LoanService (loan origination, evaluation)
- CustomerService (KYC, profile mgmt)
- PaymentService (disbursement, repayment)
- RuleService (centralized business rules engine)
- NotificationService (email/SMS)
- Integrated with Kafka for async events
│
▼
[ Database Layer ]
- Migrated from Oracle to Azure SQL / PostgreSQL
- Schema refactored (normalized, modular)
- Stored procedure logic converted to:
- Microservice business logic
- Drools / Decision Tables (for rules)
- or REST-based rule engine
│
▼
[ External Integrations ]
- Credit Bureau API
- Payment Gateway
- Core Banking System
- Fraud Detection Service
🔑 Key Points in Delivery
✅ UI Transformation
Oracle Forms ➝ Angular SPA with reusable components.
Converted UI triggers, validations to Angular reactive forms.
✅ Business Logic Migration
Extracted PL/SQL logic from stored procedures.
Refactored into Spring Boot services & REST APIs.
Centralized rules using Drools or decision tables for maintainability.
✅ Security & Governance
OAuth2 / Keycloak or Azure AD for SSO.
Role-based access control (RBAC).
✅ CI/CD
Automated build & deployment with Azure DevOps pipelines.
Unit + Integration + Regression tests automated.
✅ Performance
API Gateway caching + DB indexing to match Oracle Forms responsiveness.
Comments