tag:blogger.com,1999:blog-21315090191473850782024-02-19T07:31:31.266-08:00PeopleSoft JournalTonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.comBlogger105125tag:blogger.com,1999:blog-2131509019147385078.post-78972473414293232702021-04-09T02:11:00.001-07:002021-04-09T02:11:27.263-07:00People Tools 8.59 Highlights<p>Watch the video highlights published by Oracle for People Tools 8.59 release. PeopleSoft goes more modern than ever. Great features and improvements.</p><p><br /></p>
<blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/cwfERQNoWUo" title="YouTube video player" width="560"></iframe></blockquote>Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0Kochi, Kerala, India9.9312328 76.26730409999999-18.379001036178845 41.11105409999999 38.241466636178842 111.42355409999999tag:blogger.com,1999:blog-2131509019147385078.post-48464336433715279142018-09-25T05:40:00.003-07:002018-09-25T08:33:18.550-07:00PeopleSoft PeopleTools 8.57 Available – More Fluid Capabilities<b><span style="font-size: x-large;">P</span></b>eople Tools 8.57 is now available with lot many new capabilities. I would like to highlight some of the features that excites me. For the full list of features, I would recommend you to read Oracle’s official documentation on People Tools. You can also view the Youtube 8.57 Highlights video posted by Oracle to get a quick idea on 8.57. The Tools 8.57 is first released in the PeopleSoft Cloud Manager.<br />
<div class="MsoNormal"><o:p></o:p></div><div class="MsoNormal"><br />
</div><br />
<iframe width="550" height="315" src="https://www.youtube.com/embed/Z9pJI5nInJ8" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe><br />
<br />
<div class="MsoListParagraphCxSpFirst" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">1.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Thresholds</b> – Thresholds allows users to get notifications if certain criteria is met. Say for example if the total expense of a department exceeds a pre-defined limit, you will get a notification alerting the same. The beauty of thresholds is that it can be configured online using the pivot grids. It will also show a visual representation. Notifications are sent via push notifications or emails and can be scheduled based on desired frequency.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">2.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]--><span style="mso-spacerun: yes;"> </span>Drop Zones</b> – This is another exciting feature which allows you to introduce custom fields or other form elements to the delivered PeopleSoft application pages without having to make the page customized. The drop zones are managed via stub sub-pages delivered by the PeopleSoft. You could create your own sub-pages with the desired content on it and this subpage could replace the PeopleSoft delivered stub sub-pages at run time making it possible to show your content on PeopleSoft delivered pages without having to customize the page. Currently you could place the content only on the pages for which Oracle delivers stub sub-pages.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">3.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Multi-select facets for search</b> – This is a greatly beneficial feature if you use People Tools Search framework extensively to find data.<span style="mso-spacerun: yes;"> </span>The multi select feature will help you to filter and find the desired results quickly by selecting multiple facets. This will provide an experience similar to most modern web pages.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">4.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Fluid Grid Enhancements</b> – You can now download data from grid into excel sheets, can have custom sorting applied which can be saved to persist and have a better grid search functionality.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">5.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Popup Menu in Fluid</b> – You can now have popup menus in fluid for any actions or navigational needs.<o:p></o:p><br />
<br />
</div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">6.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Fluid Page Preview</b> – If you are a fluid developer, this may be of something that could interest you. Application designer now provide a preview option for fluid pages that allows you to verify that all your layouts works as expected.<o:p></o:p></div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpMiddle"><br />
</div><div class="MsoListParagraphCxSpLast" style="mso-list: l1 level1 lfo1; text-indent: -.25in;"><!--[if !supportLists]--><b><span style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin;"><span style="mso-list: Ignore;">7.<span style="font-family: "times new roman"; font-size: 7pt; font-stretch: normal; font-style: normal; font-variant: normal; line-height: normal;"> </span></span></span><!--[endif]-->Dynamic Page Field Masking</b> – If you have requirement to mask data based on the user role or profile dynamically, this may of something that interests you. People Tools 8.57 provides you a new method to dynamically mask the field value in the specified format.<o:p></o:p></div><div class="MsoNormal"><br />
</div><div class="MsoNormal"><b>Some Useful Links:</b><o:p></o:p><br />
<b><br />
</b></div><div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";"> </span></span></span><!--[endif]--><a href="https://blogs.oracle.com/peopletools/peopletools-857-is-available-on-the-oracle-cloud">Oracle Blog</a><o:p></o:p></div><div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";"> </span></span></span><!--[endif]--><a href="https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=120435853336815&id=2433119.2&_afrWindowMode=0&_adf.ctrl-state=154sh9kn4l_85">PeopleTools 8.57 Home Page</a><o:p></o:p></div><div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo2; text-indent: -.25in;"><!--[if !supportLists]--><span style="font-family: "symbol"; mso-bidi-font-family: Symbol; mso-fareast-font-family: Symbol;"><span style="mso-list: Ignore;">·<span style="font: 7.0pt "Times New Roman";"> </span></span></span><!--[endif]--><a href="https://docs.oracle.com/cd/E99483_01/pt857pbr1/eng/pt/index.html">PeopleBooks</a><o:p></o:p></div><div class="MsoNormal"><br />
</div><br />
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1Thiruvananthapuram, Kerala, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-53715719636938269002017-10-13T09:07:00.000-07:002017-10-13T09:08:56.275-07:00PeopleSoft Page and Field Configurator<div class="MsoNormal">
<span style="text-align: justify;"><b><span style="font-size: x-large;">T</span></b>his is a new tool delivered by PeopleSoft available currently in FSCM and HCM products. This cool new tool allows you to eliminate customization of the delivered application pages for minor changes such as field label change or making a field invisible and so on.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Yes, you have read that right. <span style="font-family: "wingdings"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span> The Page and Field Configurator allows you to customize the PeopleSoft pages without having modify the delivered code or metadata and hence these changes won’t be flagged as a customization. This further benefits you in up taking any patch/features from the PeopleSoft PUM images as you would not have to go through the customization impact analysis/testing/retrofitting etc and it tremendously reduces your time and cost associated with these processes. <o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The way this feature works is via configurations. You can define the Page or Page Field custom changes as configurations in the PIA and the same will take effect immediately when you activate the configurations. The Page and Field Utility currently allows the following Page/ Page Field modifications:<br />
<br />
<div class="MsoNormal" style="margin-left: 0.25in;">
</div>
<ul>
<li>Changing Label of Page Fields</li>
<li>Hiding Page Fields</li>
<li>Graying out Page Fields</li>
<li>Setting a field as a Required Field</li>
<li>Setting default Values to fields</li>
<li>Hiding/Un-hiding entire page in a component</li>
<li>Making entire page in a component as display only</li>
</ul>
<div class="MsoNormal" style="margin-left: 0.25in;">
<br /></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
The utility also allows you to define multiple configurations for a component via criteria. i.e. for each criteria you define for the component you can associate a different custom changes. For example if the Status of a particular field is ‘Pending’ you may want to hide certain fields and when the status changes to ‘Active’ you may want to display those fields but grayed out. It also provides the capability to assign these configurations selectively for each user/role as you define based on the business needs.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
To get more idea on the feature you can watch the below video published by Oracle.<o:p></o:p><br />
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/sJBeqK8gJ0A" width="550"></iframe><br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
The feature is released on HCM Image# 24 and FSCM Image# 25. To use this feature you would need a minimum People Tools version of 8.55.15.<o:p></o:p></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1tag:blogger.com,1999:blog-2131509019147385078.post-42343897105750005022017-06-12T07:51:00.000-07:002017-06-13T20:03:59.892-07:00People Tools 8.56 – New Capabilities<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-size: large;">O</span></b>racle has released the latest version of the application development tool for the PeopleSoft applications – People Tools 8.56. The latest version offers many new features and capabilities aimed at enhanced user experience, search capabilities, developer productivity etc.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
In this post I am listing some of the key features available with the People Tools version 8.56. Readers are advised to contact the Oracle Support or Oracle websites (some of which are listed below) to get more detailed and authentic information on all the new capabilities offered by the latest version.<br />
<br /></div>
<div class="MsoNormal" style="margin-left: 1.0in; text-align: justify;">
<a href="https://blogs.oracle.com/peopletools/peopletools-856-is-now-available">Oracle Blog on People Tools 8.56</a></div>
<div class="MsoNormal" style="margin-left: 1.0in; text-align: justify;">
<a href="http://docs.oracle.com/cd/E87544_01/pt856pbr1/eng/pt/index.html">People Books</a></div>
<div class="MsoNormal" style="margin-left: 1.0in; text-align: justify;">
<a href="https://docs.oracle.com/cd/E52319_01/infoportal/pt.html">PeopleSoft Info Portal</a></div>
<div class="MsoNormal" style="margin-left: 1.0in; text-align: justify;">
<a href="https://apexapps.oracle.com/pls/apex/f?p=10319:5:0">Cumilative Feature Overview</a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Classic Plus Styling -</b> I would say this is one of the best functionality you would get with the newer tools release. You would get to convert all your existing classic components to match the fluid pages styling within just about 5 minutes of time. So whenever a user navigates from fluid component to classic or vice versa, it will be a seamless process. One major thing you have to note here is that the style only matches the look and feel and does not come with the responsive or fluid UX features.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Fluid Enhancement –</b> There are couple of enhancements to fluid functionality. The major one includes the support of dashboard configuration in small form factor design.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Elastic Search – </b>This is another major enhancement that is coming up with People Tools 8.56. The search technology is now replaced with better tool, Elastic Search. There are lot many performance enhancements in the search technology. It also allows clustering of indexes.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Event Mapping –</b> Event mapping was one of the great technology change introduced in People Tools release 8.55. With release of 8.56, it is enhanced to be more powerful with support to Page Level events, Field Change event etc. Also now the framework supports tagging multiple custom codes to same people code event. The framework also gives the flexibility to find definition references similar to the People Code definition search.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Oracle Documents Cloud support – </b>This is another glad news for all who love cloud applications. The PeopleSoft attachments functionality now allows the users to load attachments or documents from Oracle Document Cloud Service.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Role and Permission List Alias –</b> This is something you could consider if your organization has specific roles and have to customize the people code wherever the role name is hard coded. Now with Tools 8.56, you would be able to give alias to the delivered Roles and give it your name without having to go into app designer to customize where ever the role name is referenced. People tools will do the role name conversion automatically on the fly.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Sensitive Field Masking –</b> Another feature is a new page field property which allows you to mask the content of the sensitive fields such as SSN, Password etc. The field value will be available for all other normal processing and this property enables the data being masked when displayed to the user.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>BI Publisher enhancements –</b> BI Publisher is enhanced to apply personalization of regional settings, IANA time zone and Unicode characters for external file names.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>PUM –</b> There are many enhancements to the PeopleSoft Update Manager which helps to pick and apply the correct bug fix or feature. There are many new analytics such as Enhancement by Image, Enhancement by Product etc to help you choose the right fix. It is now easy to take actions such as adding a fix to change Package etc from the analytics.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>PTF – </b>The PeopleSoft Test Framework (PTF) is updated to make you run the test based on the result set of a query execution which could boost the productivity of your QA team. The PTF now also support testing on Charts. PTF also introduces drag and drop actions for certain steps.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>ADS – </b>Application Data Sets (ADS) which is used migrate your system data from one environment to another, as well as for certain configuration such as Related Content etc is now enhanced with an Application Designer like compare option, making it easy for you to spot on the change.</div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/UHwQzRHRMwA" width="550"></iframe><br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1tag:blogger.com,1999:blog-2131509019147385078.post-19085561083513784432016-10-30T11:36:00.005-07:002016-10-30T11:39:17.591-07:00Three Simple Tips for Fluid Beginners<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-size: large;">I</span></b>n this post I would like to
share three “easy to implement” tips that will prove helpful in PeopleSoft Fluid
applications development. I have selected the topics such a way that the
development of each item discussed below could be completed within five minutes
of time with proper knowledge, which otherwise would take a lot of time to be
spent on css, pagelayouts, code debugging etc.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><u>Tab Selection<o:p></o:p></u></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The first topic I would like to
explain is how you would be able to build tab selection buttons or button sets
very easily in PeopleSoft fluid application similar to the one shown in the
below picture. </div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2LxNaNg1m5lLoDaTGPkTBQD6CPKEjf3ExL0HAwfqYYI8Yo8cdkv4xMLI03JE340UiOg4NEzKooQVQtjn8s0_Oil8a-AdgrrOLDS6vpnHCUbqyM4wjvjxI2BHKmHxC9YSxjzqWoasMLCo/s1600/ThreeTips_TabSelection.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Peoplesoft tab selection" border="0" height="88" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2LxNaNg1m5lLoDaTGPkTBQD6CPKEjf3ExL0HAwfqYYI8Yo8cdkv4xMLI03JE340UiOg4NEzKooQVQtjn8s0_Oil8a-AdgrrOLDS6vpnHCUbqyM4wjvjxI2BHKmHxC9YSxjzqWoasMLCo/s400/ThreeTips_TabSelection.png" title="Peoplesoft tab selection" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_3" o:spid="_x0000_i1030" type="#_x0000_t75"
style='width:468pt;height:104.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
You will be surprised to know how
easy it is to create such tabs for your applications as well. The steps you
have to follow will be as below.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 1: </b>Create a field with translate values. Each translate value
will be one of the selection option in the tabs.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigblqXDszlRz4komebwptwp-cueiF-jtTNnBOOc3PC2LArDBxWXJn4sCHUdzE7IsPDyRNxIja-VgSQdS-OUuDtf0jql8R4wP3e2slkdOfoZTD2M9IwaXezEf_7iUYrlCv-U5fkyBcAfss/s1600/ThreeTips_TranslateValues.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="92" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigblqXDszlRz4komebwptwp-cueiF-jtTNnBOOc3PC2LArDBxWXJn4sCHUdzE7IsPDyRNxIja-VgSQdS-OUuDtf0jql8R4wP3e2slkdOfoZTD2M9IwaXezEf_7iUYrlCv-U5fkyBcAfss/s320/ThreeTips_TranslateValues.png" width="320" /></a></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_1" o:spid="_x0000_i1029" type="#_x0000_t75" style='width:468pt;
height:134.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 2: </b>Create radio buttons for each translate value on the page
you intent to show the tabs and wrap all the radio buttons within a group box
of type “layout only”. Provide the style class “ps_button_bar” to the group
box.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpx1N_1qzo1TFxSURG8zHl1U3tzLMXOPVn0T_kaHSggJEQ12VtGzQP6a9LsYwg2UOg1C-45odTrzgG_Bj290ZsmJWUBmdF6Vn3zUwUPEZO6JVaISWORWoHrYJOjSeORV0Yvg8CYlCYGas/s1600/ThreeTips_RadioButtonGroupBox.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="76" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpx1N_1qzo1TFxSURG8zHl1U3tzLMXOPVn0T_kaHSggJEQ12VtGzQP6a9LsYwg2UOg1C-45odTrzgG_Bj290ZsmJWUBmdF6Vn3zUwUPEZO6JVaISWORWoHrYJOjSeORV0Yvg8CYlCYGas/s400/ThreeTips_RadioButtonGroupBox.png" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_2" o:spid="_x0000_i1028" type="#_x0000_t75" style='width:467.25pt;
height:89.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 3: </b>Write peoplecode on the Field Change event. Here you could
write the logic for selection of each value.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 4:</b> Test the page. You are done with the tabs. <span style="font-family: "wingdings"; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span> </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><u>Header Panel<o:p></o:p></u></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The next easy to create item I
would like to mention here is how a header panel can be generated on Fluid
pages. The header panel in fluid design is a section on top of the page where high
level information on the transaction can be mentioned. This is often used in
conjunction with the left panel and is termed as the three panel layout.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Let us go through the steps to
create a sample header panel for a PeopleSoft Fluid page.<br />
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 1:</b> Add a group box to your main page. In the Fluid tab, set
the group box type as “Custom Header Bottom”. Set the style class as “ps_apps_pageheader”
and save the page.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 2: </b>Put any other fields or labels you want to be the part of
the header inside the group box you have created in Step 1.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIb4I1H8uIv2N8RULQ3cN_SiVyjzg_HBBzai-PgANePxZ1OQLDNof4KY9DGnbwaJIK6RkTw3cO5M0WWmLMtx5lI1gQy_32b3A2ImcXqJLImiVLwfxrFZukVaybXUJx6QPFsHwWNCfZAk4/s1600/ThreeTips_CustomHeader.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="57" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIb4I1H8uIv2N8RULQ3cN_SiVyjzg_HBBzai-PgANePxZ1OQLDNof4KY9DGnbwaJIK6RkTw3cO5M0WWmLMtx5lI1gQy_32b3A2ImcXqJLImiVLwfxrFZukVaybXUJx6QPFsHwWNCfZAk4/s400/ThreeTips_CustomHeader.png" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_4" o:spid="_x0000_i1027" type="#_x0000_t75" style='width:467.25pt;
height:68.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 3: </b>Test the page. Yes, your page header is already ready to be
tested.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggit6I4UZuL8l5t-XPswcVgOPb23CwoCMIIJtbEa_e7U6p_c29gLGrYHZhPdYmw03h22x7Xjycsglv4iojruSu7nqPo-wYS20MuCp9bo0-jVIPH9SEJaFHRCI34SV33tkUwfxhZZp2-oE/s1600/ThreeTips_HeaderPanel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Header Page" border="0" height="137" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggit6I4UZuL8l5t-XPswcVgOPb23CwoCMIIJtbEa_e7U6p_c29gLGrYHZhPdYmw03h22x7Xjycsglv4iojruSu7nqPo-wYS20MuCp9bo0-jVIPH9SEJaFHRCI34SV33tkUwfxhZZp2-oE/s400/ThreeTips_HeaderPanel.png" title="PeopleSoft Fluid Header Page" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_5" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:468pt;
height:162pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><u>Setting the Page Title at Runtime<o:p></o:p></u></b></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The last tip I would like to
share here is how you could dynamically change your fluid applications title
displayed on the fluid tool bar. By default PeopleSoft will be displaying the
name of the currently displayed page as the title on the header. Once you tab
across different pages within a component, the system will automatically change
the title to the one defined on the component definition in application
designer. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
There can be cases where you
would like to display some other information or live metrics as the title
rather than the static text defined in the application designer. You could
follow the below step to change the page title dynamically using peoplecode.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 1:</b> On the page activate event, write the below people code.
Replace the title with the one you would like to have – include variables,
field values etc of your choice.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">PTLAYOUT.PAGETITLE_GROUPBOX.Label =
"This is my new Page Title";<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><br /></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 2:</b> Test your application. Isn’t it simple?</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP0SlwIZ9aVxb36SsaMniixrMfPxJelJam6j_taEBvZ_N_GIerPRoCSLwx81SMDwLRIaDoIia65aZislX-yYzh6giUhgxBR76hs9DcDic1eIB-FS01ClQTg59oKycLzMHlUFPDlap0lEo/s1600/ThreeTips_DynamicPageTitle.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="73" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP0SlwIZ9aVxb36SsaMniixrMfPxJelJam6j_taEBvZ_N_GIerPRoCSLwx81SMDwLRIaDoIia65aZislX-yYzh6giUhgxBR76hs9DcDic1eIB-FS01ClQTg59oKycLzMHlUFPDlap0lEo/s400/ThreeTips_DynamicPageTitle.png" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_6" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:468pt;
height:87pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0Thiruvananthapuram, Kerala, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-49365281911747194182016-09-25T07:57:00.000-07:002016-09-25T07:57:33.817-07:00Application class to control Side (Left) Panel in 8.55<div class="MsoNormal">
<span style="text-align: justify;"><b><span style="font-size: large;">W</span></b>ith the release 8.55 People
Tools has introduced new page types namely Side Page 1 and Side Page 2. These
pages are a good replacement technique to the old method of having a complex
two panel layout. With the introduction of side pages, it is easy to manage the
navigation or other supplemental pages in a component. These pages act as a
standalone object and could be added to the component like any other standard
pages. The moment these pages are added, the component starts displaying the side
panel pages (left panel or right panel) and it does not require additional styling
or coding. In version 8.54 the toggling between the side pages and main pages
were handled with the help of certain derived functions present on the people
code event PT_TWOPNL_WRK.BUTTON.FieldFormula.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The toggle switch you see on the
two panel layout was an actual button field present on the page, style of which
was controlled to work as the side panel pull switch. However with the side
page concept of 8.55 onwards, the field button is not part of the application
pages and these functions may not work as expected.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
With 8.55 onward the inbuilt
logic to control the appearance of the fluid components is delivered in
application packages. People Tools is
delivering an application package PT_PAGE_UTILS which contains classes to
control the general behavior of fluid components. In that application package
there is a Application Class named PanelController which can be used to control
the behavior of Side Pages in a two, three or four panel page designs.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The application class consists of
methods which could be invoked to set the behavior of the side pages. The
methods that consists the names Side1 can be used to control the Side Page 1
(Left Panel). Similarly the methods that consists the name Side2 can be used to
control the Side Page 2 (Right Panel).</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Almost all the methods are pretty
much self explanatory so that reading the method name will give you a fair idea
of what that method is intended to do. Some methods such as SetSide1Enabled()
expects an input Boolean value to decide whether the property that need to be
set is Enabled/Disabled. There are
couple of method which will control advanced properties. For example using the
method <i>UsePersistentOpenModeSide1(True) </i>will
keep the left side panel always open regardless of the size of the browser
window. It will also keep the left panel open even if the user has selected an
item from the left panel navigation list.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
These methods will be handy when
you have to code the side panel to behave differently in different devices.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
For example, the below piece of
code will open the side panel by default if the component is rendered on a
large form factor device.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">import PT_PAGE_UTILS:PanelController;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">Local PT_PAGE_UTILS:PanelController &objPage;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objPage = create PT_PAGE_UTILS:PanelController();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">If %Request.BrowserDeviceFormFactor = %FormFactor_Large
Then<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objPage.Initialize( False);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objPage.SetSide1OpenState( True);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objPage.UpdatePanel();<o:p></o:p></span></i></div>
<br />
<div class="MsoNormal">
<i><span style="color: #7030a0;">End-If;<o:p></o:p></span></i></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com2Thiruvananthapuram, Kerala 695001, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-43191280901857013102016-09-15T02:54:00.000-07:002016-09-15T02:57:17.650-07:00Creating your own Push Notification messages in PeopleSoft<div class="MsoNormal" style="text-align: justify;">
<b><span style="font-size: large;">P</span></b>eoplesoft is showing much
technological advancement along with the fluid technology. Most of these are
aimed at improving the user experience and productivity. One such great
functionality that benefits the users will be the Push Notification
functionality.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
We are moving to a new era in
Enterprise Applications where notifying the users via emails or work list entries
are becoming a norm of the past. The latest trend is to show the notifications
or messages directly to the user within the application itself that too at the real
time; similar to the notification capability we currently have in many new
generation web sites. The PeopleSoft Push Notification functionality helps us
achieve the same in PeopleSoft applications.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
PeopleSoft push notifications can
be broadly categorized into two, the one with actionable items and the one with
informational only messages. These messages also have the capability to
redirect the user to any other application pages relevant to the message.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
PeopleSoft applications are already
delivering push notification messages along with the applications such as
approvals. However there can be scenario where you need to have your own notification
messages. In this post I will be explain how a new push notification message
can be developed for your application. Before you start developing it is
expected that you are on a tools release >= 8.54 and have push notification
configured in the environment (<a href="https://docs.oracle.com/cd/E55243_01/pt854pbr0/eng/pt/tsvt/task_SettingUpPushNotificationConfigurations.html#topofpage">PeopleBooks
Link</a>).</div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_4" o:spid="_x0000_i1026" type="#_x0000_t75"
style='width:468pt;height:21pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvQXsPukS10qMRz3UyVp3vr-Mf27qkHH5TOefwliIvfTjdlU_0OfwBoL6BMkql4fb6CK-xcH8QPFZnsnOFtIGFOlG6qcs4sP8-2qSbhtIYUUGAPumxVPpEjf0hSb0AMcqcwmEdhyphenhyphenrHGs/s1600/Push_Note_Navbar.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Push Notification" border="0" height="27" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBvQXsPukS10qMRz3UyVp3vr-Mf27qkHH5TOefwliIvfTjdlU_0OfwBoL6BMkql4fb6CK-xcH8QPFZnsnOFtIGFOlG6qcs4sP8-2qSbhtIYUUGAPumxVPpEjf0hSb0AMcqcwmEdhyphenhyphenrHGs/s640/Push_Note_Navbar.JPG" title="PeopleSoft Push Notification" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
Setting up a push notification
message won’t take more that 10 lines of code. The key to the new push
notification development is the application class PTPN_PUBLISH:PublishToWindow,
where there are pre-defined methods to which the developer needs to pass the
parameters.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The parameters that you have to
pass to the application class objects would be the recipient user list or role
list, message to be displayed, URL to which the link needs to point to, whether
it is actionable, the action label and messages allowed etc.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
I am providing a sample piece of
code which will generate a sample notification (shown in the picture below) message
instantly. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4HraRaTry2fP_RgdCdq0lUDmZ_F6w7PjLcMZmPd-4Th5GkoIYbxdUFQVRzWojajIi2aVbMmdkWKca30XrqMlKGQ76YlYOWVBDC8dS6U8HD1GqRsccR8OF6uMTpB1Ahz2jpglMJerSYrg/s1600/Push_Note_Alert.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Push Notification Alert" border="0" height="216" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4HraRaTry2fP_RgdCdq0lUDmZ_F6w7PjLcMZmPd-4Th5GkoIYbxdUFQVRzWojajIi2aVbMmdkWKca30XrqMlKGQ76YlYOWVBDC8dS6U8HD1GqRsccR8OF6uMTpB1Ahz2jpglMJerSYrg/s400/Push_Note_Alert.jpg" title="PeopleSoft Push Notification Alert" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:420pt;
height:225.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
The following people code is
written on the FieldChange event of the push button, so that the notification
is sent out whenever the user clicks the push button. You may write the code
depending on your business case and pass the appropriate parameters.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
As opposed to my previous posts,
the steps and explanations are included in the code itself. So make sure you
read through the comments provided in between the code lines to see more details
on the code.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">import PTPN_PUBLISH:PublishToWindow;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">Local PTPN_PUBLISH:PublishToWindow &objNotification;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Initialize the notification message. Pass the event
and category name you might have created. For testing purpose you can use the
same code given below;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification = create
PTPN_PUBLISH:PublishToWindow("PUSHNOTIFICATIONWINDOW",
"SENDNOTE");<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Provide the category name you might have created for
your application. For testing purpose you could provide any sample value and
test it out;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetCategoryAlias("Hello
World");<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem For Actionable notifications use the below method;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem &objNotification.SetCategoryTypeActionable();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem For alerts use this method. The current example is
for alert kind of notifications;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetCategoryTypeFyi();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Provide any key identification value to distinguish
the message, you could give the transaction key or a timestamp as example;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetMsgKey(String(%Datetime));<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Pass the actual message that needs to be displayed to
the user;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetMsgInfo("Here is my first
message.");<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Pass the message state. SetMsgStateNew can be used
for new messages. For cahnes in message state, you may use the methods SetMsgStateUnread,
SetMsgStateRead and SetMsgStateDismiss. To get the current message state use
the method along with the user id GetMsgState();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetMsgStateNew();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem For Actionable kind of notifications use the below
method where you pass the actions label and the resulting URL;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem
&objNotification.SetArrayOfActions(CreateArray("View Assignment",
"View My Calendar"), CreateArray(&URL1,&URL2));<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem I am generating a URL which will bring the user back
to the page where the message has originated;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&sURL = GenerateComponentPortalURL(%Portal, %Node,
@("MenuName." | %Menu), %Market, @("Component." |
%Component), %Page, "U");<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Pass the URL to which the user needs to be
re-directed when they click on the message (link);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.SetOnClickUrl(&sURL);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">Rem Pass the operator ID/Role of the recipient to which
the notification needs to be sent. Pass 1 for user ID and 2 for role name ;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.AddRecepient("MARK", 1);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem In case of multiple users or roles use the below
method;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;"> rem &objNotification.AddRecepients(&arUserList,
1);<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem Finally use the Publish method to publish the
notifications to the users;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">&objNotification.Publish("");<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com2Thiruvananthapuram, Kerala 695001, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-85756878080438322722016-08-01T02:37:00.002-07:002016-08-01T02:39:02.684-07:00Adding your own custom logic without customizing the delivered people code<div class="MsoNormal" style="text-align: justify;">
<b>Y</b>es you have read it right. With
the release of People Tools 8.55, you could customize (append would be more
appropriate term) the delivered application without having to touch (or
customize) the Oracle delivered people code.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Customizing the delivered code
was always a pain point when the application maintenance team is considering an
upgrade or applying any patch provided by Oracle. The maintenance team always
have to look at the code conflicts, apply patches/upgrade, re-customize the
application, re-do the custom and delivered test cases and so on. Just a single
line of custom code in the delivered application may force you to take through
all these steps.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
With People Tools 8.55, The
Related Content Configuration setting is expanded to add a new tab labeled “Event
Mapping” where in you could actually map your custom written people code to a
delivered people code event. All this is done through PIA and the major point
to highlight here is that this is not considered as a customization and the
delivered code will execute as it is in addition to your custom code. This
directly means you can now apply patches and upgrades with much simpler
process.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Although it now allows you to map
your people code before/after the execution of a delivered people code event,
this won’t allow you to change/modify the actual delivered code. If you really
have to do that, then you can append your people code which first reverses the
delivered logic and then implements your logic. Another limitation to note here
is that right now only select few events are available for extension. Having
stated that, with the current capabilities alone, you will be able to remove
customization of a major part of your customizations. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Let me move on to the technical
implementation of the Event mapping. As the name suggests you will be mapping
your people code to a delivered event. And how that is done is via a Related
Content Definition of type Application Class. The step by step process of how
this can be done is listed as below.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 1: </b>Create an application class which implements the delivered
app class <i>PT_RCF:ServiceInterface<o:p></o:p></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 2: </b>Create a method name <i>execute()
</i>and write your custom logic inside that method.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">import PT_RCF:*;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">class Hello_World extends
PT_RCF:ServiceInterface<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">
method execute();<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">end-class;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"> </span></i><i><span style="color: #7030a0;">method execute</span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"> /+
Extends/implements PT_RCF:ServiceInterface.execute +/<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">WinMessage(“Hello World”,0);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">end-method;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 3: </b>Create a Related Content Definition with Type Application
Class and select the application class you have created now.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i>Main Menu > People Tools > Portal > Related Content Service
> Define Related Content Service<o:p></o:p></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><br /></i></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCBN9-S9yjtEya-QSKUOyHmH5KEJJ0mBiRAuSrqeENCpaO0NiOFbheDn-r7x92MhhRmZ1R7STp_RdS_2oCccMevlK_awJXfkt7aia9qrGdzfO9vlt3OhP4OGw2pg9rd_jCxwx7oHh_ZXI/s1600/HelloWorld_RCD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Related Content Definition" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCBN9-S9yjtEya-QSKUOyHmH5KEJJ0mBiRAuSrqeENCpaO0NiOFbheDn-r7x92MhhRmZ1R7STp_RdS_2oCccMevlK_awJXfkt7aia9qrGdzfO9vlt3OhP4OGw2pg9rd_jCxwx7oHh_ZXI/s1600/HelloWorld_RCD.jpg" title="Related Content Definition" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 4: </b>Go to Manage Related Content Service page and select the
last Tab “Event Mapping”</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i>Main Menu > People Tools > Portal > Related Content Service
> Manage Related Content Service<o:p></o:p></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><br /></i></div>
<div class="MsoNormal" style="text-align: justify;">
Select the component to which
your code need to be mapped by clicking on the hyperlink<i> “Map the event of the Application pages” </i>and select your component
from the Tree Structure.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 5: </b>Now you will see two grids on the Event Mapping page. The
top grid will corresponds to Component Level people code events and the bottom
grid corresponds to Component Record Level people code events.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
For this example let me
configure/add custom code to the Post Build event of the component. So I select
the event “PostBuild” on the top grid and select the service ”HELLO” created in
the previous steps. Now we have two options for the processing sequence which
determines whether your code needs to be executed prior to the delivered code
or after the delivered code. I am
selecting “Post Process” which means my custom code will be executed after the
delivered people code on that event.</div>
<div class="MsoNormal" style="text-align: justify;">
<br />
<!--[endif]--></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKZk4VqcLlpoAGkN_hq6kr58fKB2J1Yzt-bwTTDdMEQ3fe_Pj8UfoYR5RPB5aqDvVd3GaaPgNXobZePzR5Ko6P1WdAp6qMoz_MrNVMggj9xFDYPhHi0rNcWyaK_F1KQqMdzhUwIQJosCw/s1600/HelloWorld_REM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Related Events Mapping" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKZk4VqcLlpoAGkN_hq6kr58fKB2J1Yzt-bwTTDdMEQ3fe_Pj8UfoYR5RPB5aqDvVd3GaaPgNXobZePzR5Ko6P1WdAp6qMoz_MrNVMggj9xFDYPhHi0rNcWyaK_F1KQqMdzhUwIQJosCw/s1600/HelloWorld_REM.jpg" title="Related Events Mapping" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 6: </b>Test your application. Open the component and see your
Hello World message popping up.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Customizing the delivered
application code has become a less effort task now. This new feature allows you
to add your own organization specific code while enjoying the benefits of the
fixes and enhancements derived by the Oracle. This is completely a
non-destructive approach and I believe this will add a lot of value to your
organization as well. </div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com3Thiruvananthapuram, Kerala 695001, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-37891197340368732722016-04-20T03:15:00.002-07:002016-04-21T10:31:50.449-07:00Creating a simple Two Panel Layout in Fluid<div class="MsoNormal" style="text-align: justify;">
<b>T</b>wo panel layout is one of the
simplest and most needed layout in Fluid applications, especially in
application where it requires more than one page to display the data. In two
panel layout there are two parts to the page, a left panel which displays the
master list or summary or title for a transaction and a right panel where the
actual data is displayed. The left panel will be a collapsible one so that we
get more space to display the detailed data on smaller form factors. Whenever
you need to get details on other items on the master list, you can pull up the
left panel and make the selection. Although this is the common practice, you
could very well design your application to show other details or statistics on
the left panel.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Let us see how we can build a two
panel layout. Also please make a note that depending on the tools version 8.55
or 8.54 you have different methods to create a two panel layout. 8.55 version
has the most simplistic and better solution for two panel layout. I will be
getting into the details of how this can be created in 8.55 and may be try to
provide some tips about getting this done in 8.54.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The steps to create a sample two
panel application with navigation items on left and details on the right is as
follows.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 1: </b>Create a new page (of course of Fluid Type). Select the
Default layout and name it as SIDE1.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoHZ41tSRdFm6Xv6tnOBDu-lG3aqPELuYFSpkcMw4V9wAXGgRYiHo2Mkl5jzrdn0TYH6zYxh8hUjOG1lLMpIy1iip_dEc-vYNpbckFwkhQHtfADnbRyoDo3-QWvx8Xus37hq_rmeUQc6U/s1600/New_Fluid_Page.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Create new PeopleSoft Fluid page" border="0" height="237" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoHZ41tSRdFm6Xv6tnOBDu-lG3aqPELuYFSpkcMw4V9wAXGgRYiHo2Mkl5jzrdn0TYH6zYxh8hUjOG1lLMpIy1iip_dEc-vYNpbckFwkhQHtfADnbRyoDo3-QWvx8Xus37hq_rmeUQc6U/s400/New_Fluid_Page.jpg" title="Create new PeopleSoft Fluid page" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1033" type="#_x0000_t75"
style='width:277.5pt;height:194.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 2: </b>Go to the page properties, USE tab and select page Type as
Side Page 1.</div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_4" o:spid="_x0000_i1032" type="#_x0000_t75" style='width:425.25pt;
height:198.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrIiLzGWRO-f_Mo5jGoY1DNJECddg6CFZJzPs83h5wbBKaLdSmKSplrxPkoe-3wzdmj-5PmKItU0qUhwRmG6FYpOZgKDZetre5vCSwRC7rBx6SCh1hVmDUF5PyIIdwcEwKg59Y6QAmbyQ/s1600/TwoPanel_Step2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Side Page" border="0" height="188" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrIiLzGWRO-f_Mo5jGoY1DNJECddg6CFZJzPs83h5wbBKaLdSmKSplrxPkoe-3wzdmj-5PmKItU0qUhwRmG6FYpOZgKDZetre5vCSwRC7rBx6SCh1hVmDUF5PyIIdwcEwKg59Y6QAmbyQ/s400/TwoPanel_Step2.jpg" title="PeopleSoft Side Page" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<b>Step 3: </b>Now create three more Fluid pages with name PAGE1, PAGE2
& PAGE3 with default layout option and save these.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 4: </b>If you do not already have a record to show the links and
push buttons, create one as you do for classic development. Here for example I
have created a dummy record with two fields.</div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_7" o:spid="_x0000_i1031" type="#_x0000_t75" style='width:364.5pt;
height:56.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTSLzpd110V_nswfJ9Cj0fo2h7iQhB6qDhymr3V07-89YTcc_bl0iLfruEv89zzjb4-rzFKQSZq2c5PlX5-8pqaEAfvWofX2mYI-1-aNSbjzmk2RHHFcGOpY3hCZLfwE6GatF6P-dl1k4/s1600/TwoPanel_Step4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="62" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTSLzpd110V_nswfJ9Cj0fo2h7iQhB6qDhymr3V07-89YTcc_bl0iLfruEv89zzjb4-rzFKQSZq2c5PlX5-8pqaEAfvWofX2mYI-1-aNSbjzmk2RHHFcGOpY3hCZLfwE6GatF6P-dl1k4/s400/TwoPanel_Step4.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<b>Step 5: </b>Now open the SIDE1 page and create a grid with these two
fields (one being push button and the other one display only).</div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_16" o:spid="_x0000_i1030" type="#_x0000_t75" style='width:387pt;
height:141.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsU6dNhZjnU7T8qDi4T3oo_2ReXbTdCKQaMdMTktzITpQ2Xd2kgt2mMpG_fkDPMYmBq7408-77657gzU11yf6cjf4byLZiOrcvD6dGVAAjee5uHA6PJeCmfh9TR8lJeX2IJzkISmUT8g/s1600/TwoPanel_Step5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Grid" border="0" height="147" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpsU6dNhZjnU7T8qDi4T3oo_2ReXbTdCKQaMdMTktzITpQ2Xd2kgt2mMpG_fkDPMYmBq7408-77657gzU11yf6cjf4byLZiOrcvD6dGVAAjee5uHA6PJeCmfh9TR8lJeX2IJzkISmUT8g/s400/TwoPanel_Step5.jpg" title="PeopleSoft Grid" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<b>Step 6: </b>Select the Push button properties, go to USE tab and check
the property “Execute PC on Row/Group Click”. On the Fluid tab provide the
default style name as “psc_invisible”.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBQxCdEV6PlqvAUnjCv5VlTi6Hzn21QhftaYVEJahsUwhdq0zyKIWKppMjq089yMk8w5nS5H4VpZW24r9HE_2plNubhysl0u9z0hgZUk_KdYzrdHC-TWFvovVUUZW38rWhmP_bwBkBap4/s1600/TwoPanel_Step6_1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBQxCdEV6PlqvAUnjCv5VlTi6Hzn21QhftaYVEJahsUwhdq0zyKIWKppMjq089yMk8w5nS5H4VpZW24r9HE_2plNubhysl0u9z0hgZUk_KdYzrdHC-TWFvovVUUZW38rWhmP_bwBkBap4/s400/TwoPanel_Step6_1.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqt5xXo3LNsZlmijRHbGeulXmbcnAbbUH4cJlpO3QJiwYBurkRu99blI0uhbGWiqPfLpwErnbF58K5JUIFcz2mxwHZWWFhVYOVY-2OjbFOWPXmAu3edJaszT8mQL4GFzs3MmKe7OocOOY/s1600/TwoPanel_Step6_2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Tab" border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqt5xXo3LNsZlmijRHbGeulXmbcnAbbUH4cJlpO3QJiwYBurkRu99blI0uhbGWiqPfLpwErnbF58K5JUIFcz2mxwHZWWFhVYOVY-2OjbFOWPXmAu3edJaszT8mQL4GFzs3MmKe7OocOOY/s400/TwoPanel_Step6_2.jpg" title="PeopleSoft Fluid Tab" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_19" o:spid="_x0000_i1029" type="#_x0000_t75" style='width:468pt;
height:210pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_34" o:spid="_x0000_i1028" type="#_x0000_t75" style='width:357.75pt;
height:140.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 7: </b>Go to the Grid properties. On the General tab, select “Unlimited
occurs count”. On the Label tab, uncheck all the check boxes. On the Use tab
select “No Auto Select”, “No Auto Update”, “No Row Insert” & “No Row Delete”
properties. Select the grid layout as “Original Flex Grid”. <!--[if gte vml 1]><v:shape id="Picture_x0020_31"
o:spid="_x0000_i1027" type="#_x0000_t75" style='width:274.5pt;height:423.75pt;
visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image013.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8H7haHqLJLgr_0d829slXqqk2kZ20Aei5QoVquPC0t5YU3MAf0XsEVtlxhnJ2Tmz7KLz-56vB6jhl6wixa_GFyY1o43FKD8C3B71WlmmWVKCM6mAaAciiezTvHafBdxFRtGwDAY6qmo/s1600/TwoPanel_Step7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Grid Properties" border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8H7haHqLJLgr_0d829slXqqk2kZ20Aei5QoVquPC0t5YU3MAf0XsEVtlxhnJ2Tmz7KLz-56vB6jhl6wixa_GFyY1o43FKD8C3B71WlmmWVKCM6mAaAciiezTvHafBdxFRtGwDAY6qmo/s400/TwoPanel_Step7.jpg" title="PeopleSoft Grid Properties" width="253" /></a></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 8: </b>On the pages PAGE1, PAGE2 & PAGE3 put a static label “Page
1”, “Page 2” “Page 3” respectively to distinguish the pages. Later you can
replace it with the actual application content.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 9: </b>Create a component to include all these pages with
INSTALLATION as search record. On the Internet tab uncheck “Display Folder tab”.
Make sure “Fluid Mode” is checked in the Fluid tab of component property.<o:p></o:p></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_28" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:446.25pt;
height:105pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image015.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHZ-MB_MzLYBGZmfXCvwCqBCbxS-Z8N73ta1uotBs-nAjMwUlXm_-G0x2sAarBfCTn4aN9xVJRn1V_SkVddGVT_03u0knHocWimxlZOfVxQvDfHtmajqwaHkxQookxFatUjVUMrnOeSN4/s1600/TwoPanel_Step9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="97" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHZ-MB_MzLYBGZmfXCvwCqBCbxS-Z8N73ta1uotBs-nAjMwUlXm_-G0x2sAarBfCTn4aN9xVJRn1V_SkVddGVT_03u0knHocWimxlZOfVxQvDfHtmajqwaHkxQookxFatUjVUMrnOeSN4/s400/TwoPanel_Step9.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<b>Step 10: </b>On component Post Build event write a PeopleCode something
like as provided below. You must be replacing it with your record and field
names.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The idea here is to generate the
list of links.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">Local Rowset
&rsLeft = GetLevel0()(1).GetRowset(Scroll.TWO_PNL_DVW);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">&rsLeft(1).TWO_PNL_DVW.DESCR.Value
= "Go to Page1";<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> &rsLeft.InsertRow(1);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">&rsLeft(2).TWO_PNL_DVW.DESCR.Value
= "Go to Page2";<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">&rsLeft.InsertRow(2);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">&rsLeft(3).TWO_PNL_DVW.DESCR.Value
= "Go to Page3";<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 11:</b> Write the application logic peoplecode you want to execute
when the user clicks on the select button. Example code is provided below.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">Evaluate
CurrentRowNumber()<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">When 1<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> TransferPage(Page.PAGE1);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> Break;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">When 2<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> TransferPage(Page.PAGE2);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> Break<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">When 3<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> TransferPage(Page.PAGE3);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"> Break;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;">End-Evaluate;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #8064a2; mso-themecolor: accent4;"><br /></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 12: </b>Register your component and give necessary permissions.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Step 13: </b>Test out your Two Panel layout sample application</div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_37" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:468pt;
height:324.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image017.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZW7QcH2P7FEEsj2v-iMsTm3Ma1m6p2uy8n1RMZxa5kcfsX2xi8ajMZJdJjWjc1T7OoFGjWDsPV1DK_lmeCLtgHUIyJF9rkyQa3PVkeAMHxUewfEueF-aC61ZTwto2Il9uVZwh2xRPQRk/s1600/TwoPanel_Step13.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Two Panel Layout" border="0" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZW7QcH2P7FEEsj2v-iMsTm3Ma1m6p2uy8n1RMZxa5kcfsX2xi8ajMZJdJjWjc1T7OoFGjWDsPV1DK_lmeCLtgHUIyJF9rkyQa3PVkeAMHxUewfEueF-aC61ZTwto2Il9uVZwh2xRPQRk/s400/TwoPanel_Step13.jpg" title="PeopleSoft Two Panel Layout" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<div class="MsoNormal" style="text-align: justify;">
If you are Tools 8.54 release,
you have to create a page with layout PSL_TWOPANEL and create subpages for the
side panel and detail panel and then place it under the correct group boxes.
Also you may need to ensure that you are placing the sub pages on the correct
level as well.</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1Thiruvananthapuram, Kerala 695001, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-88161178673686204292016-03-18T04:13:00.000-07:002016-03-18T04:13:14.906-07:00Welcome to PeopleSoft Fluid Application Development<div class="MsoNormal">
<b>I</b>t has been long time since I have written on PeopleSoft
technical topic. I have thought of starting
of with Fluid Application development this time. PeopleSoft Fluid or New
generation User Interface (NUI) is a facelift to the PeopleSoft application
development. With PeopleSoft Fluid, the UI looks modern and at the same time
the UI adapts to itself on various form factors.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you are on a People Tools release 8.54 or higher, you
could start developing PeopleSoft Fluid applications. The Fluid development is
based on HTML5 & CSS3 technologies. So apart from People Tools development
knowledge, the developer is expected to have bare minimum knowledge on HTM5,
CSS3 and occasionally JavaScript.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
In this post let us start with creating a very simple fluid
application.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoListParagraphCxSpFirst">
<b>Step 1:</b> Be Ready with your records &
fields needed for the application.</div>
<div class="MsoListParagraphCxSpFirst">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 2: </b>Create New Page. You have to select
the new option “Page (Fluid)” for fluid development.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6zn-pbmJ_p2pibSZwJSv3RUW9ldRKesNUJIM2uSDA3zmopIa9a1k6RTJdUD6zyDA-WUbf56pDRirQYBPTvSwb7HDbW2gEPtMdZrS-krbdo4mS3mvJWy7n7wUr-BCEyDusiPgHD6s3QDU/s1600/New_Fluid_Page.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Page" border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6zn-pbmJ_p2pibSZwJSv3RUW9ldRKesNUJIM2uSDA3zmopIa9a1k6RTJdUD6zyDA-WUbf56pDRirQYBPTvSwb7HDbW2gEPtMdZrS-krbdo4mS3mvJWy7n7wUr-BCEyDusiPgHD6s3QDU/s320/New_Fluid_Page.jpg" title="PeopleSoft Fluid Page" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1030" type="#_x0000_t75"
style='width:297.75pt;height:199.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 3:</b> You will see a bunch of options to
select from. Select PSL_APPS_CONTENT to start with a very basic page. These
options you see here are pre-defined page structures or templates. Give a name
to the page and save it.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 4:</b> Now we drag and drop the two field
we intended to have on the application to the page. Unlike the classic
development, the position of the fields on the page on app designer doesn’t
matter much. So you can pretty much put the fields anywhere on the scroll level
based on the required tab order. Once you are done with the page, save it.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYWk1LPjL0kTCX-r5kGayYH_2lLKqDcRElGb3FekxCrRS7evMMzC4LsOKzbNeJ0zpoD3xjzxfXqyoW6Srxd7shVDOGXQGsJRP50qnT-lCKAZ-oepPsY6-ClDE0j4iVYD-GngujPQjDlBU/s1600/FF_Page.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Page" border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYWk1LPjL0kTCX-r5kGayYH_2lLKqDcRElGb3FekxCrRS7evMMzC4LsOKzbNeJ0zpoD3xjzxfXqyoW6Srxd7shVDOGXQGsJRP50qnT-lCKAZ-oepPsY6-ClDE0j4iVYD-GngujPQjDlBU/s320/FF_Page.jpg" title="PeopleSoft Fluid Page" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /><!--[endif]--></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 5: </b>Create a component and insert the
page into the component. Now the important step is to go to <b>Fluid </b>tab on the component properties
and select the <b>Fluid Mode </b>check box.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEY4hPrXUSKdFplTlxfVBS_31LlNCZ2Ubgnk4IVpCEcHwpFmAn1t8jBj0qiGKFAjtnl1znkjb2cVe2SEf10Y-MqoJwUP8MthN2faYDtGjr8kFQTEJb3bZzI_xTm70w2XkbHuXoyBtY8R4/s1600/FF_Comp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Component" border="0" height="132" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEY4hPrXUSKdFplTlxfVBS_31LlNCZ2Ubgnk4IVpCEcHwpFmAn1t8jBj0qiGKFAjtnl1znkjb2cVe2SEf10Y-MqoJwUP8MthN2faYDtGjr8kFQTEJb3bZzI_xTm70w2XkbHuXoyBtY8R4/s320/FF_Comp.jpg" title="PeopleSoft Fluid Component" width="320" /></a></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_7" o:spid="_x0000_i1028" type="#_x0000_t75" style='width:410.25pt;
height:153pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 6:</b> Now register the component after
adding it to a menu and give necessary permissions.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 7:</b> Now it is time to test our fluid
page. As you can see your fields are automatically arranged in PIA although you
have not put the fields in order in the App Designer. </div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjphyphenhyphenECLqc8DY3mqPv3j0zqt9AT1vwNDdphC6hjTHPWnRzmbAirl0Ckpxs1QTSdA5Gu9ir9hNBGj_Q5aFCseU-Tlh8l0JfEnTm6h1wIL2Ser_ysOlqRezth9Fz3Vg0rjNrq3Fw1DUM7O_g/s1600/FF_PIA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Component" border="0" height="234" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjphyphenhyphenECLqc8DY3mqPv3j0zqt9AT1vwNDdphC6hjTHPWnRzmbAirl0Ckpxs1QTSdA5Gu9ir9hNBGj_Q5aFCseU-Tlh8l0JfEnTm6h1wIL2Ser_ysOlqRezth9Fz3Vg0rjNrq3Fw1DUM7O_g/s320/FF_PIA.jpg" title="PeopleSoft Fluid Component" width="320" /></a></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_10" o:spid="_x0000_i1027" type="#_x0000_t75" style='width:321.75pt;
height:234.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image007.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 8: </b>Our sample application is now
displaying one field per line (single column layout). Let us modify it and make
it to two column layout. For that open the page field properties of both the
fields, go to <b>Fluid </b>tab and provide
the value “<i>psc_columnitem-1of2</i>” for the
field “Default Style Name” and save the page.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheAxNx0gHxgL8MtET-Uhylac1p83pER-ROMtG4BJQMaLMKYirTJjUVy7czaDYbWy79UmPSzQ69syKzExOlROQviN2o6bMFyTqJgFy0Ge7m7J5WCViMcZ6Ou2pkWZZhkNFzPZ3tVXncQAg/s1600/FF_Page+Field.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Component" border="0" height="144" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheAxNx0gHxgL8MtET-Uhylac1p83pER-ROMtG4BJQMaLMKYirTJjUVy7czaDYbWy79UmPSzQ69syKzExOlROQviN2o6bMFyTqJgFy0Ge7m7J5WCViMcZ6Ou2pkWZZhkNFzPZ3tVXncQAg/s320/FF_Page+Field.jpg" title="PeopleSoft Fluid Component" width="320" /></a></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_13" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:416.25pt;
height:188.25pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image009.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<b>Step 9:</b> Now you reload the PIA page and
observe that the fields are now listed in a two column style. If you resize the
browser to small size, you can observe that the fields re-align automatically
to single column style to adjust to the form factor.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_16" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:468pt;
height:1in;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image011.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBX2HLOPFzQwo9VADxBPUsn9FyDT7DdMapgoH8e1PO4Gjn8m4OgMU7JSUuUvmbIHdqNbfsBxqrbr8c-9469HkUwExcOVUuQQLbObmbW7OUBjbaCzoNGoMCURB4jj02F9TvsS1EiY5RXwI/s1600/FF_PIA2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Fluid Component" border="0" height="50" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBX2HLOPFzQwo9VADxBPUsn9FyDT7DdMapgoH8e1PO4Gjn8m4OgMU7JSUuUvmbIHdqNbfsBxqrbr8c-9469HkUwExcOVUuQQLbObmbW7OUBjbaCzoNGoMCURB4jj02F9TvsS1EiY5RXwI/s320/FF_PIA2.jpg" title="PeopleSoft Fluid Component" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
Yes, we have now developed a very basic fluid
application to start with.</div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<div class="MsoListParagraphCxSpMiddle">
<br /></div>
<br />
<div class="MsoListParagraphCxSpLast">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1tag:blogger.com,1999:blog-2131509019147385078.post-63859190707705437362015-12-26T00:14:00.000-08:002015-12-26T00:15:43.593-08:00What is new in People Tools 8.55?<div class="MsoNormal" style="text-align: center;">
<div style="text-align: left;">
<b style="text-align: justify;"><span style="font-size: x-large;">O</span></b><span style="text-align: justify;">racle has released its next
version of the proprietary application development tool People Tools 8.55. The
latest version brings in many new features most of which are concentrated on
the mobile application or fluid user interface development. There is lot more
capabilities brought forward in the fluid and search front. The list provided
below give some of the major improvements with 8.55. This is not a complete
list and in order to obtain the same or to get additional details on each of
the items, kindly visit the Oracle official website or contact the Customer
Support.</span></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9hCnuLYvNLVs_sg9ZsITdXccARtnQYt2EK6gMxBWgDckFNxGaCBfJ2DOOVdzuSYETE8tfMatQvcDK9sUT6ZtZN4jBRqquyjJ93I5VDZOS6c676wQ148ZLlxrnTDj6U_dy8JOp8_6In9E/s1600/Tools855.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft People Tools 8.55" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9hCnuLYvNLVs_sg9ZsITdXccARtnQYt2EK6gMxBWgDckFNxGaCBfJ2DOOVdzuSYETE8tfMatQvcDK9sUT6ZtZN4jBRqquyjJ93I5VDZOS6c676wQ148ZLlxrnTDj6U_dy8JOp8_6In9E/s400/Tools855.jpg" title="PeopleSoft People Tools 8.55" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b><u><span style="font-size: large;">Fluid Enhancements</span><o:p></o:p></u></b></div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li>Activity Guide – The Activity Guide
is a step by step process configuration linking multiple related components in
PeopleSoft. This was a functionality introduced in one of the recent versions
of People Tools. Now this capability has been extended to fluid interface which
makes the use of Activity Guide seamless irrespective of the device used.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Master Detail Structure – This new
feature makes it easier to develop fluid components containing multiple pages.
The Tools will automatically design a side panel or a pull down menu in the
header based on the form factor of the device.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Push Notifications – This functionality
was introduced in 8.54 which will display real time notification on the header
bar similar to the facebook notification or other similar networking sites. Now
with the latest version of the Tools, this capability can be extended to see
native app kind of notification in mobile devices.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Navigation Bar – is enhanced to
adopt better to the small form factor devices.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Related Contents – Now you can
associate Related Contents to fluid components as well. The related content
will appear as a side page which can be pulled from the right hand side. There
is also a new capability to embed related contents within application pages.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Interactive Tiles – will enable
the user to take some action from the tile itself even before going inside the
tile.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Other Tile Features – Now you can
even display external contents inside a PeopleSoft tile. There is also lot many
new options to size your tile in the dashboard. Also there is a tile wizard in
place which will make the creation of tiles easier.</li>
</ul>
<div>
<br /></div>
<ul>
<li>My Preferences – With Tools 8.55
the My Preferences became a centrally controlled one and People Tools
automatically adds your custom preference page if you have registered it under
the right folder.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Pivot Grids – is enhanced more to
add additional capabilities such as mini charts for filters, drilling urls,
application of thresholds, display of currency symbols and so on.</li>
</ul>
<div>
<br /></div>
<div>
<b><u><span style="font-size: large;">Application Designer</span></u></b></div>
<br />
<div>
<ul>
<li>UI Related –
Application Designer undergoes minor UI changes such as displaying line number
of the code editor, retaining Find-In Results and displaying DB name even in
the editor mode.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Find In – will now
allow you to filter based on more additional parameters. You can also do a Find
In search based on modules so that the search is faster and the result is
narrowed down to the module that you are interested to see the impact.</li>
</ul>
<div>
<br /></div>
<ul>
<li>AutoComplete –has
been improved to perform better compared to the prior versions.</li>
</ul>
<div>
<br /></div>
<ul>
<li>API – There are
new classes methods and properties added to PeopleSoft API’s.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Charts – There are
new chart types such as rating gauge and Spark charts introduced. Also there
are other minor improvements such as tool tips and user selection point
highlighter etc.</li>
</ul>
<div>
<b style="text-align: justify;"><u><span style="font-size: large;">Other Enhancements</span></u></b></div>
<div>
<div class="MsoNormal" style="text-align: justify;">
</div>
<ul>
<li>Search – The search is improved
to make it more user-friendly and usable. There are improvements which makes it
look better. There are other functional enhancements such as user can drill
into a search result and go back to the entire result ret without having to
perform the search again. There is also an Activity Guide delivered for setting
up new searches which can improve the productivity if the customers need to
create custom search definitions and deploy them.</li>
</ul>
<div>
<br /></div>
<ul>
<li>People Code Event Mapping – With this
new functionality, customers can attach their custom code to any of the
delivered application components people code events without having to customize
the delivered People Code. Since this is not considered as customization, this
functionality is greatly useful for customers to add their additional logic to
delivered codeline without having any of the negative impacts of customization.</li>
</ul>
<div>
<br /></div>
<ul>
<li>AE Log Analyzer – is a tool which
will help the developers to analyze the AE logs.</li>
</ul>
<div>
<br /></div>
<ul>
<li>PeopleSoft Deployment Packages
(DPK) – will help you install new TEST, UAT or DEV environments with the almost
same ease as installing other software which you might install at home.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Oracle Policy Automation
Integration – Oracle Policy Automation is a tool where you can define business
rules in English which will be automatically translated into the code language.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Materialized View – support is
extended to DB2 and SQL Server platforms.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Security – There are many
improvements to the Security structure of PS.</li>
</ul>
<div>
<br /></div>
<ul>
<li>Automated Configuration Manager –
will help you to automate several configurations such as integration settings,
Node configurations etc. This will of extra help when you are creating a new PS
environment in your organization.</li>
</ul>
<div>
<br /></div>
<ul>
<li>PUM Dashboard and Change
Assistant – There are improvements in these items which will make it easier for
you to apply the bug fixes and new features delivered by Oracle.</li>
</ul>
<br /></div>
</div>
<div class="MsoNormal" style="text-align: justify;">
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1Thiruvananthapuram, Kerala, India8.5241391 76.936637600000048.2728715999999984 76.613914100000045 8.7754066 77.259361100000035tag:blogger.com,1999:blog-2131509019147385078.post-86047159358686755352015-08-30T00:19:00.000-07:002015-08-30T00:19:54.660-07:00PeopleSoft Meets Shark Tank @ Oracle OpenWorld San Francisco 2015<div class="MsoNormal">
<b><span style="font-size: x-large;">O</span></b>pportunity for PeopleSoft customers and partners to present
ideas in the Oracle Open world program!</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Oracle has announced a session “PeopleSoft Meets Shark
Tank-Pitch What You Want to See in PeopleSoft” in the Open World conference to
be held in San Francisco. You could present your ideas in any format say,
video, presentation etc. Applications need to be sent by Friday, 2<sup>nd</sup>
October 2015. Maximum of eight selected applicants will be invited to present
their problem and solutions in five minutes.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For additional details about the event, visit the PeopleSoft
Apps Strategy publication at the below link.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://blogs.oracle.com/peoplesoft/entry/peoplesoft_meets_shark_tank_oracle">https://blogs.oracle.com/peoplesoft/entry/peoplesoft_meets_shark_tank_oracle</a></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0Changanassery, Kerala, India9.4458875 76.540965499999979.383232 76.460284499999972 9.508543 76.621646499999969tag:blogger.com,1999:blog-2131509019147385078.post-34195934122746425342015-03-27T04:57:00.000-07:002015-03-27T04:57:23.910-07:00Bulk Modification in PeopleSoft<div class="MsoNormal">
<span style="text-align: justify;"><b>R</b>ecently in one of the technical
forum I had seen one member raising a question of whether it is possible to
modify a Record in bulk? And he was thinking of SQL commands to update the
metadata to insert fields bulkily into many records. Though this is not a common
scenario, still these things can happen to you as well whether it is driven by
the business requirement or because you have used wrong naming conventions
during the development stage.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Luckily there is a resort
provided by People Tools to overcome some of such scenarios. Most of you might
not be used to it owing to the obvious reason of it is not a common scenario
that comes up. In this post I would like to mention about some of such options
available from the People Tools.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
The bulk operations provided by
People Tools includes the below actions.</div>
<div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->1.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
insert of Fields into records</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->2.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
insert of Record Fields into pages</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->3.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
insert of Fields into records and pages</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->4.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
modification of Record Fields</div>
<div class="MsoListParagraphCxSpMiddle" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->5.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
modification of Page Fields</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<!--[if !supportLists]-->6.<span style="font-size: 7pt; font-stretch: normal;"> </span><!--[endif]-->Bulk
deletion of Fields</div>
<div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-align: justify; text-indent: -.25in;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
I am not going to explain here in
detail about each of the options as it can be easily understood from the name
and it is well documented in People Books. Those interested in knowing additional
details about the feature may refer the People Books in the link provided
below.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<a href="http://docs.oracle.com/cd/E58500_01/pt854pbh1/eng/pt/tapd/concept_UnderstandingBulkOperations-07735d.html#topofpage">http://docs.oracle.com/cd/E58500_01/pt854pbh1/eng/pt/tapd/concept_UnderstandingBulkOperations-07735d.html#topofpage</a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
These options can be availed by
logging into Application Designer. You would be able to see these options only
if you have PeopleSoft Administrator role in your profile. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
All these operations can be found
under the Tools Menu of the Application Designer. Tools > Bulk Operations
> [Insert] [Modify] [Delete]</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglJICgOYD9nCI6fwQvLDO_LiL8YctYZTQr8ZWJq4tj_7jf6_ZzpQ_pBxBVdvpVCEE5YlxaamYctWB7BbC-Ox-KqO6Ycmi4GuiEq2WG0s80UUt6ZQQ-W6ALUvhyphenhyphenH4yJv8cyfKxyb4vBdcc/s1600/Bulk_Modification.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="PeopleSoft Bulk Modification - Application Designer" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglJICgOYD9nCI6fwQvLDO_LiL8YctYZTQr8ZWJq4tj_7jf6_ZzpQ_pBxBVdvpVCEE5YlxaamYctWB7BbC-Ox-KqO6Ycmi4GuiEq2WG0s80UUt6ZQQ-W6ALUvhyphenhyphenH4yJv8cyfKxyb4vBdcc/s1600/Bulk_Modification.JPG" height="263" title="PeopleSoft Bulk Modification - Application Designer" width="400" /></a></div>
<div class="MsoNormal" style="text-align: justify;">
<br /><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
Most of these actions are based
on a model field which is assumed to be present in the page or record and when
the system inserts new fields into the page or record all the properties of the
model field is copied into the new field. Before starting the bulk changes it
is advised that you create a project containing all your records and fields
present in it. Once the system completes the bulk inserts or modifications,
then it is easier for you to just alter the project instead of altering each
individual records associated with it.</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-78887926641512632832014-12-01T06:19:00.003-08:002014-12-01T06:19:53.479-08:00Controlling Component Save Processing<div class="MsoNormal">
<span style="text-align: justify;"><b><span style="font-size: x-large;">I</span></b> was recently working upon an
issue where the PeopleCode changes bring upon the Save Warning message and
which goes into loop even if the component is saved. I was researching on
various options to turn off the Save Warning. I found a couple of methods and
properties which controls or depends on the component save flag. Thought of
documenting everything together so that people having similar issue could read
the related methods and properties in a single place.</span></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Before I go ahead, I may have to
explain how the Save Warning is issued for a component. Whenever a component is
loaded, the Component Processer holds a flag value which will store whether the
component is changed or not. This flag is set whenever the user changes the
value of a field on the online page or when the value of a field is changed via
PeopleCode logic. Having this flag value, whenever user attempts to navigate
away from the component, the Component Processor will check this flag and if
its value is set then a Save Warning is issued otherwise it logs out of the
component. The value of this particular flag is reset after every insert into
the database (after Save Pre Change) which will prevent the warning when the
user has already saved the component. However a code in your Save Post Change
could set the flag again.</div>
<div class="MsoNormal" style="text-align: justify;">
Now let us discuss about some of
the functions and properties which could be potentially helpful in tackling the
Save Warning issues in PeopleSoft.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>ComponentChanged()</b> – This function will return a Boolean value
based on if the component was changed after last save. You could use this
function to determine the component level flag value which we discussed earlier
and based on that you could write your logic.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Eg: </div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">If ComponentChanged() Then<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">Rem Write your logic here;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">WinMessage(“Your Message Text”,0);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">Else<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">Transfer(….);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">End-If;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>SetComponentChanged()</b> – You can use this function to set the
component level flag programmatically. Sometimes it may be required that even
if the user has not changed any value on the page, when he/she clicks a button
on the page the system needs to do the save processing. This is the function
which could help you do this. This will initiate the Save Warning or Save
Processing even if nothing has changed in the component.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Eg: </div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">Rem Initiate Save Processing;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">SetComponentChanged();<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">DoSaveNow();<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>SetSaveWarningFilter()</b> – Use this function to supress the Save Warning
irrespective of whether the component level flag is set or not. If you use this
function the component processor will ignore the component level flag value and
let the user to navigate away from the component without issuing any Save
Warning. This function takes a Boolean value as argument. Passing <i>True </i>will direct the component processor
to ignore the flag whereas passing an argument of <i>False </i>will make the component behave in its normal way.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Eg: </div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">REM changing the field value of DESCR;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">&myRec.DESCR.Value = “My Description”;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">SetSaveWarningFilter(True);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">REM Now the system will not issue Save
Warning to the User;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">REM To bring back the warning call the same
function with parameter False;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Set Component Changed (Page Field Property)</b> – Sometimes, for
certain fields, even if the user changes some value on the online page we may
not require to initiate the Save Processing or issue the Save Warning. This
page field level property comes handy in those scenarios.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOH2-P7GwI11R8r4FOc3BMDKex9kvNbjSyp0KYsudw2bgVT0mkZk1ZcFvAvk1mm2iZ4dLwyqnVYGXBzUO9FBOgMdVov1wNG7ovcMg3H4PaD5F1ZPzzzKhctNNxXR__MkxaT7bpxey13KQ/s1600/SetComponentChanged_PageFieldProperty.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Set Component Changed property of page field" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOH2-P7GwI11R8r4FOc3BMDKex9kvNbjSyp0KYsudw2bgVT0mkZk1ZcFvAvk1mm2iZ4dLwyqnVYGXBzUO9FBOgMdVov1wNG7ovcMg3H4PaD5F1ZPzzzKhctNNxXR__MkxaT7bpxey13KQ/s1600/SetComponentChanged_PageFieldProperty.JPG" height="242" title="Set Component Changed property of page field" width="400" /></a></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1026" type="#_x0000_t75"
style='width:286.5pt;height:174pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
This property can be found in the
<i>Use </i>tab of the page field property.
This will determine if the component flag needs to be set when the user changes
the value of the field. This property determines the behavior only for user
intervention and does not govern the PeopleCode changes.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>Disable Saving Page (Component property) </b>– If the entire purpose of
the component you have designed is to just display information or to act as an
intermediate component, then you can use this property to avoid the Save
warning. This property can be found on the <i>Use
</i>tab of the component. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_7" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:318.75pt;
height:183.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3C7zSzrM2MVOpoJ0J4SyO0-KNTnedyWzrtstsQ2B67UU-yoT_bD3Q-qx53hls0kveeXoqAoOh89uq3vPr9v8fZYHNzuhieKaNTXQbo2v9mMItPuE53Re1jTmq2mxCXe8Vrw5z9P61tuk/s1600/SetComponentChanged_ComponentProperty.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="Disable Saving Page component property" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3C7zSzrM2MVOpoJ0J4SyO0-KNTnedyWzrtstsQ2B67UU-yoT_bD3Q-qx53hls0kveeXoqAoOh89uq3vPr9v8fZYHNzuhieKaNTXQbo2v9mMItPuE53Re1jTmq2mxCXe8Vrw5z9P61tuk/s1600/SetComponentChanged_ComponentProperty.JPG" height="230" title="Disable Saving Page component property" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
Checking this field will hide the
save button from the component and will suppress the save warning. If you want
to permanently suppress the Save Warning for the entire component this is the
best option to choose as it provides the mechanism to achieve the objective
with minimal impact.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>IsChanged Property</b> – This property is available for the objects <i>Field, Record </i>and <i>Row</i>. This property will return a Boolean value indicating whether
the object has changed or not. This property will be helpful in doing some
special processing for which you need to dynamically know which object has
changed.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Eg:</div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">Local Number &I;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">&I = 1;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">Rem Loop through the record to find out the
changed field;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">For &I = 1 To &myRecord.FieldCount<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">If &myRecord.GetField(&i).IsChanged
Then<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">Rem Custom Logic;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">End-If;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">End-For;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<b>SetComponentChanged (Property)</b> – This property is read-write and is
available in both Field and Rowset Level. Setting this value to <i>True </i>indicates the component processor
that any change to the Field/Rowset using a PeopleCode will set the component
save flag and the Save Warning needs to be issued. A value of <i>False </i>will not set the component changed
flag when the Field/Rowset value is changed using a PeopleCode. The example
provided below will illustrate the use of the property where a value of a field
is changed programmatically without requiring/ initiating a Save Warning.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
Eg:</div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">REM Change the field DESCR without
requiring a user Save;</span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">&myRec.DESCR.SetComponentChanged =
False;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">&myRec.DESCR.Value = “New Description”;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">REM Re-set the property so that a change to
the field made by the user prompts a save;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">&myRec.DESCR.SetComponentChanged =
True;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com5tag:blogger.com,1999:blog-2131509019147385078.post-86422592551147891732014-07-15T04:18:00.001-07:002014-07-15T04:19:05.806-07:00People Tools 8.54 is available with lot more capabilities<br />
<b><span style="font-size: x-large;">P</span></b>eople Tools 8.54 is now generally available for the customers. Oracle has released its landmark release of People Tools (version 8.54) on 11th July 2014.<br />
<br />
With the release 8.54, PeopleSoft is bringing in fluid UI capabilities which could render on any devices and specifically targeted for mobile devices. There are many improvements and capabilities in reporting features available with the newest release.<br />
<br />
For new implementation the tools 8.54 is ready to use and for upgrade customers, they may have to wait until patch 02 is available.<br />
<br />
Apart from the major fluid UI capability, PeopleSoft has brought up improvements in the below mentioned functional areas.<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Branding Framework<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Activity Guides<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Related Content/Actions<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Search<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Introduced Global Temporary Tables<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Materialized Views<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Meta SQLs<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>PS Query<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Pivot Grids<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>BI Publisher<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>nVision<br />
•<span class="Apple-tab-span" style="white-space: pre;"> </span>Application Designer Capabilities<br />
<br />
To see what has improved over your current version of People Tools, visit Oracles Cumulative Feature Overview site.<br />
<br />
Watch interview with Willie Suh, Vice President of PeopleTools Development, for more information on fluid UI.<br />
<div>
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/XcF4LKF9LSw?list=PL4okLhHVjSg51nBTNtZUIW0D1WZ2D9dIS" width="560"></iframe>Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-60083731316586741532014-06-17T04:11:00.000-07:002014-06-17T04:11:00.415-07:00Currency Control Fields in PeopleSoft<div class="MsoNormal" style="text-align: justify;">
<b>P</b>eople working in Financials or Money related modules in
PeopleSoft might come across situations where they need to format the amounts
to the format which is more common to the transaction currency used. This might
seem to be a simple task if you are always working in same currency say USD. The
amounts can be formatted using PeopleCode or other methods to display in the
format which is required for your client (eg. 98.53 USD). But the situation
become little complicated if you are working for a firm where the PeopleSoft is
implemented globally and you have many multi currency transactions. In that
case, formatting the field using PeopleCode for each and every currency using an
IF or Evaluate logic will become pretty cumbersome.</div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
PeopleSoft has provided a much simpler mechanism to do the
same without writing any PeopleCode. This is called as currency control field. </div>
<div class="MsoNormal" style="text-align: center;">
<o:p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7USqDn3wna2E77oqsLrjZSpFXy2PsF434L9eIH77UbjRns0pO-K6Ls9MPHJIgBR1BGZauwvKSJZgPGOGZUB0jbBynP1yx_N43AmD2SYehyphenhyphenranVrsQQmBPkmksqOz00JuOX6GPHHkPSrM/s1600/CUrrency_Control_Field.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="Currency Control Field in PeopleSoft" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7USqDn3wna2E77oqsLrjZSpFXy2PsF434L9eIH77UbjRns0pO-K6Ls9MPHJIgBR1BGZauwvKSJZgPGOGZUB0jbBynP1yx_N43AmD2SYehyphenhyphenranVrsQQmBPkmksqOz00JuOX6GPHHkPSrM/s1600/CUrrency_Control_Field.JPG" height="400" title="Currency Control Field in PeopleSoft" width="395" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><i>Fig 1. Record Field Properties - Currency Control Field</i></td></tr>
</tbody></table>
</o:p></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_4" o:spid="_x0000_i1025" type="#_x0000_t75"
style='width:379.5pt;height:384pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
This property can be found on the record field property. To
make this work, you should be having a field which stores the currency code (usually
CURRENCY_CD field) in the same record and the multicurrency option set in the
application level. Once you have the field and options set, just mention the
field name which contains the currency code in the <i>Currency Control Field </i>option in the record field property. Setting
this option will automatically take care of the currency symbol, decimal digits
and the scale of the number field. This helps you avoid a lot many PeopleCode.
I know this is an obvious fact for those working in financials, but may be of a
lot more help to the newbie’s. </div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
As I mentioned earlier, you might need a field in the record
which contains the currency code for the corresponding amount. What if you don’t
have that field and you are arriving at the amount dynamically. PeopleSoft has
again extended a little bit of help in this regard with a built in function
called <b><i>RoundCurrency</i></b>. <i>RoundCurrency </i>function will return the
amount with decimal precision formatted to the currency code passed. The syntax
of the function is as shown below.</div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #ffc000;">RoundCurrency(amount,currency code,effective date);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">/* The below example will return the currency in AUD
format effective today. */<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #00b050;">/* Instead of hard coding the currency, you can pass
dynamic values in real scenarios. */<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<div class="MsoNormal" style="text-align: justify;">
<i><span style="color: #7030a0;">LEDGER.AMOUNT.Value = RoundCurrency(AP_AMOUNTS_WRK.AMOUNT.Value,”AUD”,%Date);<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-align: justify;">
<br /></div>
<br />
<div class="MsoNormal">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0Thiruvananthapuram, Kerala, India8.4874 76.9528.4874 76.952 8.4874 76.952tag:blogger.com,1999:blog-2131509019147385078.post-89194061871242184822014-03-23T08:59:00.000-07:002016-09-23T03:47:49.070-07:00What is an HGrid in PeopleSoft?<div class="MsoNormal">
HGrid is one of the less talked about and most useful feature in PeopleSoft page designs. HGrid stands for Hierarchical Grid. Some may even interpret it as horizontal grids. HGrids can introduce hierarchy or horizontality in PeopleSoft grids. These kind of grids are often very useful in presenting roll up values and child values for a specific item in the same grid.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
HGrid is no different than the normal PeopleSoft grid except it provides a roll up/ expansion feature within the same grid. The same is true with the designing of HGrid as well. To create an HGrid, all you need to do is to create a normal PeopleSoft grid, add a HTML field to the grid (which performs the expansion/collision) and then import the delivered packages to configure the grid.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
A typical HGrid in PeopleSoft will look as below.</div>
<div class="MsoNormal">
<o:p> <table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5hZkM15idv7WB3XYqqC5_afQsDfB69dKsKobeaIUR7U5OMBK_huQK06CVAdVkEsX9lCO1_BM6foMqgllOqhdQxVliH3oCKFXvlz1hR1EriG5XUJI67EFhwMr4ynB5xZnY3DipvOa3lY/s1600/HGid_PeopleSoft.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="PeopleSoft HGrid" border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgk5hZkM15idv7WB3XYqqC5_afQsDfB69dKsKobeaIUR7U5OMBK_huQK06CVAdVkEsX9lCO1_BM6foMqgllOqhdQxVliH3oCKFXvlz1hR1EriG5XUJI67EFhwMr4ynB5xZnY3DipvOa3lY/s1600/HGid_PeopleSoft.JPG" title="PeopleSoft HGrid" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">PeopleSoft HGrid</td></tr>
</tbody></table>
</o:p></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"/> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"/> <v:f eqn="sum @0 1 0"/> <v:f eqn="sum 0 0 @1"/> <v:f eqn="prod @2 1 2"/> <v:f eqn="prod @3 21600 pixelWidth"/> <v:f eqn="prod @3 21600 pixelHeight"/> <v:f eqn="sum @0 0 1"/> <v:f eqn="prod @6 1 2"/> <v:f eqn="prod @7 21600 pixelWidth"/> <v:f eqn="sum @8 21600 0"/> <v:f eqn="prod @7 21600 pixelHeight"/> <v:f eqn="sum @10 21600 0"/> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/> <o:lock v:ext="edit" aspectratio="t"/> </v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1025" type="#_x0000_t75"
style='width:468pt;height:195pt;visibility:visible;mso-wrap-style:square'> <v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/> </v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
There are many delivered methods which will do all the fancy jobs like cut, copy, paste, expand all, collapse all, move up/right/down/left etc… In PeopleSoft FSCM, there is a delivered work record POOL_HGRID_WRK which can be added to the page for designing these fancy buttons. You can even have your own work records with necessary fields to perform these actions.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
While designing your HGrid, you should be having a physical table to store the hierarchy (level) information of the HGrid, for this you might have to introduce two fields to capture the level number and the row number of any particular row. There is also a delivered sub record (HGRID_LEVEL_SBR) which can be used to capture the level details of the rows. Once you have the Table/View ready, all you have to do is to configure the HGrid package. In PeopleSoft FSCM or HCM databses you could find out a delivered application package name HGRID which contains the business logic for the Hgrid. You could extent or use the application class to create your own HGrids.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The main properties which you would need to configure will be as below.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u>General<o:p></o:p></u></div>
<div class="MsoNormal">
<u><br />
</u></div>
<div class="MsoNormal">
<i>DisplayOnly</i>: Specify whether the grid is read only or editable</div>
<div class="MsoNormal">
<i>CreateLevelSeqNumHierarchy</i>: Specify whether the level sequencing is handled manually or not</div>
<div class="MsoNormal">
<i>HGridRowRefNumFieldName</i>: Field which carries the row number</div>
<div class="MsoNormal">
<i>HGridRowRefNumRecordName</i>: Record which carries the row number </div>
<div class="MsoNormal">
<i>AssignRefNum</i>: Specify whether the row number is generated automatically or not</div>
<div class="MsoNormal">
<i>HGridLevelFieldName</i>: Field which stores the level information</div>
<div class="MsoNormal">
<i>HGridLevelRecordName</i>: Record which contains the level field</div>
<div class="MsoNormal">
<i>HGridLevelSeqNumRecordName</i> : Record which contains the detail level fields</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u>Grid Properties<o:p></o:p></u></div>
<div class="MsoNormal">
<u><br />
</u></div>
<div class="MsoNormal">
<i>HGridRowSelRecordName</i>: Record Used for selection indicator</div>
<div class="MsoNormal">
<i>HGridRowSelFieldName</i>: Field Used for selection indicator</div>
<div class="MsoNormal">
<i>HGridDescrRecordName</i>: Record which contain the actual description field</div>
<div class="MsoNormal">
<i>HGridDescrFieldName</i>: Actual description field</div>
<div class="MsoNormal">
<i>HGridDescrDisplayRecordName</i>: Record which is used to display the decription as HTML</div>
<div class="MsoNormal">
<i>HGridDescrDisplayFieldName</i>: Field which is used to display the description as HTML</div>
<div class="MsoNormal">
<i>DescrChangeControlFieldName</i>: Control field to handle the description (will be invisible)</div>
<div class="MsoNormal">
<i>DescrChangeControlRecordName</i>: Record which contains the control field</div>
<div class="MsoNormal">
<i>DescrChangeControlPageFieldName</i>: The page field name of the control field</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<u>Control Properties<o:p></o:p></u></div>
<div class="MsoNormal">
<u><br />
</u></div>
<div class="MsoNormal">
<i>ExpCollControlFieldName</i>: The control field to expand/collapse the hierarchy (invisible)</div>
<div class="MsoNormal">
<i>ExpCollControlRecordName</i>: Record which contains the control field</div>
<div class="MsoNormal">
<i>ExpCollControlPageFieldName</i>: Page field name of the field</div>
<div class="MsoNormal">
<i>ExpCollFlagFieldName</i>: Field which stores the expansion/collapse information</div>
<div class="MsoNormal">
<i>ExpCollFlagRecordName</i>: Record which contains the above field</div>
<div class="MsoNormal">
<i>DisplayWBSColumn</i>: Specify whether you need to add bullet points for the hierarchy</div>
<div class="MsoNormal">
<i>WBSFieldName</i>: Field which contains the bullet information</div>
<div class="MsoNormal">
<i>WBSRecordName</i>: Record which contains the above field</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Having done the above, you are 90% done with the HGrid design and configuration. All the rest you need to do is to invoke the appropriate methods from the appropriate events.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you have your own requirements of manipulating the data based on rolling up/down, then you may have to create your own methods and extend the delivered one. For all the basic functionality the delivered ones should be working fine.</div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
When you design a HGrid, consider all the facts including the data set, data model, real requirement and then come to a conclusion of designing an HGrid. A wrong design might take a toll on the performance of the application.</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1tag:blogger.com,1999:blog-2131509019147385078.post-83768562787294338292014-03-22T23:54:00.002-07:002014-03-22T23:58:50.283-07:00Adjusting Timeout and Auto saving of PeopleSoft page<div class="MsoNormal">
I was working on a requirement where for some particular
self service pages which are exposed to the public, I need to extend the time
out of that particular component alone as there are many data entry fields and
it is obvious that the user will be taking more time to fill out the form. While working for the
same, another requirement came in picture from the users that, the page needs to
be saved after particular time frame.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Obviously the first thing which came to mind is tweaking of
delivered javascript libraries, however it is going to be a customization and
will be having a global impact. So thought of having a custom javascript for
the particular page alone. There are many scripts available over the net to
tweak the time out or to do an auto save functionality.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
However I came across a simpler article which provides the
script to do both the functionality, tweaking timeout as well as autosaving. I
thought it will be worth sharing it over here so the readers could also make benefit
of it.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The script is coded to make a save after specified time and
then do a time out again after the same time frame. You could tweak the script
to achieve the timeout immediately after the save or some other way based on
your requirement.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
You can find the article over here: <a href="http://it.toolbox.com/wiki/index.php/Change_Timeout_Limit_and_Autosave_via_JavaScript">http://it.toolbox.com/wiki/index.php/Change_Timeout_Limit_and_Autosave_via_JavaScript</a></div>
<br />
<div class="MsoNormal">
<br /></div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-1858976131724044892014-02-20T08:06:00.004-08:002014-02-20T08:06:47.842-08:00Change Control for PeopleSoft Developers<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you are working in a large PeopleSoft development team
and if you and your team members are working on same area or objects it is very
obvious that you might have encountered scenarios where the changes of one
developer overwrites the changes of other developer. It is a very frequent scenario
and always results in finding root cause of missing changes and the re-writing the
original changes. There is a sort of control provided by PeopleSoft to control
this scenario to an extent. I’m not sure whether every organization is aware of
this or if they are utilizing this feature. This post is primarily targeted for
those who are not aware of this.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The mechanism provided by PeopleSoft to avoid overwriting of
the changes is called Change Control in PeopleSoft. This needs to be setup by
the PeopleSoft Administrator of your team.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To activate this feature, the admin needs to log in to the
app designer and select the Administrator item available in the Tools menu.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Tools > Change Control > Administrator</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="Picture_x0020_1" o:spid="_x0000_i1027" type="#_x0000_t75"
style='width:243pt;height:160.5pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image001.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVIf52Qgi39WSgh-iIRjgvHmsCb3frr261Pdmur90_OwS2lAWaSZw3ZeA4PwZ6SL84Au-zc12F39k97X6YhrcxWEloDqOUzU6ADeLJ2oxOkUdBf08xUed6xonIQcuIcTPOKb4n8T54iCU/s1600/Change+Control.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVIf52Qgi39WSgh-iIRjgvHmsCb3frr261Pdmur90_OwS2lAWaSZw3ZeA4PwZ6SL84Au-zc12F39k97X6YhrcxWEloDqOUzU6ADeLJ2oxOkUdBf08xUed6xonIQcuIcTPOKb4n8T54iCU/s1600/Change+Control.JPG" height="211" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="MsoNormal">
Select the <i>Use Change
Control Locking </i>to enable the change control for the development database.
If you want to audit the changes made to each object in application designer,
then you may have to enable the <i>Use
Change Control History </i>option as well.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Once this option is enabled for your database, in order to
work on any object in the application designer, developers has to lock the
object definition first. Once an object definition is locked by a developer, no
other developer will be able to modify/edit that particular object unless the
first developer finishes his work and unlocks the same object. There by the
locking will make sure that no other developer will be modifying the same
object at the same time you are working on it. So once you save your changes,
you can be sure that no other person will be overwriting your changes. Once you
unlock the object definition and the second person locks it for editing, the
second person will be getting a local cache of the object which contains the
changes added by the first person (<i>So no
app designer cache issue</i><i><span style="font-family: Wingdings; mso-ascii-font-family: Calibri; mso-ascii-theme-font: minor-latin; mso-char-type: symbol; mso-hansi-font-family: Calibri; mso-hansi-theme-font: minor-latin; mso-symbol-font-family: Wingdings;">J</span>).</i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
There are two popular ways to lock an object definition in
PeopleSoft. The first method is to add the object to the project and under the <i>Development </i>tab of the project sidebar,
right click the object definition. You will get an option to lock the object.
The <i>Unlock </i>option will be enabled
once the object is locked and vice versa.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK68rSG9-DpOaGN8TfYmN8ySf1d7IE8p_qwnhT6y8O5GsYVJQ9uJYRzEJzAt2v7zpXgTlKU7hfGdeE-gbnFVe5I-dPuVXRR8tm3PKgcl7bxqCmC3qbPDaXp7KTE8HM6Oldka7sCP24CKs/s1600/Locking+1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiK68rSG9-DpOaGN8TfYmN8ySf1d7IE8p_qwnhT6y8O5GsYVJQ9uJYRzEJzAt2v7zpXgTlKU7hfGdeE-gbnFVe5I-dPuVXRR8tm3PKgcl7bxqCmC3qbPDaXp7KTE8HM6Oldka7sCP24CKs/s1600/Locking+1.JPG" height="287" width="320" /></a></div>
<br />
<div class="MsoNormal">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_4" o:spid="_x0000_i1026" type="#_x0000_t75" style='width:262.5pt;
height:237pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image003.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The second method is to open the object in application
designer and check the tool bars menu, you will get an icon to lock the object,
unlock the object and to see the change history (<i>if enabled by the admin</i>).</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<!--[if gte vml 1]><v:shape
id="Picture_x0020_7" o:spid="_x0000_i1025" type="#_x0000_t75" style='width:283.5pt;
height:93.75pt;visibility:visible;mso-wrap-style:square'>
<v:imagedata src="file:///C:\Users\TONYTH~1.ORA\AppData\Local\Temp\msohtmlclip1\01\clip_image005.png"
o:title=""/>
</v:shape><![endif]--><!--[if !vml]--><!--[endif]--></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-jhtSm5Ese8wuF_5Ya8mFpCUzRAFpW7ax5Hmk6_5GtxqE7n44FeNjBgWDl34DDSgg0HIelk-U_QiqP5KVBwMWjw1ziUw_gixHHc_Jq0XnYjNewVbyOeimIT7q5L_1c1kMiTHTSUwfEvg/s1600/tool+bar.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-jhtSm5Ese8wuF_5Ya8mFpCUzRAFpW7ax5Hmk6_5GtxqE7n44FeNjBgWDl34DDSgg0HIelk-U_QiqP5KVBwMWjw1ziUw_gixHHc_Jq0XnYjNewVbyOeimIT7q5L_1c1kMiTHTSUwfEvg/s1600/tool+bar.JPG" height="105" width="320" /></a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Click the first icon (<i>locked</i>)
to lock the open object, second icon (<i>Unlocked</i>)
to unlock the open object, third icon (<i>comment</i>)
to add a comment to the change history and the fourth icon (<i>code</i>) to see the revision history of the
open object.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Whenever you use change control for development, ensure that
each developer has a unique id to log in to app designer. I believe most of the
organizations have a unique id for developer, but there are cases where individual
developers do not have a PeopleSoft id and every one in a team logs in using a
common developer id. If you are using a common developer id, then the change
control is of no use.</div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
Once you a developer is done with the editing, make sure
that you unlock the object so that the next person could start on working on
the same object.</div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-10787813833068742822014-01-21T12:45:00.000-08:002014-01-21T13:08:04.195-08:00PeopleSoft Feature 9.2 Pack Release (PUM Image 4)<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Shortly after the bigger release of PeopleSoft 9.2, now
Oracle has come up with the first value addition with its Feature Pack release.
Feature Pack is an older concept and now everything done through Images. The
new features are now released with PeopleSoft 9.2 image 4. PeopleSoft 9.2
customers can now go and upgrade to the latest release of 9.2 by using Make Me
Current option with the PeopleSoft 9.2 Image# 4. Now with the help of
PeopleSoft Update Manager, customers can even select and apply only the
features required by them.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
From the FSCM side, PeopleSoft has introduced many new
features including but not limited to, Mobile Approvals and Transactions, eMail
Approvals, Real Time Bottom Line system for use with inMemory machines, Project
Discovey applications with Endecca for use with Oracle Exalogic systems, New
additions to WorkCenters and more Search capabilities. Human Capital Management
systems has released greater integrations with the Taleo systems.</div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
To get the full list of features released with image 4,
existing PeopleSoft customers can download the release value proposition from <a href="https://support.oracle.com/epmos/faces/DocumentDisplay?id=1612995.1">this</a>
link.</div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-16420851766291067912014-01-06T08:24:00.000-08:002014-01-06T08:24:59.179-08:00Finding components where a particular field is used<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
As a part of impact analysis while doing any major
development work in PeopleSoft, often you may have to search for definition
references of fields and other objects.
The Find In will bring out list of all the pages where the field might
be used. Now to find out the component list where these pages are used, you may
have to end up doing the Find In for each and every page. Sometimes if the
referenced pages are more, it will become a tiring work. I want to share a
simple SQL which could reduce most of your work if you are looking for
component references for a field.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Again, the SQL provided here is a simple one and for example
purpose. However you could explore more on the system tables and come up with
such simpler and time saving SQL’s. If you already do have some, keep sharing
the same in the comments section.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">SELECT nvl(b.pnlgrpname,'</span><span style="color: #548dd4; mso-themecolor: text2; mso-themetint: 153;">Not added in any component.</span><span style="color: #7030a0;">') AS Component,<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;"> a.pnlname AS Page,<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;"> a.pnlfldid AS FieldId<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">FROM pspnlfield a,<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;"> pspnlgroup b<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">WHERE a.recname = '</span><span style="color: #548dd4; mso-themecolor: text2; mso-themetint: 153;">RECORD_NAME'</span><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">AND a.fieldname = '</span><span style="color: #548dd4; mso-themecolor: text2; mso-themetint: 153;">FIELD_NAME'</span><span style="color: #7030a0;"><o:p></o:p></span></i></div>
<br />
<div class="MsoNormal">
<i><span style="color: #7030a0;">AND a.pnlname =
b.pnlname(+);<o:p></o:p></span></i></div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com3tag:blogger.com,1999:blog-2131509019147385078.post-22048730042712332922013-11-29T05:42:00.000-08:002013-11-29T05:42:37.034-08:00RowInit & RowInsert PeopleCode and database insert<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Today I was debugging an issue where in a ghost row is
getting inserted into the grid in level 2 even if the user is not entering any
value for the grid in level 2. There are many instances where you find the
ghost row issue in PeopleSoft. This one was particular to the sequencing number
and which is almost a common case across the product. So I will explain a bit
about the ghost row issue with the particular case.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The page has a structure up to level 3. And my level 2
additional key is a sequence number which is auto populated by the system. Now
when the user goes in add mode and enter any data up to level 1 (assuming he is
adding only one row which is presented by default) and saves the page, then everything
seems fine. The data up to level one is inserted into the database as user has
filled only up to level 1.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now if he tries to add another row at level one and enter
data only in level 1 or if he just clicks the + button on the level 2 of the
level 1 first row, then a ghost row of level 2 is getting inserted into the
database even though user has not entered any data into the level 2 rows.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u><span style="font-size: 14.0pt; line-height: 115%;">Problem<o:p></o:p></span></u></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The reason for the ghost row is the sequencing logic written
in RowInsert event. Since the additional key for level 2 is a sequence number
which is populated automatically by the system, whenever the sequencing logic
executes and assigns a value from the RowInsert event, the system automatically
sets that particular row as changed and will mark it for database insert during
the time of save.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Most of the places where auto sequencing is used, the
sequence number field is read only and user cannot delete its value thus
forcing the system to insert the row into database; making the case more
complicated.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
PeopleBooks has clearly mentioned that if you change the
value of any field in the RowInit or RowInsert events, the system will mark the
row as changed and will be considered during the save processing.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
But in most cases, you are forced to write the logic in
RowInsert event because it is apt to display the next sequence number whenever
user clicks the plus button.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now back to the issue why there was no ghost row inserted my
first default row at level 1? The reason is pretty straight forward, the
RowInsert event will get fired only when the user adds a row, for default rows
that event is ignored.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u><span style="font-size: 14.0pt; line-height: 115%;">Solution<o:p></o:p></span></u></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This might be a well known situation so that PeopleTools has
provided the solution for the problem as well. There is a delivered property
for rowset class called ChangeOnInit. All you need to do is to set that
property to false during the component load processing or during the RowInit
processing of the higher level (in my case it is level 1). Once this property
is set to false, the component processor will no longer mark the row as changed
whenever a field value is programmatically updated in RowInit or RowInsert
events, thereby that row will not be considered for database insert until and
unless user updates any value on the field. This is a pretty handy property
which avoids programmatic defaults be inserted into the database when it is not
actually supposed to be inserted. Thus, this one line code will take away the
headache. You can see the sample code given below which will address the given
situation of ghost row.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem This code should be written on the RowInit of the
primary record one level up;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem In this case code is written at Level 1 to resolve ghost
row issue at level 2;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #00b050;"><br /></span></i></div>
<br />
<div class="MsoNormal">
<i><span style="color: #7030a0;">GetRow().GetRowset(Scroll.LEVEL2_REC).ChangeOnInit =
False;<o:p></o:p></span></i></div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com1tag:blogger.com,1999:blog-2131509019147385078.post-21224159547220934472013-11-21T10:26:00.003-08:002013-11-21T10:26:48.764-08:00Controlling Row Selecting Programmatically<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Most widely used mechanism in PeopleSoft to bring data into
scrolls and grids on pages is using the default <i>AutoSelect </i>option on the scroll or grid properties. The <i>AutoSelect </i>will automatically populate
your grid or scroll based on the higher order keys. But there are some cases
where you may not need to load the entire data based on the higher order keys.
You might want to cut down some of the data based on some field values, such as
show up the city details of a country only if the city is marked as a state
capital. The best and most effective method to handle this situation is to use
a view (which checks for the capital status) and then use the <i>AutoSelect </i>property of the scroll or
grid. This will help you to achieve the result with less effort and more
efficiently.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
But sometimes there arise a scenario where in you need to
populate the scroll or grid based on the values on the other fields in the
page. I’m sure most of you might have gone through this scenario and might very
well aware of the solution. De-Select the <i>AutoSelect
</i>property and populate the grid or row programmatically using the delivered
function <i>ScrollSelect. </i>For people who
are on relatively higher versions of PeopleTools, PeopleTools has provided a
much faster and efficient method for the rowset called <i>Select </i>method. In visual effects the result of the function and
method are going to be same. The usage also does not vary much. In the select
parameters you pass the main record name and the dynamically built where clause
which will form the required criteria based on the values selected on the
higher level of your page. Usually this piece of code is associated under the <i>FieldChange </i>event of a push button. But
in certain occasions it is wiser to use in <i>PageActivate
</i>event or component <i>PostBuild </i>event.
Again where to write the code depends on your actual requirement.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The reason I posted this article is that there are some less
known delivered functions which helps you in controlling the row selection into
a grid or scroll. These functions may not find enough usage in your normal
requirements, but you may find it very useful and simple in some other cases.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
The functions I would like to talk here is <b>DiscardRow </b>and <b>StopFetching</b>.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>DiscardRow<o:p></o:p></u></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This function allows you to selectively eliminate or discard
some rows being added to the grid or scroll. You can check for the values in
the selected row and then call this function so that if the value is not
required then it will not be selected into the page. This function needs to be
written at <i>RowSelect</i> event and is
valid only at this particular event.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Take the first scenario where you need to show only capital
city in the grid or scroll. Suppose now your requirement is when you load the
component for a state, you need to display all the cities except the capital
city. The first thing that may come to your mid may be creating a view and then
assigning <i>AutoSelect </i>property at grid
or scroll level. Some people may think of deselecting the <i>AutoSelect </i> and populating
the grid/scroll with peoplecode functions such as <i>ScrollSelect </i>at the component load or page load events.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
But the easiest approach will be to write a code in the <i>RowSelect </i>event so that check if the
city is capital, if that is true then call this function. Three lines of code
will solve all the complications.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Having said the above, this function is not supposed to use
every now and then. Use this function only if the amount of data selected is
large and the number of rows to be discarded is negligible. Like the capital
city example, there is only one row to be discarded so using this function
holds good. If you have many more rows to be discarded, better go for view or
select functions. If you use this function when there are many rows to be
discarded, it may tamper the performance of the application.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem see the example for the usage ;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">If CITY_TBL.CAPITAL_FLAG = “Y” Then<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-indent: .5in;">
<i><span style="color: #7030a0;">DiscardRow();<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">End-IF<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><u>Stop Fetching<o:p></o:p></u></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This is
another function which is rarely used but very useful in some scenarios. The <i>StopFetching </i>function will stop
retrieving any more additional rows from the database and adding it to the
page. This function should also be used in <i>RowSelect
</i>event only. The current row which is being processed will be added to the
page. If you don’t want to add the current row as well then use <i>DiscardRow() </i>first and then <i>StopFecthing().<o:p></o:p></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Consider
using this function when you are trying to do a data chunking logic where the
order by costs a lot for the database you use. For this scenario, all you need
to have is a component variable as a counter and increment whenever a row is
selected. Once the counter meets the required count, call this function and it
will save some time by not loading all the rows. But where ever possible and
your db supports, then the chunking logic with row number and order by will be
the best fit.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Another rare
use case where you can consider this is when you need to display only first few
rows based on some criteria selected on the page. Suppose you are displaying
all the cities in a grid for the state page. And you have a rare case where for
state Washington you need to display all the cities and for New York display
only first three cities (<i>imagine there is
such a requirement</i>). Then you could write the code in <i>RowSelect </i>event to count and an <i>if</i>
clause to check if count is 3 and city is New York. If the conditions are met
then call this function. Again try avoiding this function if the volume of data
to be selected in the database is large. That may again increase the cost of
the SQL query.<o:p></o:p></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #00b050;">rem see the example for usage;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">Component Number &nCount;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">If STATE_TBL.STATE_CD = “NY” Then<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-indent: .5in;">
<i><span style="color: #7030a0;">&nCount = &nCount + 1;<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-indent: .5in;">
<i><span style="color: #7030a0;">If &nCount = 3 Then<o:p></o:p></span></i></div>
<div class="MsoNormal" style="margin-left: .5in; text-indent: .5in;">
<i><span style="color: #7030a0;">StopFetching();<o:p></o:p></span></i></div>
<div class="MsoNormal" style="text-indent: .5in;">
<i><span style="color: #7030a0;">End-If;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<i><span style="color: #7030a0;">End-If;<o:p></o:p></span></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
Though these
functions prove to be handy at some scenarios, these may prove worst in other
cases. So these functions need to be implemented judiciously and based on case
by case.<o:p></o:p></div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-90606279682368761362013-11-15T06:18:00.000-08:002013-11-15T06:18:49.734-08:00PeopleSoft 9.2 Demo Environments<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For those who want to have a look and feel of PeopleSoft 9.2
applications at tools release 8.53, Oracle has made available PeopleSoft 9.2
Demo VM’s for them. The demo environments are available for CRM, ELM, HCM and
FSCM 9.2 applications. It is delivered as Virtualbox virtual machines. All the
servers including appserver, webserver and database are pre-deployed in the VM
images. So you no longer need to configure any of these. Just download the
images and mount the image, your demo environment is up and ready for
exploration. The demo environments contain the full functionality offered by
PeopleSoft 9.2 applications. Oracle made these images free for all the people
under limited licenses. You could download and use this to see the look and
feel and the functional capabilities of the 9.2 applications.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
These images can be deployed even in your desktop machines.
You need to have enough storage (nearly 25 GB) capacity and enough memory (8GB
should be sufficient) to deploy these applications.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
To get the downloadable files and instructions to deploy the
image, visit the Oracle support site (provided below). You may need to have a
single user id with oracle to download these files.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=345220936521188&id=1552548.1&_afrWindowMode=0&_adf.ctrl-state=8162yd9pk_4">https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=345220936521188&id=1552548.1&_afrWindowMode=0&_adf.ctrl-state=8162yd9pk_4</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Check out the below video posted by Oracle PeopleSoft group
to learn more about Virtual Machine deployment.</div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/WNGIUfop8Eo?list=PL4okLhHVjSg5nP9So9CtQVMeA_GS_PqAG" width="560"></iframe>
</div>
</div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com0tag:blogger.com,1999:blog-2131509019147385078.post-84256352875051674682013-11-04T05:33:00.002-08:002013-11-04T05:33:42.209-08:00Branding your PeopleSoft 9.2 Application<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
All set to upgrade your application to PeopleSoft release
9.2? The one mandatory step which most of the customers does when they
implement a PeopleSoft application is personalizing or branding the application
with the company logos and styles. PeopleSoft administers must be aware of
incorporating all the non-PeopleSoft stuff with the PeopleSoft applications.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Now with the combination of PeopleSoft 9.2 and PeopleTools
8.53, branding the application to your company specific needs has became a
simpler task. PeopleTools is delivering an online page which helps in uploading
your organization specific Logo’s, StyleSheets, HTML sub pages and Javascripts.
Yes, with this you no longer need to login to the servers and administer the
profiles. Your application can be customized or branded from within the
application itself.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
All you need to do is, with administrator access log in to
PeopleSoft and navigate to </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>PeopleTools >
Portal > Branding > Branding Objects<o:p></o:p></b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
You will get 4 tabs to upload your custom HTML code,
Javascript Code, Style Sheet Code and Images.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
For instance to upload the image, go to the image tab and
click on <i>Upload Image Object </i>hyperlink.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMKPeFcBFwTS7zplKTgC6pfb6R4IJGSGV5oIdJFsABD8XK0evQiknmfD-uNqNvJgP2E3uy1g40TjGYhhgMMHUq3TYmc5HNlfWkEcoQ-__CMsfCOgPxV8DZWpO0nZ0WLSS7NHc-TTVt9c4/s1600/UploadImage.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMKPeFcBFwTS7zplKTgC6pfb6R4IJGSGV5oIdJFsABD8XK0evQiknmfD-uNqNvJgP2E3uy1g40TjGYhhgMMHUq3TYmc5HNlfWkEcoQ-__CMsfCOgPxV8DZWpO0nZ0WLSS7NHc-TTVt9c4/s320/UploadImage.JPG" width="320" /></a></div>
<div class="MsoNormal">
<br />
<!--[endif]--></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
This will bring up a modal page to enter the details of the
logo.</div>
<div class="MsoNormal">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibU-f_GYKtLZ33VHE8Bt6MuDPpJuvkzBdYDIKuwVXrp2aX9AeExEsFDi6hQbIPRSXhwVKg6d63qYt3qmNxo1KVIvFCdNPXeng4D3Ib3C3t5XGSmT9yFvz6gVL_KfRkMZOAx1zR4ErTTDs/s1600/Add+or+Edit+Image.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="173" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEibU-f_GYKtLZ33VHE8Bt6MuDPpJuvkzBdYDIKuwVXrp2aX9AeExEsFDi6hQbIPRSXhwVKg6d63qYt3qmNxo1KVIvFCdNPXeng4D3Ib3C3t5XGSmT9yFvz6gVL_KfRkMZOAx1zR4ErTTDs/s320/Add+or+Edit+Image.JPG" width="320" /></a></div>
<div class="MsoNormal">
<br />
<!--[endif]--></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
If you are using the default style sheet, it is recommended
that you use the image name which is same as the default image name (<i>as shown above</i>). For custom style
sheets, the image name depends on how you defined it. <i>Be careful when you give the name, if there already exists an object
with the same name, then the file you are planning to upload will replace the
existing object.<o:p></o:p></i></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Once you upload and save, you are almost done. Check your
portal and see if the changes are reflected there. If it is not reflected, then
clear your AppServer, WebServer and WebBrowser caches and try again.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Similar to uploading the logo, you can apply other brandings
such as HTML to display the password expiry text, JavaScript to control other
LogoOn validations, StyleSheets to change the color, text and other themes. You
can upload the scripts in their respective tabs.</div>
<div class="MsoNormal">
<br /></div>
<br />
<div class="MsoNormal">
Similar to branding your overall portal experience,
PeopleSoft now allows you to customize your PeopleSoft pagelets to show your
custom icons and styles. Branding the pagelets is also similar to branding the
application. You can find the page to brand your pagelet in the same folder as
you do for the portal (i.e. <b>PeopleTools
> Portal > Branding</b> ). To read more about branding, refer PeopleBooks
corresponding <a href="http://docs.oracle.com/cd/E41633_01/pt853pbh1/eng/pt/tprt/task_CreatingAndMaintainingPortalBrandingObjects.html#CreatingAndMaintainingJavaScriptObj-99F90244__HTMLObjectsCreatedInPeopleSoftAppli-9A475BE5">chapter</a>.</div>
</div>
Tonyhttp://www.blogger.com/profile/15957950620803247548noreply@blogger.com2