Tuesday, December 1, 2009

SRFDiff: Compare two SRF's !!!


Cool new feature in Siebel 8.1 (much awaited)

The SRFDiff utility allows you to compare two repository (.srf) files. Both SRFs must be from the same locale and language and compliant with the current Siebel Tools schema version. From the Help menu in Siebel Tools, choose Technical Support to view the schema version of the SRF that Siebel Tools is using.
NOTE: The SRFDiff utility validates only for a major schema version. Therefore, SRFs with different minor schema versions, such as 44.39.0.248 and 44.40.0.1, are valid schemas.
The differences between the two files, that is new, deleted, and changed objects, are recorded in two user-specified XML output files, depending on what the comparison discovers:
1)diff_srf1_srf2.xml. This output file contains differences between the two SRFs and provides a list of new and modified objects. It may also contain new objects found in srf2 that are not found in srf1. This output file shows the differences found during the comparison using an attribute name/value list format.
2)deleted_records_diff_srf1_srf2.xml. This output file contains deleted objects (objects present in srf1 but not in srf2).
If no differences are found or both SRF files are identical, then the SRFDiff utility does not generate output files.

Sample Output

1) Adding a new field in the BC
<!-- Start: New object section -->
<FIELD Name="Test1" CALCULATED="N" CALCULATED_VALUE="" COLUMN="CONFLICT_ID" COMPOSITE="N" CURRENCY_CODE_FIELD="" DEST_FIELD="" DISABLE_SEARCH="N" DISABLE_SORT="N" EXCHANGE_DATE_FIELD="" FORCE_ACTIVE="N" FORCE_CASE="" HIDDEN="N" IMMEDIATE_POST_CHANGES="N" INTERNAL_PICK_APPLET="" JOIN="" LINK_SPECIFICATION="N" MESSAGE_DISPLAY_MODE="User Msg with Error Code Only" MULTI_VALUE_LINK="" MULTI_VALUED="N" NO_COPY="N" ORACLE_SEQUENCE_OBJECT="" PICKLIST="" POST_DEFAULT_VALUE="" PRE_DEFAULT_VALUE="" PRECISION="" READ_ONLY="N" REQUIRED="N" SCALE="" TEXT_LENGTH="15" TYPE="DTYPE_ID" USE_DEFAULT_SENSITIVITY="Y" VALIDATION="" VALIDATION_MESSAGE=""></FIELD>
<!-- End: New object section -->


2) New script in the BC:
New Script is not visible but there is an indicator that says a new object was added.

<!-- Start: New object section -->
<BUSCOMP_SERVER_SCRIPT Name="sscfcli">
</BUSCOMP_SERVER_SCRIPT>
<!-- End: New object section -->

Thursday, November 12, 2009

BROWSER SCRIPT IN SIEBEL: REVELATIONS

This is just a post to let the readers know whats coming next.

We all know Siebel HI provides many soothing features to the Siebel Application.
But how safe is Browser Script?
Siebel provides very powerful Vanilla Business Services that can perform a CRUD (Create, read, update and delete) on Siebel DB thru Business Layer.

Ideal Scenario:
All Business Service's not exposed as ClientBusinessService will not be available in a browser script.
For eg: Try invoking EAI Siebel Adapter from a Browser Script.
You will get an alert: Cannot get service: EAI Siebel Adapter.

Siebel blocks the execution of Business Services not marked as a Client BS and that are not within the list of permissible ones.

Reality
You can invoke any Business Service using a Browser Script :)

Follow this space to know more revelations in this wild world of Siebel !

Wednesday, October 14, 2009

RUNTIME BUSINESS SERVICE MAGIC: PROOF OF CONCEPT DEMONSTRATION

In the last post (SADMIN CREDENTIALS REVEALED !) we had seen the SADMIN credentials being popped out in the Output Property Set of a Runtime Business Service.

I enhanced the functionality of the script to:

a) To accept an input argument: Command.
This tells the BS which credentials the user is looking out for.
Command = APPLICATION (Displays Siebel Administrator Credentials)
Command = DB (Displays DB Table Owner Credentials)

b) The code is enhanced to display the SIEBEL credentials.


A proof of concept was performed on one of the sandboxes.
Please check out the demo (Play in SWF Format).
http://tinyurl.com/ylf5okz



Follow this space to know more revelations in this wild world of Siebel !

Tuesday, September 29, 2009

SADMIN CREDENTIALS REVEALED !

Welcome to the wild world of Siebel !!! I got bored coding business logic and wrote a small different script. Look at what it does (Screenshot).




And what does all these mean.

Here's the explanation.

1) All credentials including those for SADMIN and SIEBEL can be easily thrown out in Siebel Output Property Set.

2) I wrote a Runtime-Business Service on thin client to achieve this functionality that can be easily plugged in and out. Also the code has been reliably tested across multiple environments and on different versions (Versions 8.0 and 8.1).

3) There are other cooler ways (zero footprint I mean !!! )

You can contact me thru twitter: (@geeksajan: http://twitter.com/geeksajan)

DISCLAIMER


There are no code or methodologies published in this posting.

This post is a security advisory and should be treated as a responsible disclosure.

Friday, September 11, 2009

SIEBEL ORACLE DRIVER: CAUGHT IN THE ACT

Recently I came across a very peculiar problem in the wild world of Siebel:

There was a PDQ when fired took around 100 secs + to return the result set on the UI.
I was able to trap the killer SQL (SQL Execution Time: 98 secs)
But the same SQL fired directly on the DB took only 2 secs.

The culprit was caught red handed.

The Siebel Oracle driver sscdo90.dll (Sqlstyle : CBO) tunes off the HASH JOIN(with optimizer MODE set to FIRST_ROWS_10) for the session and then fires the query.
Since HASH JOIN is disabled, the performance of this specific query is heavily impacted.

Wednesday, September 9, 2009

Most popular Interview Question

I am sure you might have heard this in 1st round



How will you edit the joined field values in join?

My First Post

This is my first post on my blog Siebel Musings !