<?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>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>Inserting a New Scroll Row from within the Same Scroll</title>
		<link>http://xtrahot.chili-mango.net/2007/04/new-row-within-same-scroll/</link>
		<comments>http://xtrahot.chili-mango.net/2007/04/new-row-within-same-scroll/#comments</comments>
		<pubDate>Sat, 21 Apr 2007 07:21:16 +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/04/new-row-within-same-scroll/</guid>
		<description><![CDATA[In PeopleCode, when inserting or deleting a row on a scroll, it is required that you perform the action on a parent row of the rowset being inserted/deleted to. PeopleTools doesn&#8217;t allow PeopleCode (using the built-in functions/methods InsertRow and DeleteRow) to insert or delete a row on the same scroll within which it is currently [...]]]></description>
			<content:encoded><![CDATA[<p>In PeopleCode, when inserting or deleting a row on a scroll, it is required that you perform the action on a parent row of the rowset being inserted/deleted to. PeopleTools doesn&#8217;t allow PeopleCode (using the built-in functions/methods <code>InsertRow</code> and <code>DeleteRow</code>) to insert or delete a row on the same scroll within which it is currently running. If you attempt to do this, PeopleTools will give an error complaining about changing the current program context.</p>
<p>However, there are some cases where inserting within the same scroll might be desirable. For example, based on the data entered on a row of a scroll, a new matching row must be inserted within the same scroll.</p>
<p>Yes, you can always make concessions, like forcing the user to click a button on a higher scroll level. Yet if you are looking for a way to insert within the same scroll level, read on. This tutorial illustrates a technique for doing a row insert from PeopleCode to the same scroll where the PeopleCode program is running.<br />
 <a href="http://xtrahot.chili-mango.net/2007/04/new-row-within-same-scroll/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2007/04/new-row-within-same-scroll/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Rich emails using SendMail()</title>
		<link>http://xtrahot.chili-mango.net/2006/04/rich-emails-using-sendmail/</link>
		<comments>http://xtrahot.chili-mango.net/2006/04/rich-emails-using-sendmail/#comments</comments>
		<pubDate>Sat, 08 Apr 2006 16:23:27 +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://chiliblog.chili-mango.net/2006/04/rich-emails-using-sendmail/</guid>
		<description><![CDATA[PeopleTools 8.4x added an option in the PeopleCode function SendMail() for specifying the content-type. In PeopleBooks, what is immediately highlighted is the ability to format your emails using HTML by setting the content-type to text/html. What probably isn&#8217;t well known is that it is also possible to set the content-type to other MIME types such [...]]]></description>
			<content:encoded><![CDATA[<p>PeopleTools 8.4x added an option in the PeopleCode function <code class="PeopleCode">SendMail()</code> for specifying the content-type. In PeopleBooks, what is immediately highlighted is the ability to format your emails using HTML by setting the content-type to <em>text/html</em>. What probably isn&#8217;t well known is that it is also possible to set the content-type to other MIME types such as <em>multipart/related</em>.</p>
<p><!-- ckey="4538AC90" --></p>
<p><em>text/html</em> alone will allow you to format the text of your message. But if you need to display an image such as a logo, &lt;img> tags inside your html will need to link to images stored in a web server somewhere. Sometimes, this is not ideal. With <em>multipart/related</em>, you can embed images in your email messages.</p>
<p> <a href="http://xtrahot.chili-mango.net/2006/04/rich-emails-using-sendmail/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2006/04/rich-emails-using-sendmail/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Emails w/ Attachment From a PS Online Page</title>
		<link>http://xtrahot.chili-mango.net/2006/02/sendmail-attachments/</link>
		<comments>http://xtrahot.chili-mango.net/2006/02/sendmail-attachments/#comments</comments>
		<pubDate>Fri, 17 Feb 2006 19:04:03 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

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

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

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

		<guid isPermaLink="false">http://chiliblog.chili-mango.net/2006/02/sendmail-attachments/</guid>
		<description><![CDATA[The PeopleCode SendMail() function is a quick and easy way to send emails from your PeopleSoft application. Unlike workflow routing and Notification classes, SendMail() provides the most functionality when it comes to sending emails. Over the newer releases, PeopleSoft has further added new capabilities to this function like overriding the content-type and sender details. However, [...]]]></description>
			<content:encoded><![CDATA[<p>The PeopleCode <code class="PeopleCode">SendMail()</code> function is a quick and easy way to send emails from your PeopleSoft application. Unlike workflow routing and Notification classes, <code class="PeopleCode">SendMail()</code> provides the most functionality when it comes to sending emails. Over the newer releases, PeopleSoft has further added new capabilities to this function like overriding the content-type and sender details. However, the feature that I find the least used is the inclusion of file attachments. This is because in PIA, PeopleCode runs either on the Application server or the Batch server. The files that can be attached should be either 1) located on the server, or 2) accessed by the server through a network share. For this reason, most applications that use file attachments are Application Engine programs (running on the Batch server) that attach log files from within the server. </p>
<p>If you&#8217;ve used web-based email services like Yahoo, then you&#8217;ll find it a common feature to allow attachments to be uploaded by a user from his workstation and send those attachments with the email message. Is this possible in PeopleSoft&#8217;s internet architecture? The answer is yes, this article will show you how.</p>
<p> <a href="http://xtrahot.chili-mango.net/2006/02/sendmail-attachments/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2006/02/sendmail-attachments/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Maintain cross-platform database compatibility in PS applications</title>
		<link>http://xtrahot.chili-mango.net/2006/02/pstools-cross-db/</link>
		<comments>http://xtrahot.chili-mango.net/2006/02/pstools-cross-db/#comments</comments>
		<pubDate>Tue, 07 Feb 2006 19:18:50 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

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

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

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

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

		<guid isPermaLink="false">http://chiliblog.chili-mango.net/2006/02/pstools-cross-db/</guid>
		<description><![CDATA[PeopleSoft officially supports a variety of enterprise databases, the most prominent of them are Oracle, DB2 and MSSQL. When PeopleSoft applications are delivered, one could readily assume they are tested intensively against these databases.
When developing PeopleTools customizations with SQL, do you think about whether the code being written will work for other databases as well? [...]]]></description>
			<content:encoded><![CDATA[<p>PeopleSoft officially supports a variety of enterprise databases, the most prominent of them are Oracle, DB2 and MSSQL. When PeopleSoft applications are delivered, one could readily assume they are tested intensively against these databases.</p>
<p>When developing PeopleTools customizations with SQL, do you think about whether the code being written will work for other databases as well? As a developer, the importance of this issue may not be apparent in your daily work. However, for your client or organization the long-term cost is vendor lock-in &mdash; making it more difficult and costly to switch database vendors when the need arises.</p>
<p>PeopleTools made it easy to code cross-platform SQL in your PeopleSoft applications, so there really is not much excuse for ignoring cross-platform compatibility issues further. There are 2 features in PeopleTools that are geared towards mitigating SQL cross-platform issues:</p>
<p> <a href="http://xtrahot.chili-mango.net/2006/02/pstools-cross-db/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2006/02/pstools-cross-db/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PeopleCode Array to HTML</title>
		<link>http://xtrahot.chili-mango.net/2005/12/peoplecode-array-to-html/</link>
		<comments>http://xtrahot.chili-mango.net/2005/12/peoplecode-array-to-html/#comments</comments>
		<pubDate>Tue, 06 Dec 2005 15:50:57 +0000</pubDate>
		<dc:creator>ChiliJoe</dc:creator>
		
		<category><![CDATA[PeopleSoft]]></category>

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

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

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

		<guid isPermaLink="false">http://chiliblog.chili-mango.net/2005/12/peoplecode-array-to-html/</guid>
		<description><![CDATA[When converting the data into the necessary HTML, the Join() method of the Array class still provides a convenient way to formulate your HTML without doing a loop.]]></description>
			<content:encoded><![CDATA[<p>When working with HTML areas or an IScript page, it is still often very convenient to store data into arrays. When converting the data into the necessary HTML, the <code class="PeopleCode">Join()</code> method of the Array class still provides a convenient way to formulate your HTML without doing a loop. The following examples should illustrate.</p>
<p>To generate a series of paragraphs from an array <code>&amp;arPara</code>:</p>
<pre><code class="PeopleCode">
&nbsp;&nbsp; &amp;html = &amp;arPara.Join(&quot;&lt;/p&gt;&lt;p&gt;&quot;, &quot;&lt;p&gt;&quot;, &quot;&lt;/p&gt;&quot;);
</code></pre>
<p>To create an unordered (bullet) list from <code>&amp;arList</code>:</p>
<pre><code class="PeopleCode">
&nbsp;&nbsp; &amp;html = &amp;arList.Join(&quot;&lt;/li&gt;&lt;li&gt;&quot;, &quot;&lt;ul&gt;&lt;li&gt;&quot;, &quot;&lt;/li&gt;&lt;/ul&gt;&quot;);
</code></pre>
<p class="related-posts">Related Posts</p>
<ul class="related-posts">
<li><a href="/2005/02/smarter-coding-techniques-with-arrays/">Smarter coding techniques with arrays</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2005/12/peoplecode-array-to-html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Bringing the power of Regular Expressions to PeopleCode</title>
		<link>http://xtrahot.chili-mango.net/2005/09/bringing-the-power-of-regular-expressions-to-peoplecode/</link>
		<comments>http://xtrahot.chili-mango.net/2005/09/bringing-the-power-of-regular-expressions-to-peoplecode/#comments</comments>
		<pubDate>Tue, 30 Nov 1999 00:00:00 +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://www.chili-mango.net/wpmove/2005/09/bringing-the-power-of-regular-expressions-to-peoplecode/</guid>
		<description><![CDATA[Regular expressions (or regex as it is affectionately called) is a powerful tool for searching (and  also, replacing) complex text patterns. A quick tutorial can be found at www.regular-expressions.info.[1] To quote from that site: 
If you are a programmer, you can save yourself lots of time and effort. You can often accomplish with a [...]]]></description>
			<content:encoded><![CDATA[<p>Regular expressions (or regex as it is affectionately called) is a powerful tool for searching (and  also, replacing) complex text patterns. A quick tutorial can be found at <a href="http://www.regular-expressions.info">www.regular-expressions.info</a>.<sup><a href="#050924foot1">[1]</a></sup> To quote from that site: </p>
<blockquote><p>If you are a programmer, you can save yourself lots of time and effort. You can often accomplish with a single regular expression in one or a few lines of code what would otherwise take dozens or hundreds.</p></blockquote>
<p>In addition to that argument, writing your own implementation with dozens of lines of code also makes it prone to defects, and makes it more difficult to maintain. And if the required pattern is changed slightly, the impact on your code could be very huge, or even require a rewrite of your custom implementation. With regex, what is often required is to change a few characters in the pattern.<sup><a href="#050924foot2">[2]</a></sup></p>
<p>PeopleCode do not have an implementation of regular expressions, but fortunately, it is easy to utilize Java objects from PeopleCode. Note that regex capabilities was only added to Java since version 1.4.</p>
<p> <a href="http://xtrahot.chili-mango.net/2005/09/bringing-the-power-of-regular-expressions-to-peoplecode/" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xtrahot.chili-mango.net/2005/09/bringing-the-power-of-regular-expressions-to-peoplecode/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
