<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" gd:etag="W/&quot;AkAGRn4_eyp7ImA9WhRUE0w.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188</id><updated>2012-01-23T12:38:47.043+01:00</updated><category term="Global Payroll" /><category term="General" /><category term="PeopleSoft" /><category term="HTTPS" /><category term="Application Designer" /><category term="ExcelToCI" /><category term="Web Services" /><category term="Customization" /><category term="SSL" /><category term="Rule Package" /><category term="BPEL" /><category term="PeopleTools" /><category term="Conversion" /><title>Javier's PeopleSoft blog</title><subtitle type="html">Comments, tips &amp;amp; tricks on PeopleSoft products and technology.</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/JaviersPeoplesoftBlog" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="javierspeoplesoftblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">JaviersPeoplesoftBlog</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;C0EDRHY8fCp7ImA9WhZWFk4.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-7307486175003048179</id><published>2011-05-17T13:27:00.000+02:00</published><updated>2011-05-17T13:27:55.874+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-17T13:27:55.874+02:00</app:edited><title>Truncating empty temporary tables in Oracle for PeopleSoft applications</title><content type="html">Truncating temporary tables is an effective way of resetting the high-watermark level in Oracle databases.&lt;br /&gt;
&lt;br /&gt;
The following script just truncates those tables that are empty, as sometimes temporary tables containing data should not be deleted as the data may belong to processes in error.&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;DECLARE&lt;/span&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: 'Times New Roman'; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: arial; font-size: x-small;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;sqlstatement &amp;nbsp; &amp;nbsp;VARCHAR2 (100);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;fulltablename &amp;nbsp; VARCHAR2 (40);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;t_count &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; NUMBER;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;CURSOR c1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;IS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT owner || '.' || table_name&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM all_tables a&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE EXISTS (&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SELECT 'x'&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; FROM psrecdefn b&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;WHERE b.rectype = 7&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AND a.table_name LIKE 'PS_' || b.recname || '%');&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;BEGIN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;OPEN c1;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;LOOP&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; FETCH c1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INTO fulltablename;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; EXIT WHEN c1%NOTFOUND;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sqlstatement :=&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 'select count(*) from dual where exists (select NULL from '&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| fulltablename&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;|| ')';&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; EXECUTE IMMEDIATE sqlstatement&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;INTO t_count;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; IF t_count = 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; THEN&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DBMS_OUTPUT.put_line ('WARNING: ' || fulltablename || ' has data, so it will not be truncated.');&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ELSE&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sqlstatement := 'truncate table ' || fulltablename;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EXECUTE IMMEDIATE sqlstatement;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DBMS_OUTPUT.put_line (fulltablename || ' was truncated');&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; END IF;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;&amp;nbsp; &amp;nbsp;END LOOP;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #993300; font-family: 'courier new',monospace;"&gt;END;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Note: the script should be run when no process is running, as it is not blocking the tables after checking if they are empty. So, between the check and the truncate, someone may insert data. In any case, changing the script to lock the table should not be difficult.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-7307486175003048179?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/7307486175003048179/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=7307486175003048179" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/7307486175003048179?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/7307486175003048179?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2011/05/truncating-empty-temporary-tables-in.html" title="Truncating empty temporary tables in Oracle for PeopleSoft applications" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>1</thr:total></entry><entry gd:etag="W/&quot;A0IERngzfSp7ImA9WhZTE0w.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-5310429985840688099</id><published>2011-03-17T00:51:00.000+01:00</published><updated>2011-03-17T00:51:47.685+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-17T00:51:47.685+01:00</app:edited><title>PeopleSoft Test Framework</title><content type="html">PeopleTools 8.51 has introduced a new and exciting feature: &lt;b&gt;PeopleSoft Test Framework&lt;/b&gt; (from now on PTF). This tool can be used to automate testing of PeopleSoft applications. Unlike other testing automation tools, PTF has the following advantages:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;PTF is a testing automation tool designed to interact with PeopleSoft. It is quite easy to install and put it up to speed.&lt;/li&gt;
&lt;li&gt;Tests are stored in PeopleSoft database as metadata. This allows developers to migrate tests between environments, pretty much like any other PeopleTools object.&lt;/li&gt;
&lt;li&gt;Based on Usage Monitor, testers can determine which tests are impacted by a given application change: upgrade, bundle and/or customization.&lt;/li&gt;
&lt;/ul&gt;&lt;div&gt;PTF seems the perfect tool to automate a large degree of regression testing, thus reducing significantly the effort (and therefore cost) of testing after an application change. Particularly in upgrades, when test cycles are conducted over an over again, PTF may help to reduce the time and increase the quality needed for testing efforts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;There are still some shortfalls of PeopleSoft Test Framework. First of all, tests for PeopleSoft applications are still not delivered in the standard product, although some companies are already offering test bundles for certain modules (we at &lt;a href="http://www.bnetbuilders.com/"&gt;BNB&lt;/a&gt;&amp;nbsp;are looking at offering a bundled service based on the test cases built on our installed customer base).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The second shortfall is the lack of stress testing capabilities. Still, there are plenty of tools on the market to perform this kind of testing.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;All in all, it seems a very important step forward in PeopleSoft technology in order to reduce implementation and upgrade times and increase the ROI of those projects.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-5310429985840688099?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/5310429985840688099/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=5310429985840688099" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/5310429985840688099?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/5310429985840688099?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2011/03/peoplesoft-test-framework.html" title="PeopleSoft Test Framework" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>3</thr:total></entry><entry gd:etag="W/&quot;AkIASX88fip7ImA9WxFXF0o.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-8764177514126371778</id><published>2010-05-25T11:09:00.000+02:00</published><updated>2010-05-25T11:09:08.176+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-25T11:09:08.176+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Rule Package" /><category scheme="http://www.blogger.com/atom/ns#" term="Global Payroll" /><title>Cloning elements in Global Payroll</title><content type="html">I've been lately involved in a couple of PeopleSoft Global Payroll implementations. One of the pain areas in dealing with Global Payroll rules definition is that there does not seem to be an easy way to clone or save an element with another name. Re-entering the element again is not always an option, specially if you are dealing with a formula, array or bracket with several lines.&lt;br /&gt;
&lt;br /&gt;
Just a couple of weeks ago we found out a way in which we could clone elements. Here it is:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Create a Rule Package with the elements you want to clone in it.&lt;/li&gt;
&lt;li&gt;Export the Rule Package.&lt;/li&gt;
&lt;li&gt;Rename (both pin name and code) the elements.&lt;/li&gt;
&lt;li&gt;Import and apply the Rule Package you previously exported.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
We still think we could make it easier with a bit of customization, by automating export and import of the package rule, as it is on the same database.&lt;br /&gt;
&lt;br /&gt;
Anyway, I hope this is useful. Have you found any other way to do this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-8764177514126371778?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/8764177514126371778/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=8764177514126371778" title="5 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/8764177514126371778?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/8764177514126371778?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2010/05/cloning-elements-in-global-payroll.html" title="Cloning elements in Global Payroll" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>5</thr:total></entry><entry gd:etag="W/&quot;DEcNRXk4eSp7ImA9WxBVGUw.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-8881209563461418685</id><published>2010-02-23T10:08:00.000+01:00</published><updated>2010-02-23T10:08:14.731+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-23T10:08:14.731+01:00</app:edited><title>Setting Date Variables to Null in PeopleCode</title><content type="html">If you try to assign a date variable a null value you will get an error saying that the left and right sides of the assignment are not compatible.&lt;br /&gt;
&lt;br /&gt;
For instance, the following PeopleCode would error out: &lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #660000;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;Local date &amp;amp;myDate;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #660000;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #660000;"&gt;&lt;span style="font-size: x-small;"&gt;&lt;b&gt;&amp;amp;myDate = null;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;
To perform this kind of assignment, you may use the Date function in the following way:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: #660000;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;Local date &amp;amp;myDate;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="color: #660000;"&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="color: #660000;"&gt;&amp;amp;myDate = Date(0);&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-8881209563461418685?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/8881209563461418685/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=8881209563461418685" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/8881209563461418685?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/8881209563461418685?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2010/02/setting-date-variables-to-null-in.html" title="Setting Date Variables to Null in PeopleCode" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>9</thr:total></entry><entry gd:etag="W/&quot;Dk8ARXk9cCp7ImA9WxBVFU8.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-4209353789099539755</id><published>2010-02-18T21:12:00.004+01:00</published><updated>2010-02-18T21:27:24.768+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-18T21:27:24.768+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="SSL" /><category scheme="http://www.blogger.com/atom/ns#" term="ExcelToCI" /><category scheme="http://www.blogger.com/atom/ns#" term="HTTPS" /><title>ExcelToCI under HTTPS with SSL certificate errors</title><content type="html">One of our customers was trying to use an ExcelToCI template to load data in PeopleSoft environment which could only be accessed through HTTPS. However, as the certificate in the web server was expired, ExcelToCI would error out whenever the user wanted to create a new template or submit the data to the database.&lt;br /&gt;&lt;br /&gt;Obviously, this issue would have been solved by simply renewing the web server certificate, but the customer was not in a position to do this now and we had to seek an alternative solution.&lt;br /&gt;&lt;br /&gt;Our solution was to modify the ExcelToCI macros to tell them to ignore SSL certificate errors. To do so, we had to do the following changes on the CreateCITemplate.sendSOAPRequest_GetCIShape() and StagingAndSubmission.sendSOAPRequest_SubmitToDB() functions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replace the following variable declaration:&lt;/li&gt;&lt;/ul&gt;        Dim xHTTP As XMLHTTP&lt;br /&gt;&lt;br /&gt;        by&lt;br /&gt;&lt;br /&gt;        Dim xHTTP As New MSXML2.ServerXMLHTTP40&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replace the following variable initialization:&lt;/li&gt;&lt;/ul&gt;        Set xHTTP = New XMLHTTP&lt;br /&gt;&lt;br /&gt;        by&lt;br /&gt;&lt;br /&gt;        Set xHTTP = New MSXML2.ServerXMLHTTP40&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add the following line before calling the Send method:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;        xHTTP.setOption 2, 13056 'Ignore all SSL errors&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The SetOption call is actually telling the Send method to ignore any SSL certificate error.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-4209353789099539755?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/4209353789099539755/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=4209353789099539755" title="13 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/4209353789099539755?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/4209353789099539755?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2010/02/exceltoci-under-https-with-ssl.html" title="ExcelToCI under HTTPS with SSL certificate errors" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>13</thr:total></entry><entry gd:etag="W/&quot;AkUHQXs9fyp7ImA9WxRWFE4.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-6896064382991850976</id><published>2008-10-31T08:20:00.004+01:00</published><updated>2008-10-31T08:30:30.567+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-10-31T08:30:30.567+01:00</app:edited><title>How to avoid passwords expiring in PeopleSoft</title><content type="html">One of the more often customer requirements regarding security is to implement password expiration. PeopleSoft provides this functionality using the Password Controls component under:&lt;br /&gt;&lt;br /&gt;PeopleTools &gt; Security &gt; Password Configuration &gt; Password Controls&lt;br /&gt;&lt;br /&gt;This component provides the alternative to enable or disable password expiration controls for all users. Now, what happens if we want a certain user's password to never expire?&lt;br /&gt;&lt;br /&gt;There are plenty of situations where we might want this to happen, for instance:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The password for the user set in the Process Scheduler or Application Server configuration should not expire or otherwise the system may not work.&lt;/li&gt;&lt;li&gt;Same happens with if a user is set as a Guest in a Web Profile.&lt;/li&gt;&lt;li&gt;Also, you may want to disable password expiration for PTWEBSERVER, the user set by default to let the Web Server recover Web Profiles from PeopleSoft environment.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Unfortunately, PeopleSoft does not provide the ability of disabling password expiration for a given user. Good news are that it is quite easy to do by setting the last password change date to a future date using the following SQL sentence:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);font-size:85%;" &gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;update PSOPRDEFN&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;set LASTPSWDCHANGE = '2050-01-01'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new; font-weight: bold;"&gt;where OPRID in ('SOLICITANTE', 'PS', 'PTWEBSERVER')&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-6896064382991850976?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/6896064382991850976/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=6896064382991850976" title="9 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/6896064382991850976?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/6896064382991850976?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2008/10/how-to-avoid-passwords-expiring-in.html" title="How to avoid passwords expiring in PeopleSoft" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>9</thr:total></entry><entry gd:etag="W/&quot;C0UMQXo-eCp7ImA9WB5VFkk.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-4541191928314420308</id><published>2007-08-06T10:14:00.000+02:00</published><updated>2007-08-09T08:34:40.450+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-09T08:34:40.450+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Customization" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleSoft" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleTools" /><category scheme="http://www.blogger.com/atom/ns#" term="Application Designer" /><title>Adding new fields... to an existing record or a new one?</title><content type="html">At the very start of every &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PeopleSoft&lt;/span&gt; project we're confronted to the task of defining the Development Standards.  One of the recurring discussion points is what to do when we need a new field in a record.&lt;br /&gt;&lt;br /&gt;a) Create a sibling record (same primary key), adding the new field as an attribute to that record.&lt;br /&gt;&lt;br /&gt;b) Add the new field in the original record.&lt;br /&gt;&lt;br /&gt;At first, the a) option seems the cleanest one as it does not modify standard records and it sounds like it will easier to maintain through upgrades and fixes.&lt;br /&gt;&lt;br /&gt;However, this option also has its limitations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Querying the table now would involve joining two tables. This leads to additional complexity and performance issues (particularly if customizations have been made by adding sibling records to multiple records in a query).&lt;/li&gt;&lt;li&gt;When creating a query, you may need to filter on both the standard record and the sibling one. In that case, you won't be able to use an index on both filters, as the fields are placed in different tables.&lt;/li&gt;&lt;li&gt;Adding a sibling records means you need to use an additional scroll area in components showing both the original record and the standard one. In some situations, this may put in a situation where the 4 allowed scroll levels (0, and 1 to 3) are not enough.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Mainly due to performance reasons, my preferred option is b). In order to keep a clearer track for upgrades and fixes, what we normally do is to place new fields in a subrecord defined explicitly for customized fields. In such way, it is always easy to identify the customized fields in a record.&lt;br /&gt;&lt;br /&gt;What is your experience on record customization? Which of the two options you prefer?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-4541191928314420308?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/4541191928314420308/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=4541191928314420308" title="8 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/4541191928314420308?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/4541191928314420308?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2007/08/adding-new-fields-to-existing-record-or.html" title="Adding new fields... to an existing record or a new one?" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>8</thr:total></entry><entry gd:etag="W/&quot;D0UMRHo6fSp7ImA9WB5VEEo.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-1662964856862643632</id><published>2007-07-31T22:48:00.000+02:00</published><updated>2007-08-02T19:21:25.415+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-08-02T19:21:25.415+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ExcelToCI" /><category scheme="http://www.blogger.com/atom/ns#" term="Conversion" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleSoft" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleTools" /><title>ExcelToCI limitations: when not to use it</title><content type="html">Since it's introduction with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;PeopleTools&lt;/span&gt; 8.4x, &lt;span style="font-weight: bold;" class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ExcelToCI&lt;/span&gt; has generated excitement particularly among consultants running implementations. Finally there was a tool that allowed consultants with little or no technical knowledge to quickly load data into the system.&lt;br /&gt;&lt;br /&gt;Now, as it normally happens in these situations, a good tool may become a bad choice if we are using it in a way it wasn't designed for. Personally, I've seen people trying to use &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;ExcelToCI&lt;/span&gt; to run complex data loading resulting in unexpected delays due to the need to build ad&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;-hoc&lt;/span&gt; tools for conversion.&lt;br /&gt;&lt;br /&gt;What are the most significant &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;ExcelToCI&lt;/span&gt; limitations? You may find others, but from my experience, these are quite important:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;ExcelToCI&lt;/span&gt; does not allow to determine the order in which fields are loaded into the application. The order is determined by the tab order defined at the page level in Application Designer.&lt;/li&gt;&lt;li&gt;Loading large data volumes becomes unpractical for performance reasons. Excel could easily hang when manipulating spreadsheets with over 10,000 rows.&lt;/li&gt;&lt;li&gt;Excel becomes nearly blocked when executing the load. It's difficult to perform any other action on the same workstation, and particularly to load several files in parallel.&lt;/li&gt;&lt;li&gt;Can only run in Add or Update mode, but there is not hybrid option to first try to Add and then Update is the row was present.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;At &lt;a href="http://www.bnetbuilders.com/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;BNB&lt;/span&gt;&lt;/a&gt;, we built a tool called &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;FileToCI&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;Ok&lt;/span&gt;, not much marketing brainstorming here!) that deals with most of these limitations:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Lets you choose in which order you want fields to be loaded.&lt;/li&gt;&lt;li&gt;Loads from &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;CSV&lt;/span&gt; files or database tables, which are much easier to handle than Excel files.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Lets you load different files in parallel. Processing is done at the server level, without capturing your local resources.&lt;/li&gt;&lt;li&gt;Includes a Hybrid load option, which only adds the rows that were not present before the load and updates the remaining ones.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Again, I'm not saying &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;ExcelToCI&lt;/span&gt; is useless. That &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;would be far away from&lt;/span&gt; the truth. Reality still is that for setup data load and certain types of conversion, &lt;span style="font-weight: bold;"&gt;ExcelToCi remains a very intuitive and powerful tool&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;What have been your experiences with ExcelToCI? Have you used it for massive data loading?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-1662964856862643632?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/1662964856862643632/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=1662964856862643632" title="7 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/1662964856862643632?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/1662964856862643632?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2007/07/exceltoci-limitations-when-not-to-use.html" title="ExcelToCI limitations: when not to use it" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>7</thr:total></entry><entry gd:etag="W/&quot;D0QGQHk6fyp7ImA9WB5WGUw.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-2100155740723103714</id><published>2007-07-31T20:40:00.000+02:00</published><updated>2007-07-31T22:55:21.717+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-31T22:55:21.717+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Web Services" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleSoft" /><category scheme="http://www.blogger.com/atom/ns#" term="PeopleTools" /><category scheme="http://www.blogger.com/atom/ns#" term="BPEL" /><title>How BPEL adds value to PeopleTools 8.48?</title><content type="html">One of the key enhancements delivered in PeopleTools 8.48 was integration with &lt;span style="font-weight: bold;"&gt;Oracle BPEL Manager&lt;/span&gt;. Oracle's description of BPEL is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;       Oracle BPEL Process Manager, a member of the &lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.oracle.com/products/middleware/index.html"&gt;Oracle Fusion Middleware&lt;/a&gt;&lt;span style="font-style: italic;"&gt; family of    products, enables enterprises to orchestrate disparate applications and Web services into business processes. The ability to    quickly build and deploy these processes in a standards-based manner delivers critical functionality for developing a    Service-Oriented Architecture (SOA).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now... how this translates into real-world cases?&lt;br /&gt;&lt;br /&gt;Recently, we had to design for one of our customers a Web Service based integration of PeopleSoft Financials with a Third Party Billing system. One of the integrations consisted in the Third Party system sending information to PeopleSoft Financials in order to perform the following actions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Create the customer if it was not present.&lt;/li&gt;&lt;li&gt;Create the invoice as a pending item in PeopleSoft Receivables module.&lt;/li&gt;&lt;li&gt;Run Receivables Update process.&lt;/li&gt;&lt;li&gt;Create the deposit and apply it to the item.&lt;/li&gt;&lt;li&gt;Run Receivables Update process again to update customer's balance.&lt;/li&gt;&lt;/ul&gt;Before BPEL, if we wanted to create this integration, a solution would have to create a Web Service in PeopleSoft that encapsulates all these activities. The problem of this approach is that this new Web Service would not easily reusable, as most consumer applications will only require part of the operations performed in it.&lt;br /&gt;&lt;br /&gt;With BPEL, we can keep Web Services at the right granularity to help making them reusable. Following with the example, we would just make sure the following Web Services exist (taking into account that some of them may be already available in the delivered product):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Customer creation.&lt;/li&gt;&lt;li&gt;Pending item creation.&lt;/li&gt;&lt;li&gt;Receivables update processing.&lt;/li&gt;&lt;li&gt;Deposit creation and application.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;BPEL would then be used to orchestrate these Web Services, without requiring to build aggregated and poorly reusable Web Services in PeopleSoft.&lt;br /&gt;&lt;br /&gt;In summary, BPEL seems to bring PeopleSoft applications to the next level in what relates to integration with Third Party applications. Also, being BPEL one of the keystones of Oracle Fusion Architecture, it seems a wise decision to gain some BPEL experience as this might be a highly demanded skill in the near future.&lt;br /&gt;&lt;br /&gt;Note: Although Oracle ships its BPEL Manager product together with PeopleTools 8.49, this license only covers design-time use. For runtime use, you should purchase Oracle BPEL Manager separately. For more information, please refer to:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E05453_01/psft/acrobat/pt849_lic_notes.pdf"&gt;http://download.oracle.com/docs/cd/E05453_01/psft/acrobat/pt849_lic_notes.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-2100155740723103714?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/2100155740723103714/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=2100155740723103714" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/2100155740723103714?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/2100155740723103714?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2007/07/how-bpel-adds-value-to-peopletools-848.html" title="How BPEL adds value to PeopleTools 8.48?" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry><entry gd:etag="W/&quot;D0QASXo7eSp7ImA9WB5WGUw.&quot;"><id>tag:blogger.com,1999:blog-791428392145826188.post-3910922438216516520</id><published>2007-07-31T20:07:00.000+02:00</published><updated>2007-07-31T22:55:48.401+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-07-31T22:55:48.401+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="General" /><title>Welcome!</title><content type="html">&lt;span style="font-weight: bold;"&gt;Welcome to my Blog!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;My expectation is to use this media to communicate and share my personal experiences in the &lt;span style="font-weight: bold;"&gt;IT field&lt;/span&gt;, and more specifically in PeopleSoft implementations.&lt;br /&gt;&lt;br /&gt;Many thanks and happy blogging!&lt;br /&gt;&lt;br /&gt;Javier&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/791428392145826188-3910922438216516520?l=javier-ps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="replies" type="application/atom+xml" href="http://javier-ps.blogspot.com/feeds/3910922438216516520/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=791428392145826188&amp;postID=3910922438216516520" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/3910922438216516520?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/791428392145826188/posts/default/3910922438216516520?v=2" /><link rel="alternate" type="text/html" href="http://javier-ps.blogspot.com/2007/07/welcome.html" title="Welcome!" /><author><name>Javier Delgado</name><uri>http://www.blogger.com/profile/02993716250297036568</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="16" height="16" src="http://img2.blogblog.com/img/b16-rounded.gif" /></author><thr:total>2</thr:total></entry></feed>

