<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.1.3" -->
<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/"
	>

<channel>
	<title>Extra Hot</title>
	<link>http://xtrahot.chili-mango.net</link>
	<description>PeopleSoft geek :: Web development enthusiast</description>
	<pubDate>Mon, 20 Aug 2007 16:18:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<item>
		<title>Using MsgGetText to Concatenate Strings</title>
		<link>http://xtrahot.chili-mango.net/2007/08/using-msggettext-to-concatenate-strings/</link>
		<comments>http://xtrahot.chili-mango.net/2007/08/using-msggettext-to-concatenate-strings/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 16:04:23 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[Tips &#038; Techniques]]></category>

		<category><![CDATA[PeopleCode]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/08/using-msggettext-to-concatenate-strings/</guid>
		<description><![CDATA[Lately, I&#8217;ve been using the MsgGetText() built-in function to concatenate adhoc strings in PeopleCode. For example, instead of the following:

Local string &#38;TEXTLINE = &#34;Value of &#34; &#124; &#38;fld1name &#124; &#34; is &#34; &#124; &#38;fld1value &#124; &#34;.&#34;;

Using MsgGetText, it can be re-written as follows:

Local string &#38;TEXTLINE = MsgGetText(0, 0, &#34;Value of %1 is %2.&#34;, &#38;fld1name, &#38;fld1value);

I [...]]]></description>
			<content:encoded><![CDATA[<p>Lately, I&#8217;ve been using the <code>MsgGetText()</code> built-in function to concatenate adhoc strings in PeopleCode. For example, instead of the following:</p>
<pre><code class="PeopleCode">
Local string &amp;TEXTLINE = &quot;Value of &quot; | &amp;fld1name | &quot; is &quot; | &amp;fld1value | &quot;.&quot;;
</code></pre>
<p>Using MsgGetText, it can be re-written as follows:</p>
<pre><code class="PeopleCode">
Local string &amp;TEXTLINE = MsgGetText(0, 0, &quot;Value of %1 is %2.&quot;, &amp;fld1name, &amp;fld1value);
</code></pre>
<p>I find that the latter is easier to read and modify compared to the first, especially if there are a lot of values being concatenated.</p>
<p>What about performance? Wouldn&#8217;t the MsgGetText code needlessly query the database for message (0, 0)? Fortunately, I think not. Some tests with SQL trace turned on &mdash; and the cache freshly cleared &mdash; show that a query to the message catalog for message (0, 0) is never performed by the application server. A wonderful optimization.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/08/using-msggettext-to-concatenate-strings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Couple of Must-have PeopleCode Coding Standards</title>
		<link>http://xtrahot.chili-mango.net/2007/08/a-couple-of-must-have-peoplecode-coding-standards/</link>
		<comments>http://xtrahot.chili-mango.net/2007/08/a-couple-of-must-have-peoplecode-coding-standards/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 14:59:34 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[PeopleCode]]></category>

		<category><![CDATA[Recommendation]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/08/a-couple-of-must-have-peoplecode-coding-standards/</guid>
		<description><![CDATA[The following are a couple of I believe not well-known coding standards for PeopleCode that I strictly adhere to. These are something I don&#8217;t see most people or teams are adapting, but something I really recommend looking into for the benefits that they offer.
]]></description>
			<content:encoded><![CDATA[<p>The following are a couple of I believe not well-known coding standards for PeopleCode that I strictly adhere to. These are something I don&#8217;t see most people or teams are adapting, but something I really recommend looking into for the benefits that they offer.<br />
 <a href="http://xtrahot.chili-mango.net/2007/08/a-couple-of-must-have-peoplecode-coding-standards/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/08/a-couple-of-must-have-peoplecode-coding-standards/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Set Processing 101</title>
		<link>http://xtrahot.chili-mango.net/2007/08/set-processing-101/</link>
		<comments>http://xtrahot.chili-mango.net/2007/08/set-processing-101/#comments</comments>
		<pubDate>Sat, 18 Aug 2007 09:56:44 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[App Engine]]></category>

		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/08/set-processing-101/</guid>
		<description><![CDATA[When I was reading the What&#8217;s New with Batch Processing in PeopleSoft Enterprise Oracle OpenWorld presentation some time ago, the following slide caught my attention:
What are the Problems with AppEngine

These programs can be complicated – and for a programmer they’re different
Same logic can be used Batch and Online – Really?

Different transactional model
Temp table behavior is [...]]]></description>
			<content:encoded><![CDATA[<p>When I was reading the <a title="Oracle OpenWorld Content Catalog" href="http://www28.cplan.com/cc139/catalog.jsp?ilc=139-1&#038;ilg=english&#038;isort_sessions=&#038;isort_demos=&#038;isort_exhibitors=&#038;is=yes&#038;ip=%3C%2Fipresentations%3E&#038;search_sessions=yes&#038;icriteria5=S283329">What&#8217;s New with Batch Processing in PeopleSoft Enterprise</a> Oracle OpenWorld presentation some time ago, the following slide caught my attention:</p>
<blockquote><p><strong>What are the Problems with AppEngine</strong></p>
<ul>
<li>These programs can be complicated – and for a programmer they’re different</li>
<li>Same logic can be used Batch and Online – Really?
<ul>
<li>Different transactional model</li>
<li>Temp table behavior is very different</li>
<li>No restartability</li>
</ul>
<li>Easy to write a poor performing App Engine Program
<ul>
<li>Since the introduction of PeopleCode, <u>poor performing programs are the norm</u></li>
</ul>
</blockquote>
<p>&nbsp;</p>
<p>Admittedly, I don&#8217;t have a lot of experience writing batch programs on Application Engine. But I believe the primary reason it is so easy to write poor-performing AE programs is that AE batch programs are better suited to be programmed using set processing. Set processing requires a different mind set to what procedural programmers are used to. I am new to it as well, so I find that <a title="Performance - SQR vs App Engine - use Set Processsing" href="http://peoplesoft.ittoolbox.com/groups/technical-functional/peopletools-l/performance-sqr-vs-app-engine-use-set-processsing-1492775">this discussion</a> in ITToolbox, and <a title="Set Processing - How to do Seq No and Running totals" href="http://peoplesoft.ittoolbox.com/groups/technical-functional/peopletools-l/set-processing-how-to-do-seq-no-and-running-totals-1508958">this followup</a> provides valuable insights on how to perform set processing. Steve&#8217;s technique of what he calls <em>partial cartesian joins</em> is quite useful as well, especially for those not running an Oracle database.</p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/08/set-processing-101/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Prettify Those Code Listings</title>
		<link>http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/</link>
		<comments>http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 14:16:09 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[Tips &#038; Techniques]]></category>

		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/</guid>
		<description><![CDATA[I often find it neat and helpful to paste syntax-highlighted code listings to my documents and email communications. In addition to the aesthetics, the syntax highlighting allows for more readable code. Of the many powerful text editors out there, PSPad provides a feature for generating syntax-highlighted rich text.
]]></description>
			<content:encoded><![CDATA[<p>I often find it neat and helpful to paste syntax-highlighted code listings to my documents and email communications. In addition to the aesthetics, the syntax highlighting allows for more readable code. Of the many powerful text editors out there, PSPad provides a feature for generating syntax-highlighted rich text.<br />
 <a href="http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/07/prettify-those-code-listings/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PeopleSoft Search</title>
		<link>http://xtrahot.chili-mango.net/2007/07/peoplesoft-search/</link>
		<comments>http://xtrahot.chili-mango.net/2007/07/peoplesoft-search/#comments</comments>
		<pubDate>Sat, 14 Jul 2007 06:54:20 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/07/peoplesoft-search/</guid>
		<description><![CDATA[If you&#8217;ve been browsing my blog directly, you may have already noticed the PeopleSoft Search link on the site&#8217;s header. This is simply a Google Custom search engine pointing to sites containing relevant PeopleSoft technical content. This includes mostly forums and blogs.
I find this useful when I need to search for keywords that are not [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been browsing my blog directly, you may have already noticed the <a href="http://www.google.com/coop/cse?cx=010187701398539861071%3Awacydyklyvc">PeopleSoft Search</a> link on the site&#8217;s header. This is simply a <a href="http://www.google.com/coop/cse/?hl=en">Google Custom search engine</a> pointing to sites containing relevant PeopleSoft technical content. This includes mostly forums and blogs.</p>
<p>I find this useful when I need to search for keywords that are not specifically related to PeopleSoft. Following is an example result when searching for &#8220;excel&#8221;:<br />
<a class="thickbox" href='http://xtrahot.chili-mango.net/wp-content/uploads/2007/07/pssearch-sample.png' title='Sample Search result'><img src='http://xtrahot.chili-mango.net/wp-content/uploads/2007/07/pssearch-sample.thumbnail.png' alt='Sample Search result' /></a></p>
<p>I still have trouble filtering out RSS from the results, if anyone can help me with that.</p>
<p>Now, if you&#8217;re browsing my site using Firefox 2, you may also notice the following auto-discovered <strong>PeopleSoft Search</strong> item on your search bar:<br />
<img src='http://xtrahot.chili-mango.net/wp-content/uploads/2007/07/pssearch.png' alt='Firefox Search Engines' /></p>
<p>Following is how the auto-discovered search would like it IE7:<br />
<img src='http://xtrahot.chili-mango.net/wp-content/uploads/2007/07/pssearch-ie71.png' alt='IE7 Search Engines' /></p>
<p>This plugin is packaged using the OpenSearch standard, as described in this <a href="http://developer.mozilla.org/en/docs/Creating_OpenSearch_plugins_for_Firefox">Mozilla article</a>.</p>
<p>The plugin can also be installed by clicking the following link:</p>
<p><a href="#" onclick="installPSSearchEngine();return false;">Install PeopleSoft Search</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/07/peoplesoft-search/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PeopleCode Array class&#8217; generic sort?</title>
		<link>http://xtrahot.chili-mango.net/2007/07/peoplecode-array-class-generic-sort/</link>
		<comments>http://xtrahot.chili-mango.net/2007/07/peoplecode-array-class-generic-sort/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 11:38:47 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[PeopleCode]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/07/peoplecode-array-class-generic-sort/</guid>
		<description><![CDATA[I&#8217;ve come across the following statement on PeopleBooks (PeopleCode API Reference > Application Classes > When Would You Use Application Classes?). This statement can be found in PeopleBooks for PeopleTools versions 8.45 to 8.49:
&#8230; suppose you want to provide a more generic sort, with comparison function at the end of it. You want to use [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come across the following statement on PeopleBooks (PeopleCode API Reference > Application Classes > When Would You Use Application Classes?). This statement can be found in PeopleBooks for PeopleTools versions 8.45 to 8.49:</p>
<blockquote><p>&#8230; suppose you want to provide a more generic sort, with comparison function at the end of it. You want to use the array class Sort method, but your process has to be generic: you aren’t certain if you’re comparing two records or two strings. You could define a class that had as its main method a comparison, and return a -1, 0, or 1. Then write your personalized sort, extending the array class method Sort.</p></blockquote>
<p>I find this statement very vague and lacking in details, that I am doubtful about its accuracy.</p>
<p>The statement seems to somewhat describe how one would define the ordering of objects in Java&#8217;s array and collection classes by creating an implementation of <a title="API reference" href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Comparator.html">java.util.Comparator</a> interface. However, according to PeopleBooks, the Sort method of the Array class does not have any optional parameters where such a comparator object may be provided.</p>
<p>I couldn&#8217;t find anything else in PeopleBooks where it describes the implementation of array sorting in the manner described in the statement above. Can anyone shed some light into this, and if possible, provide additional details? Does the PeopleCode Array class Sort method have an undocumented feature similar Java Arrays&#8217; <a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Arrays.html#sort(java.lang.Object[], java.util.Comparator)">sort</a> method?</p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/07/peoplecode-array-class-generic-sort/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Access to Instance Variables within the same Class</title>
		<link>http://xtrahot.chili-mango.net/2007/07/access-to-instance-variables-within-the-same-class/</link>
		<comments>http://xtrahot.chili-mango.net/2007/07/access-to-instance-variables-within-the-same-class/#comments</comments>
		<pubDate>Mon, 02 Jul 2007 10:19:23 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[PeopleCode]]></category>

		<category><![CDATA[Experiments]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/07/access-to-instance-variables-within-the-same-class/</guid>
		<description><![CDATA[In PeopleSoft application classes, instance variables are analogous to private variables in most object-oriented languages. This means that instance variables are inaccessible from PeopleCode outside the class where it is declared. I used to assume that a specific object (instance of a class) would only have access to its own instance variables. This appears not [...]]]></description>
			<content:encoded><![CDATA[<p>In PeopleSoft application classes, instance variables are analogous to private variables in most object-oriented languages. This means that instance variables are inaccessible from PeopleCode outside the class where it is declared. I used to assume that a specific object (instance of a class) would only have access to its own instance variables. This appears not to be the case, as the following paragraphs in PeopleBooks (PeopleCode API Reference > Application Class > Self-Reference) states:</p>
<blockquote><p>If you declare an instance variable as private you can still access it as a private property in another instance of the same class. For example, given the following declaration:</p>
<pre>class Example
  private
     instance number &Num;
end-class;</pre>
<p>A method of Example could reference another Example instance’s &#038;Num instance variable as follows:</p>
<pre>   &#038;X = &#038;SomeOtherExample.Num;</pre>
</blockquote>
<p> <a href="http://xtrahot.chili-mango.net/2007/07/access-to-instance-variables-within-the-same-class/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/07/access-to-instance-variables-within-the-same-class/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Overloading %SubmitScriptName</title>
		<link>http://xtrahot.chili-mango.net/2007/05/overloading-submitscriptname/</link>
		<comments>http://xtrahot.chili-mango.net/2007/05/overloading-submitscriptname/#comments</comments>
		<pubDate>Sat, 19 May 2007 17:45:52 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[Tips &#038; Techniques]]></category>

		<category><![CDATA[PIA]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/05/overloading-submitscriptname/</guid>
		<description><![CDATA[As discussed in the previous post, all actions in a component that eventually require a server trip would invoke %SubmitScriptName for submitting the page. As such, it sometimes provide a convenient point for performing javascript modifications on the page.
This is achieved by storing a reference to the original function, and redefining %SubmitScriptName to perform your [...]]]></description>
			<content:encoded><![CDATA[<p>As discussed in the previous post, all actions in a component that eventually require a server trip would invoke %SubmitScriptName for submitting the page. As such, it sometimes provide a convenient point for performing javascript modifications on the page.</p>
<p>This is achieved by storing a reference to the original function, and redefining <code>%SubmitScriptName</code> to perform your custom logic &mdash; invoking the original function as needed.</p>
<p>The following sample scenarios may help to illustrate this technique.<br />
 <a href="http://xtrahot.chili-mango.net/2007/05/overloading-submitscriptname/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/05/overloading-submitscriptname/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Look at %SubmitScriptName</title>
		<link>http://xtrahot.chili-mango.net/2007/05/a-look-at-submitscriptname/</link>
		<comments>http://xtrahot.chili-mango.net/2007/05/a-look-at-submitscriptname/#comments</comments>
		<pubDate>Sat, 19 May 2007 10:00:58 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[PIA]]></category>

		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/05/a-look-at-submitscriptname/</guid>
		<description><![CDATA[In PeopleTools 8.4, %SubmitScriptName is the meta-HTML javascript function used by all PeopleSoft component pages for triggering server-side actions. %SubmitScriptName is translated at run time (i.e., when the page is rendered) to submitAction_win0. It may be related to %FormName as submitAction_%FormName, since %FormName is also translated to win0. I don&#8217;t know how PeopleTools internally translates [...]]]></description>
			<content:encoded><![CDATA[<p>In PeopleTools 8.4, <code>%SubmitScriptName</code> is the meta-HTML javascript function used by all PeopleSoft component pages for triggering server-side actions. %SubmitScriptName is translated at run time (i.e., when the page is rendered) to <code>submitAction_win0</code>. It may be related to <code>%FormName</code> as <code>submitAction_%FormName</code>, since %FormName is also translated to <code>win0</code>. I don&#8217;t know how PeopleTools internally translates %FormName, but as far as I can tell it is always translated to win0 inside any component.</p>
<p>The %SubmitScriptName function is passed 2 parameters:</p>
<ol>
<li><strong>form</strong> &ndash; the 1st parameter is the form object with the data to be submitted. On a component, this will be the win0 form in the content frame.</li>
<li><strong>action ID <span style="color:red">*</span></strong> &ndash; the 2nd parameter is a distinct text string which informs the component processor what action is requested or what type of action took place.</li>
</ol>
<p><em><br />
<span style="color:red">*</span> &ndash; I just made up this label for the purpose of discussion.</em></p>
<p>The action ID that can be passed to %SubmitScriptName can be categorized into the following type of actions:<br />
 <a href="http://xtrahot.chili-mango.net/2007/05/a-look-at-submitscriptname/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/05/a-look-at-submitscriptname/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Embedding Static JavaScript Content in HTML Areas</title>
		<link>http://xtrahot.chili-mango.net/2007/05/static-js-content-html-area/</link>
		<comments>http://xtrahot.chili-mango.net/2007/05/static-js-content-html-area/#comments</comments>
		<pubDate>Fri, 11 May 2007 17:02:35 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

		<category><![CDATA[Tips &#038; Techniques]]></category>

		<category><![CDATA[Recommendation]]></category>

		<guid isPermaLink="false">http://xtrahot.chili-mango.net/2007/05/static-js-content-html-area/</guid>
		<description><![CDATA[Just a simple tip. When embedding static javascript code on a page, the obvious approach is to place the code as a constant value in the HTML Area control. For example, suppose the following code:

var something = &#34;something&#34;;
function SomeThing() {
&#160;&#160; /* Something */
&#160;&#160; /* something&#46;.. */
}

]]></description>
			<content:encoded><![CDATA[<p>Just a simple tip. When embedding static javascript code on a page, the obvious approach is to place the code as a constant value in the HTML Area control. For example, suppose the following code:</p>
<pre><code class="JavaScript">
var something = &quot;something&quot;;
function SomeThing() {
&nbsp;&nbsp; /* Something */
&nbsp;&nbsp; /* something&#46;.. */
}
</code></pre>
<p> <a href="http://xtrahot.chili-mango.net/2007/05/static-js-content-html-area/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/05/static-js-content-html-area/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
