© Copyright IBM Corporation 2008 IBM Global Business Services DOAG: SIG Siebel Quality Review for Siebel Munich – June, 10 th 2008 Oliver Seiffert IT Architect
© Copyright IBM Corporation 2008
IBM Global Business Services
DOAG: SIG Siebel
Quality Review for Siebel
Munich – June, 10th 2008
Oliver Seiffert
IT Architect
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20082
IBM Global Business Services
© Copyright IBM Corporation 2008
About Me My Session for You Session‘s Objective
� Siebel Performance IT
Architect and responsible for
internal and external QA and
QR on project EAGLE
� This session will be about the
necessity of doing quality
reviews for Siebel projects, and
how they can be done to
achieve the targets of quality
assurance
� At the completion of this
module you should be able to:
define quality standards, and
describe how to use DAVID on
Siebel projects
Introduction
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20083
IBM Global Business Services
© Copyright IBM Corporation 2008
Agenda
How can DAVID be used by project teams?3
What is DAVID?2
Introduction to Quality Assurance and Quality Reviews1
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20084
IBM Global Business Services
© Copyright IBM Corporation 2008
Quality Assurance: Developer committment is key to success
� Define standards and describe these standards in detail in the
configuration and coding guideline as a framework for developers
� The configuration and coding guideline contains best practices
Every developer must formally agree to the defined configuration and coding guideline by signing them officially.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20085
IBM Global Business Services
© Copyright IBM Corporation 2008
Quality Review: Finding the right balance
� Configuration and coding quality reviews should be ongoing through the whole
project lifecycle
� The earlier the project start with reviews, the less has to be done to analyze and
implement possible findings for future development
� Keep in mind, most manual quality reviews are time and ressource intensive
� Every developer should be aware at any time, that his/her configuration or scripting
can be part of a quality review
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20086
IBM Global Business Services
© Copyright IBM Corporation 2008
� Did you do quality reviews on your project?
� When were these quality reviews
performed, at the beginning, in the middle,
at the end or ongoing through the whole
project lifecycle?
� How were the quality reviews performed,
manually inside the project, or externally by
Oracle/Siebel as a configuration and
scripting review?
Questions
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20087
IBM Global Business Services
© Copyright IBM Corporation 2008
Agenda
How can DAVID be used by project teams?3
What is DAVID?2
Introduction to Quality Assurance and Quality Reviews1
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20088
IBM Global Business Services
© Copyright IBM Corporation 2008
What is DAVID?
DAVID is a tool, …
� that can be used during the whole project life cycle to improve overall configuration and scripting quality
� to check possible findings in advance, and these findings are weigthed by priority
and complexity based on IBM‘s deep Siebel expertise
� to support you in defining enhancements for existing installations, if you have access to a Local DB of the customer to check the Repository for possible pitfalls
� that can be used in addition to IBM’s Siebel ReposiTool to provide an quality
overview of the application that needs to be upgraded
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/20089
IBM Global Business Services
© Copyright IBM Corporation 2008
Overview: DAVID for Siebel
Siebel Repository
Analyze
Output results to
MS Word“DAVID for Siebel” is a tool-based review for Siebel
Repositories
Output results to MS Excel
Highlights
� 80+ validation rules for configuration and scripting
� “DAVID for Siebel” can be used for Siebel 7.x, and 8.0
� Reports in MS Excel and MS Word available
� Can be easily integrated with IBM Rational Clearquest
� Can be run automated via batch command, to run on a
daily or weekly base to check for new findings since last
nightly or weekly build
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200810
IBM Global Business Services
© Copyright IBM Corporation 2008
Findings per criticality and type covered by DAVID
23
15
5
40
0
30
60
Configuration Scripting
Not Critical Critical
DAVID is able to differentiate between critical and not critical findings. Critical findings should be further analyzed as soon as possible, not critical findings should be
analyzed, but do not have to be resolved immediately.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200811
IBM Global Business Services
© Copyright IBM Corporation 2008
Areas of impact to be considered for a configuration and scripting quality review
Quality Review
Application
Upgrade
Application Maintenance
Runtime Error
Performance
User Interface
Other Issues
Data Integrity
Configuration
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200812
IBM Global Business Services
© Copyright IBM Corporation 2008
Findings* per area of impact covered by DAVID
24
7
1311 11
10
4
12
1013
34
22
20
1
0
30
60
Runtim
e Err
or
App'M
ainte
nance
App'U
pgrade
Data
Inte
grity
Per
form
ance
User
Inte
rfac
e
Config
uratio
n
Oth
er Iss
ues
Configuration Scripting
*Multiple selections possible.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200813
IBM Global Business Services
© Copyright IBM Corporation 2008
Example for configuration finding
“DAVID for Siebel” distinguishes between findings and occurrences of the findings. For each finding a description, consequence and recommendation is
given. Configuration based findings are normally detected while using some SQL statements against the Siebel Repository.
List of Occurrences Finding=
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200814
IBM Global Business Services
© Copyright IBM Corporation 2008
CRITICAL: Missing or inactive Fields in Applet for SearchSpec 1/2
Description
Following Business Components Fields were
found in Applets SearchSpec that seem to be
missing or inactive in the Business
Component.
Consequence
This can cause severe performance
degradation, and possible run time errors on
Applets and eScripts, if these Business
Components are used.
Recommendation
Check if the mentioned Fields are either
inactive or missing on Buscomp, and correct
them, or disable the SearchSpec or SortSpec.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200815
IBM Global Business Services
© Copyright IBM Corporation 2008
CRITICAL: Missing or inactive Fields in Applet for SearchSpec 2/2
Busin
ess
Compo
nent
Apple
t
Best Case ist, es wird nichts angezeigt, Worst Case, es gibt
einen Runtime Error.
Best Case nothing will be shown, worst case runtime errors can occur
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200816
IBM Global Business Services
© Copyright IBM Corporation 2008
Example for scripting issue
“DAVID for Siebel” is able to analyze eScripts. The eScripts will be extracted from Siebel
Repository and saved as files to your hard disk. Two magic tools can be used to check the
eScripts for findings,
Windows XP Built-In „FINDSTR“
� Searches for patterns of text per line in files
using regular expressions.
IBM‘s SiebelParser
� „IBM SiebelParser“ is able to check
multiple lines in files for special eScript
related patterns.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200817
IBM Global Business Services
© Copyright IBM Corporation 2008
Explicit Object Release 1/2
Description
Multiple script functions were found containing objects (like Business
Objects, Business Components, Business Services, Property Sets, Dates and Arrays)which either are not explicitly released from memory after use or are not released in the correct order.
Consequence
Either object variables are explicitly destroyed or the amount of time they remain in memory may be longer than necessary.
Performance issues and unexpected application errors or crashes can be the consequences.
With the Siebel 7 WebClient and Portal implementations accessing the application via the Siebel Object Manager, which shares memory among a number of user connections this problem even becomes worse.
It is recommended to destroy objects from the bottom up; This means that you have to destroy Pick BusComps and MVG BusComps before BusComps and BusObjects are going to be destroyed. Memory leaks can
occur, if objects are not destroyed in the so called order.
Recommendation
It is strongly recommended to validate the code mentioned within the
occurrence list.
Consider to release objects explicitly when they are no longer needed
instead of relying on the interpreter to clean them up. In Siebel eScript, objects can be released by setting their value to null, as in:
bcAccount = null;
In Siebel VB, objects can be released by setting their value to null, as in:
Set bcAccount = nothing
Keep in mind that references to the already destroyed object can be lost; if they have not been destroyed in the reverse order they have been created.
The objects should be destroyed in the finally {} section of the exception handling mechanism. The 'finally' section is always executed, even if there are several return() statements in the try{} section.
New object instances do not have to be released when terminating function
execution using Exit Function.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200818
IBM Global Business Services
© Copyright IBM Corporation 2008
Explicit Object Release 2/2
Business Service: Sample Application Log – WriteErrorLog()
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200819
IBM Global Business Services
© Copyright IBM Corporation 2008
DAVID‘s reports address different audiences and detail levels
Team Lead Report
The TL report is for team leads who need an
overview what possible findings are in the
Siebel Repository per team member.
� All occurrences and findings on one
Microsoft Excel sheet available for easy
searching and sorting
Addendum Config. And Scripting Report
The addendum configuration and scripting
report is auxiliary to the available Word report.
� One finding and its occurrences per
Microsoft Excel sheet
� More details available than in TL report
Word Configuration and Scripting Report
The word configuration and scripting report
includes all found findings with a list of a
maximum of 20 occurrences per finding.
� The report includes the description of the
finding, consequences and
recommendations
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200820
IBM Global Business Services
© Copyright IBM Corporation 2008
Sample team lead report
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200821
IBM Global Business Services
© Copyright IBM Corporation 2008
Sample Microsoft Word configuration and scripting report
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200822
IBM Global Business Services
© Copyright IBM Corporation 2008
Sample addendum configuration and scripting report
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200823
IBM Global Business Services
© Copyright IBM Corporation 2008
� What findings did you had during your
configuration and coding reviews?
� Do you think, if you had the chance to
detect more possible findings your
application could be more stable and
reliable?
� Did you had a list of all possible findings to
analyze and resolve them?
� How did you track the analysis and
resolution of your findings (e.g. Word,
Excel, IBM Rational Clearquest)?
Questions
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200824
IBM Global Business Services
© Copyright IBM Corporation 2008
Agenda
How can DAVID be used by project teams?3
What is DAVID?2
Introduction to Quality Assurance and Quality Reviews1
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200825
IBM Global Business Services
© Copyright IBM Corporation 2008
How can DAVID be used by project teams?
� Scenario 1:
Enhancement phase, the customer wants some additonal functionality or an upgrade. Use
an available local database to check the Repository for possible pitfalls, before estimating
the efforts, you can use DAVID in addition to ReposiTool for upgrades.
� Scenario 2:
New Siebel implementation project, use DAVID for an ongoing QA to minimize possible
configuration and scripting findings, or to show the customer the overall quality progress of
the configuration and scripting.
� Scenario 3:
Ongoing Siebel implementation project, introduce DAVID for an ongoing QA to improve
overall configuration and scripting quality.
All reports can be used internally and externally.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200826
IBM Global Business Services
© Copyright IBM Corporation 2008
Resolving identified findings
Analysis
� Validate identified findings marked as critical
� Sort out possbile false-positive findings
� Adjust business requirements if necessary
� Create tickets for fixing validated findings
Development Test Deployment
� Resolve validated identified findings
� Unit testing of fixed findings
� Test defined test chains
� Complete regression test needed
� DEV2PROD of changed artefacts (SRF, migrep.dat, Browser Scripts)
Don’t guess! You should know what you have to do to improve configuration and scripting quality, that’s where IBM’s DAVID tool can support your project.
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200827
IBM Global Business Services
© Copyright IBM Corporation 2008
Contact details
IBM Deutschland GmbH
Global Business Services
Oliver Seiffert
Nahmitzer Damm 12
12277 Berlin
Germany
Phone: +49 (0)170 785 17 82
Email: [email protected]
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200828
IBM Global Business Services
© Copyright IBM Corporation 2008
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200829
IBM Global Business Services
© Copyright IBM Corporation 2008
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200830
IBM Global Business Services
© Copyright IBM Corporation 2008
Backup
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200831
IBM Global Business Services
© Copyright IBM Corporation 2008
Actual findings analyzed by DAVID for configuration
� CRITICAL: Fields mapped on same column� CRITICAL: Picklists are identified for Fields without pick maps
� CRITICAL: Incorrect Link configuration (non existent reference)
� CRITICAL: Incorrect Link configuration (Id)
� CRITICAL: Cascade Delete Property on New Link Definitions� CRITICAL: Incorrect Configuration Of BC Using CX_Tables
� CRITICAL: Incorrect Configuration Of BC Using A Standard 1:M Extension Table
� CRITICAL: Views Visibility Applet properties set incorrectly
� CRITICAL: Drilldown object points to a View that does not exist
� Explicitly Defining a System Field� Force Active BusComp Field Property Set to TRUE
� LinkSpec for BusComp Field property set to TRUE� Heavy Use of Immediate Post Changes Property on BusComp Fields� Primary ID Field not specified or “Use Primary Join” property set to
FALSE
� CheckNoMatch property set to TRUE for MVLs� Join object for a 1:M relationship
� Upgrade Ancestor Property Not Configured for Custom Objects� Incorrect Join Specification To 1:1 Extension Table� Custom index creation� Admin Mode Flag property on Views� Thread Applet property incorrect or not set
� Use of Calculated Fields� Observing standard naming conventions� InvokeMethod on Calculated Fields in BusComps
� Storing special characters within language independent code (LIC)� Faulty assigned Views to Responsibilities
� New unregistered Views
� Duplicate web template item identifiers defined
� Duplicate Joins defined
� Non-Indexed search specifications in Picklists� Search specifications on joined or Multi Value Fields in Picklists� Force Active set on BusComp level� Re-created implicit Joins� Force Active set on joined or Multi Value Fields
� "CheckNoMatch" attribute set on Multi Value Links
� Invalid View Mode in Views
� Invalid View Web Template Items� Joins with no Join Specification
� Missing EIM mappings for custom Columns
� New inner Joins� Critical "All Mode Sort" BusComp User Property set.� Critical "Manager List Mode" BusComp User Property set
� Search Specifications on Business Component utilizing the "OR" statement
� Search Specifications on Links utilizing the "OR" statement� Search Specifications on PickLists utilizing the "OR" statement
� Search Specifications on Applets utilizing the "OR" statement� Excessive Number of Columns in List Applets� Excessive Applets on Web Templates
� Non-indexed Sort Specification or Non-indexed Search Specification or Search Specification based on a Multi-Value Field using EXISTS
� CRITICAL: Extension Columns on S_PARTY
� Configuration of Tables and Extension Columns
� Usage of Symbolic Strings� Caching Business Services
DOAG: SIG Siebel | Quality Review for Siebel | 6/11/200832
IBM Global Business Services
© Copyright IBM Corporation 2008
Actual findings analyzed by DAVID for scripting
� CRITICAL: Using of COM object within Server Script� CRITICAL: Compact code causing Object Manager crash
� Using incorrect cursor mode for ExecuteQuery� Hard coded paths� Use of the SetViewMode() method
� Placing code in the PreGetFieldValue( ), PreSetFieldvalue() event handlers
� Placing code in the ChangeRecord() event handlers
� Exists SearchSpec used in Siebel eScript� CRITICAL: Presumed Parent Business Component in Script � Scripting the PreCanInvokeMethod event for a Business
Service� SharedGlobals Used instead of ProfileAttributes� Activating Fields unnecessarily� Use of theApplication() method in Browser Script
� Setting Field Values in BusComp_NewRecord() event handler
� CRITICAL: Call to NextRecord after a call to DeleteRecord
� Setting Field values using hard-coded values� Unnecessary code (WriteRecord() within a loop)� Explicit Object Release
� Empty Event Handlers