GeeKs Blogging @ dotCOM

Let's share…
  • Home
  • About
  • Contribute
  • How To – FAQs
  • Disclaimer
  • Terms & Conditions
10 May 2009

Siebel – Reading data directly from Siebel SRF

by Nitin Jain


SRF or the Siebel Repository File as it is more commonly known, is the binary representation of data in Siebel Tools. Siebel Application refers this file for many of the objects and data in Siebel. This greatly helps performance as the data is already available in compiled form to the runtime instance at the time of execution. On the other hand, there are many other objects or data houses in Siebel which don’t form a part of the SRF, and are compiled at runtime. And thus, are slower. For eg. Client side Business Scripts.

“Every now and then, there comes about a thought powerful enough, to make me sit straight in my chair and start hitting the keyboard!!” – Nitin Jain

When I first looked at this problem statement on one of the public forums, it got me thinking. I had already been thinking about it for some time, just that wasn’t really implementing the possible solution to this. In this blog post, I will demonstrate how I read the data from the Siebel SRF, and exposed its objects to me.

I did this with the Business Services which are from one of the objects that you generally compile from Siebel Tools into the Siebel SRF.

I noticed that Siebel generally accesses all objects in the Siebel SRF using special Business Components (dare I call them virtual!!).
For accessing the Business Services, it uses the Business Component called, “SRF Service”. From my experiments, it seems that this Business Component returns the list of all the Business Services compiled into the SRF, and also, those that are present in Siebel Web Client.

Similarly, siebel uses the BC, “SRF Service Method” to get the list of all the available Business Service Methods from the SRF.

I noted that these Business Components are not mapped to any particular Business Object in Siebel. So, for my experiments, I created some custom Business Objects using these Virtual BCs exposing the Siebel SRF functionality. After creating Applets, Views, etc. you can see what I ended up with in the image below:

Siebel SRF - List of all BS

Siebel SRF - List of all BS

Similarly, for all the different entities in Siebel Tools, which upon compilation go into the Siebel SRF, Siebel has exposed the list through these Business Components. You can see the complete list by typing out, “SRF*” against Business Components in Siebel Tools.

Let me know what you think about it. You can add your comments to this thread.

From when I started working on this problem, I got this within the first 10 minutes. So, I guess this is very very limited and there must be much more. I would appreciate if people with better insight could add to the understanding for all of us here.

“Knowledge is the only thing in the world which grows by sharing”. So, “Let’s Share!!”



Related posts:

  1. Siebel – About SRF Window – Remove data Okay. This is something those who like to toy with...
  2. Siebel – Autosave Opportunity data – The concept Requirement: System should have capability to automatically save opportunity(RFPs) data...
  3. Siebel – Autosave Opportunity data – Sample Code This is a follow up post on my previous post,...
  4. Siebel – ActivateField() split wide open In Siebel, we generally tend to use the fields on...
  5. Siebel – Fetch Active view properties – III I will discuss a practical example, and the corresponding Inputs...
  6. Siebel – Unable to check out objects I will discuss the following most prominent ways to enable...
  7. Siebel – Scrolling between records – UP and DOWN Generally in Siebel Client, we very often have the need...

Tags: Configuration, problems, Siebel, Siebel Secrets, SRF



For regular updates, enter your email address below. We don't spam, we don't share with others!




This entry was posted on Sunday, May 10th, 2009 at 11:35 PM and is filed under Siebel CRM. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

12 Responses to “Siebel – Reading data directly from Siebel SRF”

  1. Nitin Jain says:
    May 10, 2009 at 11:52 PM

    Following is the link which acted as an inspiration for me to try out the above:

    reading-repository-data-from-the-actual-srf-file

    I feel ‘Hui Ye’ has given a beautiful explanation to the Siebel SRF here.

  2. Smita says:
    May 13, 2009 at 7:39 PM

    Good one! thats very nice exploration :D

  3. Nitin Jain says:
    May 13, 2009 at 7:42 PM

    Thanks, Smita. Just an effort to try and understand the vast world of Siebel..! :-)

  4. TJ says:
    May 24, 2009 at 1:30 AM

    Excellent finding Nitin .!!!
    This thing can be really helpful at times,,especially when we try to debug some thing in multiple environments…
    Keep it up!

  5. Nitin Jain says:
    May 24, 2009 at 1:48 AM

    Thanks, TJ. I will take it as a compliment. Cheers! :-)

  6. Abhishek says:
    May 25, 2009 at 2:25 PM

    Hey good work dude…. i hope there are many more like this to come from you.. hope you remember me… ;)

  7. Nitin Jain says:
    May 25, 2009 at 2:51 PM

    Thanks for the compliment, Abhishek. Of course I remember you.

  8. Piyush says:
    May 29, 2009 at 6:58 AM

    HI Nitin

    Good Post. But I think you are not really reading a data from Siebel SRF. basically siebel stores the Object definition in Database. Even if you execute up a below query at Database you will see all the BS in repository.

    Select * from siebel.S_SERVICE

    I believe you have just exposed the data contains in S_SERVICE table by basing a applet on repository BC. I think that is true for any object definition.

    I think it is quite tedious to read a data from Siebel SRF alone.

    I could be wrong as well. Please let me know your thoughts.

    Cheers
    Piyush

  9. Nitin Jain says:
    May 29, 2009 at 12:03 PM

    Hi Piyush

    Thanks for your comment. Nice thought I would say.
    I understand that the concept is not very clear from the example I have chosen. I will try to find a good example and come back in a couple of days. Please do pardon me for being deeply engaged in my work at the moment.

    As far S_SERVICE is concerned, you are right in that Siebel stores the BS Descriptions in this table. But, let me assure you that the SRF and the S_SERVICE table would not necessarily hold the same values.

    I will come back to this post with an example. When we discuss and share, many new thoughts come forward.

  10. Nitin Jain says:
    May 30, 2009 at 1:59 AM

    Hi Piyush

    Based on your comment, in order to re-check I just reran my entire process. My conclusion is, what I mentioned in the blog above is correct. I’ll explain.

    Basically, I will divide the Business Services in Siebel to be of 3 different types:
    1) Our new Business Service records created in Siebel Tools. These are created by doing a NewRecord() on Business Services view in Siebel Tools. As soon as you save the record, or step off it, it creates an entry in the S_SERVICE table as pointed out by you. However, please note that this new BS record is not yet a part of the SRF and you would not be able to use it in workflows, scripts, or any configuration function.

    2) New Business Service records created in Siebel Web Client. These upon being saved, create a new record in the table, S_RT_SVC. You can verify by taking an example on your own and running a query in the DB. These don’t appear in the Siebel SRF either. So, these need to be compiled at runtime, whenever they are called for eg. from a Workflow.

    3) Business Service in Siebel SRF. A Business Service once created in Siebel Tools, has to be compiled for it to appear in SRF. Please note that though the original definition appears in S_SERVICE, on compilation, it loses its original reference in Repository. You must compile the BS again onto the SRF for the changes that you make to reflect.

    As an example, I created a new BS in Tools with the name, “04 Nitin Test Geek SRF Display”. Please refer the image here. I noted a new record was created in S_SERVICE. However, it was not a part of my custom view that I have explained in my blog above. I tried refreshing the Applet, query and go, logout n login, still not able to see any such record there. You can see the view before compilation here.
    Now, I compiled this BS onto the SRF. click here to see my custom view after the compilation and Client restart. As you can see, now the record is clearly visible. Hence proven!

    Piyush, I request you to please go through the blog post once again, and try to implement it step by step. I am not using the regular BC based on S_SERVICE here, but the Business Component “SRF Service”. The blog post is correct.

    As they say, “Some of the most complex problems in the world, have some very simple solutions!!”. Cheers :-)

  11. KIshore says:
    April 28, 2011 at 7:17 PM

    Hi Nitin, really a good post very informative.

    1)Also have you ever tried to find out the number of script lines in the whole repository. Do yo have any idea?

    2) And can you create web tools like web client.

  12. Garrett Reynolds says:
    May 19, 2011 at 12:25 AM

    Nitin – Hope all is well… It is easy to get the number of scripts via some simple SQL. Number of lines is more complex. There are 2 main ways to get the number of lines of scripts:
    1. Custom COM program to read the objects
    2. Custom SQL scripts combined with Excel and some nifty macros

    I sat down and made #2 in a couple days.

    FYI, I had played with these same SRF objects before to the same result. Tried to do more direct approach (not using Siebel objects) using C# and such, but to no avail…

Leave a Reply

Click here to cancel reply.


« Siebel – InvokeServiceMethod() on Calculated Fields
Ashish Kaul »



  • Admin Controls

    • Log in
  • Talk to us

    • Bouquets, brickbats, suggestions, complaints?

    • Click here...
  • Authorships

    • We are currently looking out for active authors. Are you willing to contribute?

    • Please click here

    • Everyone's invited..
  • Subscribe by Email


    • For regular updates, enter your email address below. We don't spam, we don't share with others!

  • Sponsors

  • Subscribe

    • Entries (RSS)
    • Comments (RSS)
  • Siebel Bookshelf

  • Daily Dilbert

    •          
  • Categories

    • Admin Notifications (9)
    • Business Intelligence (2)
      • Actuate (2)
    • CRM (115)
      • CRM News (6)
      • Sage Software / ACT! (1)
      • Salesforce.com (2)
      • Siebel CRM (103)
    • EAI (2)
    • Events (1)
    • FUN 'n' FROLIC (6)
    • Hot Technologies (7)
    • IT News (47)
    • Meet the Author (9)
    • ORACLE (14)
      • Database (2)
      • Oracle Fusion Applications Stack (8)
    • Product Demostrations (5)
    • Uncategorized (4)
  • Tag Cloud

    Admin Admin Notifications Applet Author Introductions Business Component Calculated Function Certification CFG file Client Configuration Critique CRM Database Debugging EAI EIM eScript Fundamentals Fusion Middleware Google IT News License Login Microsoft ORACLE Oracle Fusion Applications Performance problems Product Defect Product Demostrations Salesforce Scriptless solutions Security Server Siebel Siebel Secrets SOA Tips Tools Tricks Tutorials Upgrade User Property Workarounds workflows



  • Archives

    • August 2011
    • July 2011
    • June 2011
    • May 2011
    • April 2011
    • November 2010
    • August 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • December 2009
    • November 2009
    • October 2009
    • September 2009
    • August 2009
    • July 2009
    • June 2009
    • May 2009
    • April 2009
    • March 2009
  • Authors

    • Ankit Bhardwaj
    • Ashish Kaul
    • brijesh
    • Himanshu Bajpai
    • Madhvi Arora
    • nanpats
    • Nitin Jain
    • Prachi Sharma
    • Renuka Ankam
    • Vikas Luthra
  • Administrators

    • geeksblogging@gmail.com
    • admin@geeksbloggingat.com
  • Sponsors

Fresh Ideas

  • Login Failed in Dedicated Web Client : MVF Issue
  • Oracle Fusion Applications price list
  • Research to Development - Fusion Apps Series
  • Oracle ACE Program
  • HCM user Experience through UI - Fusion Apps series
  • "Managing Oracle Fusion Applications"
  • Microsoft *previews* Windows 8 - Part 2 now available !!
  • Let's upgrade Siebel CRM to Fusion Apps "right now" !!
  • Ness Technologies bought out by Citigroup Unit
  • Oracle #1 CRM Applications vendor ??

Just Said

  • Amit Sharma on Siebel – Installer hangs midway
  • Khadijah Mosinski on Salesforce.com not upto the mark?
  • Hamre319 on Highrise Customer Relationship Management
  • Nitin Jain on “Managing Oracle Fusion Applications”
  • zama racha on “Managing Oracle Fusion Applications”
  • Nishant Aggarwal on Siebel – License keys don’t work / are invalid
  • Nitin Jain on Siebel – SIA BC Utility Service – Invoke BC Method
  • Pedro Garcia on Siebel – SIA BC Utility Service – Invoke BC Method
  • Nitin Jain on “Managing Oracle Fusion Applications”
  • Nitin Jain on Microsoft *previews* Windows 8 – Part 2 now available !!

Most Commented

  • Siebel - SIA BC Utility Service - Loop multiple records
  • Siebel - Installer hangs midway
  • Siebel - Adding License Keys to Sample
  • Siebel - Popup Update Only
  • Siebel - Reading data directly from Siebel SRF
  • Siebel - Automatic User Logout
  • Siebel - EAI Queue - Usage
  • Siebel - Looping multiple records - Update records
  • Siebel - SIS OM PMT Service
  • Siebel Tools hangs when checking out objects

Old Favourites

  • Highrise Customer Relationship Management
  • Siebel - Autosave Opportunity data - Sample Code
  • Siebel - Autosave Opportunity data - The concept
  • Renuka Ankam
  • Siebel - Merge Records - Checklist
  • Siebel - Fetch Active view properties - III
  • Oracle 11g Certification coming soon
  • Siebel - Fetch Active view properties - II
  • Siebel - Fetch Active view properties
  • Siebel - Automating Merge Records by script - II

If you also want to write on GeeksBlogging@dotCOM, click here. Area of Specialization no constraint. Become Famous!


Entries (RSS) and Comments (RSS).