- Vanilla: Analysis setup and configuration
- Vanilla: Generate a snapshot and check results
- Project: Analysis setup and configuration
- Project: Generate a snapshot and check results
The analysis process for your Siebel applications is designed to work with the two analysis service schemas that were created earlier (see Siebel 5.2 - Installation) - note that the names of the schemas are just examples and they can be called anything:
- SIEBEL5_LOCAL: Analysis Service that will store the analysis results for the Project repository
- SIEBEL5_V_LOCAL: Analysis Service that will store the analysis results for the Vanilla repository
Vanilla: Analysis setup and configuration
CAST Management Studio connection
Run the CAST Management Studio and then validate and choose the connection profile for the SIEBEL5_V_MNGT Management Service schema (i.e. for the Vanilla repository). Click Next to start the setup wizard
Enter the CAST License Key and click Next:
Configure the folders (note that the required folders have changed in CAST AIP ≥ 8.3.x):
CAST AIP ≥ 8.3.x | Click to enlarge |
|
---|---|---|
CAST AIP 8.2.x | Click to enlarge |
|
Click Finish to launch the CAST Management Studio.
Configure CAST Management Studio preferences
Once the CAST Management Studio has launched, open Windows/Preferences:
CAST AIP ≥ 8.3.x | Select Cast General: Click to enlarge |
|
---|---|---|
CAST AIP 8.2.x | Select Cast General: Click to enlarge |
|
Import the Assessment Model - required when using CAST AIP 8.2.x ONLY
Open the Dashboard Service editor for the Dashboard Service (SIEBEL5_V_CENTRAL) that is associated to the Management Service you are currently connected to. Click the Import Assessment Model option - the Assessment Model will then be displayed in the CAST Management Studio in the Assessment Models view.
Configure the Assessment Model
Open the Assessment Model and check that the parameter settings for the Siebel rules are adapted to your project. To do so, go to the Contextual Parameters tab and search for names that start with "Siebel:"
Click to enlarge
To check or modify a parameter, edit the parameter - this will open the parameter in an editor window. For example, for the naming conventions, edit the parameters "Siebel: Prefix XXX":
Click to enlarge
Check the following tables and modify each parameter to the value defined in the Project value column.
Multiple values, char: as they are related to naming convention, they must be adapted to the project:
MetricID | Rule name | Parameter name | Default value | Project value |
---|---|---|---|---|
1520380 | Siebel: Applet's name should contain the type | Siebel: Suffix Applet - Association List | Assoc Applet | |
Siebel: Suffix Applet – Detail | Detail Applet or Popup Applet | |||
Siebel: Suffix Applet – MVG | Mvg Applet | MVG Applet | ||
Siebel: Suffix Applet - Pick List | PickList Applet | Pick Applet | ||
Siebel: Suffix Applet - Playbar | Playbar Applet | |||
Siebel: Suffix Applet - Standard | Standard Applet | |||
Siebel: Suffix Applet - Task | Task Applet | Form Applet | ||
1521700 | Siebel: Table's name should have a designated prefix like XX_LABEL | Siebel: Prefix Table | CX_ | |
1521702 | Siebel: Business Component's name should begin with Company prefix | Siebel: Prefix Business Component | AM_ | ACME_ |
1521704 | Siebel: Applet's name should begin with Company prefix | Siebel: Prefix Applet | AM_ | ACME_ |
1521706 | Siebel: View's name should begin with Company prefix | Siebel: Prefix View | AM_ | ACME_ |
1521708 | Siebel: Screen's name should begin with Company prefix | Siebel: Prefix Screen | AM_ | ACME_ |
1521710 | Siebel: Business Object's name should begin with Company prefix | Siebel: Prefix Business Object | AM_ | ACME_ |
1521712 | Siebel: Business Service's name should begin with Company prefix | Siebel: Prefix Business Service | AM_ | ACME_ |
Single value, numerical: As a first approach, you can stick to the default values:
MetricID | Rule name | Parameter name | Default value | Project Value |
---|---|---|---|---|
1520180 | Siebel eScript: Avoid Functions with High Cyclomatic Complexity | Siebel: Max CC | 15 | |
1520442 | Siebel eScript: Avoid Functions with a low comment/code ratio | Siebel: Min comment ratio | 5 | |
1520494 | Siebel eScript: Avoid complex PreGetFieldValue Functions | Siebel: Max LoC for PreGetFieldValue | 50 | |
1520540 | Siebel: Avoid too many MVG on list applet | Siebel: Max MVG Applet | 5 | |
1520726 | Siebel eScript: Avoid putting all code in the Applet_PreInvokeMethod event | Siebel: Max LoC for Service_PreInvokeMethod | 20 | |
1520728 | Siebel eScript: Avoid putting all code in the Service_PreInvokeMethod event | Siebel: Max LoC for Service_PreInvokeMethod | 20 | |
1520730 | Siebel eScript: Prefer SWITCH over nested IF-THEN-ELSE in Functions | Siebel: Max Nested IF | 5 | |
1520734 | Siebel eScript: Avoid using multiple conditions in IF constructions in Functions | Siebel: Max Condition in IF | 5 | |
1520860 | Siebel: Avoid Business Objects referencing too many Business Components | Siebel: Max Buscomp | 50 | |
1520862 | Siebel: Avoid Business Components referencing more than X tables | Siebel: Max Table | 40 | |
1520864 | SiebelReview: Too Many Applets on a View | Siebel: Max Applet | 10 | |
1520866 | SiebelReview: Excessive Number of List Columns in a List Applet | Siebel: Max number of columns | 50 | |
1520868 | Siebel eScript: Avoid Functions with more than X variables | Siebel: Max Variables | 15 | |
1520880 | Siebel eScript: Avoid Functions with more than X Lines of Code | Siebel: Max LoC | 50 |
Manage the Application, accept the delivery and set as current version
In the CAST Management Studio, Application view, click Manage an Application registered in AIC Portal…. The wizard displays all available applications. Select the "Vanilla" application:
Assuming the packages have already been delivered as explained in Siebel 5.2 - Application onboarding, the Application editor will show the delivered Version in the Delivery tab:
Select the Version and then click the Manage the delivery… option to open the CAST DMT. Check the packaging is correct:
- The Content state of the package should be showing Packaging successful
- In the Package content tab, you should see one project named Vanilla for the Siebel Extractor Project type:
Quit the CAST Delivery Manager Tool. Back in the CAST Management Studio, select the Version and click Accept delivery and use it as current version. You should use the default values in the wizard that is displayed.
Configure Modules
In the Application editor, click the Modules tab. Ensure the option to generate a Full Content module is ticked (this should be the case already):
You are now ready to generate a snapshot, see below.
Vanilla: Generate a snapshot and check results
Generate a snapshot
Generate a snapshot for the Vanilla Application - ensure this includes an analysis:
Post snapshot checks
Check log files
You should ensure that no error nor warning messages are reported and that any unusual message recorded in the log file should be reported to CAST Support. When using the GUI, navigate to each analysis execution item and then click the log link:
Analysis warning messages: end of comment '*/' not found
During the analysis, you may see warnings in the analysis log referencing certain scripts when the script is not syntactically valid. Typically, this has been seen in scripts related to the Vanilla standard object "CSSSWEFrameWebCallScriptPlayer". The impact on results is very low since the analyzer will just ignore the content of these invalid scripts. Potential warning messages:
- end of comment '*/' not found
Check the results in the CAST dashboards
Benchmarking feature
In particular, you should use the Benchmarking feature in the legacy CAST Engineering Dashboard - CED to help perform an inventory check. Expand the table at the bottom, below the bar chart, and look at the main Siebel object types: we expect 100's or 1000's of added and modified Applets, Business Components, Business Services etc.
- If one of the counts is 0, then it is a failure. The issue is most likely located in the discrimination, the Siebel Vanilla Import task, or the extraction itself, as such check the processing of these tasks.
- If both counts are equal, then it is a failure. The issue is most likely located in definition of modules, as such check the explicit lists code.
- If Added is 100% of the Project AU content (i.e. 18,000 Applets etc.) and Modified is empty, then the issue is most likely located in the discrimination, the Siebel Vanilla Import task, or the extraction itself. Therefore, check the processing of these tasks. Check content of table siebel_objects_v (in the Project's analysis schema).
Please note that the Project application is the sum of ADDED modules and MODIFIED modules. This excludes the standard objects (unchanged from the Vanilla).
Measure based rules
Using the Investigation View in the legacy CAST Engineering Dashboard - CED, look for invasive and extension customization ratio. Expected range of values for the 7 invasive measure-based rules, and 7 extensive measure-based rules is 0.1% to 25% or more. For now, this inspection is manual. Take this opportunity to fill the Excel report provided in the reporting kit, it will allow the consumers to have access to the measure in one single instant.
An abnormally high invasive customization ratio is usually a sign that the Vanilla and the Project are not in sync (the difference is due to a Siebel version difference or one of more patches) as opposed to actual customization made by the development team. The development team will team you what value is expected and what value is unexpected.
Quality Rules check
All Siebel applications will have critical and non-critical violations. This is inherent to this development environment. So even with low customization ratios, the number of critical and non-critical violations will be 100s or 1000s.
Project: Analysis setup and configuration
CAST Management Studio connection
Run the CAST Management Studio and then validate and choose the connection profile for the SIEBEL5_MNGT Management Service schema (i.e. for the Project repository). Click Next to start the setup wizard
Enter the CAST License Key and click Next:
Configure the folders (note that the required folders have changed in CAST AIP ≥ 8.3.x). You should use the SAME FOLDERS as defined when you setup the analysis for Vanilla:
CAST AIP ≥ 8.3.x | Click to enlarge |
|
---|---|---|
CAST AIP 8.2.x | Click to enlarge |
|
Configure CAST Management Studio preferences
Once the CAST Management Studio has launched, open Windows/Preferences:
CAST AIP ≥ 8.3.x | Select Cast General: Click to enlarge |
|
---|---|---|
CAST AIP 8.2.x | Select Cast General: Click to enlarge |
|
Import the Assessment Model - required when using CAST AIP 8.2.x ONLY
Open the Dashboard Service editor for the Dashboard Service (SIEBEL5_CENTRAL) that is associated to the Management Service you are currently connected to. Click the Import Assessment Model option - the Assessment Model will then be displayed in the CAST Management Studio in the Assessment Models view.
Configure the Assessment Model
Open the Assessment Model and check that the parameter settings for the Siebel rules are adapted to your project. To do so, go to the Contextual Parameters tab and search for names that start with "Siebel:"
Click to enlarge
To check or modify a parameter, edit the parameter - this will open the parameter in an editor window. For example, for the naming conventions, edit the parameters "Siebel: Prefix XXX":
Click to enlarge
Check the following tables and modify each parameter to the value defined in the Project value column.
Multiple values, char: as they are related to naming convention, they must be adapted to the project:
MetricID | Rule name | Parameter name | Default value | Project value |
---|---|---|---|---|
1520380 | Siebel: Applet's name should contain the type | Siebel: Suffix Applet - Association List | Assoc Applet | |
Siebel: Suffix Applet – Detail | Detail Applet or Popup Applet | |||
Siebel: Suffix Applet – MVG | Mvg Applet | MVG Applet | ||
Siebel: Suffix Applet - Pick List | PickList Applet | Pick Applet | ||
Siebel: Suffix Applet - Playbar | Playbar Applet | |||
Siebel: Suffix Applet - Standard | Standard Applet | |||
Siebel: Suffix Applet - Task | Task Applet | Form Applet | ||
1521700 | Siebel: Table's name should have a designated prefix like XX_LABEL | Siebel: Prefix Table | CX_ | |
1521702 | Siebel: Business Component's name should begin with Company prefix | Siebel: Prefix Business Component | AM_ | ACME_ |
1521704 | Siebel: Applet's name should begin with Company prefix | Siebel: Prefix Applet | AM_ | ACME_ |
1521706 | Siebel: View's name should begin with Company prefix | Siebel: Prefix View | AM_ | ACME_ |
1521708 | Siebel: Screen's name should begin with Company prefix | Siebel: Prefix Screen | AM_ | ACME_ |
1521710 | Siebel: Business Object's name should begin with Company prefix | Siebel: Prefix Business Object | AM_ | ACME_ |
1521712 | Siebel: Business Service's name should begin with Company prefix | Siebel: Prefix Business Service | AM_ | ACME_ |
Single value, numerical: As a first approach, you can stick to the default values:
MetricID | Rule name | Parameter name | Default value | Project Value |
---|---|---|---|---|
1520180 | Siebel eScript: Avoid Functions with High Cyclomatic Complexity | Siebel: Max CC | 15 | |
1520442 | Siebel eScript: Avoid Functions with a low comment/code ratio | Siebel: Min comment ratio | 5 | |
1520494 | Siebel eScript: Avoid complex PreGetFieldValue Functions | Siebel: Max LoC for PreGetFieldValue | 50 | |
1520540 | Siebel: Avoid too many MVG on list applet | Siebel: Max MVG Applet | 5 | |
1520726 | Siebel eScript: Avoid putting all code in the Applet_PreInvokeMethod event | Siebel: Max LoC for Service_PreInvokeMethod | 20 | |
1520728 | Siebel eScript: Avoid putting all code in the Service_PreInvokeMethod event | Siebel: Max LoC for Service_PreInvokeMethod | 20 | |
1520730 | Siebel eScript: Prefer SWITCH over nested IF-THEN-ELSE in Functions | Siebel: Max Nested IF | 5 | |
1520734 | Siebel eScript: Avoid using multiple conditions in IF constructions in Functions | Siebel: Max Condition in IF | 5 | |
1520860 | Siebel: Avoid Business Objects referencing too many Business Components | Siebel: Max Buscomp | 50 | |
1520862 | Siebel: Avoid Business Components referencing more than X tables | Siebel: Max Table | 40 | |
1520864 | SiebelReview: Too Many Applets on a View | Siebel: Max Applet | 10 | |
1520866 | SiebelReview: Excessive Number of List Columns in a List Applet | Siebel: Max number of columns | 50 | |
1520868 | Siebel eScript: Avoid Functions with more than X variables | Siebel: Max Variables | 15 | |
1520880 | Siebel eScript: Avoid Functions with more than X Lines of Code | Siebel: Max LoC | 50 |
Manage the Application, accept the delivery and set as current version
In the CAST Management Studio, Application view, click Manage an Application registered in AIC Portal…. The wizard displays all available applications. Select the "Project" application:
Assuming the packages have already been delivered as explained in Siebel 5.2 - Application onboarding, the Application editor will show the delivered Version in the Delivery tab:
Select the Version and then click the Manage the delivery… option to open the CAST DMT. Check the packaging is correct:
- The Content state of the package should be showing Packaging successful
- In the Package content tab, you should see one project named Vanilla for the Siebel Extractor Project type:
Quit the CAST Delivery Manager Tool. Back in the CAST Management Studio, select the Version and click Accept delivery and use it as current version. You should use the default values in the wizard that is displayed.
Configure Modules
Define Module Strategy
In the Application editor, click the Modules tab. Untick all options under Generate one module per:
Create empty User Defined Modules
Create the following empty User Defined Modules:
Two Modules for the entire Siebel repository named as follows:
These modules will take all objects, including objects not used by any application. In this context, rules for dead code will be triggered. |
Two Modules for EACH functional Siebel application that was included in the Project extraction in the CAST Delivery Manager Tool (i.e. you may need to create multiple pairs of Modules) named as follows:
These modules will take only those objects used inside the selected application In this context, rules for dead code are not triggered since all objects are called in the application. Applications you specify for modules must have already been selected in the extraction (if the application has not been selected, the computation will fail in the tools computed at the end of the application by the SDK - note that with AIP, the process is not failing at that level). Using this configuration, some custom objects may not be included. This is why CAST recommends also configuring the REPOSITORY_ADDED / REPOSITORY_MODIFIED modules as well (see above) |
The configuration described above will give you something similar to the list of User Defined Modules shown below:
Siebel objects are shared inside a single Siebel repository and if you have multiple applications in this single repository some objects may be counted in multiple different modules. This situation will also occur if you configure both RESPOSITORY_* and <appname>_* modules.
Edit the modules
For EACH of the empty User Defined Modules you have just created, you must open and edit each one as follows:
Delete the default Object Filter (called My Object Filter) from the Filters tab:
Activate the option Build module content using an explicit list of objects in the Explicit content tab - this will populate the SQL Query section with a default query template:
Delete the default SQL query template in the Explicit content tab:
Copy in the appropriate SQL query provided in the template TXT file for EACH empty User Defined Module. Template text files can be found in:
%PROGRAMDATA%\CAST\CAST\Extensions\com.castsoftware.siebel.<version>\CMS_ConfigScripts\CastStorageService Project_Module_REPOSITORY_ADDED.txt Project_Module_REPOSITORY_MODIFIED.txt Project_Module_SiebelApp_ADDED.txt Project_Module_SiebelApp_MODIFIED.txt
for example:
Use the following templates:
|
You must also ensure that the relevant Siebel Application name is specified in the SQL you paste in from the template text file by replacing the default sample 'Siebel Sales Enterprise' with your customized Application name, for example 'Siebel Power Communication': select * from §SIEBEL_MODULE_ADDED('$(ModuleName)','Siebel Power Communication') / |
Configure a platform variable
You now need to configure a new platform variable that defines the name of the CAST Analysis Service schema installed for the Vanilla. In our example this is "SIEBEL5_V_LOCAL":
In the Technologies view, double click the Common entry to open the Common editor. In the Platform tab, add a new variable called SIEBEL_VANILLA_SCHEMA with a value equal to the name of the CAST Analysis Service schema installed for the Vanilla:
Click to enlarge
Note that a check is performed when the analysis/snapshot is executed and if the platform variable SIEBEL_VANILLA_SCHEMA is not defined then a warning will be displayed in the analysis log: SIEBEL-100 Variable SIEBEL_VANILLA_SCHEMA is not defined. Refer to the documentation. This will not block the execution of the analysis/snapshot, however, it is possible to cancel the execution if this message is seen.
Project: Generate a snapshot and check results
Generate a snapshot
Generate a snapshot for the Project Application - ensure this includes an analysis:
Post snapshot checks
Check log files
You should ensure that no error nor warning messages are reported and that any unusual message recorded in the log file should be reported to CAST Support. When using the GUI, navigate to each analysis execution item and then click the log link:
Check the results in the CAST dashboards
Benchmarking feature
In particular, you should use the Benchmarking feature in the legacy CAST Engineering Dashboard - CED to help perform an inventory check. Expand the table at the bottom, below the bar chart, and look at the main Siebel object types: we expect 100's or 1000's of added and modified Applets, Business Components, Business Services etc.
- If one of the counts is 0, then it is a failure. The issue is most likely located in the discrimination, the Siebel Vanilla Import task, or the extraction itself, as such check the processing of these tasks.
- If both counts are equal, then it is a failure. The issue is most likely located in definition of modules, as such check the explicit lists code.
- If Added is 100% of the Project AU content (i.e. 18,000 Applets etc.) and Modified is empty, then the issue is most likely located in the discrimination, the Siebel Vanilla Import task, or the extraction itself. Therefore, check the processing of these tasks. Check content of table siebel_objects_v (in the Project's analysis schema).
Please note that the Project application is the sum of ADDED modules and MODIFIED modules. This excludes the standard objects (unchanged from the Vanilla).
Measure based rules
Using the Investigation View in the legacy CAST Engineering Dashboard - CED, look for invasive and extension customization ratio. Expected range of values for the 7 invasive measure-based rules, and 7 extensive measure-based rules is 0.1% to 25% or more. For now, this inspection is manual. Take this opportunity to fill the Excel report provided in the reporting kit, it will allow the consumers to have access to the measure in one single instant.
An abnormally high invasive customization ratio is usually a sign that the Vanilla and the Project are not in sync (the difference is due to a Siebel version difference or one of more patches) as opposed to actual customization made by the development team. The development team will team you what value is expected and what value is unexpected.
Quality Rules check
All Siebel applications will have critical and non-critical violations. This is inherent to this development environment. So even with low customization ratios, the number of critical and non-critical violations will be 100s or 1000s.