<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4790765004228445565</id><updated>2012-02-02T14:04:31.398-07:00</updated><category term='PSoft Customizations'/><category term='Wireless'/><category term='App Designer'/><category term='Application Engine'/><category term='Virus Attacks'/><category term='Programming Languages'/><category term='Peoplesoft'/><category term='Peoplesoft Navigation'/><category term='Futuristic Technology'/><category term='PeopleSoft Tracing'/><title type='text'>Technological Eureka</title><subtitle type='html'>An application engineer at BYU reveals some of his 'A-ha' moments.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-5489913874974843794</id><published>2012-02-02T13:52:00.001-07:00</published><updated>2012-02-02T14:04:31.408-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peoplesoft'/><category scheme='http://www.blogger.com/atom/ns#' term='PSoft Customizations'/><category scheme='http://www.blogger.com/atom/ns#' term='App Designer'/><title type='text'>Disabling PeopleSoft Grid Using "Page Field Name" Property</title><content type='html'>&lt;div xmlns=""&gt;&lt;div style="margin-bottom: 0in;"&gt;After thinking there were no good reasons for using the the “Page Field Name” property of a PeopleSoft object, I finally found one. Rather than using overly complex (for this purpose) Rowset/Row/Record/Field logic to disable each field in a grid, it is possible to use the Page Field Name in simpler logic to disable each column in the grid.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;In this case, when a student accesses my page, I want all of the objects to be editable, but when their parent accesses the page, the only thing the parent should be able to do, other than see the student's information, is click a “Validate Student Information” button on the page. So, for parents, I need to disable several edit boxes, radio buttons, and grid columns. If I use the Page Field Name of the Grid and Grid Column objects, then disabling the grid columns is fairly simple.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Assuming the grid's Page Field Name value is “FAMILY_GRID” and the column's Page Field Name value is “FAM_MEM_NAME” , you can use the following code&lt;/div&gt;&lt;blockquote class="tr_bq"&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: Courier New,monospace;"&gt;&amp;amp;famGrid = GetGrid(Page.MY_PAGE, "FAMILY_GRID");&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: Courier New,monospace;"&gt;&amp;amp;famGridFamMemName = &amp;amp;famGrid.GetColumn("FAM_MEM_NAME");&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-family: Courier New,monospace;"&gt;&amp;amp;famGridFamMemName.enabled = False;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;to get the first column in your grid to be disabled (read-only), as shown below.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-7RQ6q0CUGGM/Tyr45gQ1pjI/AAAAAAAABYk/OZhOwT8B2Jc/s1600/PSoftGridColumnDisableExample.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="45" src="http://2.bp.blogspot.com/-7RQ6q0CUGGM/Tyr45gQ1pjI/AAAAAAAABYk/OZhOwT8B2Jc/s400/PSoftGridColumnDisableExample.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span id="goog_1679811764"&gt;&lt;/span&gt;&lt;span id="goog_1679811765"&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br clear="left" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-5489913874974843794?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/5489913874974843794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=5489913874974843794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/5489913874974843794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/5489913874974843794'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2012/02/disabling-peoplesoft-grid-using-field.html' title='Disabling PeopleSoft Grid Using &amp;quot;Page Field Name&amp;quot; Property'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-7RQ6q0CUGGM/Tyr45gQ1pjI/AAAAAAAABYk/OZhOwT8B2Jc/s72-c/PSoftGridColumnDisableExample.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-695190651810502515</id><published>2011-12-28T09:56:00.001-07:00</published><updated>2011-12-28T10:30:09.886-07:00</updated><title type='text'>Missing the Boat: My Early Memories of Computer Technology</title><content type='html'>&lt;div xmlns=""&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-fgR1SAKpQb4/TvtLLrU__6I/AAAAAAAABXE/2FOTQYB6FBY/s1600/Apple1Computer.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="195" src="http://4.bp.blogspot.com/-fgR1SAKpQb4/TvtLLrU__6I/AAAAAAAABXE/2FOTQYB6FBY/s200/Apple1Computer.jpg" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;I've just been reading the book “I Woz” by Steve Wozniak (listening to the audio version, actually), and I found myself getting just a bit dismayed that I hadn't paid attention to computer technology as closely as I could have when I was younger. Then I remembered that I had actually paid some attention. So I thought I'd write down my thoughts about it.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;I've always been on the trailing edge of technology. When I saw the first IBM PC with a program called (I think) “Le Menu” I wondered why anyone would ever want to use that. When I heard about blogging, I thought it was a strange and useless concept. When I heard one of my co-workers a few years ago say that he thought it would be great to have a Palm Pilot and a cell phone in the same device, I thought he was a bit crazy. When I heard about Facebook, I thought it could be nothing other than a monumental waste of time.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Ironically, I am now a computer programmer, an avid blogger, and an even more voracious user of Facebook, and the one device I cannot do with out is my smartphone.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;When I was approaching high school age (and when at least gigantic “mainframe” computers were coming of age, I remember walking with my father from the silage pits on our farm up the road to the feedlot. I told him that I wanted to take over his part of the operation someday, and he matter-of-factly told me, “No, you'll probably go into working with computers.” I was 14, and there were mainframes and a handful of other almost unknown computers around, yet he had the insight to know what my future would be.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;When I was about 11, my cousin got the game Pong. We played it on his TV. I remember thinking that it was pretty cool, but it didn't hold my attention, let alone make me inquisitive about how it worked. I had the same boredom vis-a-vis video games, such as Asteroids and Pac-Man, which my high school buddies spent hours and hours and quarters and quarters playing. They got so good that they could make a quarter-dollar last a half hour before all of their spaceships were destroyed or their Pac-Man was eaten up enough times by ghosts. (I still don't have much patience for video games.)&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;I had always been an afficionado for great stereophonic sound, probably because my dad had a great reel-to-reel stereo system with amplifier in the home where I grew up—with a speaker in almost every room. My favorite birthday present was a record player, and my mom bought me 5 new 45 RPM records at Skaggs to play on them. Later on, for a Junior High graduation present, she bought me a nice stereo, with the first of its kind 8-track recording deck. I remember listening to Kasey Kasem's top 40 with my 8-track recorder queued to tap off my favorite songs for later playing enjoyment. In high school, I purchased a white 1976 Chevrolet Monte Carlo, and I spent hundreds of dollars for a nice tape deck, graphic equalizer, amplifier, speakers, and time-delay system (which made my car sound like a large concert hall). My dad wondered why I spent so much money on worthless stuff, but he didn't put up too much of a stink, because he loved good sound, too.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;I bought most of my stereo equipment, in St. George, Utah, at a place called Arrow Audio, which is where I had seen an Atari gaming machine that ran a program called Space Invaders or something like that. It held my attention for a few minutes. I remembered wondering how cool it was that someone could make random space objects (mostly stars) appear and whoosh by on the computer screen, but it didn't impress me enough to have the patience to figure out how to program it.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;It wasn't until after I returned from my LDS mission to Austria in 1984 that I developed a passion for computers, though. My mother had even had an Apple I computer before that, but, like my initial reaction to video games smartphones, blogs, Facebook, and the IBM PC later, I wondered, what would I ever do with that?&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;It was an Intro to Computers class where I first fell in love—not with girls (that had already happened a few times)--but with computers. I knew that I had to go out and by myself one. My computer teacher at Dixie had an IBM PC with 640 kilobytes of memory, a floppy drive, and a 10 megabyte Bernoulli drive, which I almost worshiped. He told me one day, looking at his computer system “I can't imagine ever needing anything more!” Little did either of us know...&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;...&lt;i&gt;to be continued...&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-695190651810502515?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/695190651810502515/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=695190651810502515' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/695190651810502515'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/695190651810502515'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2011/12/missing-boat-my-early-memories-of.html' title='Missing the Boat: My Early Memories of Computer Technology'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-fgR1SAKpQb4/TvtLLrU__6I/AAAAAAAABXE/2FOTQYB6FBY/s72-c/Apple1Computer.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-7909092596636912380</id><published>2011-12-21T11:33:00.001-07:00</published><updated>2011-12-21T11:38:09.010-07:00</updated><title type='text'>An Example of Using MAX(LEAST...) in an SQL Statement</title><content type='html'>&lt;div xmlns=""&gt;This is an example of how to use MAX LEAST in an SQL statement.&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;First, to show what the raw data looks like. If I run this query for  &lt;span style="color: #00b050;"&gt;&lt;b&gt;014117910&lt;/b&gt;&lt;/span&gt;(without the MAX LEAST and groupings)&lt;br /&gt;&lt;br /&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT A.EMPLID&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_LOAN_TYPE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_LOAN_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, SUBSTR( A.NSLDS_SCHOOL_CD&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;,1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;,6)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_PRIN_BAL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_TOT_DISB_AMT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;  &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_NSLDS_ISIR_DTL A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, PS_ISIR_CONTROL B&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE&amp;nbsp; A.EMPLID = '014117910'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND&amp;nbsp; A.NSLDS_LOAN_START &amp;gt;= '01-MAY-10'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_LOAN_START &amp;lt;= '01-AUG-11'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_SCHOOL_CD &amp;lt;&amp;gt; 'xxxxx000'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;--and A.NSLDS_PRIN_BAL &amp;lt;&amp;gt; A.NSLDS_TOT_DISB_AMT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFDT = (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT MAX(B_ED.EFFDT)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_ISIR_CONTROL B_ED&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE B.EMPLID = B_ED.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.INSTITUTION = B_ED.INSTITUTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = B_ED.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B_ED.EFFDT &amp;lt;= SYSDATE)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFSEQ = (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT MAX(B_ES.EFFSEQ)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_ISIR_CONTROL B_ES&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE B.EMPLID = B_ES.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.INSTITUTION = B_ES.INSTITUTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = B_ES.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFDT = B_ES.EFFDT)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = '2010'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND (( A.NSLDS_LOAN_TYPE = 'D1'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND NOT EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_SCHL C&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE C.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AGGREGATE_AREA = 'DLSUB'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.CPS_SCHOOL_CODE &amp;lt;&amp;gt; 'xxxxx0'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AGGREGATE_STATUS = 'I'))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;OR ( A.NSLDS_LOAN_TYPE = 'D2'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND NOT EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_SCHL D&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE D.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AGGREGATE_AREA = 'DLUNSUB'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.CPS_SCHOOL_CODE &amp;lt;&amp;gt; 'xxxxx0'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AGGREGATE_STATUS = 'I')))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_TOT_DISB_AMT &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_PRIN_BAL &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_LIFE E&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE E.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND E.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND E.AGGREGATE_AREA LIKE 'DL%')&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="line-height: 0.2in; margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;order&amp;nbsp; BY A.EMPLID, B.AID_YEAR, A.NSLDS_LOAN_TYPE, A.NSLDS_LOAN_YEAR, SUBSTR( A.NSLDS_SCHOOL_CD,1,6) ;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I get the following results:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JfSpk0LZWAg/TvInLrzdNQI/AAAAAAAABV8/yREn1wdNdsI/s1600/test.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="108" src="http://4.bp.blogspot.com/-JfSpk0LZWAg/TvInLrzdNQI/AAAAAAAABV8/yREn1wdNdsI/s640/test.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span id="goog_96995437"&gt;&lt;/span&gt;&lt;span id="goog_96995438"&gt;&lt;/span&gt; &lt;br clear="left" /&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Then, when I run the query for the same ID, but with the MAX LEAST logic, including GROUPing:&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT A.EMPLID&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_LOAN_TYPE&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_LOAN_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, SUBSTR( A.NSLDS_SCHOOL_CD&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;,1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;,6)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, &lt;b&gt;&lt;span style="color: red;"&gt;MAX( LEAST ( A.NSLDS_PRIN_BAL&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: red; margin-bottom: 0in; margin-left: 0.5in;"&gt;&lt;b&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, A.NSLDS_TOT_DISB_AMT))&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_NSLDS_ISIR_DTL A&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;, PS_ISIR_CONTROL B&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE A.EMPLID = '014117910'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_LOAN_START &amp;gt;= '01-MAY-10'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_LOAN_START &amp;lt;= '01-AUG-11'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_SCHOOL_CD &amp;lt;&amp;gt; 'xxxxx000'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFDT = (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT MAX(B_ED.EFFDT)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_ISIR_CONTROL B_ED&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE B.EMPLID = B_ED.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.INSTITUTION = B_ED.INSTITUTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = B_ED.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B_ED.EFFDT &amp;lt;= SYSDATE)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFSEQ = (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT MAX(B_ES.EFFSEQ)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_ISIR_CONTROL B_ES&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE B.EMPLID = B_ES.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.INSTITUTION = B_ES.INSTITUTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = B_ES.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.EFFDT = B_ES.EFFDT)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND B.AID_YEAR = '2010'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;  &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND (( A.NSLDS_LOAN_TYPE = 'D1'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND NOT EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_SCHL C&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE C.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AGGREGATE_AREA = 'DLSUB'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.CPS_SCHOOL_CODE &amp;lt;&amp;gt; 'xxxxx0'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND C.AGGREGATE_STATUS = 'I'))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;OR ( A.NSLDS_LOAN_TYPE = 'D2'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND NOT EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_SCHL D&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE D.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AGGREGATE_AREA = 'DLUNSUB'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.CPS_SCHOOL_CODE &amp;lt;&amp;gt; 'xxxxx0'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND D.AGGREGATE_STATUS = 'I')))&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_TOT_DISB_AMT &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND A.NSLDS_PRIN_BAL &amp;gt; 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND EXISTS (&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;SELECT 'X'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;FROM PS_STDNT_AGGR_LIFE E&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;WHERE E.EMPLID = B.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND E.AID_YEAR = B.AID_YEAR&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;AND E.AGGREGATE_AREA LIKE 'DL%')&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;&lt;span style="color: red; font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;GROUP BY A.EMPLID, B.AID_YEAR, A.NSLDS_LOAN_TYPE, A.NSLDS_LOAN_YEAR, SUBSTR( A.NSLDS_SCHOOL_CD,1,6)&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in; margin-left: 0.5in;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="font-family: Courier New;"&gt;&lt;span style="font-size: x-small;"&gt;ORDER BY A.EMPLID&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;I get the following:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dqMbaADEC_k/TvIm38YlytI/AAAAAAAABV0/NQ65Yrx8HAQ/s1600/test.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="42" src="http://4.bp.blogspot.com/-dqMbaADEC_k/TvIm38YlytI/AAAAAAAABV0/NQ65Yrx8HAQ/s640/test.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&amp;nbsp;&lt;br clear="left" /&gt;  &lt;/div&gt;In the first result set, you might have noticed that there ARE two rows where the LEAST is less than 18222, but there is one row where the LEAST is 18222, so it’s the MAX LEAST for the first record that is returned based on the GROUP BY clause.&lt;br /&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt; &lt;/div&gt;&lt;br clear="left" /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-7909092596636912380?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/7909092596636912380/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=7909092596636912380' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/7909092596636912380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/7909092596636912380'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2011/12/example-of-using-maxleast-in-sql.html' title='An Example of Using MAX(LEAST...) in an SQL Statement'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-JfSpk0LZWAg/TvInLrzdNQI/AAAAAAAABV8/yREn1wdNdsI/s72-c/test.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-3038742254993151535</id><published>2009-09-17T11:33:00.001-06:00</published><updated>2009-09-17T11:37:15.445-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PSoft Customizations'/><category scheme='http://www.blogger.com/atom/ns#' term='PeopleSoft Tracing'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming Languages'/><title type='text'>PeopleSoft Trace Example: Inserting NULL into Non-Nullable Columns</title><content type='html'>When PeopleSoft comes across a column with null value in an insert or update situation, it ignores it.  If the column itself does not allow null values, it can be confusing what’s going on.  The following trace snippet, showing an insert of 13 values into the Y_SHC_PLAN table, illustrates the problem:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;INSERT INTO PS_Y_SHC_PLAN (STRM,Y_PLAN_NUMBER,ACTIVE_FLAG,Y_PLAN_TYPE,AMT,Y_POLICY_CODE,Y_NUMBER_COVERED,MAR_STATUS,Y_UCA_SUBCODE,Y_MATCH_MARITAL,Y_REQ_DAY_ELIG,Y_REQ_ZERO_HRS,Y_AFC_MONTHS) VALUES (:1,:2,:3,:4,:5,:6,:7,:8,:9,:10,:11,:12,:13)&lt;br /&gt;Bind-1 type=2 length=4 value=2105&lt;br /&gt;Bind-2 type=2 length=3 value=001&lt;br /&gt;Bind-3 type=2 length=1 value=A&lt;br /&gt;Bind-4 type=2 length=1 value=D&lt;br /&gt;Bind-5 type=19 length=3 value=212&lt;br /&gt;Bind-6 type=2 length=14 value=SSA BYS LLINDD&lt;br /&gt;Bind-7 type=19 length=1 value=1&lt;br /&gt;Bind-8 type=2 length=1 value=S&lt;br /&gt;Bind-9 type=2 length=5 value=80025&lt;br /&gt;Bind-10 type=2 length=1 value=Y&lt;br /&gt;Bind-11 type=2 length=1 value=Y&lt;br /&gt;Bind-12 type=2 length=1 value=N&lt;br /&gt;Bind-13 type=2 length=1 value=0&lt;/blockquote&gt;The problem is that there are actually 15 columns in the table.  App Designer and the database both show the two “missing” columns to be EFFDT_FROM and EFFDT_TO, but neither column shows up in the insert statement.  To confuse matters more, the trace file shows that the insert failed because, at first glance, PeopleSoft doesn’t seem to know anything about the two missing but required columns.  The error in the trace file is&lt;br /&gt;&lt;blockquote&gt;Return:  1400 - ORA-01400: cannot insert NULL into ("SYSADM"."PS_Y_SHC_PLAN"."EFFDT_FROM")&lt;/blockquote&gt;In reality, though, PeopleSoft knew all about the columns, but it simply chose to ignore them (to leave them out of the insert statement)—it turns out—because their values were null.  Specifically, in the section of PeopleCode that tries to update or insert Y_SHC_PLAN records, a SELECT statement had attempted to populate the EFFDT_FROM and EFFDT_TO fields from values in the PS_TERM_TBL, but it had been unsuccessful, because the specified term did not exist in PS_TERM_TBL. &lt;br /&gt;&lt;br /&gt;We’ve now fixed the code to throw an error if a user specifies a term which does not exist in the PS_TERM_TBL.  And, after a bit of head scratching, we now know why PeopleSoft behaved the way it did by ignoring the null-valued columns.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-3038742254993151535?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/3038742254993151535/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=3038742254993151535' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/3038742254993151535'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/3038742254993151535'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2009/09/peoplesoft-trace-example-inserting-null.html' title='PeopleSoft Trace Example: Inserting NULL into Non-Nullable Columns'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-2860059927579680478</id><published>2009-05-07T11:37:00.000-06:00</published><updated>2009-05-07T11:37:16.604-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='App Designer'/><title type='text'>PeopleSoft App Designer:  You Don't Have to Search the Entire Database to Find that String in PeopleCode</title><content type='html'>For Spring/Summer Financial Aid awarding here at BYU, we have had a strange problem with some students not being able to accept or decline their awards, due to the fact that a hyperlink on the Accept/Decline page was not being enabled as we'd expected it to be.  Discouraged at this news, I prepared myself for a marathon search through the entire database to find out where the link behind DERIVED_FA_SS_1.AID_YEAR_LINK was being disabled.  At the same time I resigned myself to a fate of not being able to accomplish any of the tasks that I had hoped to check off my list today.&lt;br /&gt;&lt;br /&gt;But then I stumbled upon something really cool, by reason of which I need to apologize for the many times I've cursed App Designer under my breath.  It turns out that I was cursing only due to my ignorance.&lt;br /&gt;&lt;br /&gt;I have known about &lt;span style="font-style: italic;"&gt;Edit -&gt; Find Definition References&lt;/span&gt; on App Designer's menu for a long time, but what I didn't know is what I can do with list of definition references that App Designer finds for me.  Here's how to accomplish a day-long task in less than an hour (your mileage may vary):&lt;br /&gt;&lt;br /&gt;1.  Create a new, blank project.&lt;br /&gt;&lt;br /&gt;2.  Open the object (in my case I discovered by looking at the page that the field DERIVED_FA_SS_1.AID_YEAR_LINK was supplying the hyperlink) and Select &lt;span style="font-style: italic;"&gt;Edit -&gt; Find Definition References&lt;/span&gt; from the App Designer menu.&lt;br /&gt;&lt;br /&gt;3.  Click on the first definition reference in the resulting list.  Scroll to the bottom of the list and, while holding the Shift key down, click on the last definition reference in the list. (See Figure 1.  Click to enlarge.) &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ban8okDZpTk/SgMYRgVBm0I/AAAAAAAABG4/n1xHKA4kvew/s1600-h/FindDefRefs-InsertIntoProject.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 416px; height: 305px;" src="http://1.bp.blogspot.com/_Ban8okDZpTk/SgMYRgVBm0I/AAAAAAAABG4/n1xHKA4kvew/s320/FindDefRefs-InsertIntoProject.JPG" alt="" id="BLOGGER_PHOTO_ID_5333133072751762242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. Right-click on the highlighted list and select "Insert into Project..." from the pop-up menu.  Save your project.&lt;br /&gt;&lt;br /&gt;5.  Now that you have in one project every object in which your target object is referenced, you can much more quickly find what you want to know about that object.  In my case I wanted to know where its  "enabled" property was being set.&lt;br /&gt;&lt;br /&gt;6.  I named my  temporary project "MY_TEMP_PROJECT". I selected &lt;span style="font-style: italic;"&gt;Edit - Find In...&lt;/span&gt; from the App Designer menu.  I specified &lt;span style="font-weight: bold;"&gt;enabled&lt;/span&gt; in the "Find What:" box, and &lt;span style="font-weight: bold;"&gt;MY_TEMP_PROJECT&lt;/span&gt; in the "Project:" box.&lt;br /&gt;&lt;br /&gt;I still had to do some searching, but the effect of my approach was to reduce the code to be searched from the size of a haystack to the size of one fistful of hay. &lt;br /&gt;&lt;br /&gt;It wasn't much longer until I was able to find exactly where (and, from a technical perspective, why) the hyperlink was being disabled.&lt;br /&gt;&lt;br /&gt;I don't claim to be a PeopleSoft Financial Aid expert, so I have now turned over my findings to the people here at BYU who are.  And now, I still might be able to finish a few things off my original to-do list for today!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-2860059927579680478?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/2860059927579680478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=2860059927579680478' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/2860059927579680478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/2860059927579680478'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2009/05/peoplesoft-app-designer-you-dont-have.html' title='PeopleSoft App Designer:  You &lt;i&gt;Don&apos;t&lt;/i&gt; Have to Search the Entire Database to Find that String in PeopleCode'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ban8okDZpTk/SgMYRgVBm0I/AAAAAAAABG4/n1xHKA4kvew/s72-c/FindDefRefs-InsertIntoProject.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-6311519300178651364</id><published>2009-03-03T12:35:00.000-07:00</published><updated>2009-03-03T12:35:52.843-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Virus Attacks'/><title type='text'>How We Conquered Trojan.Vundo, Downloader, AntiVirus2009, and Trojan.Metajuan, and ddvngs.dll—All in One Night</title><content type='html'>It all started on Valentine’s day.  I don’t know which virus we got, but that’s when the wicked pop-up windows started happening.  Before it was all done, we came within a hair’s breadth of reformatting the hard drive on the computer.  In a last-gasp effort, we emerged victorious over the Trojan.Vundo, Downloader, AntiVirus2009, and Trojan.Metajuan viruses.  There may have been something else, but that was all that Symantec End-Point Projection could find.  It took surgical warfare in the trenches of c:\windows\system32 before we were able to dispatch the enemy once and for all.&lt;br /&gt;&lt;br /&gt;Initially we suspected that Google Toolbar had been infected.  So we uninstalled the Firefox web browser.  When, thereafter, the pop-ups continued, we suspected that Internet Explorer was the culprit.  This seemed to be confirmed when WeatherBug, which uses the IE Engine, was accompanied by the vile pop-ups.  I uninstalled Weatherbug, because it’s a virus of sorts itself (I hate how it tells itself to load on startup if you EVER start the program manually.)&lt;br /&gt;&lt;br /&gt;We began to get a better understanding of the real culprit when we attempted to uninstall Internet Explorer.  An attempt to delete the entire Internet Explorer directory was fruitless, as Windows reported that it was in use.  We were able to delete iexplore.exe, however—except that five seconds later it was back.&lt;br /&gt;&lt;br /&gt;At that point, my son and I put on our deep-sea SCUBA gear and plunged to the supposedly safe depths of Windows Safe mode.  It wasn’t entirely safe.  We were able to delete Internet Explorer .  For good measure we deleted the entire directory.  We’re using Firefox and Opera now, thank you.  ;-)  We found every other instance of iexplore.exe on the hard drive and deleted it as well.  Then we emptied the recycle bin.&lt;br /&gt;&lt;br /&gt;It helps when you’ve been attacked by Vundo-Downloader-AV09-Metajuan to have another computer to compare to.  A very helpful clue was that we noticed that rundll32.exe showed up in the process list of the infected computer, but not in the list of the non-infected computer.  Whenever we would end the rundll32.exe process, it would pop right back in the process list.  With some help of notes from the Symantec web site, we ran msconfig.exe and found a strange looking process that was in the list.  It used rundll32.exe to invoke (in our case) a DLL called tehutaah. We disabled that line in the startup, but when we would restart the computer it would come right back.  This was one of the issues that was (sort of) fixed in safe mode (but not completely—read on).&lt;br /&gt;&lt;br /&gt;It occurred to me after we encountered tehutaah to look in c:/windows/system32 for further activity.  This is where we hit paydirt, except it still took about 2 hours to clean everything up.  We sorted all files in c:\windows\system32 by descending date, using file explorer.  Several DLL and INI files had been recently created.  The other advantage is that, because a spawner dll program was creating new ones of these almost as fast as Symantec got rid of them, the filenames were easily noticeable, because they were random jumbles of upper- and lower-case letters (and occasionally numbers, I think, but I don’t remember for sure).  One by one, I determined whether any of those files existed on the non-infected computer (hardly any of them did).  If they didn’t exist on the non-infected computer, my son deleted them on the infected computer.  It came down to 2 DLLs and 2 INI files that could not be deleted—even in safe mode—because somehow the DLLs were in use by windows.   (I think my next computer will be a Macintosh.)  The culprit files, in our case, were called:&lt;br /&gt;&lt;br /&gt;·    EfcYOHXn.dll&lt;br /&gt;·    nxHOYCFe.ini&lt;br /&gt;·    nxHOYCFe.ini2&lt;br /&gt;·    ddvngs.dll&lt;br /&gt;&lt;br /&gt;We first did a search in the registry for ddvngs.dll.  While we found the following on the non-infected computer (AppInit_DLLs value is blank):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ban8okDZpTk/Sa2GNtwHdnI/AAAAAAAABDI/c58HCfzZBTc/s1600-h/RegEdit-ddvngs.dll"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 272px;" src="http://1.bp.blogspot.com/_Ban8okDZpTk/Sa2GNtwHdnI/AAAAAAAABDI/c58HCfzZBTc/s320/RegEdit-ddvngs.dll" alt="" id="BLOGGER_PHOTO_ID_5309047105917515378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;we discovered that on the infected computer, the AppInit_DLLs value was set to ddvngs.dll , which was one of the files that we couldn’t delete from c:\windows\system32.  We changed the value of  AppInit_DLLs on the infected computer to blank (as illustrated above) and restarted the computer in safe mode, at which time we were able to get rid of ddvngs.dll.&lt;br /&gt;&lt;br /&gt;But we still had EfcYOHXn.dll and nxHOYCFe.ini &amp;amp; .ini2 to deal with.  (Notice that the base name of the ini and ini2 files is the base name of the dll file spelled backwards).&lt;br /&gt;&lt;br /&gt;I right clicked on the DLL file and performed a Virus scan, and it came up clean.  I right clicked on the DLL file and performed an Ad Aware Scan, and it came up clean again.&lt;br /&gt;&lt;br /&gt;We couldn’t delete EfcYOHXn.dll, even in safe mode.  But I could delete the ini and ini2 files.  Just like the iexplore.exe file discussed earlier, however, both files were regenerated within a few seconds.&lt;br /&gt;&lt;br /&gt;Not being able to delete the EfcYOHXn.dll I was able to rename it somehow.  Before restarting the computer again in safe mode, we did a search in th registry for EfcYOHXn and found that instead of how it looked on the non-infected computer (Application Packages value is “mxv1_0”):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ban8okDZpTk/Sa2GcQ_ecuI/AAAAAAAABDQ/lNXwyqMt0lk/s1600-h/RegEdit-ApplicationPackages.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 272px;" src="http://3.bp.blogspot.com/_Ban8okDZpTk/Sa2GcQ_ecuI/AAAAAAAABDQ/lNXwyqMt0lk/s320/RegEdit-ApplicationPackages.JPG" alt="" id="BLOGGER_PHOTO_ID_5309047355895345890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;the value of the “Authentication Packages” token had two values—not just “msv1_0”, but also  “c:\windows\system32\efcYOHXn”.  We found and cleared this extra Authentication Packages value out of several ControlSet registry entries.&lt;br /&gt;&lt;br /&gt;Then we restarted in safe mode.  Then we were able to delete the dll file.  Then we were able to delete the ini files, and they never came back.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-6311519300178651364?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/6311519300178651364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=6311519300178651364' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6311519300178651364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6311519300178651364'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2009/03/how-we-conquered-trojanvundo-downloader.html' title='How We Conquered Trojan.Vundo, Downloader, AntiVirus2009, and Trojan.Metajuan, and ddvngs.dll—All in One Night'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ban8okDZpTk/Sa2GNtwHdnI/AAAAAAAABDI/c58HCfzZBTc/s72-c/RegEdit-ddvngs.dll' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-6209183453385918602</id><published>2008-11-07T12:58:00.002-07:00</published><updated>2008-11-07T13:14:09.313-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Futuristic Technology'/><title type='text'>CNN Uses Hologram People on Election Night 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://img.iht.com/images/2008/11/06/06hologram550.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 300px; height: 174px;" src="http://img.iht.com/images/2008/11/06/06hologram550.jpg" alt="" border="0" /&gt;&lt;/a&gt;This is absolutely amazing.  I know it's not the real thing like from Star Wars or something, but the fact that CNN used hologram people in its election night coverage is very cool.&lt;br /&gt;&lt;br /&gt;For more info, &lt;a href="http://www.iht.com/articles/2008/11/06/business/hologram.php"&gt;click here&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;It was already being parodied Wednesday in an online mash-up, substituting CNN correspondent Jessica Yellin's voice with Princess Leia of "Star Wars."&lt;/p&gt;  &lt;p&gt;Yellin stepped into a booth set up in a tent at Grant Park in Chicago, surrounded by 25 high-definition cameras that duplicated her moving image in much the same way as a flight simulator would.&lt;/p&gt;  &lt;p&gt;On screen, it appeared she was standing and talking to Wolf Blitzer on CNN's New York set, an eerie white halo around her.&lt;/p&gt;&lt;p&gt;...it certainly did not appear to be a distraction, as CNN's audience Tuesday was nearly double what it was for Election Night in 2004.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-6209183453385918602?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/6209183453385918602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=6209183453385918602' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6209183453385918602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6209183453385918602'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2008/11/cnn-uses-hologram-people-on-election.html' title='CNN Uses Hologram People on Election Night 2008'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-1175499241139801867</id><published>2008-09-19T10:07:00.003-06:00</published><updated>2008-09-19T10:12:46.709-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming Languages'/><title type='text'>COBOL Survives Every Claim that it Will Fail</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.migrationware.com/UploadedImages/power_of_cobol_coverth.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 231px; height: 281px;" src="http://www.migrationware.com/UploadedImages/power_of_cobol_coverth.jpg" alt="" border="0" /&gt;&lt;/a&gt;Nobody is programming in COBOL these days, right?  Wrong.  It is one of the most mature languages out there, and while Pascal and others fall by the wayside, COBOL is still mainstream in many development shops.&lt;br /&gt;&lt;br /&gt;PeopleSoft talked about moving to Fusion, which at the time sounded like a move away from COBOL.  They now talk about Applications Unlimited, a healthy realization that one cannot simply snap one's fingers and completely rework an application development environment.  PeopleSoft still delivers tens of thousands of lines of COBOL programs.&lt;br /&gt;&lt;br /&gt;As &lt;a href="http://ddj.com/development-tools/210602491;jsessionid=HIUAFOE2V332GQSNDLPSKH0CJUNN2JVN"&gt;this article says&lt;/a&gt;, COBOL is about as sexy as a rock, but it still works very well for what it does.  I'm glad they still taught COBOL when I was in college.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-1175499241139801867?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/1175499241139801867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=1175499241139801867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/1175499241139801867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/1175499241139801867'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2008/09/cobol-survives-every-claim-that-it-will.html' title='COBOL Survives Every Claim that it Will Fail'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-732389722001476203</id><published>2008-04-25T15:53:00.008-06:00</published><updated>2008-04-30T09:48:00.814-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peoplesoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Application Engine'/><title type='text'>PeopleSoft: Which Project is My App Engine In?</title><content type='html'>One of my favorite "tools" in PeopleSoft App Designer is &lt;span style="font-style: italic;"&gt;Edit -&gt; Find Definition References&lt;/span&gt;.  If I'm not sure, for example, whether a page I'm working on has been included in the appropriate  project, Find Definition References will help me quickly find out whether it is or not.&lt;br /&gt;&lt;br /&gt;That doesn't work so well when I want to find which project an Application Engine program is in.&lt;br /&gt;&lt;br /&gt;When I select &lt;span style="font-style: italic;"&gt;Edit -&gt; Find Definition References&lt;/span&gt; for an App Engine, I see something like the following.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_Ban8okDZpTk/SBJUeUJcRlI/AAAAAAAAAnQ/LSlhXt--m2g/s1600-h/PSoft-AppEngineFDR.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_Ban8okDZpTk/SBJUeUJcRlI/AAAAAAAAAnQ/LSlhXt--m2g/s320/PSoft-AppEngineFDR.JPG" alt="" id="BLOGGER_PHOTO_ID_5193306200092722770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Well, I pretty much already knew that!&lt;br /&gt;&lt;br /&gt;There &lt;span style="font-style: italic;"&gt;is &lt;/span&gt;a way that I can find which project an App Engine is included in, but it requires a database query.  I can use a query similar to the following:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt; select * from sysadm.psprojectitem&lt;br /&gt;where objectvalue1 = 'MY_APP_ENGINE';&lt;/span&gt;&lt;/blockquote&gt;Using the above query, if your App Engine is included in any projects, the value in the OBJECTVALUE1 column will be your App Engine name.  App Engine objects have the following object types:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;33 - App Engine Program&lt;/li&gt;&lt;li&gt;34 - App Engine Section&lt;/li&gt;&lt;li&gt;43 - App Engine Step&lt;/li&gt;&lt;/ul&gt;Occasionally, references to App Engines are stored differently in PSPROJECTITEM (if anyone knows why, please clue me in!).  If the above query doesn't work, use a query similar to the following:&lt;br /&gt;&lt;blockquote  style="font-family:courier new;"&gt;&lt;span style="font-size:78%;"&gt; select * from sysadm.psprojectitem&lt;br /&gt;where objectvalue1 = 'Application Engine'&lt;br /&gt;and OBJECTVALUE2 = 'MY_APP_ENGINE';&lt;/span&gt;&lt;/blockquote&gt;Using this query, if your App Engine is included in any projects, the value in the OBJECTVALUE2 column will be your App Engine name.&lt;br /&gt;&lt;br /&gt;With one of those two queries, you should be able to find whether your App Engine is included in the appropriate project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-732389722001476203?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/732389722001476203/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=732389722001476203' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/732389722001476203'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/732389722001476203'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2008/04/peoplesoft-which-project-is-my-app.html' title='PeopleSoft: Which Project is My App Engine In?'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_Ban8okDZpTk/SBJUeUJcRlI/AAAAAAAAAnQ/LSlhXt--m2g/s72-c/PSoft-AppEngineFDR.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-1220905873328358979</id><published>2007-11-08T10:22:00.000-07:00</published><updated>2007-11-08T10:34:01.240-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peoplesoft'/><category scheme='http://www.blogger.com/atom/ns#' term='PSoft Customizations'/><title type='text'>PSDBOWNER and Why I Can't Login to my New Database</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.crmbuyer.com/images/rw5426/peoplesoft-crm-8.9.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px;" src="http://www.crmbuyer.com/images/rw5426/peoplesoft-crm-8.9.jpg" alt="" border="0" /&gt;&lt;/a&gt;We copied our upgrade database to our development backup database this morning.  I had to apply about 13 bundles to the upgrade database to get it current on maintenance.&lt;br /&gt;&lt;br /&gt;The next step is to copy the customizations from our dev database into our dev backup database.  But this morning after the dev backup database was created, I couldn't login to it using App Designer, even though I could login using the same userid and password to the upgrade database (from which dev backup was a copy).&lt;br /&gt;&lt;br /&gt;Does anyone know where this is going?  Well, I'm sort of new to PeopleSoft, so I was bordering on the verge of panic, but I found someone else on our staff who has been doing PeopleSoft for a long time.&lt;br /&gt;&lt;br /&gt;He said, "Did you update the DBOWNER table?"&lt;br /&gt;&lt;br /&gt;And that's all it was.  The PS.PSDBOWNER.DBNAME still had the name of the upgrade database in it.  Once I updated that, I was able to login and do a compare between the dev and dev backup databases.&lt;br /&gt;&lt;br /&gt;To perform a full database compare&lt;br /&gt;&lt;ol&gt;&lt;li&gt;In App Designer, select Tools-&gt;Compare and Report-&gt;To Database&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Specify the database in the login dialog and wait for all the permission lists, etc. to load.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When the Compare and Report Dialog comes up, click the Options button.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When the Upgrade Options dialog comes up, click on the Compare Options tab.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;In the Compare Type area of the Compare Options tab, click the Database radio button.&lt;/li&gt;&lt;/ol&gt;A full database compare takes a long time.&lt;br /&gt;&lt;br /&gt;Now I'm just waiting for my compare report to run...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-1220905873328358979?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/1220905873328358979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=1220905873328358979' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/1220905873328358979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/1220905873328358979'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2007/11/psdbowner-and-why-i-cant-login-to-my.html' title='PSDBOWNER and Why I Can&apos;t Login to my New Database'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-8727634418791069944</id><published>2007-04-23T12:25:00.000-06:00</published><updated>2007-04-23T12:40:02.414-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peoplesoft Navigation'/><title type='text'>Where is My Menu Item?</title><content type='html'>When you're learning about a PeopleSoft page, and especially if you are providing backup support for a customized pages, it is not very intuitive how to actually navigate to that page.&lt;br /&gt;&lt;br /&gt;It's pretty easy, using App Designer, to figure out which menu a page is located on.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bring up the page in App Designer.&lt;/li&gt;&lt;li&gt;Click Edit -&gt; Find Definition References on the menu to find out which component it belongs to.&lt;/li&gt;&lt;li&gt;Bring up the component in App Designer&lt;/li&gt;&lt;li&gt;Click Edit -&gt; Find Definition References to find out which menu it belongs to.&lt;/li&gt;&lt;/ol&gt;But if you're trying to find out how to navigate to that page, you've hit a dead end.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Ban8okDZpTk/Riz9D-hrlqI/AAAAAAAAAfo/im9NIz8OZCI/s1600-h/MenuItemDetail.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_Ban8okDZpTk/Riz9D-hrlqI/AAAAAAAAAfo/im9NIz8OZCI/s200/MenuItemDetail.JPG" alt="" id="BLOGGER_PHOTO_ID_5056694726395926178" border="0" /&gt;&lt;/a&gt;However, once you know what the component name is, navigate to &lt;span style="font-weight: bold; font-style: italic;"&gt;PeopleTools -&gt; Portal -&gt; View Menu Item Detail&lt;/span&gt;.  Type in the name of the component as the "Portal Object Name" to find out not only how to navigate to it (Menu Path), but what permissions are required to access it, and who actually has access to it.&lt;br /&gt;&lt;br /&gt;That was easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-8727634418791069944?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/8727634418791069944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=8727634418791069944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/8727634418791069944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/8727634418791069944'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2007/04/where-is-my-menu-item.html' title='Where is My Menu Item?'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Ban8okDZpTk/Riz9D-hrlqI/AAAAAAAAAfo/im9NIz8OZCI/s72-c/MenuItemDetail.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-6992184796570179245</id><published>2007-04-19T12:40:00.000-06:00</published><updated>2007-04-23T12:48:08.624-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Wireless'/><title type='text'>Free Wireless in Red Rock Country</title><content type='html'>We just arrived in gorgeous Moab, Utah.  Tomorrow we're heading over to Mesa Verde National Park near Cortez, Colorado, and then Saturday, we'll take in Arches NP just outside the north end of Moab.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_Ban8okDZpTk/Riz_IehrlrI/AAAAAAAAAfw/UuG0kp_ueyA/s1600-h/MoabSlickRock.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: right; cursor: pointer;" src="http://3.bp.blogspot.com/_Ban8okDZpTk/Riz_IehrlrI/AAAAAAAAAfw/UuG0kp_ueyA/s200/MoabSlickRock.jpg" alt="" id="BLOGGER_PHOTO_ID_5056697002728593074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I was excited to find that our hotel has high-speed wireless internet access.  What I was surprised to find out was that it has no security.&lt;br /&gt;&lt;br /&gt;So if you happen to be in Moab and need to check your e-mail, pull your car into the parking lot of the Moab Valley Inn, and as long as you have a wireless card, you're "in like Flynn"!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-6992184796570179245?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/6992184796570179245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=6992184796570179245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6992184796570179245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/6992184796570179245'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2007/04/free-wireless-in-red-rock-country.html' title='Free Wireless in Red Rock Country'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Ban8okDZpTk/Riz_IehrlrI/AAAAAAAAAfw/UuG0kp_ueyA/s72-c/MoabSlickRock.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4790765004228445565.post-2801137682682755816</id><published>2007-04-19T08:05:00.000-06:00</published><updated>2007-04-23T12:25:09.702-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peoplesoft'/><category scheme='http://www.blogger.com/atom/ns#' term='PSoft Customizations'/><title type='text'>Peoplesoft Financial Aid: BYU Institutional Application</title><content type='html'>For about the past 4 months I've been working on BYU customizations to the PeopleSoft-delivered financial aid module.  Most of the time has been spent on what we call the Institutional Application.  I'm not sure why Peoplesoft doesn't already have something like this!&lt;br /&gt;&lt;br /&gt;Students will be able to apply online for various forms of Financial Aid.  The Institutional App displays different options based on whether the student is an undergraduate, law student, etc.  Based on the various options the student selects on the page, various To-Do List items are created.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_Ban8okDZpTk/RiePb-hrloI/AAAAAAAAAfY/_Dc1DkNN1jY/s1600-h/InstApp.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://4.bp.blogspot.com/_Ban8okDZpTk/RiePb-hrloI/AAAAAAAAAfY/_Dc1DkNN1jY/s200/InstApp.JPG" alt="" id="BLOGGER_PHOTO_ID_5055166817550177922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Many To-Do list items contain a message that says something like 'Please take a copy of your 2006 Federal tax forms to the Financial Aid Office.'  However, in certain cases, the information can be provided online; therefore, some of the To-Do list items are custom pages as well.  A custom cross-reference table identifies the custom pages and, with the help of about 10 lines of code, which checklist item codes will transfer to the appropriate custom page.  Some of the information a student can provide online include other schools attended, other sources of financial aid, or whether the student served an LDS mission.&lt;br /&gt;&lt;br /&gt;The greatest complication to the Institutional Application is the fact that a student can make an additional request for financial aid if any of the loans or grants for his or her initial request has already been originated.&lt;br /&gt;&lt;br /&gt;I spent most of the day working on this functionality, and I think it's ready to go--but what do I know?  We'll see what the users think.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4790765004228445565-2801137682682755816?l=technoeureka.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technoeureka.blogspot.com/feeds/2801137682682755816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4790765004228445565&amp;postID=2801137682682755816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/2801137682682755816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4790765004228445565/posts/default/2801137682682755816'/><link rel='alternate' type='text/html' href='http://technoeureka.blogspot.com/2007/04/peoplesoft-financial-aid-byu.html' title='Peoplesoft Financial Aid: BYU Institutional Application'/><author><name>Frank Staheli</name><uri>https://profiles.google.com/111583158670343472603</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-fEg1Jk9m8sQ/AAAAAAAAAAI/AAAAAAAAAAA/Ihvt7emdZLY/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Ban8okDZpTk/RiePb-hrloI/AAAAAAAAAfY/_Dc1DkNN1jY/s72-c/InstApp.JPG' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
