<?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; Tricks</title>
	<atom:link href="http://geeksbloggingat.com/topics/tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://geeksbloggingat.com</link>
	<description>Let&#039;s share...</description>
	<lastBuildDate>Tue, 30 Aug 2011 21:29:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</title>
		<link>http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/</link>
		<comments>http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 03:45:53 +0000</pubDate>
		<dc:creator>nanpats</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Business Services]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Vanilla]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=948</guid>
		<description><![CDATA[EAI Siebel Adapter finds its usage in almost all integration scenarios and business process automation. However, at times we hit upon limitations on its usage as Business Requirements become complex. There is a bug which you must have encountered while using EAI Siebel Adapter BS. I will explain the issue with an example and a [...]


<b>Related posts:<b><ol><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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></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> <small>Looping through multiple records is a requirement we come across...</small></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> <small>Hi, We often come across a requirement where we need...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/08/siebel-eai-siebel-adapter-search-spec/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter Search Spec'>Siebel &#8211; EAI Siebel Adapter Search Spec</a> <small>Hi, I can bet that for anybody who has worked...</small></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> <small>This is a vanilla business service which provides an extensive...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>EAI Siebel Adapter finds its usage in almost all integration scenarios and business process automation. However, at times we hit upon limitations on its usage as Business Requirements become complex. </p>
<p>There is a bug which you must have encountered while using EAI Siebel Adapter BS.  I will explain the issue with an example and a solution to resolve the issue…</p>
<p><span id="more-948"></span>Let’s say you need to upsert an entity e.g., Assets in Siebel using EAI Siebel Adapter BS. The data structure is a parent -child hierarchy which consists of Assets (primary IC) and Account (child IC).</p>
<p>Let’s assume that Account is resolved by the Id field (Id field being part of the 1st user key and is available in the message). There is a possibility wherein a given account would be repeated in your message instance with different attributes. Consider the following structure:</p>
<p>&lt;Account&gt;&lt;Id&gt;1-ABC&lt;/Id&gt;&lt;Name&gt;ABC Industries&lt;/Name&gt;&lt;/Account&gt;<br />
&lt;Account&gt;&lt;Id&gt;1-XYZ&lt;/Id&gt;&lt;Name&gt;XYZ Industries&lt;/Name&gt;&lt;/Account&gt;<br />
&lt;Account&gt;&lt;Id&gt;1-ABC&lt;/Id&gt;&lt;BillTo&gt;Y&lt;/BillTo&gt;&lt;/Account&gt;</p>
<p>In the above example, Account with Id “1-ABC” is repeated twice in the message. If the application tries to upsert this dataset using EAI Siebel Adapter, both the Accounts will be added as Child on Asset. However the data contained in the last instance of Account would be lost.  This information lost might be critical for business operations.</p>
<p>Resolution:</p>
<p>In this case, you would be required to consolidate all the similar Account records into a single component before running an Upsert. The resulting message after consolidation would look something similar below:</p>
<p>&lt;Account&gt;&lt;Id&gt;1-ABC&lt;/Id&gt;&lt;Name&gt;ABC Industries&lt;/Name&gt;&lt;BillTo&gt;Y&lt;/BillTo&gt;&lt;/Account&gt;<br />
&lt;Account&gt;&lt;Id&gt;1-XYZ&lt;/Id&gt;&lt;Name&gt;XYZ Industries&lt;/Name&gt;&lt;/Account&gt;</p>
<p>Hope you enjoyed the example above. Here, I&#8217;ll discuss some more of the limitations of EAI Siebel Adapter, and how we resolved them from practical experiences in life.</p>


<p><b>Related posts:<b><ol><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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></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> <small>Looping through multiple records is a requirement we come across...</small></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> <small>Hi, We often come across a requirement where we need...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/08/siebel-eai-siebel-adapter-search-spec/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Siebel Adapter Search Spec'>Siebel &#8211; EAI Siebel Adapter Search Spec</a> <small>Hi, I can bet that for anybody who has worked...</small></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> <small>This is a vanilla business service which provides an extensive...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Query on the Long Column or Field</title>
		<link>http://geeksbloggingat.com/2009/10/07/query-on-the-long-column-or-field/</link>
		<comments>http://geeksbloggingat.com/2009/10/07/query-on-the-long-column-or-field/#comments</comments>
		<pubDate>Tue, 06 Oct 2009 19:56:13 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[ORACLE]]></category>
		<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=829</guid>
		<description><![CDATA[A typical problem in any EAI project. Others too!! One of the most common ways of building custom Error Handling or Logging mechanisms include dumping huge messages and XMLs in the database for future reference. It works as an excellent logging mechanism which can be pulled out in case something in the system fails. This [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/06/07/siebel-eim-nomenclature-of-custom-column/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Nomenclature of Custom Column'>Siebel EIM &#8211; Nomenclature of Custom Column</a> <small>Previous post regarding new custom columns mapping in EIM table...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/02/siebel-eim-custom-column-mapping/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Custom column mapping'>Siebel EIM &#8211; Custom column mapping</a> <small>It&#8217;s a very basic concept explaining how we can generate...</small></li>
<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> <small>&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/12/siebel-looping-multiple-records-query-and-process/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Query and Process'>Siebel &#8211; Looping multiple records &#8211; Query and Process</a> <small>In my last post, I discussed as to how we...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/23/siebel-showing-red-asterisk-on-a-conditional-required-field/' rel='bookmark' title='Permanent Link: Siebel &#8211; Showing red asterisk on a conditionally required field'>Siebel &#8211; Showing red asterisk on a conditionally required field</a> <small>In Siebel vanilla Application, we see a red asterisk (...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A typical problem in any EAI project. Others too!!</p>
<p>One of the most common ways of building custom Error Handling or Logging mechanisms include dumping huge messages and XMLs in the database for future reference. It works as an excellent logging mechanism which can be pulled out in case something in the system fails.</p>
<p><span id="more-829"></span>This is generally achieved by using the &#8220;Long&#8221; column of the Oracle Database, and/or concatening multiple String type of columns. </p>
<p>Now, the typical problem. We dump the XMLs, fair enough. However, we can only pull out specific information from this XML and populate on some other columns, but, definitely not ALL the data in the huge XML that we have. We may pull out the Order Id, Reference Number and a couple of more fields, yet we definitely cannot drill out all the information.</p>
<p>However, the XML contains a lot more data. How do we query on the data in the Long column, in case the information is hidden deep into the XML, and is not saved separately in a String type column? I am assuming the Table based Logging mechanism.</p>
<p>I ran across something similar recently when I realized that I could not query on the Long Database column. Now, I have not discovered a special way of querying on the Long column that I am going to share here. Rather, this is a workaround.</p>
<p>Query for the relevant data in a traditional PL/SQL Editor like the SQL Developer or TOAD. You can still not run a query on the Long data type of column, but, with sufficient filters, you can reach out to a limited RecordSet around the actual record.</p>
<p>Right click -> Export -> TXT / CSV format and open the newly created file in a file editor. Run our favourite &#8220;Find..&#8221; tool to query for the exact data that you are looking for. And, voila, it could help you get as close to the actual record as possible.</p>
<p>Yeah, I agree if some of you out there are shouting, &#8220;Dumb, dumb, dumb tip!!&#8221;. But then, worked for me. <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>I had this typical interface which was just dumping XMLs in the Logs one after the other, without any identifiers. And, it was becoming terribly difficult to dig out the XML with a particular identifier. After all else that I could think of failed, this one worked like a charm.</p>
<p>I thank all my friends who were with me till late night, helping me get this through! Thanks, Madhvi. Thanks, Himanshu. Cheers.. <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/06/07/siebel-eim-nomenclature-of-custom-column/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Nomenclature of Custom Column'>Siebel EIM &#8211; Nomenclature of Custom Column</a> <small>Previous post regarding new custom columns mapping in EIM table...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/02/siebel-eim-custom-column-mapping/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Custom column mapping'>Siebel EIM &#8211; Custom column mapping</a> <small>It&#8217;s a very basic concept explaining how we can generate...</small></li>
<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> <small>&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/12/siebel-looping-multiple-records-query-and-process/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Query and Process'>Siebel &#8211; Looping multiple records &#8211; Query and Process</a> <small>In my last post, I discussed as to how we...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/23/siebel-showing-red-asterisk-on-a-conditional-required-field/' rel='bookmark' title='Permanent Link: Siebel &#8211; Showing red asterisk on a conditionally required field'>Siebel &#8211; Showing red asterisk on a conditionally required field</a> <small>In Siebel vanilla Application, we see a red asterisk (...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/10/07/query-on-the-long-column-or-field/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Symbolic Strings &#8211; Change default &#8216;X_&#8217;</title>
		<link>http://geeksbloggingat.com/2009/08/14/siebel-symbolic-strings-change-default-x_/</link>
		<comments>http://geeksbloggingat.com/2009/08/14/siebel-symbolic-strings-change-default-x_/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 06:20:30 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=759</guid>
		<description><![CDATA[This is a smaill tip I was working on, which got me interested in Symbolic Strings all of a sudden. We have already discussed previously about the Symbolic Strings Siebel &#8211; Symbolic Strings Siebel &#8211; Symbolic Strings &#8211; Usage In the usage section we outlined how every new record is automatically prefixed with &#8216;X_&#8217;. This [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/08/13/siebel-symbolic-strings-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; Symbolic Strings &#8211; Usage'>Siebel &#8211; Symbolic Strings &#8211; Usage</a> <small>Symbolic Strings appear directly in Siebel Tools&#8217; Object Explorer, an...</small></li>
<li><a href='http://geeksbloggingat.com/2009/08/12/siebel-symbolic-strings/' rel='bookmark' title='Permanent Link: Siebel &#8211; Symbolic Strings'>Siebel &#8211; Symbolic Strings</a> <small>Consider this a brief introductory tutorial on Symbolic Strings in...</small></li>
<li><a href='http://geeksbloggingat.com/2009/08/17/metalink3-to-my-oracle-support-change-log/' rel='bookmark' title='Permanent Link: Metalink3 to My Oracle Support &#8211; Change Log'>Metalink3 to My Oracle Support &#8211; Change Log</a> <small>There are a number of significant changes, or enhancements coming...</small></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> <small>I will discuss the following most prominent ways to enable...</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a smaill tip I was working on, which got me interested in Symbolic Strings all of a sudden. We have already discussed previously about the Symbolic Strings<br />
<a href="http://geeksbloggingat.com/2009/08/12/siebel-symbolic-strings/">Siebel &#8211; Symbolic Strings</a><br />
<a href="http://geeksbloggingat.com/2009/08/13/siebel-symbolic-strings-usage/">Siebel &#8211; Symbolic Strings &#8211; Usage</a></p>
<p><span id="more-759"></span>In the usage section we outlined how every new record is automatically prefixed with &#8216;X_&#8217;. This could be a typical problem, as in most of the projects we follow a specific naming convention for all the custom objects. This is also a recommended practice by experts for easy identification.</p>
<p>Let&#8217;s see if we have a requirement such that all custom objects in Siebel must begin with &#8216;GEEK_&#8217; in place of &#8216;X_&#8217;, how we may implement this in case of Symbolic Strings.</p>
<p>Navigate to your tools.cfg corresponding to the your Siebel installation where you want to change this.<br />
Navigate to the section titled, <i>&#8216;[Siebel]&#8216;</i>.<br />
Look for the parameter, &#8220;SymStrPrefix&#8221;</p>
<p>My guess is, you would find the following as per Siebel vanilla:<br />
<i><br />
[Siebel]<br />
; SymStrPrefix parameter needs to be X_ for Siebel Customers.<br />
SymStrPrefix		 = X_<br />
</i></p>
<p>Now, change this value from &#8216;X_&#8217; to &#8216;GEEK_&#8217;. The section should now look like:<br />
<i><br />
[Siebel]<br />
; SymStrPrefix parameter needs to be X_ for Siebel Customers.<br />
SymStrPrefix		 = GEEK_<br />
</i></p>
<p>Save and close.</p>
<p>Voila! Now, if you try to create a new Symbolic String, it would be preceded with &#8216;GEEK_&#8217; rather than Siebel OOB, &#8216;X_&#8217;.<br />
Hope it helps somebody, someday! <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/08/13/siebel-symbolic-strings-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; Symbolic Strings &#8211; Usage'>Siebel &#8211; Symbolic Strings &#8211; Usage</a> <small>Symbolic Strings appear directly in Siebel Tools&#8217; Object Explorer, an...</small></li>
<li><a href='http://geeksbloggingat.com/2009/08/12/siebel-symbolic-strings/' rel='bookmark' title='Permanent Link: Siebel &#8211; Symbolic Strings'>Siebel &#8211; Symbolic Strings</a> <small>Consider this a brief introductory tutorial on Symbolic Strings in...</small></li>
<li><a href='http://geeksbloggingat.com/2009/08/17/metalink3-to-my-oracle-support-change-log/' rel='bookmark' title='Permanent Link: Metalink3 to My Oracle Support &#8211; Change Log'>Metalink3 to My Oracle Support &#8211; Change Log</a> <small>There are a number of significant changes, or enhancements coming...</small></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> <small>I will discuss the following most prominent ways to enable...</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/08/14/siebel-symbolic-strings-change-default-x_/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Siebel EIM &#8211; USING SYNONYMS</title>
		<link>http://geeksbloggingat.com/2009/08/06/siebel-eim-using-synonyms/</link>
		<comments>http://geeksbloggingat.com/2009/08/06/siebel-eim-using-synonyms/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 07:32:11 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[EIM]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=723</guid>
		<description><![CDATA[Performance is always a major issue in most of the Siebel Intallations. In a project where large scale EIM Processing is needed, rest assured, Performance would be the from amongst the most discussed topics, at least from the Acceptance Testing phase, if not before! EIM Data loads can turn out to be for millions of [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/21/siebel7-party-model-changes/' rel='bookmark' title='Permanent Link: Siebel 7.x &#8211; Party Model Changes'>Siebel 7.x &#8211; Party Model Changes</a> <small>After introduction of party model, the table structure (as far...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/02/siebel-eim-custom-column-mapping/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Custom column mapping'>Siebel EIM &#8211; Custom column mapping</a> <small>It&#8217;s a very basic concept explaining how we can generate...</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Performance is always a major issue in most of the Siebel Intallations. In a project where large scale EIM Processing is needed, rest assured, Performance would be the from amongst the most discussed topics, at least from the Acceptance Testing phase, if not before! </p>
<p>EIM Data loads can turn out to be for <i>millions</i> of records, and many tens of GBs of Data being imported is a common sight (talking in terms of the Oracle Database Data File footprint). The customer has to be around that size, if he is actually going in for a Siebel CRM implementation I guess!</p>
<p><span id="more-723"></span>In such critical situations, optimizing the Performance at every step becomes equally crucial. One such parameter I came across when researching on this was the parameter, &#8220;USING SYNONYMS&#8221; that we may use in the IFB file at the time of EIM Data Load from Staging Tables (EIM_) to the Siebel Base Tables (S_). Do note that there are many other parameters too, to optimize it and improve Performance.</p>
<p>As per the Siebel Bookshelf, query on Account Synonyms are controlled by this parameter. Actually, Siebel stores the Account Synonyms in the S_ORG_SYN table. An extra query is run against this table (S_ORG_SYN) whenever a query is run against the Siebel Accounts Base Table (S_ASSET). Thus, when inserting records through EIM, Siebel checks for Duplicate records with each insert, and thus the extra query.</p>
<p>I will try to explain the concept of Synonyms using a simple example. If an Account appears in our DB as &#8220;AB/C Account&#8221;, we may want to define a synonym to it called, &#8220;ABC Account&#8221;.</p>
<p>An interesting fact is that I have found this Siebel feature to be available only for Siebel Accounts, and not for any other entities so far. Please drop a comment if you found something different.</p>
<p><b>Usage:</b><br />
In the &#8220;Import Accounts&#8221; section in the IFB (for example), add the following line<br />
<i>USING SYNONYMS = FALSE</i></p>
<p>By default, this parameter is set to TRUE. If Account Synonyms are not being used in our application (which is generally the case), we can safely set this parameter to FALSE.</p>
<p>At times, people tend to do the mistake of using the parameter, &#8220;USE SYNONYMS&#8221; instead of this one. Please note that this throws an error.</p>
<p>The above discussion is partly valid for Siebel Assignment Manager as well, as that also uses the S_ORG_SYN table.</p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/21/siebel7-party-model-changes/' rel='bookmark' title='Permanent Link: Siebel 7.x &#8211; Party Model Changes'>Siebel 7.x &#8211; Party Model Changes</a> <small>After introduction of party model, the table structure (as far...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/02/siebel-eim-custom-column-mapping/' rel='bookmark' title='Permanent Link: Siebel EIM &#8211; Custom column mapping'>Siebel EIM &#8211; Custom column mapping</a> <small>It&#8217;s a very basic concept explaining how we can generate...</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/08/06/siebel-eim-using-synonyms/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Automatic User Logout</title>
		<link>http://geeksbloggingat.com/2009/08/05/siebel-automatic-user-logout/</link>
		<comments>http://geeksbloggingat.com/2009/08/05/siebel-automatic-user-logout/#comments</comments>
		<pubDate>Wed, 05 Aug 2009 02:59:19 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[logout]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=720</guid>
		<description><![CDATA[Logging out a user automatically, when the user does not explicitly logoff. This one came up as a request from NP on GeeksBlogging@dotCOM. I believe this would possibly be a very frequent issue and a common problem in almost all the Siebel Installations. The users generally come from a Sales background. They hardly care how [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/06/15/siebel-forcing-user-logoff/' rel='bookmark' title='Permanent Link: Siebel &#8211; Forcing User Logoff'>Siebel &#8211; Forcing User Logoff</a> <small>Hi all, Somebody recently asked me if there is a...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/17/siebel-defaultfocus-user-property/' rel='bookmark' title='Permanent Link: Siebel &#8211; DefaultFocus &#8211; User Property'>Siebel &#8211; DefaultFocus &#8211; User Property</a> <small>In Siebel Application, whenever you navigate to a screen, the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/07/24/siebel-fetch-active-view-properties-iii/' rel='bookmark' title='Permanent Link: Siebel &#8211; Fetch Active view properties &#8211; III'>Siebel &#8211; Fetch Active view properties &#8211; III</a> <small>I will discuss a practical example, and the corresponding Inputs...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/15/siebel-getmilliseconds-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; getMilliseconds() usage'>Siebel &#8211; getMilliseconds() usage</a> <small>Siebel by default displays all dates in the system accurate...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/10/siebel-invokeservicemethod-on-calculated-fields/' rel='bookmark' title='Permanent Link: Siebel &#8211; InvokeServiceMethod() on Calculated Fields'>Siebel &#8211; InvokeServiceMethod() on Calculated Fields</a> <small>InvokeServiceMethod() is used to invoke Business Services and take values...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Logging out a user automatically, when the user does not explicitly logoff.</p>
<p>This one came up as a request from NP on <a href="http://geeksbloggingat.com">GeeksBlogging@dotCOM</a>. I believe this would possibly be a very frequent issue and a common problem in almost all the Siebel Installations. The users generally come from a Sales background. They hardly care how they actually close the Siebel Application. In most cases, they just press the (X) button on top of the Browser window, rather than explicitly selecting File -> Logout.</p>
<p><span id="more-720"></span>In this case, though the Browser is closed, the session parameters in the server, and the Database Connection remains open. This is a major issue in many of Siebel Development Environments.</p>
<p>Here we explain how to get around it. I have been working on multiple solutions regarding this. But, following is the most elegant one I found. In Siebel Communications, if you look at the Server Architecture carefully, you would notice that there is a Business Service in Siebel Tools, &#8220;Communications Client&#8221; which does all the magic. You can add the following Server Script to the <i>Service_PreInvokeMethod</i> this Business Service. </p>
<p>I have tried adding some comments at appropriate places in the code. Let me know how it works. </p>
<p><i><br />
function Service_PreInvokeMethod (MethodName, Inputs, Outputs)<br />
{<br />
/* &#8220;ShellUIExit&#8221; is the method that is called at the time of exit from the Siebel UI */<br />
	if (MethodName == &#8220;ShellUIExit&#8221;)<br />
	{<br />
	var bs_CommSvr = TheApplication().GetService(&#8220;Communications Client&#8221;);<br />
	var ps_inp = TheApplication().NewPropertySet();<br />
	var ps_out = TheApplication().NewPropertySet();<br />
	var m_pValue;<br />
	m_pValue = Inputs.GetProperty(&#8220;m_pMediaStatusMgr&#8221;);</p>
<p>		if (m_pValue !=&#8221;")<br />
		{<br />
		/* A user could potentially have multiple sessions open from the same machine. This is an added check for security purposes. */<br />
		bs_CommSvr.InvokeMethod(&#8220;IsTheLastSession&#8221;, ps_inp, ps_out);<br />
		var Is_Last = ps_out.GetProperty(&#8220;LastSession&#8221;);<br />
		if (Is_Last == &#8220;1&#8243;)<br />
			bs_CommSvr.InvokeMethod(&#8220;LogOutCommandName&#8221;, ps_inp, ps_out);<br />
		}<br />
	}<br />
return (ContinueOperation);<br />
}<br />
</i></p>
<p>In case this is not working, I would like to know your views on the topic.<br />
Further research underway, I will keep updating this post.</p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/06/15/siebel-forcing-user-logoff/' rel='bookmark' title='Permanent Link: Siebel &#8211; Forcing User Logoff'>Siebel &#8211; Forcing User Logoff</a> <small>Hi all, Somebody recently asked me if there is a...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/17/siebel-defaultfocus-user-property/' rel='bookmark' title='Permanent Link: Siebel &#8211; DefaultFocus &#8211; User Property'>Siebel &#8211; DefaultFocus &#8211; User Property</a> <small>In Siebel Application, whenever you navigate to a screen, the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/07/24/siebel-fetch-active-view-properties-iii/' rel='bookmark' title='Permanent Link: Siebel &#8211; Fetch Active view properties &#8211; III'>Siebel &#8211; Fetch Active view properties &#8211; III</a> <small>I will discuss a practical example, and the corresponding Inputs...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/15/siebel-getmilliseconds-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; getMilliseconds() usage'>Siebel &#8211; getMilliseconds() usage</a> <small>Siebel by default displays all dates in the system accurate...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/10/siebel-invokeservicemethod-on-calculated-fields/' rel='bookmark' title='Permanent Link: Siebel &#8211; InvokeServiceMethod() on Calculated Fields'>Siebel &#8211; InvokeServiceMethod() on Calculated Fields</a> <small>InvokeServiceMethod() is used to invoke Business Services and take values...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/08/05/siebel-automatic-user-logout/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Autosave Opportunity data &#8211; Sample Code</title>
		<link>http://geeksbloggingat.com/2009/07/28/siebel-autosave-opportunity-data-sample-code/</link>
		<comments>http://geeksbloggingat.com/2009/07/28/siebel-autosave-opportunity-data-sample-code/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 02:37:55 +0000</pubDate>
		<dc:creator>Renuka Ankam</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[eScript]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=663</guid>
		<description><![CDATA[This is a follow up post on my previous post, Siebel &#8211; Autosave Opportunity data &#8211; The concept where I introduced the concept and analysis of the following problem statement: &#8220;System should have capability to automatically save opportunity (RFPs) data in Draft state after a certain interval.&#8221; Following is the sample code for solving the [...]


<b>Related posts:<b><ol><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> <small>Requirement: System should have capability to automatically save opportunity(RFPs) data...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/24/html-code-in-error-message/' rel='bookmark' title='Permanent Link: Siebel &#8211; HTML Code displayed in Error Message'>Siebel &#8211; HTML Code displayed in Error Message</a> <small>There was a requirement in our project to make Account...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/01/activating-fields/' rel='bookmark' title='Permanent Link: Siebel &#8211; ActivateField() split wide open'>Siebel &#8211; ActivateField() split wide open</a> <small>In Siebel, we generally tend to use the fields on...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/20/siebel-adding-license-keys-to-sample/' rel='bookmark' title='Permanent Link: Siebel &#8211; Adding License Keys to Sample'>Siebel &#8211; Adding License Keys to Sample</a> <small>I am glad to be associated with Geeks Blogging @...</small></li>
<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> <small>Okay. This is something those who like to toy with...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a follow up post on my previous post, <a href="http://geeksbloggingat.com/2009/07/27/siebel-autosave-opportunity-the-concept">Siebel &#8211; Autosave Opportunity data &#8211; The concept</a> where I introduced the concept and analysis of the following problem statement:<br />
&#8220;System should have capability to automatically save opportunity (RFPs) data in Draft state after a certain interval.&#8221;</p>
<p>Following is the sample code for solving the above problem statement.</p>
<p><span id="more-663"></span>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="text-decoration: underline;"><span style="font-size: 12pt; color: red; line-height: 115%; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><br />
<strong>Applet Browser Scripts:-</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Event: &#8211; Applet_PreInvokeMethod</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Language: &#8211; eScript</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"> </span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">function Applet_PreInvokeMethod (name, inputPropSet)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">{</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>if(name == &#8216;NewRecord&#8217;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>{</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>var timemsg = setTimeout(&#8220;alert(&#8216;Please Fill up all the field value. Otherwise Autosave of the current record will be done!&#8217;)&#8221;,15000);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>theApplication().SetProfileAttr(&#8220;AutoSaveNew&#8221;,&#8221;Y&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>}</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span>return (&#8220;ContinueOperation&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt; line-height: normal;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">}</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Event: &#8211; Applet_Load</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">function Applet_Load ()</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">{</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//var aOppty = this.BusComp();</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//var oAccount = aOppty.GetFieldValue(&#8220;Account&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//var oCurrCd = aOppty.GetFieldValue(&#8220;Currency Code&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//var oName = aOppty.GetFieldValue(&#8220;Name&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//var oPrRevDt = aOppty.GetFieldValue(&#8220;Primary Revenue Close Date&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">If (theApplication().GetProfileAttr(&#8220;AutoSaveLoad&#8221;)&lt;&gt;&#8221;Y&#8221;) </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">{</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var timemsg = setTimeout(&#8220;alert(&#8216;Please Fill up all the field value.Otherwise Autosave of the current record will be done!&#8217;)&#8221;,15000);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">theApplication().SetProfileAttr(&#8220;AutoSaveLoad&#8221;,&#8221;Y&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">}</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-size: small; font-family: Calibri;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="text-decoration: underline;"><span style="color: red; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Bus Comp. Server Script:</span></span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Event: &#8211; BusComp_SetFieldValue</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #0070c0; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">Language: &#8211; VBScript</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">function BusComp_PreWriteRecord ()<br />
{</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;">
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var aOppty = this.BusComp();</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var oAccount = aOppty.GetFieldValue(&#8220;Account&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var oCurrCd = aOppty.GetFieldValue(&#8220;Currency Code&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var oName = aOppty.GetFieldValue(&#8220;Name&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">var oPrRevDt = aOppty.GetFieldValue(&#8220;Primary Revenue Close Date&#8221;);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">this.ActivateField(&#8220;Account&#8221;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">this.ActivateField(&#8220;Currency Code&#8221;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">this.ActivateField(&#8220;Name&#8221;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">this.ActivateField(&#8220;Primary Revenue Close Date&#8221;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><strong><span style="color: #00b050; font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">//These below mentioned ones are the required fields being predefaulted by certain values</span></span></strong></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">If ((this.GetFieldValue(&#8220;Account &#8220;) &lt;&gt; &#8220;&#8221;) And (this.GetFieldValue(&#8220;Currency Code&#8221;) &lt;&gt; &#8220;&#8221;) And (this.GetFieldValue(&#8220;Name&#8221;) &lt;&gt; &#8220;&#8221;) And (this.GetFieldValue(&#8220;Primary Revenue Close Date&#8221;) &lt;&gt; &#8220;&#8221;) And (TheApplication.GetProfileAttr(&#8220;AutoSaveNew &#8220;) = &#8220;Y&#8221; <span style="mso-spacerun: yes;"> </span>Or TheApplication.GetProfileAttr(&#8220;AutoSaveLoad &#8220;) = &#8220;Y&#8221; ))Then </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> this</span>.Setfieldvalue( &#8220;Account &#8220;, oAccount);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> </span><span style="mso-spacerun: yes;"> this</span>.Setfieldvalue (&#8220;Currency Code&#8221;, oCurrCd);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> this</span>.Setfieldvalue (&#8220;Name&#8221;, oName);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> this</span>.Setfieldvalue (&#8220;Primary Revenue Close Date&#8221;, oPrRevDt);</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 1in;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">TheApplication().SetProfileAttr (&#8221; AutoSaveLoad &#8220;,&#8221;N&#8221;<span style="mso-spacerun: yes;"> ); </span></span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt 1in;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;">T</span>heApplication().SetProfileAttr (&#8221; AutoSaveNew &#8220;,&#8221;N&#8221;)</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"><span style="mso-spacerun: yes;"> this</span>.WriteRecord</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;">}</span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><span style="font-family: &quot;Cambria&quot;,&quot;serif&quot;;"><span style="font-size: small;"> </span></span></p>
<p class="MsoNormal" style="margin: 0in 0in 10pt;">
<p>I hope this has been a nice post.</p>


<p><b>Related posts:<b><ol><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> <small>Requirement: System should have capability to automatically save opportunity(RFPs) data...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/24/html-code-in-error-message/' rel='bookmark' title='Permanent Link: Siebel &#8211; HTML Code displayed in Error Message'>Siebel &#8211; HTML Code displayed in Error Message</a> <small>There was a requirement in our project to make Account...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/01/activating-fields/' rel='bookmark' title='Permanent Link: Siebel &#8211; ActivateField() split wide open'>Siebel &#8211; ActivateField() split wide open</a> <small>In Siebel, we generally tend to use the fields on...</small></li>
<li><a href='http://geeksbloggingat.com/2009/04/20/siebel-adding-license-keys-to-sample/' rel='bookmark' title='Permanent Link: Siebel &#8211; Adding License Keys to Sample'>Siebel &#8211; Adding License Keys to Sample</a> <small>I am glad to be associated with Geeks Blogging @...</small></li>
<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> <small>Okay. This is something those who like to toy with...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/07/28/siebel-autosave-opportunity-data-sample-code/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Refresh Applet retaining existing context</title>
		<link>http://geeksbloggingat.com/2009/07/15/siebel-refresh-applet-retaining-existing-context/</link>
		<comments>http://geeksbloggingat.com/2009/07/15/siebel-refresh-applet-retaining-existing-context/#comments</comments>
		<pubDate>Wed, 15 Jul 2009 02:34:09 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Scriptless solutions]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Workarounds]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=615</guid>
		<description><![CDATA[RefreshRecord() does not work in all cases, does it? This is a very common requirement I have seen in almost all Siebel EAI implementations. We have data flowing IN and OUT of the Siebel CRM system. It is updated in the Database alright, but, how do we update the user on the UI. I am [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/16/siebel-millisecond-dates-on-applet/' rel='bookmark' title='Permanent Link: Siebel &#8211; millisecond dates on Applet'>Siebel &#8211; millisecond dates on Applet</a> <small>I had discussed in my previous posts about invoking a...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/06/siebel-custom-applet-title/' rel='bookmark' title='Permanent Link: Siebel &#8211; Custom Applet Title'>Siebel &#8211; Custom Applet Title</a> <small>There is an Applet title on the top of the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/08/siebel-number-of-rows-displayed-in-list-applet/' rel='bookmark' title='Permanent Link: Siebel &#8211; Number of rows displayed in List Applet'>Siebel &#8211; Number of rows displayed in List Applet</a> <small>Siebel Web Client by default shows only the first 7...</small></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> <small>I had discussed about the vanilla Business Service, &#8220;SIA BC...</small></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> <small>There are lots of vanilla business services available in Siebel...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>RefreshRecord() does not work in all cases, does it? <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>This is a very common requirement I have seen in almost all Siebel EAI implementations. We have data flowing IN and OUT of the Siebel CRM system. It is updated in the Database alright, but, how do we update the user on the UI. I am assuming a quick data interchange in Real-time using a VBC or a Web Service or something similar. Whenever we update the Database using a Workflow or a script here, the UI will not refresh automatically, and though the process would end successfully (I hope it does), the user would never come to know about the successful updation until he manually does a Query + Go on the Applet, or uses the famed Alt+Enter Hotkey.</p>
<p><span id="more-615"></span>Above is the problem. What is the potential solution to it? A number of solutions actually. Some of the most common solutions to this problem that I have seem so far are:</p>
<p><b>1) RefreshRecord()</b><br />
This is a vanilla method declared at the Business Component level. You can directly use it in script in certain events as per the requirement, in BC Server Script to achieve the desired objective of refreshing the applet, on a specific event. Siebel says this will work on all Account based BCs (if I recollect clearly). However, by my experience, two major issues:<br />
Not all BCs I want to update fall in this category.<br />
Even the BCs where I expect it to work, the approach doesn&#8217;t work.</p>
<p><b>2) Query and Go</b><br />
This is basically a very baad and performance hit simulation of the vanilla Query and Go functionality. Try using Alt+R and Enter functionality on a particular screen in Siebel. Issues with this approach are:<br />
The performance is Bad.<br />
It loses the context from the existing record. The focus will be placed on the first record in a list of records.<br />
I have never taken a liking for it somehow! I use it only when absolutely necessary. (my personal opinion)</p>
<p><b>3) SIS OM PMT Service</b><br />
By now, all of us know the wonders associated with the goddess, &#8220;SIS OM PMT Service&#8221;, and its capabilities. It has a vanilla BS Method, &#8220;Refresh Business Component&#8221;. Try using this. I have seen it work beautifully! Issues with this approach:<br />
Performance is still a pain! Solution: Use Performance BCs in Siebel.<br />
It retains the context of the current view, but, loses the context of the current record, and, places the focus on the first record in the list.<br />
I enjoyed using this after some minor tweaks!</p>
<p><b>4) FINS Teller UI Navigation</b><br />
Get to it in Siebel Tools, and notice the method, &#8220;RefreshCurrentApplet&#8221;. It seems it refreshes the Applet, and not the Business Component context as in (3) above. It could possibly retain the context of the current record. I never tried it, just found it out during some research. Try it at your end, and do advise if I should consider using it in my future implementations! <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Feel free to add to the above. Cheers!</p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/16/siebel-millisecond-dates-on-applet/' rel='bookmark' title='Permanent Link: Siebel &#8211; millisecond dates on Applet'>Siebel &#8211; millisecond dates on Applet</a> <small>I had discussed in my previous posts about invoking a...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/06/siebel-custom-applet-title/' rel='bookmark' title='Permanent Link: Siebel &#8211; Custom Applet Title'>Siebel &#8211; Custom Applet Title</a> <small>There is an Applet title on the top of the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/08/siebel-number-of-rows-displayed-in-list-applet/' rel='bookmark' title='Permanent Link: Siebel &#8211; Number of rows displayed in List Applet'>Siebel &#8211; Number of rows displayed in List Applet</a> <small>Siebel Web Client by default shows only the first 7...</small></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> <small>I had discussed about the vanilla Business Service, &#8220;SIA BC...</small></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> <small>There are lots of vanilla business services available in Siebel...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/07/15/siebel-refresh-applet-retaining-existing-context/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; EAI Siebel Adapter &#8211; Looping Multiple Records</title>
		<link>http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/</link>
		<comments>http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/#comments</comments>
		<pubDate>Thu, 09 Jul 2009 02:30:02 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Scriptless solutions]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Workarounds]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=565</guid>
		<description><![CDATA[This is a follow-up post on the post, Siebel &#8211; Looping Multiple Records &#8211; III. We are looking at possibly more conventional methods to loop through multiple records in Siebel, than the SIA BC Utility Service. We will make use of EAI Siebel Adapter&#8217;s QueryPage method to achieve the same. Knowledge of Siebel Workflow processes [...]


<b>Related posts:<b><ol><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> <small>This is a vanilla business service which provides an extensive...</small></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> <small>Looping through multiple records is a requirement we come across...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/12/siebel-looping-multiple-records-query-and-process/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Query and Process'>Siebel &#8211; Looping multiple records &#8211; Query and Process</a> <small>In my last post, I discussed as to how we...</small></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> <small>Hi, We often come across a requirement where we need...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a follow-up post on the post, <a href="http://geeksbloggingat.com/2009/07/08/siebel-looping-multiple-records-iii">Siebel &#8211; Looping Multiple Records &#8211; III</a>. We are looking at possibly more conventional methods to loop through multiple records in Siebel, than the SIA BC Utility Service.</p>
<p>We will make use of EAI Siebel Adapter&#8217;s QueryPage method to achieve the same. Knowledge of Siebel Workflow processes is essential to understanding this post.<br />
The QueryPage method allows us to input an additional parameter, NumOutputObjects, to define the number of records that we want to output. Why not set this value to &#8217;1&#8242;?</p>
<p>Following is an outline of the Dummy Workflow I used to achieve this.</p>
<p><span id="more-565"></span><div id="attachment_584" class="wp-caption aligncenter" style="width: 459px"><a href="http://geeksbloggingat.com/blog/wp-content/uploads/2009/07/geek-siebel-eai-siebel-adapter-looping-multiple-records1.jpg"><img src="http://geeksbloggingat.com/blog/wp-content/uploads/2009/07/geek-siebel-eai-siebel-adapter-looping-multiple-records1.jpg" alt="Siebel EAI Adapter - Looping Multiple Records" title="geek-siebel-eai-siebel-adapter-looping-multiple-records1" width="449" height="152" class="size-full wp-image-584" /></a><p class="wp-caption-text">Siebel EAI Adapter - Looping Multiple Records</p></div></p>
<p>Following are the Custom Process Properties and their default values at the time of starting the workflow.</p>
<table border="1">
<tbody>
<tr>
<th>Process Property</th>
<th>Default Value</th>
</tr>
<tr>
<td>Last Record</td>
<td> </td>
</tr>
<tr>
<td>New Query</td>
<td>Y</td>
</tr>
<tr>
<td>Number of Output Objects</td>
<td> </td>
</tr>
<tr>
<td>Order Type</td>
<td> </td>
</tr>
<tr>
<td>SiebelMessage</td>
<td> </td>
</tr>
<tr>
<td>Status</td>
<td> </td>
</tr>
<tr>
<td>XMLHierarchy</td>
<td> </td>
</tr>
</tbody>
</table>
<p> </p>
<p>The outline of the Individual Steps is as follows.<br />
<strong>1) START &#8211; The starting step in the workflow</strong></p>
<p><strong>2) Query Records</strong></p>
<table border="1">
<tbody>
<tr>
<td>Business Service Name</td>
<td>EAI Siebel Adapter</td>
</tr>
<tr>
<td>Business Service Method</td>
<td>QueryPage</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Input Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>OutputIntObjectName</td>
<td>Literal</td>
<td>7.7 Order Entry Integration Object</td>
</tr>
<tr>
<td>PageSize</td>
<td>Literal</td>
<td>1</td>
</tr>
</tbody>
</table>
<p> </p>
<p>Output Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>OutputIntObjectName</td>
<td>Output Argument</td>
<td>SiebelMessage</td>
</tr>
<tr>
<td>Last Record</td>
<td>Output Argument</td>
<td>LastPage</td>
</tr>
<tr>
<td>Number of Output Objects</td>
<td>Output Argument</td>
<td>NumOutputObjects</td>
</tr>
<tr>
<td>New Query</td>
<td>Literal</td>
<td>N</td>
</tr>
</tbody>
</table>
<p><strong><br />
3) Convert to XML Hier<br />
</strong></p>
<table border="1">
<tbody>
<tr>
<td>Business Service Name</td>
<td>EAI Integration Object to XML Hierarchy Converter</td>
</tr>
<tr>
<td>Business Service Method</td>
<td>IntObjHierToXMLHier</td>
</tr>
</tbody>
</table>
<p></p>
<p>Input Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>SiebelMessage</td>
<td>Process Property</td>
<td>SiebelMessage</td>
</tr>
</tbody>
</table>
<p></p>
<p>Output Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>XMLHierarchy</td>
<td>Output Argument</td>
<td>XMLHierarchy</td>
</tr>
</tbody>
</table>
<p></p>
<p><strong><br />
4) Extract Values<br />
</strong></p>
<table border="1">
<tbody>
<tr>
<td>Business Service Name</td>
<td>FINS Industry XML Query Service</td>
</tr>
<tr>
<td>Business Service Method</td>
<td>Execute</td>
</tr>
</tbody>
</table>
<p></p>
<p>Input Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>Status</td>
<td>Literal</td>
<td>.//Status</td>
</tr>
<tr>
<td>XMLHierarchy</td>
<td>Process Property</td>
<td>XMLHierarchy</td>
</tr>
</tbody>
</table>
<p></p>
<p>Output Arguments:</p>
<table border="1">
<tbody>
<tr>
<td>Status</td>
<td>Output Argument</td>
<td>Status</td>
</tr>
</tbody>
</table>
<p></p>
<p>We have covered the FINS Industry XML Business Service in detail <a href="http://geeksbloggingat.com/2009/05/31/siebel-fins-industry-xml-query-service/">here</a> on <a href="http://geeksbloggingat.com">GeeksBlogging@dotCOM</a>.</p>
<p><strong><br />
5) Process Record Data<br />
</strong></p>
<table border="1">
<tbody>
<tr>
<td>Sub Process</td>
<td>Dummy Processing Sub Process</td>
</tr>
</tbody>
</table>
<p></p>
<p>Input Arguments:<br />
As per requirement<br />
</p>
<p>Output Arguments:<br />
As per requirement<br />
</p>
<p><strong><br />
6) Last Record?<br />
</strong></p>
<p>Decision Point<br />
</p>
<p>Branch Conditions:</p>
<table border="1">
<tbody>
<tr>
<td>Process Property</td>
<td>All Must Match(Ignore Case)</td>
<td>Last Record</td>
<td>FALSE</td>
</tr>
</tbody>
</table>
<p></p>
<p><strong><br />
7) END &#8211; The Standard Siebel END Step<br />
</strong></p>
<p>The Workflow ends successfully. We have successfully retrieved the data from each of the successive records one by one, and passed on the data for further processing to a Sub-process.</p>
<p>This post wouldn&#8217;t be complete without referring <a href="http://siebel-essentials.blogspot.com" nofollow="TRUE" target="_blank">the source</a> which gave me my first hints to implementing this. Thanks, Alex.</p>


<p><b>Related posts:<b><ol><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> <small>This is a vanilla business service which provides an extensive...</small></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> <small>Looping through multiple records is a requirement we come across...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/12/siebel-looping-multiple-records-query-and-process/' rel='bookmark' title='Permanent Link: Siebel &#8211; Looping multiple records &#8211; Query and Process'>Siebel &#8211; Looping multiple records &#8211; Query and Process</a> <small>In my last post, I discussed as to how we...</small></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> <small>Hi, We often come across a requirement where we need...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/07/09/siebel-eai-siebel-adapter-looping-multiple-records/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; EAI Siebel Adapter Search Spec</title>
		<link>http://geeksbloggingat.com/2009/06/08/siebel-eai-siebel-adapter-search-spec/</link>
		<comments>http://geeksbloggingat.com/2009/06/08/siebel-eai-siebel-adapter-search-spec/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 07:43:14 +0000</pubDate>
		<dc:creator>Vikas Luthra</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Workarounds]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=431</guid>
		<description><![CDATA[Hi, I can bet that for anybody who has worked on Siebel EAI, &#8216;EAI Siebel Adapter&#8217; is not an Alien term. This post is about EAI Siebel Adapter&#8217;s Query method. How to restrict the number of Child records returned in Siebel adapter&#8217;s Query. Scenario &#8211; Order and related Order Line Items The way EAI Siebel [...]


<b>Related posts:<b><ol><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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></li>
<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> <small>&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/06/siebel-custom-applet-title/' rel='bookmark' title='Permanent Link: Siebel &#8211; Custom Applet Title'>Siebel &#8211; Custom Applet Title</a> <small>There is an Applet title on the top of the...</small></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> <small>This is a vanilla business service which provides an extensive...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>I can bet that for anybody who has worked on Siebel EAI, &#8216;EAI Siebel Adapter&#8217; is not an Alien term. This post is about EAI Siebel Adapter&#8217;s Query method.</p>
<p>How to restrict the number of Child records returned in Siebel adapter&#8217;s Query.</p>
<p>Scenario &#8211; Order and related Order Line Items</p>
<p><span id="more-431"></span>The way EAI Siebel Adapter&#8217;s Query method works is that, you specify the name of the IO in &#8216;OutputIntObjectName&#8217; argument and row id of the parent record in &#8216;PrimaryRowId&#8217; argument. However this way the query method will fetch all the Line Items for that Order.</p>
<p>So here, to restrict the number of Line Items returned (at the child Line Item level) in the EAI Siebel Adapter Query, we can use another input argument of Query method, which is &#8216;SearchSpec&#8217;.</p>
<p>The value for the &#8216;SearchSpec&#8217; argument is an expression based on any field from the IC&#8217;s of the integration Object, with the dot notation. Not all of us would know that we can use it to restrict the number of child records returned.</p>
<p>Sample Expression: [Order Entry - Line Items.Source] = &#8216;Testing&#8217;</p>
<p>This expression means only the line itemitems where the field &#8216;Source&#8217; of  &#8216;Order Entry &#8211; Line Items&#8217; BC has value &#8216;Testing&#8217;, will be retrieved  in the output Siebel Message.</p>
<p>Just creating the expression for the &#8216;SearchSpec&#8217; argument is a trick here.</p>
<p>In our requirement the user can select multiple line items, say out of 14 line items he has selected only 5 and clicks on &#8216;Sync Selected&#8217; button. Now we have to create an expression based on selected line items and then pass it as a process property to the workflow where we are using the Siebel Adapter. The sample script for creating expression is pasted below:-</p>
<p>(Note: Here the variable SearchSp is an expression string which will be passed as an input to the workflow)</p>
<p>RecExists = this.BusComp().FirstSelected();<br />
      while (RecExists)<br />
        {<br />
         rec[i] = this.BusComp().GetFieldValue(&#8220;Id&#8221;);<br />
          RecExists = this.BusComp().NextSelected();<br />
            i++;<br />
           }<br />
           SearchSp = &#8220;[Order Entry - Line Items.Id]=&#8217;&#8221; + selrec[0] + &#8220;&#8216;&#8221;;<br />
         <br />
           for(x = 1; x &lt; selrec.length; x++)<br />
           {<br />
            SearchSp = SearchSp + &#8221; OR &#8221; + &#8220;[Order Entry - Line Items.Id]=&#8217;&#8221; + selrec[x] + &#8220;&#8216;&#8221;;<br />
           <br />
           }</p>
<p>That&#8217;s it! We hope this helps somebody someday.</p>


<p><b>Related posts:<b><ol><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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2010/04/07/eai-siebel-adapter-bs-upsert-multiple-child-records/' rel='bookmark' title='Permanent Link: EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records'>EAI Siebel Adapter BS &#8211; Upsert Multiple Child Records</a> <small>EAI Siebel Adapter finds its usage in almost all integration...</small></li>
<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> <small>&#8220;Extracting values from a tag deep down in the Hierarchy.&#8221;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/06/siebel-custom-applet-title/' rel='bookmark' title='Permanent Link: Siebel &#8211; Custom Applet Title'>Siebel &#8211; Custom Applet Title</a> <small>There is an Applet title on the top of the...</small></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> <small>This is a vanilla business service which provides an extensive...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/06/08/siebel-eai-siebel-adapter-search-spec/feed/</wfw:commentRss>
		<slash:comments>1</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 [...]


<b>Related posts:<b><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> <small>Siebel is POWERFUL! Now, need I even say that? And,...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></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> <small>This is a vanilla business service which provides an extensive...</small></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> <small>I had discussed about the vanilla Business Service, &#8220;SIA BC...</small></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> <small>There are lots of vanilla business services available in Siebel...</small></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><b>Related posts:<b><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> <small>Siebel is POWERFUL! Now, need I even say that? And,...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></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> <small>This is a vanilla business service which provides an extensive...</small></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> <small>I had discussed about the vanilla Business Service, &#8220;SIA BC...</small></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> <small>There are lots of vanilla business services available in Siebel...</small></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; EnableServiceArgTracing &#8211; Logging Messages</title>
		<link>http://geeksbloggingat.com/2009/05/26/siebel-enableserviceargtracing-logging-messages/</link>
		<comments>http://geeksbloggingat.com/2009/05/26/siebel-enableserviceargtracing-logging-messages/#comments</comments>
		<pubDate>Tue, 26 May 2009 06:51:54 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[CFG file]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[EAI]]></category>
		<category><![CDATA[Logging]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[workflows]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=369</guid>
		<description><![CDATA[Hi, We have already discussed at quite a length the logging methods, the most prominent of these being the usage of vanilla Siebel EAI Queues. You can read about the entire series through the following links: A meeting with Siebel EAI Siebel &#8211; EAI Queue Siebel &#8211; EAI Queue &#8211; Usage Siebel &#8211; EAI Queue [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/25/siebel-enable-detailed-logging-local/' rel='bookmark' title='Permanent Link: Siebel &#8211; Enable Detailed Logging &#8211; Local'>Siebel &#8211; Enable Detailed Logging &#8211; Local</a> <small>Very often we come across scenarios wherein the process is...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/01/siebel-eai-queue/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Queue'>Siebel &#8211; EAI Queue</a> <small>Okay, what are you thinking about? Is it Middlewares in...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/03/siebel-eai-queue-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Queue &#8211; Usage'>Siebel &#8211; EAI Queue &#8211; Usage</a> <small>I had introduced the concept of Siebel EAI Queues in...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>We have already discussed at quite a length the logging methods, the most prominent of these being the usage of vanilla Siebel EAI Queues. You can read about the entire series through the following links:<br />
<a href="http://geeksbloggingat.com/2009/04/30/a-meeting-with-siebel-eai/" target="_blank">A meeting with Siebel EAI</a><br />
<a href="http://geeksbloggingat.com/2009/05/01/siebel-eai-queue/" target="_blank">Siebel &#8211; EAI Queue</a><br />
<a href="http://geeksbloggingat.com/2009/05/03/siebel-eai-queue-usage/" target="_blank">Siebel &#8211; EAI Queue &#8211; Usage</a><br />
<a href="http://geeksbloggingat.com/2009/05/04/siebel-eai-queue-a-critique/" target="_blank">Siebel &#8211; EAI Queue &#8211; a Critique’</a></p>
<p>I recently came across another vanilla method (EnableServiceArgTracing) to log the messages. Using this, the various Siebel logs can be created, and the Input and the Output messages to some of the Business Services can be written in XML format to a file. These XML files would appear as Siebel Dump files with a &#8220;.dmp&#8221; extension. These can be read off any standard text reading tool like Notepad, Editplus, Notepad++, etc. This process works with EAI Siebel Adapter and EAI Dispatcher business services.</p>
<p><span id="more-369"></span><b>Usage</b><br />
Read about the detailed Local logging in Siebel <a href="http://geeksbloggingat.com/2009/05/25/siebel-enable-detailed-logging-local/" target="_blank">here</a>.<br />
Set the Siebel SIEBEL_LOG_EVENTS environment variable value to:<br />
	3 &#8211; Input property set as Output in case of Error will be received<br />
	4 &#8211; Both Input and Output property set would be received</p>
<p>Be ready to receive huge Log files in your Siebel Log directory, and exceptionally slow Siebel performance after enabling this. Logs are now being created for every step, so this is all the more logical.</p>
<p>Set the Server parameter, &#8220;EnableServiceArgTracing&#8221; to &#8220;TRUE&#8221;.<br />
In case of dedicated, local, or sample based testing, edit the following sections in the <clientapp>.cfg and set the following:</p>
<p>	[EAISubsys]<br />
	EnableServiceArgTracing = TRUE</p>
<p>Restart Siebel and you are ready to go.</p>
<p>Now, whenever a process is run, it would create logs. Also, in the same directory you would see .dmp, or the Siebel Dump files being created. These are XML files which would have the Input and Output property sets contained. You can open and view these in any text editor.</p>
<p>The names of the files created are in the format:<br />
<BS Name>_input_args_<number>.dmp   OR,<br />
<BS Name>_output_args_<number>.dmp</p>
<p>The main advantage of this method is that it does not require any changes, or switches in the main process to get the debugigng information. So, it is as clean as can be. Also, we can do this easily on any environment, TEST or any other.</p>
<p>The main disadvantage I see with this approach is that it logs Inputs and Outputs of only the EAI Siebel Adapter and the EAI Dispatcher Business Services. More usually, the integration is done using many other services, wherein a proper logging and error handling architecture becomes mandatory. So, I cannot do away with the other fancy stuff I generally incorporate into my architecture for that reason I guess! </p>
<p>I wish Siebel provided an easy way except studying Logs, to know which all Business Services or Workflows were invoked, and what all inputs and outputs were provided, whenever a complex process was invoked. It would make my life so much easier..</p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/25/siebel-enable-detailed-logging-local/' rel='bookmark' title='Permanent Link: Siebel &#8211; Enable Detailed Logging &#8211; Local'>Siebel &#8211; Enable Detailed Logging &#8211; Local</a> <small>Very often we come across scenarios wherein the process is...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/01/siebel-eai-queue/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Queue'>Siebel &#8211; EAI Queue</a> <small>Okay, what are you thinking about? Is it Middlewares in...</small></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> <small>This is a follow-up post on the post, Siebel &#8211;...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/03/siebel-eai-queue-usage/' rel='bookmark' title='Permanent Link: Siebel &#8211; EAI Queue &#8211; Usage'>Siebel &#8211; EAI Queue &#8211; Usage</a> <small>I had introduced the concept of Siebel EAI Queues in...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/26/siebel-enableserviceargtracing-logging-messages/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Siebel- Close Browser window when logging off</title>
		<link>http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/</link>
		<comments>http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/#comments</comments>
		<pubDate>Fri, 22 May 2009 04:43:16 +0000</pubDate>
		<dc:creator>Madhvi Arora</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Login]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=341</guid>
		<description><![CDATA[In case of standard interactivity applications like eSales , eService, when user logs off, he is directed to the page through which he logged in the application. But there is a requirement to close the IE when user logs off. Here we are doing this for eSales Application. This can be done in following manner: [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/' rel='bookmark' title='Permanent Link: Siebel &#8211; Remove About SRF Window'>Siebel &#8211; Remove About SRF Window</a> <small>In my previous post, I had discussed as to how...</small></li>
<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> <small>Okay. This is something those who like to toy with...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/25/siebel-enable-detailed-logging-local/' rel='bookmark' title='Permanent Link: Siebel &#8211; Enable Detailed Logging &#8211; Local'>Siebel &#8211; Enable Detailed Logging &#8211; Local</a> <small>Very often we come across scenarios wherein the process is...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/26/siebel-enableserviceargtracing-logging-messages/' rel='bookmark' title='Permanent Link: Siebel &#8211; EnableServiceArgTracing &#8211; Logging Messages'>Siebel &#8211; EnableServiceArgTracing &#8211; Logging Messages</a> <small>Hi, We have already discussed at quite a length the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/15/siebel-forcing-user-logoff/' rel='bookmark' title='Permanent Link: Siebel &#8211; Forcing User Logoff'>Siebel &#8211; Forcing User Logoff</a> <small>Hi all, Somebody recently asked me if there is a...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In case of standard interactivity applications like eSales , eService, when user logs off, he is directed to the page through which he logged in the application. But there is a requirement to close the IE when user logs off. Here we are doing this for eSales Application. This can be done in following manner:</p>
<p>•         Create a new .swt file say “LogOffDestination “ which contains following HTML script:<br />
&lt;html&gt;<br />
&lt;head&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&lt;/body&gt;</p>
<p><span id="more-341"></span>&lt;script for=window event=onload&gt;<br />
window.opener = &#8216; &#8216;;<br />
window.open(&#8220;&#8221;,&#8221;_self&#8221;);<br />
window.close();<br />
&lt;/script&gt;<br />
&lt;/html&gt;</p>
<p>•         Now place this .swt file in &lt;Siebel Tools&gt;\WEBTEMPL\, &lt;Siebel Client&gt;\WEBTEMPL\ and &lt;Siebel Server&gt;\WEBTEMPL.<br />
•         In Siebel tools, navigate to “Web Template” object in Object Explorer. Create a new web template say “LogOff Destination” and give this new &#8220;LogOffDestination.swt&#8221; in the “File Name” property of the &#8220;Web Template File&#8221; object.<br />
•         Now Navigate to “Web Page” object in Object Explorer. Create a new Web Page say “Log Off Destination” and set “LogOff Destination” Web Template you just created in “Web Template” object.<br />
•         Now navigate to “Application” object in Object Explorer. Query for “Siebel eSales”. Now change web page in “Logoff Acknowledgement Web Page” from the given value to “LogOff Destination”.<br />
•         Now compile “Web Template”,”Web Page” and “Application” objects in the srf.<br />
Now when you log out from the application, it will close the IE.</p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/' rel='bookmark' title='Permanent Link: Siebel &#8211; Remove About SRF Window'>Siebel &#8211; Remove About SRF Window</a> <small>In my previous post, I had discussed as to how...</small></li>
<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> <small>Okay. This is something those who like to toy with...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/25/siebel-enable-detailed-logging-local/' rel='bookmark' title='Permanent Link: Siebel &#8211; Enable Detailed Logging &#8211; Local'>Siebel &#8211; Enable Detailed Logging &#8211; Local</a> <small>Very often we come across scenarios wherein the process is...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/26/siebel-enableserviceargtracing-logging-messages/' rel='bookmark' title='Permanent Link: Siebel &#8211; EnableServiceArgTracing &#8211; Logging Messages'>Siebel &#8211; EnableServiceArgTracing &#8211; Logging Messages</a> <small>Hi, We have already discussed at quite a length the...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/15/siebel-forcing-user-logoff/' rel='bookmark' title='Permanent Link: Siebel &#8211; Forcing User Logoff'>Siebel &#8211; Forcing User Logoff</a> <small>Hi all, Somebody recently asked me if there is a...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; Remove About SRF Window</title>
		<link>http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/</link>
		<comments>http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/#comments</comments>
		<pubDate>Wed, 20 May 2009 05:35:49 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Admin]]></category>
		<category><![CDATA[Applet]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Configuration]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=315</guid>
		<description><![CDATA[In my previous post, I had discussed as to how we can control how we can control the data being displayed in the Siebel Client, About SRF window. You can read the article here. One impromptu question came up from the audience, &#8220;What if I want to limit opening of the About SRF window itself [...]


<b>Related posts:<b><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> <small>Okay. This is something those who like to toy with...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/25/siebel-popup-update-only/' rel='bookmark' title='Permanent Link: Siebel &#8211; Popup Update Only'>Siebel &#8211; Popup Update Only</a> <small>Hi all, I was working with Siebel Multi Valued Links...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/18/siebel-changing-textbox-height/' rel='bookmark' title='Permanent Link: Siebel &#8211; changing Textbox height'>Siebel &#8211; changing Textbox height</a> <small>There are a number of HTML controls available in Siebel....</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In my previous post, I had discussed as to how we can control how we can control the data being displayed in the Siebel Client, About SRF window. You can read the article <a href="http://geeksbloggingat.com/siebel-about-srf-window-remove-data/" target="_blank">here</a>.</p>
<p>One impromptu question came up from the audience, &#8220;What if I want to limit opening of the About SRF window itself in the first place?&#8221;. I said, &#8220;Nice question!&#8221;.</p>
<p>Try out the following steps to disable the About SRF window itself from Siebel Web Client.</p>
<p><span id="more-315"></span>Log into Siebel Tools.<br />
Navigate to &#8216;Application&#8217; in the Object Explorer. In may case, &#8220;Siebel Automotive&#8221;.<br />
Notice that the Menu property corresponding to this Application reads, &#8220;Generic WEB&#8221;.<br />
Navigate to &#8216;Menu&#8217; in the Object Explorer in Siebel Tools.<br />
In the &#8216;Menu Item&#8217; below the &#8216;Menu&#8217; in OE, search for the record name as &#8220;Help &#8211; About SRF&#8221;, or the Caption as &#8220;About SRF&#8230;&#8221;.<br />
Set the corresponding property, &#8216;Inactive&#8217; to TRUE.<br />
Compile into Siebel SRF and Go!</p>
<p>You should no longer see the &#8216;About SRF&#8217; option in the &#8216;Help&#8217; menu.</p>
<p>Just as I said with my previous post on hiding data from the About SRF Applet, you can play around with similar other entities as well. Let me know if this helped you. Cheers!</p>


<p><b>Related posts:<b><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> <small>Okay. This is something those who like to toy with...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/06/25/siebel-popup-update-only/' rel='bookmark' title='Permanent Link: Siebel &#8211; Popup Update Only'>Siebel &#8211; Popup Update Only</a> <small>Hi all, I was working with Siebel Multi Valued Links...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/18/siebel-changing-textbox-height/' rel='bookmark' title='Permanent Link: Siebel &#8211; changing Textbox height'>Siebel &#8211; changing Textbox height</a> <small>There are a number of HTML controls available in Siebel....</small></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> <small>This is a nice tip I ran across. All the...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Siebel &#8211; About SRF Window &#8211; Remove data</title>
		<link>http://geeksbloggingat.com/2009/05/19/siebel-about-srf-window-remove-data/</link>
		<comments>http://geeksbloggingat.com/2009/05/19/siebel-about-srf-window-remove-data/#comments</comments>
		<pubDate>Tue, 19 May 2009 06:07:58 +0000</pubDate>
		<dc:creator>Nitin Jain</dc:creator>
				<category><![CDATA[Siebel CRM]]></category>
		<category><![CDATA[Applet]]></category>
		<category><![CDATA[Client]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Siebel]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://geeksbloggingat.com/?p=306</guid>
		<description><![CDATA[Okay. This is something those who like to toy with Siebel may find interesting. I will discuss today, how we can play with the Siebel &#8216;About SRF&#8217; window when you go Help -> About SRF in Siebel Client Application. I guess almost all the Siebel users would have seen or used the Siebel &#8216;About SRF&#8217; [...]


<b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/' rel='bookmark' title='Permanent Link: Siebel &#8211; Remove About SRF Window'>Siebel &#8211; Remove About SRF Window</a> <small>In my previous post, I had discussed as to how...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></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> <small>Requirement: System should have capability to automatically save opportunity(RFPs) data...</small></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> <small>This is a follow up post on my previous post,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/10/siebel-reading-data-directly-from-siebel-srf/' rel='bookmark' title='Permanent Link: Siebel &#8211; Reading data directly from Siebel SRF'>Siebel &#8211; Reading data directly from Siebel SRF</a> <small>SRF or the Siebel Repository File as it is more...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Okay. This is something those who like to toy with Siebel may find interesting. I will discuss today, how we can play with the Siebel &#8216;About SRF&#8217; window when you go Help -> About SRF in Siebel Client Application.</p>
<p>I guess almost all the Siebel users would have seen or used the Siebel &#8216;About SRF&#8217; window to know about the latest SRF that has been compiled, or other technical information for the application that they just logged into.</p>
<p><span id="more-306"></span>However, for a lot of reasons you may want to disable this Siebel feature:<br />
1) Security Reasons<br />
2) Making data available on a Need to Know basis<br />
3) Making available custom information than that in the About SRF window. Or,<br />
4) Just for plain fun! <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p>Either way, a nice to know feature in Siebel.</p>
<p><b>Remove some data from the About SRF Window<br />
</b></p>
<p>In Siebel Tools, navigate to &#8216;Applets&#8217; in the Siebel Object Explorer.<br />
Search for the &#8216;About SRF Applet&#8217; in the List of available applets.<br />
In the &#8216;Controls&#8217; section below the &#8216;Applets&#8217; in the Object Explorer tree, select the controls that you no longer want to show on the &#8216;About SRF Applet&#8217;. There would also be corresponding Labels visible as different controls.<br />
Set the property, &#8216;Inactive&#8217; to TRUE for all these controls and corresponding Label controls.<br />
Compile and go. Tell me what you see!</p>
<p>This concept can also be used to show some customized data onto the Siebel &#8216;About SRF Applet&#8217; as the requirement may be. Just remember to add the proper controls in the Edit Web Layout section of the Applet.</p>
<p>I am sure that the smartest of the lot will find many more similar applications, related to this implementation. Once you are done playing with this one, drop me a comment telling me how all did you play with this Applet. <img src='http://geeksbloggingat.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>


<p><b>Related posts:<b><ol><li><a href='http://geeksbloggingat.com/2009/05/20/siebel-remove-about-srf-window/' rel='bookmark' title='Permanent Link: Siebel &#8211; Remove About SRF Window'>Siebel &#8211; Remove About SRF Window</a> <small>In my previous post, I had discussed as to how...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/22/siebel-close-browser-window-when-logging-off/' rel='bookmark' title='Permanent Link: Siebel- Close Browser window when logging off'>Siebel- Close Browser window when logging off</a> <small>In case of standard interactivity applications like eSales , eService,...</small></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> <small>Requirement: System should have capability to automatically save opportunity(RFPs) data...</small></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> <small>This is a follow up post on my previous post,...</small></li>
<li><a href='http://geeksbloggingat.com/2009/05/10/siebel-reading-data-directly-from-siebel-srf/' rel='bookmark' title='Permanent Link: Siebel &#8211; Reading data directly from Siebel SRF'>Siebel &#8211; Reading data directly from Siebel SRF</a> <small>SRF or the Siebel Repository File as it is more...</small></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://geeksbloggingat.com/2009/05/19/siebel-about-srf-window-remove-data/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

