<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GeeKs Blogging @ dotCOM &#187; Siebel Secrets</title>
	<atom:link href="http://geeksbloggingat.com/topics/siebel-secrets/feed/" rel="self" type="application/rss+xml" />
	<link>http://geeksbloggingat.com</link>
	<description>Let&#039;s share...</description>
	<lastBuildDate>Sun, 30 May 2010 22:58:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Siebel &#8211; Automating Merge Records by script &#8211; II</title>
		<link>http://geeksbloggingat.com/2009/07/22/siebel-automating-merging-records-by-script-ii/</link>
		<comments>http://geeksbloggingat.com/2009/07/22/siebel-automating-merging-records-by-script-ii/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 06:02:08 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Fundamentals]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Siebel Secrets]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=647</guid>
		<description><![CDATA[I call this Part II, as I have already introduced the Merge Records Siebel functionality, and discussed its usage in his post. One of the interesting discussions we had was how such a data could possibly be inserted into the Siebel system, since Siebel has so many mechanisms to prevent Data Corruption. We had also [...]


Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/07/24/siebel-merge-records-checklist/' rel='bookmark' title='Permanent Link: Siebel &#8211; Merge Records &#8211; Checklist'>Siebel &#8211; Merge Records &#8211; Checklist</a></li><li><a href='http://geeksbloggingat.com/2009/07/21/siebel-merge-records-functionality/' rel='bookmark' title='Permanent Link: Siebel &#8211; Merge Records Functionality'>Siebel &#8211; Merge Records Functionality</a></li><li><a href='http://geeksbloggingat.com/2009/05/11/siebel-looping-multiple-records-update-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Update records'>Siebel &#8211; Looping multiple records &#8211; Update records</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li><li><a href='http://geeksbloggingat.com/2009/07/08/siebel-looping-multiple-records-iii/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping Multiple Records &#8211; III'>Siebel &#8211; Looping Multiple Records &#8211; III</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>I call this Part II, as I have already introduced the Merge Records Siebel functionality, and discussed its usage in <a href="http://geeksbloggingat.com/2009/07/21/siebel-merge-records-functionality/">his post</a>. One of the interesting discussions we had was how such a data could possibly be inserted into the Siebel system, since Siebel has so many mechanisms to prevent Data Corruption. We had also zeroed in on EIM and EAI as the basic culprits which could possibly insert inconsistent data into the Siebel Database. </p>
<p><span id="more-647"></span>When such a thing happens on sucha large scale, or when we know the exact pattern whereby we can detect these duplicate records in the system, we may look at options to automate the process of Merging Records. How nice would it be if we could just somehow put it all up in a workflow or script which would achieve the above objective.</p>
<p>Exploring further on the topic, I came to realize that there is an undocumented BC method which we may fire to achieve the objective above. Try looking at the script below:<br />
</p>
<p>var Target_Id = &#8220;Dummy-001&#8243;;<br />
var Source_Id = &#8220;Dummy-002&#8243;;<br />
var bo_Contact = TheApplication().GetBusObject(&#8221;Contact&#8221;);<br />
var bc_Contact = bo_Contact.GetBusComp(&#8221;Contact&#8221;); </p>
<p>bc_Contact.InvokeMethod(&#8221;SetAdminMode&#8221;, &#8220;TRUE&#8221;);<br />
bc_Contact.SetViewMode(All);<br />
bc_Contact.ClearToQuery();<br />
bc_Contact.SetSearchSpec(&#8221;Id&#8221;, Source_Id + &#8221; OR &#8221; + Target_Id );<br />
bc_Contact.ExecuteQuery(ForwardBackward); </p>
<p>if (bc_Contact.FirstRecord())<br />
{<br />
while (bc_Contact.GetFieldValue(&#8221;Id&#8221;) != Target_Id)<br />
{<br />
bc_Contact.NextRecord()<br />
}<br />
bc_Contact.InvokeMethod(&#8221;MergeRecords&#8221;, Source_Id);<br />
} </p>
<p>
If you notice carefully, we have invoked the method, &#8220;MergeRecords&#8221; on the Contact BC. The Contact BC has the class, &#8220;CSSBCContactSIS&#8221; which definitely, thus, supports this method. My guess would be that this method would be supported for all the BCs, where the vanilla Edit -> Merge Records functionality is enabled for the corresponding views. I haven&#8217;t actually gone further than this.</p>
<p>If somebody has had any other experience with Merge Records, please do share! <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>


<p>Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/07/24/siebel-merge-records-checklist/' rel='bookmark' title='Permanent Link: Siebel &#8211; Merge Records &#8211; Checklist'>Siebel &#8211; Merge Records &#8211; Checklist</a></li><li><a href='http://geeksbloggingat.com/2009/07/21/siebel-merge-records-functionality/' rel='bookmark' title='Permanent Link: Siebel &#8211; Merge Records Functionality'>Siebel &#8211; Merge Records Functionality</a></li><li><a href='http://geeksbloggingat.com/2009/05/11/siebel-looping-multiple-records-update-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Update records'>Siebel &#8211; Looping multiple records &#8211; Update records</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li><li><a href='http://geeksbloggingat.com/2009/07/08/siebel-looping-multiple-records-iii/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping Multiple Records &#8211; III'>Siebel &#8211; Looping Multiple Records &#8211; III</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/07/22/siebel-automating-merging-records-by-script-ii/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; FINS Teller UI Navigation</title>
		<link>http://geeksbloggingat.com/2009/07/17/siebel-fins-teller-ui-navigation/</link>
		<comments>http://geeksbloggingat.com/2009/07/17/siebel-fins-teller-ui-navigation/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 02:55:04 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Siebel Secrets]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=621</guid>
		<description><![CDATA[Siebel is POWERFUL! Now, need I even say that? And, in all its beauty and glory is the vanilla functionality. I keep coming across something new and novel everyday, and wondering, what percentage of 1% of Siebel do I now understand?!!
Here is another such Business Service that I came across the other day, &#8220;FINS Teller [...]


Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; FINS Industry XML Query Service'>Siebel &#8211; FINS Industry XML Query Service</a></li><li><a href='http://geeksbloggingat.com/2009/05/13/siebel-sia-bc-utility-service-loop-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records'>Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records</a></li><li><a href='http://geeksbloggingat.com/2009/05/14/siebel-sia-bc-utility-service-invoke-bc-method/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method'>Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method</a></li><li><a href='http://geeksbloggingat.com/2010/03/20/siebelsis-om-pmt-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIS OM PMT Service'>Siebel &#8211; SIS OM PMT Service</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>Siebel is POWERFUL! Now, need I even say that? And, in all its beauty and glory is the vanilla functionality. I keep coming across something new and novel everyday, and wondering, what percentage of 1% of Siebel do I now understand?!!</p>
<p>Here is another such Business Service that I came across the other day, &#8220;FINS Teller UI Navigation&#8221;. It has the following methods (my uncalled personal analysis is mentioned herewith):</p>
<p><span id="more-621"></span><b>1) CallBusSvc</b><br />
This takes in only one Method Argument, &#8220;Method Argument&#8221;.<br />
After trying to work out as to what this one could possibly mean, I promptly noticed the comments by the kind developer, &#8220;A general purpose business service wrapper to be called from Command objects&#8221;. After this, I guess we can give it a pass!</p>
<p><b>2) GotoView</b><br />
A very powerful method as I see it. It automatically forces a particular view on the User. I see it very useful from security point of view, in redirecting the user to a specific view, in case he dares enter the forbidden territory. Mind you, Siebel&#8217;s in-built Access Control mechanism and other security armour makes this seem almost trivial. This could also be a big help when designing help, to automatically navigate the user to a specific Siebel View. </p>
<p>It takes in the following two Input Arguments:<br />
BusObj, and,<br />
ViewName (mandatory)</p>
<p><b>3) RefreshCurrentApplet</b><br />
This is a very powerful method provided, and I guess, the most important one. It takes in the following Input Arguments:<br />
Refresh All!!</p>
<p>It will refresh the current context of the Applet. We have already covered this method in detail previously. <a href="http://geeksbloggingat.com/2009/07/15/siebel-refresh-applet-retaining-existing-context">Click here</a>.</p>


<p>Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; FINS Industry XML Query Service'>Siebel &#8211; FINS Industry XML Query Service</a></li><li><a href='http://geeksbloggingat.com/2009/05/13/siebel-sia-bc-utility-service-loop-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records'>Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records</a></li><li><a href='http://geeksbloggingat.com/2009/05/14/siebel-sia-bc-utility-service-invoke-bc-method/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method'>Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method</a></li><li><a href='http://geeksbloggingat.com/2010/03/20/siebelsis-om-pmt-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIS OM PMT Service'>Siebel &#8211; SIS OM PMT Service</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/07/17/siebel-fins-teller-ui-navigation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; FINS Industry XML Query Service</title>
		<link>http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/</link>
		<comments>http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/#comments</comments>
		<pubDate>Sat, 30 May 2009 21:05:22 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Scriptless solutions]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Siebel Secrets]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workarounds]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=387</guid>
		<description><![CDATA[&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221; How many times have you come across this problem, and how many times have you wished that Siebel has an OOB method to help you extract these values?
Well, here it is. The &#8220;FINS Industry XML Query Service&#8221; in Siebel does just that. I am covering [...]


Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/07/17/siebel-fins-teller-ui-navigation/' rel='bookmark' title='Permanent Link: Siebel &#8211; FINS Teller UI Navigation'>Siebel &#8211; FINS Teller UI Navigation</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li><li><a href='http://geeksbloggingat.com/2009/05/13/siebel-sia-bc-utility-service-loop-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records'>Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records</a></li><li><a href='http://geeksbloggingat.com/2009/05/14/siebel-sia-bc-utility-service-invoke-bc-method/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method'>Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method</a></li><li><a href='http://geeksbloggingat.com/2010/03/20/siebelsis-om-pmt-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIS OM PMT Service'>Siebel &#8211; SIS OM PMT Service</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221; How many times have you come across this problem, and how many times have you wished that Siebel has an OOB method to help you extract these values?</p>
<p>Well, here it is. The &#8220;FINS Industry XML Query Service&#8221; in Siebel does just that. I am covering this here because of lack of documentation on the same by Oracle, and the immense use that this can be put to. This BS can save you a lot of headache of writing custom scripts to parse the entire XML Hierarchy in Siebel eScript, which can be a real pain in the neck.</p>
<p>This blog post will target the detailed usage of the BS, &#8220;FINS Industry XML Query Service&#8221; in Siebel CRM. This BS can be used directly in a Siebel Workflow, since this is vanilla. No scripting is needed which is as per the recommendations of Siebel Best Practices.</p>
<p><span id="more-387"></span>To catch the implementation details of this BS, log into Siebel Tools, query for &#8220;FINS Industry XML Query Service&#8221; in the Business Services in Object Explorer.</p>
<p>Business Service:	FINS Industry XML Query Service<br />
Method:			Execute<br />
Input Arguments:	XMLHierarchy<br />
Output Arguments:	<none></p>
<p>Please note that this BS takes only the XMLHierarchy type of Hierarchy input. So, in case you have some other hierarchy available in your implementation, you would need to convert it into XMLHierarchy. I can suggest one of the following in this case which mostly save the day:<br />
EAI XML Converter<br />
XML Hierarchy Converter<br />
EAI Integration Object to XML Hierarchy Converter</p>
<p>There is already sufficient documentation for the above.</p>
<p>Now that you have the XML Hierarchy available, you can feed this into the service, &#8220;FINS Industry XML Query Service&#8221; as an input from a Worfklow Process Property, in the Input Argument, &#8220;XMLHierarchy&#8221;.</p>
<p>Create a new Input argument. Let&#8217;s call it &#8220;TestProperty&#8221;. Set the Input Type as &#8220;Literal&#8221;.<br />
In the Value column, you need to pass the location of the tag in the entire hierarchy, from which you wish to extract the value. This location is specified in terms of the XML XPath notation, or the more commonly called Dot Notation. If the tag in question exists only once in the entire length of the XML, we can set the XPath as, &#8220;.//<tag name>&#8221; which we used in our example. In case of repeating tags, use the notation, &#8220;./<root tag name>/<child tag name>/<grandchild tag name>&#8220;.<br />
You can further create new Input Arguments as above, to extract multiple values from multiple tags at the same time.</p>
<p>Now that the inputs have been provided, we need to set the output arguments from this BS in the workflow.<br />
Create a new Process Property by the name, &#8220;TestProperty&#8221;. (I have named this same as the Input Argument just for the ease of use. You can always select a different name).<br />
Create a new &#8220;FINS Industry XML Query Service&#8221; BS Output Argument, and set the following values:<br />
Property Name:	 TestProperty<br />
Type:		 Output Argument<br />
Output Argument: TestProperty (Please note that this value must be same as the name given to the Input Argument above.)</p>
<p>Now, you are ready to go. Simulate this workflow to see the Output arguments being extracted from the input XML Hierarchy in the Watch Window during simulation.</p>
<p>One of the limitations that I have come across for this BS is that it cannot fetch value from a tag in case of repeating instances of ICs in the same XML, typically a case of repeating instances of child objects with the same tag name.</p>
<p>Let&#8217;s have cleaner Siebel, better Siebel. Let&#8217;s aim for Scriptless Siebel.</p>


<p>Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/07/17/siebel-fins-teller-ui-navigation/' rel='bookmark' title='Permanent Link: Siebel &#8211; FINS Teller UI Navigation'>Siebel &#8211; FINS Teller UI Navigation</a></li><li><a href='http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records'>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</a></li><li><a href='http://geeksbloggingat.com/2009/05/13/siebel-sia-bc-utility-service-loop-multiple-records/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records'>Siebel &#8211; SIA BC Utility Service &#8211; Loop multiple records</a></li><li><a href='http://geeksbloggingat.com/2009/05/14/siebel-sia-bc-utility-service-invoke-bc-method/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method'>Siebel &#8211; SIA BC Utility Service &#8211; Invoke BC Method</a></li><li><a href='http://geeksbloggingat.com/2010/03/20/siebelsis-om-pmt-service/' rel='bookmark' title='Permanent Link: Siebel &#8211; SIS OM PMT Service'>Siebel &#8211; SIS OM PMT Service</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Reading data directly from Siebel SRF</title>
		<link>http://geeksbloggingat.com/2009/05/10/siebel-reading-data-directly-from-siebel-srf/</link>
		<comments>http://geeksbloggingat.com/2009/05/10/siebel-reading-data-directly-from-siebel-srf/#comments</comments>
		<pubDate>Sun, 10 May 2009 18:05:25 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[problems]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Siebel Secrets]]></category>
		<category><![CDATA[SRF]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=265</guid>
		<description><![CDATA[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 [...]


Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/05/19/siebel-about-srf-window-remove-data/' rel='bookmark' title='Permanent Link: Siebel &#8211; About SRF Window &#8211; Remove data'>Siebel &#8211; About SRF Window &#8211; Remove data</a></li><li><a href='http://geeksbloggingat.com/2009/07/27/siebel-autosave-opportunity-the-concept/' rel='bookmark' title='Permanent Link: Siebel &#8211; Autosave Opportunity data &#8211; The concept'>Siebel &#8211; Autosave Opportunity data &#8211; The concept</a></li><li><a href='http://geeksbloggingat.com/2009/07/28/siebel-autosave-opportunity-data-sample-code/' rel='bookmark' title='Permanent Link: Siebel &#8211; Autosave Opportunity data &#8211; Sample Code'>Siebel &#8211; Autosave Opportunity data &#8211; Sample Code</a></li><li><a href='http://geeksbloggingat.com/2009/08/17/siebel-run-case-insensitive-queries/' rel='bookmark' title='Permanent Link: Siebel &#8211; Run Case Insensitive queries'>Siebel &#8211; Run Case Insensitive queries</a></li><li><a href='http://geeksbloggingat.com/2009/04/25/siebel-object-level-check-out/' rel='bookmark' title='Permanent Link: Siebel &#8211; Unable to check out objects'>Siebel &#8211; Unable to check out objects</a></li></ol>]]></description>
			<content:encoded><![CDATA[<p>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&#8217;t form a part of the SRF, and are compiled at runtime. And thus, are slower. For eg. Client side Business Scripts.</p>
<p>&#8220;Every now and then, there comes about a thought powerful enough, to make me sit straight in my chair and start hitting the keyboard!!&#8221; &#8211; Nitin Jain</p>
<p><span id="more-265"></span>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&#8217;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.</p>
<p>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.</p>
<p>I noticed that Siebel generally accesses all objects in the Siebel SRF using special Business Components (dare I call them virtual!!).<br />
For accessing the Business Services, it uses the Business Component called, &#8220;SRF Service&#8221;. 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.</p>
<p>Similarly, siebel uses the BC, &#8220;SRF Service Method&#8221; to get the list of all the available Business Service Methods from the SRF.</p>
<p>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:</p>
<div id="attachment_266" class="wp-caption aligncenter" style="width: 954px"><a href="http://geeksbloggingat.com/blog/wp-content/uploads/2009/05/geek-srf-applet.jpg"><img src="http://geeksbloggingat.com/blog/wp-content/uploads/2009/05/geek-srf-applet.jpg" alt="Siebel SRF - List of all BS" title="geek-srf-applet" width="944" height="323" class="size-full wp-image-266" /></a><p class="wp-caption-text">Siebel SRF - List of all BS</p></div>
<p>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, &#8220;SRF*&#8221; against Business Components in Siebel Tools.</p>
<p>Let me know what you think about it. You can add your comments to this thread.</p>
<p>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.</p>
<p>&#8220;Knowledge is the only thing in the world which grows by sharing&#8221;. So, &#8220;Let&#8217;s Share!!&#8221;</p>


<p>Related posts:<ol><li><a href='http://geeksbloggingat.com/2009/05/19/siebel-about-srf-window-remove-data/' rel='bookmark' title='Permanent Link: Siebel &#8211; About SRF Window &#8211; Remove data'>Siebel &#8211; About SRF Window &#8211; Remove data</a></li><li><a href='http://geeksbloggingat.com/2009/07/27/siebel-autosave-opportunity-the-concept/' rel='bookmark' title='Permanent Link: Siebel &#8211; Autosave Opportunity data &#8211; The concept'>Siebel &#8211; Autosave Opportunity data &#8211; The concept</a></li><li><a href='http://geeksbloggingat.com/2009/07/28/siebel-autosave-opportunity-data-sample-code/' rel='bookmark' title='Permanent Link: Siebel &#8211; Autosave Opportunity data &#8211; Sample Code'>Siebel &#8211; Autosave Opportunity data &#8211; Sample Code</a></li><li><a href='http://geeksbloggingat.com/2009/08/17/siebel-run-case-insensitive-queries/' rel='bookmark' title='Permanent Link: Siebel &#8211; Run Case Insensitive queries'>Siebel &#8211; Run Case Insensitive queries</a></li><li><a href='http://geeksbloggingat.com/2009/04/25/siebel-object-level-check-out/' rel='bookmark' title='Permanent Link: Siebel &#8211; Unable to check out objects'>Siebel &#8211; Unable to check out objects</a></li></ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/10/siebel-reading-data-directly-from-siebel-srf/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
	</channel>
</rss>
