best practices in otm - customizations & extensions
TRANSCRIPT
© Mahindra Satyam 2009
OTM Customizations & Extensions
Best Practices
Presented By:Rajasekhar Chennapragada14th June 2010
2
© Mahindra Satyam 2009
Introduction
OTM customers use disparate solutions to address gaps.
•OTM user interface
•OTM’s default behavior
•External Application
E.g. Custom screens, Business Logic, Stored Procedures etc.
Context:
•Best Practices - Implementation
•Application - Functionality perspective
•Various experiences & challenges
•Managing such initiatives effectively.
•Doesn’t detail technical / code details.
•Experiences from working on OTM 5.5
3
© Mahindra Satyam 2009
Recommendations
Challenges
Experiences
Customization Areas
Business Drivers
4
© Mahindra Satyam 2009
Screen Navigation: Menus and screen navigation
Data Visibility & Security: Business functionality & data
Business Validation: Data entry or retrieval
Notification: Milestones in Supply Chain in a specific format
Custom Branding: Button images, logos, color schemes, font sizes etc.
Integration: Business data processing.
Custom Reporting: Data retrieval in specific format
OTM Performance: Simplify business process
Exception Handling: Critical and time-bound business
Business Drivers
5
© Mahindra Satyam 2009
Recommendations
Challenges
Experiences
Customization Areas
Business Drivers
6
© Mahindra Satyam 2009
Customization Areas
OTM Configuration
Inbuilt OTM configuration abilities (No code development)
Enhancements to OTM’s standard functionality (override shipped-in defaults)
Configurable from OTM User Interface & Property files
Minimum impact from OTM migration
Less complexity and effort – can be handled by OTM Power users
E.g. Creating custom screen sets, menus, workflows etc.
7
© Mahindra Satyam 2009
OTM Code-changes (Presentation Layer):
Code changes affecting the look & feel
Visibility of data elements
Data Validations
May require OTM configuration and Application properties to take affect
More Complex - require resources with the necessary Technical knowledge
Higher risks from OTM Migration
Potential impact on OTM performance
More effort – Independent projects
E.g. Displaying or hiding a field, Custom branding etc.
Customization Areas
8
© Mahindra Satyam 2009
OTM Extensions:
External Applications or programs
Functionality OTM cannot independently support
Capture/retrieve data in a simple format
Interface with OTM for data communication
Simplify user operations within OTM
More Complex - require resources with the necessary Technical knowledge
Higher risks from OTM Migration
E.g. Custom data entry screens, development of stored procedures etc.
Customization Areas
CONFIGURATIONSCONFIGURATIONS
EXTENSIONSEXTENSIONS
CODE CHANGES
CODE CHANGES
9
© Mahindra Satyam 2009
Screen Sets Manager Layouts Label Manager Actions Manager
Menu Manager Work Spaces Manage User Access VPD Profiles/Contexts
Business Monitors Workflow Agents Milestone Monitors Style sheet Profiles
Saved Queries Out XML Profiles Report Configuration User Favorites
Function Groups Account Policy Action Checks User Preferences
User Preference - Style Sheet Location:
• Branding purposes
• Directory of client XSL
• If blank, standard OTM XSL is used
User Preference - Language Preference:
• In conjunction with Country setting
• Language of field names, buttons, icons etc.
• Does not translate text saved in entry fields
• Affects only certain elements of UI
Customization Areas - OTM Configuration
10
© Mahindra Satyam 2009
Customization Areas - General
11
© Mahindra Satyam 2009
Requirements:Data visibilityBranding
Adding/removing display of data in UI
Images and language of notifications
“Branding” - changing look and feel to reflect the client’s brand
Button images, logos, color schemes, font sizes and screen layout
No ability to add, rename, or delete fields or rearrange sections of OTM pages
Customizable images and Web interface themes
Standard OTM theme can be over written
Custom themes (XSL) copied to the directory set by the user preference
Customization area - OTM Code Changes (Presentation Layer)
12
© Mahindra Satyam 2009
Certain attributes based on locale (language and country).
CSS files can be created for each locale
Font styles and sizes, as well as color preferences
OTM Code Changes (Presentation Layer) - Branding based on Locale
The standard OTM theme can also be over-written by specifying the style sheet location using glog property.
The custom XSLs are copied into the specified location
13
© Mahindra Satyam 2009
Translation ID “css.root_dir” is updated with Language, Country, Domain name and Text
Directory is created under /css/themes/
Customized CSS files are copied to the directory
OTM Code Changes (Presentation Layer) - Branding based on Locale
User preference Language & Country - Assigned to user (role)
14
© Mahindra Satyam 2009
A few example of extensions are below:
Custom screens
Business logic
Integration translation
Technologies used:
Java/J2EE, Java Script
Python, XML/XSLT
Oracle – PL/SQL, Stored Procedures, Database Triggers, PL/SQL packages , Oracle reports etc.
Oracle Reports, BI Publisher
WSDL, Web Services, BPEL
Oracle Fusion Middle-ware
EAI (Enterprise Application Integration) Platforms
Customization Areas - OTM Extensions
15
© Mahindra Satyam 2009
Recommendations
Challenges
Experiences
Customization Areas
Business Drivers
16
© Mahindra Satyam 2009
A few Case studies
GC3 core code modifications & Integration extensions
Custom Search result screen - Simultaneous update of Location Address for multiple Order Releases
Custom Job accounting Requirement – Invoice Matching based on Charge Code identifier
Custom Tool for Sending / receiving data via RIQ
Custom logic to update exchange rate Refnums
Bespoke process to modify Locations with ACI zones
Report Parameter triggers & Oracle Packages - Service Provider Qualification
Customized Order Entry screens
Implemented Localized Branding with Chinese menu characters.
Customized style sheets to send email notifications in Spanish
Custom Validations for Invoice data entry process
Migrated XSL to JSPX as part of OTM Migration from 4.5 to 5.5
Experiences
17
© Mahindra Satyam 2009
Case studies (continued)
Custom Style sheet translation for translating the Planned shipment XML to Shipment Status XML
Python scripts to translate customer Flat files into TransOrder Xml files
Customized XSL files from 5.5 were migrated to 6.X
Migrated reports - Oracle Reports to BI Publisher in OTM 6.x
Fiscal reports to report Profit margins based on business calendar
Custom VPD & Workflow configuration to handle specific user requirements
Developing an integrated robust framework for managing TAX & Statutory regulations for LATAM operations.
Implementing an OTM extension - Custom Shipment event entry screen
Experiences
18
© Mahindra Satyam 2009
Recommendations
Challenges
Experiences
Customization Areas
Business Drivers
19
© Mahindra Satyam 2009
1. Scalability and Performance• Technical Architecture
• Infrastructure &Network• Software & Applications• Failover & High Availability• Load balancing, storage, backup etc.
• Integration Volumes• Database Transaction Volumes• User Concurrency• Performance Fine-tuning
2. Application and Data Security• Retrieving data from OTM session• Implementation of VPD for custom extensions
3. Maintenance and Support• Compatibility with OTM migration• Branding Synchronization• Re-work after OTM migration• Regression Testing efforts• OTM Support from Oracle
4. Exception Reporting• Maintaining & Reporting Exceptions• Additional effort in Development
Challenges
20
© Mahindra Satyam 2009
Recommendations
Challenges
Experiences
Customization Areas
Business Drivers
21
© Mahindra Satyam 2009
Avoid customizing core code components like OTM servlets and EJBs.
Review existing Configuration
Analyze OTM functionalities available
Maintainability, Performance and Impact to existing Ops
JDK version compatibility
Use of Web Services - OTM to a BPEL server
Similar same look & feel as OTM
Documentation and Configuration Management
Follow OTM configuration standardsRefresh cache – use for SQL updates
Ensure that the appropriate version of Glog XSD is used for development.
Functional Acknowledgements and Exception reporting
Enable dynamic XSL changes glog.webserver.xsl.debug=true
Exclude queries from being cached for UI drop-down listsglog.droplistcache.exclude=glog.server.query.powerdata.ShipmentRefnumQualQuery
Recommendations - General
22
© Mahindra Satyam 2009
Impact to OTM environment - Availability & Performance of OTMconcurrent user transactionsIntegration through putFunctional acknowledgementsError notifications
ArchitectureLoad balancing, Failover and High availability - Concurrent Load & Ops criticalitySeamless integration with OTMScalability with OTMEase of maintenanceEliminate Network latency
TuningConnection PoolingExecution ThreadsJVM heap sizeCost-Analysis and Fine-tuning of SQLsOTM thread Optimization etc.
Recommendations - Scalability & Performance…
23
© Mahindra Satyam 2009
Re-use/Integrate – Mitigate Risk and EffortLeverage OTM interfacesPL/SQL packagesStored procedures
TestingOTM RegressionEnd to EndPerformanceFailover
Avoid JDBC calls for direct data modification
Avoid multiple Direct SQL updates in Agents
Follow best practices - Custom code development & OTM configurationDecode and Case – Lesser readsRefresh Cache – Don’t use for SQL Inserts
Recommendations - Scalability & Performance
24
© Mahindra Satyam 2009
Impact to existing data security model
Avoid JDBC calls for direct data modification
Custom Extensions shall be integration via SSOAuthentication by Central applicationSSO provider passes the login information to OTMBypasses the normal OTM login processSSO glog.properties - Admin guideThe invoking code needs to pass in the following parameter as part of the HTTP request: appuid=/GUEST.ADMIN/
If the custom application is accessed via an OTM menu link, consider the following:
Secure http and URL masking Restrict standalone URL accessibilitySend $CURRENT_USER in the http header for VPD enforcementLeverage standard XML interfacesRe-use available Security routines /VPD PackagesSynchronize session timeouts
Recommendations - Application & Data Security
25
© Mahindra Satyam 2009
Maintain changes to XSL in client specific directoryPrevents them being overwritten with each service release.
Save Login.xsl and logout.xslneed to be reapplied after each service release
Deployment - off-peak business hours.
Test deployment process
Test back out process
Maintain Deployment Guide with information below:
Backup Process: Files or data to be backed up in OTM environment before deployment.Deployment Checklist: List of configuration items with dependenciesInstallation process: Steps needed to deploy and install files.Test Plan: Capture Test plan and test cases. Back out procedure: Steps to uninstall or back out the changePost Go-Live Testing: Smoke test scenarios to be run after deployment.OTM Migration changes: Steps to re-install or copy the necessary files after OTM migration.Change History: Changes to deployment process due to Change Requests.Configuration Management: SCM process including version control processes.OTM documentation: Update and maintain OTM design and configuration specifications
Recommendations – Deployment
26
© Mahindra Satyam 2009
Migration:
Review OTM release notes:Impact to existing XSL, CSS, Java scriptBug FixesEnhancements to FunctionalityIntegration ChangesDatabase changes
Regression testing – Migrated environmentPromote & test changes – As documentedPortability and Scalability with migrated OTM environment
Documentation regarding OTM Migration.Impact AnalysisRisk Analysis – Update Risk registerEffort Estimates – Changes / Regression testingTest resultsModified Configuration ItemsUpdated Deployment guide
Maintenance:Impact AnalysisChange managementConfiguration ManagementVersion ControlEnd to End/ Integration TestingDocumentationAdherence to Deployment Process
Recommendations - OTM Migration and Maintenance
27
© Mahindra Satyam 2009
OTM Customizations and Extensions
Q & A
28
© Mahindra Satyam 2009
mahindrasatyam.net
Safe Harbor
This document contains forward-looking statements within the meaning of section 27A of Securities Act of 1933, as amended, and section 21E of the Securities Exchange Act of 1934, as amended. The forward-looking statements contained herein are subject to certain risks and uncertainties that could cause actual results to differ materially from those reflected in the forward-looking statements. Satyam undertakes no duty to update any forward-looking statements. For a discussion of the risks associated with our business, please see the discussions under the heading “Risk Factors” in our report on Form 6-K concerning the quarter ended September 30, 2008, furnished to the Securities and Exchange Commission on 07 November, 2008, and the other reports filed with the Securities and Exchange Commission from time to time. These filings are available at http://www.sec.gov
Thank you
mahindrasatyam.com