PSST0101

November 27, 2007

Updated: PeopleTools Tables

Filed under: PeopleTools, PeopleTools Reference — digitaleagle @ 6:19 pm

Here is just a quick post to let you know that I have added a few more tables to the PeopleTools Tables page:

  • PSCONTENT
  • PSCONTDEFN

These tables are related to HTML definitions.  I was using them to check to make sure that I have all of the HTML definitions that I have created in my project.

Here is a link to the page:

http://psst0101.wordpress.com/peopletools-tables/

November 15, 2007

HowTo: Creating IScripts

Filed under: PeopleTools — digitaleagle @ 8:27 am

Step 1: WEBLIB_ record

You must put your PeopleCode on a record that begins with “WEBLIB_”. You can either create one or add onto an existing record that meets that naming convention.

Step 2: Create the PeopleCode Function

The function name should start with “IScript_”.

%Response

You can use the %Response to create the output HTML, XML, or other format. The Write function is the main function that you will use:

%Response.Write(”<b>Hello, World</b>”);

%Request

You can use the %Request object to read parameters that were sent to the script. For example, if the URL had “?EMPLID=00001″ at the end of it, you could use the following PeopleCode to read it:

&emplid = %Request.GetParameter("EMPLID");

Step 3: Security

You must grant security to your IScript before you can view it. This is done on the Permission List just like the security for a regular page.

Nagivation to the Permission Online:

PeopleTools > Security > Permissions & Roles > Permission Lists

Go to the WebLibraries page/tab.

On that page, you will need to enter the record name of the script. Then, click on the Edit link to choose the specific IScript that you wish to grant access.

Step 4: Determine the URL

The URL for a component looks something like this:

… /c/MenuName.ComponentName.Market

The URL for an IScript looks something like this:

… /s/RecordName.FieldName.Event.FunctionName

See PeopleBooks for more information.

Step 5: Register Your IScript

If an end-user should access the IScript, you need to put a content reference in the menu for easy access. You can do so, by registering your script through the registration wizard. If you just intend to access the script via code, you don’t need to do this step.

When you open a record that begins with “WEBLIB_”, you will notice a new button on the toolbar for the registration wizard. Just click that button and follow the steps.

See PeopleBooks for more information.

Resources

These resources may not be as relevant:

July 10, 2007

Response: Array Class Generic Sort

Filed under: Application Packages, PeopleCode, PeopleTools — digitaleagle @ 5:47 pm

Here is my attempt at providing details in response to an article by ChiliJoe called PeopleCode Array Class’ Generic Sort.

Basically, ChiliJoe is referring to a vague example in PeopleBooks that says, “For example, suppose you want to provide a more generic sort, with comparison function at the end of it.” This is in the section: “When Would You Use Application Classes?“.

The key to this example is that you have to write the sort by extending the array class. Here is an attempt at writing an example:
(more…)

July 3, 2007

Response: Private/Instance Variables

Filed under: Application Packages, PeopleCode, PeopleTools — digitaleagle @ 11:01 pm

ChiliJoe posted in Access to Instance Variables within the Same Class that an instance can change the value of another instance’s private variable.

At first, this sounds like it doesn’t make sense — an instance shouldn’t be able to access something private to another instance. But, in my opinion, the private is to protect it from code that may not understand or may violate rules the class depends on. From that point of view, it does make sense. Whoever wrote the code for the class knows what the value should be, and therefore, can be trusted to change it. Therefore, it can change any instance’s private variable as long as it is the same class. Whoever wrote the other class may not even be able to look at the code to see if they are going to mess things up, and therefore, cannot access the variable.

I think the PeopleSoft names make it confusing. Instead of calling it private, PeopleCode calls it instance, which would lead you to think that only that instance could access it. Actually, it is private to the class, not the instance.

So, to take the challenge, I translated ChiliJoe’s code to Java just to see if it works the same in Java. It does:

package com.skp.peoplecodejavacompare;

public class Example {
private Example newInstance;
private int num = 0;

public void createNewInstance() {
newInstance = new Example();
}

public int incrementNewInstanceNum() {
newInstance.num++;
return newInstance.num;
}

public int incrementThisInstanceNum() {
num++;
return num;
}

public void incrementPassedNum(Example passed) {
passed.num ++;
}

public int getThisInstanceNum() {
return num;
}

public static void main(String[] args) {
Example test1 = new Example();
test1.createNewInstance();

System.out.println(“incrementNewInstanceNum returns “ + test1.incrementNewInstanceNum());
System.out.println(“getThisInstanceNum returns “ + test1.getThisInstanceNum());
System.out.println(“incrementThisInstanceNum returns “ + test1.incrementThisInstanceNum());
System.out.println(“incrementNewInstanceNum returns “ + test1.incrementNewInstanceNum());

Example test2 = new Example();
System.out.println(“test2.getThisInstanceNum returns “ + test2.getThisInstanceNum());
test1.incrementPassedNum(test2);
System.out.println(“test2.getThisInstanceNum returns “ + test2.getThisInstanceNum());
}
}

Output:

incrementNewInstanceNum returns 1
getThisInstanceNum returns 0
incrementThisInstanceNum returns 1
incrementNewInstanceNum returns 2
test2.getThisInstanceNum returns 0
test2.getThisInstanceNum returns 1

June 19, 2007

HCM9.0: Resizing the Database

Filed under: PeopleSoft HCM 9.0, PeopleTools, Server Administration — digitaleagle @ 5:29 pm

The database of my PeopleSoft HRMS 9.0 VMWare Image was larger than I expected. I had to get the database down to a manageable size so that we can easily make backup copies of the image. Here is what I did:

  • Starting Size: 63.6 Gb
  • Finishing Size: 39.8 Gb

Query to Determine Where to Free Up Space

SELECT a.tablespace_name,
total_free_space,
ROUND(total_free_space / 1042, 2) free_k,
ROUND(total_free_space / 1042 / 1042, 2) free_m,
ROUND(total_free_space / 1042 / 1042 / 1042, 2) free_g,
largest_free_extent,
total_size,
ROUND(total_free_space / total_size *100, 2) percent_free
FROM
(SELECT tablespace_name,
SUM(bytes) total_free_space,
MAX(bytes) largest_free_extent
FROM dba_free_space
GROUP BY tablespace_name)
a,
(SELECT tablespace_name,
SUM(bytes) total_size
FROM dba_data_files
GROUP BY tablespace_name)
b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY 2 DESC;

Query to Determine Files for the Tablespace

SELECT file_name,
file_id,
tablespace_name,
bytes,
ROUND(bytes / 1042 / 1042, 2) mb,
maxbytes,
ROUND(maxbytes / 1042 / 1042, 2) maxmb,
(SELECT ROUND(SUM(bytes) / 1024 / 1024, 2) mb
FROM dba_segments
WHERE tablespace_name = a.tablespace_name
AND header_file = a.file_id)
used_mb,
(SELECT ROUND(((header_block + blocks) *8192) / 1024 / 1024, 2) end_mb
FROM dba_segments
WHERE tablespace_name = a.tablespace_name
AND header_block =
(SELECT MAX(header_block)
FROM dba_segments
WHERE tablespace_name = a.tablespace_name)
)
lastused_position
FROM dba_data_files a
WHERE tablespace_name = ‘PSDEFAULT’;

How I Resized My Tablespaces

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PSINDEX2.DBF’
RESIZE 6266M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\SYSTEM01.DBF’
RESIZE 600M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PSIMAGE.DBF’
RESIZE 1300M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\TLWORK.DBF’
RESIZE 477M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\TLAPP.DBF’
RESIZE 80M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\GPAPP.DBF’
RESIZE 890M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PSUNDOTS01.DBF’
RESIZE 150M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\HRLARGE.DBF’
RESIZE 650M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PTTLRG.DBF’
RESIZE 300M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\HRAPP.DBF’
RESIZE 375M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\SAAPP.DBF’
RESIZE 325M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\CCAPP.DBF’
RESIZE 290M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PY0LRG.DBF’
RESIZE 280M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PTTBL.DBF’
RESIZE 250M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\FAAPP.DBF’
RESIZE 225M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\TLLARGE.DBF’
RESIZE 210M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\AAAPP.DBF’
RESIZE 170M;

ALTER DATABASE DATAFILE ‘E:\ORADATA\HCM90\PSDEFAULT.DBF’
RESIZE 5M;

Resources

Tablespace Information

Alter Tablespace Syntax

Oracle Data & Temp Files

June 14, 2007

PeopleTools Tip: Finding a Component Interfaces

Filed under: Component Interface, Components, PeopleTools, PeopleTools Tip — digitaleagle @ 6:00 pm

If you know the name of the component interface, you can easily find it in App Designer.  Just press Ctrl+O or File > Open and search for it by name.  But, what if you only know the name of the component that the component interface accesses?

You have to go to the database.  Try this SQL (replacing <Component_Name> with your actual component) :

SELECT * FROM PSBCDEFN
WHERE BCPGNAME = '<Component_Name>'

October 24, 2006

PeopleSoft Information on the Internet

Filed under: PeopleTools, Resources — digitaleagle @ 10:09 pm
Next Page »

Blog at WordPress.com.