Thursday, January 19, 2012

Campus Solutions - Row level Security Components

Here is a sample SQL that will provide the components for CS Row Level security.  You can then reference the records within App Desginer and create *.dms scripts for exporting the user security.


SELECT a.portal_name,
       e.portal_label    AS parent4_folder,
       d.portal_label    AS parent3_folder,
       c.portal_label    AS parent2_folder,
       b.portal_label    AS parent_folder,
       a.portal_label    AS component,
       a.portal_uri_seg2 AS component_dbname
FROM   psprsmdefn a
       left join psprsmdefn b
         ON b.portal_name = a.portal_name
            AND b.portal_objname = a.portal_prntobjname
       left join psprsmdefn c
         ON c.portal_name = b.portal_name
            AND c.portal_objname = b.portal_prntobjname
       left join psprsmdefn d
         ON d.portal_name = c.portal_name
            AND d.portal_objname = c.portal_prntobjname
       left join psprsmdefn e
         ON e.portal_name = d.portal_name
            AND e.portal_objname = d.portal_prntobjname
WHERE  a.portal_reftype = 'C'
       AND e.portal_label LIKE 'Set Up SACR'
       AND d.portal_label LIKE 'Security';




Please also review this posting from PeoplesoftTipster.com


http://peoplesofttipster.com/2007/04/12/moving-peoplesoft-config-between-environments/#more-15

There are a number of tools you could use to achieve this, be it data mover, raw SQL or even an SQR or App Engine. All of these would need to be custom written. An alternative solution is to use the Manage Configuration Set functionality. It’s a delivered component (at least on more recent versions of the Application) that lets you choose the modules you wish to export config for, and it builds the DMS files (Data Mover Scripts) for you.

Sample Navigation:

http://<name:port>/psp/<environment>/EMPLOYEE/HRMS/c/EOLT_IMPLEMENTATION.EOLT_CONFIG_OPT.GBL
 
or go to PeopleTools > Portal > Structure and Content, drill down into Enterprise Components and edit Manage Implementations to not hide it from portal navigation (checkbox on first page).





Friday, November 18, 2011

Find Navigation Path or BreadCrumbs for a Component in Peoplesoft / Oracle

There have been some great blog posts for this type of query.  Here are a few that I like

From CompShack - http://www.compshack.com/breadcrumb/breadcrumb-sql-to-find-navigation-path-for-component-pia

From Peoplesoft Tipster - http://peoplesofttipster.com/2007/12/09/portal-navigation/


/* Provide navigation location for component */
SELECT a.portal_name,
       e.portal_label AS parent4_folder,
       d.portal_label AS parent3_folder,
       c.portal_label AS parent2_folder,
       b.portal_label AS parent_folder,
       a.portal_label AS component
FROM   psprsmdefn a
       left join psprsmdefn b
         ON b.portal_name = a.portal_name
            AND b.portal_objname = a.portal_prntobjname
       left join psprsmdefn c
         ON c.portal_name = b.portal_name
            AND c.portal_objname = b.portal_prntobjname
       left join psprsmdefn d
         ON d.portal_name = c.portal_name
            AND d.portal_objname = c.portal_prntobjname
       left join psprsmdefn e
         ON e.portal_name = d.portal_name
            AND e.portal_objname = d.portal_prntobjname
WHERE  a.portal_reftype = 'C'
       -- Parameter to set:  (In this case I used the component - ADM_APPL_MAINTNCE)
       AND a.portal_uri_seg2 = 'ADM_APPL_MAINTNCE' 

Alliance 2012


Looking forward to attending and presenting at the HEUG Alliance Conference 2012 in Nashville!

Here is the technical track session I will be presenting with a great colleague Andrew Cesario.


Wed, Mar 21, 2012 (09:15 AM - 10:15 AM)
     Technical

Thursday, August 11, 2011

Why are my Request Messages in Latin? Using SOAPUI

I have been scratching my head on this one for days and it was a simple setting.  I did change the value many times but didn't realize that I needed to reload the WSDL definition for the changes to take effect.  :-)

The sample values (in Latin) are created because of the soapUI Preferences.
If you dislike having these sample values or having to adjust them by hand, you can turn them off by ticking off WSDL Settings->Sample Values checkbox. When you add the WSDL again, the new sample requests will have no sample values and just a question mark. "? "


Settings:  Make sure this is unchecked.




When you uncheck the setting, you will have just the ? mark.






Tuesday, August 9, 2011

Monday, August 8, 2011

AAWS - Admissions Application Web Services - Info

My Oracle Support KM docs to review: 

CS 9.0 Bundle #21 Functional Documentation and Additional Features April 2011 (Doc ID 1314754.1)

Specific files to download:
1. CS_Bundle_21_Manage_Admission_Transactions.pdf (1.85 MB)
2. AAWS Users Guide.pdf (541 KB)
3. AAWS Developers Guide.pdf (1.11 MB)
 
Within Oracle/Peoplesoft there are 9 different web services provided with AAWS and 2 for Payment Processing.

There are six services for Application Processing:

  • Create Application - SAD_CREATEAPPL
  • Get Application - SAD_GETAPPL
  • Get Application(s) - SAD_GETAPPLS
  • Get Attachment - SAD_GETATTACH
  • Save Application - SAD_SAVEAPPL
  • Submit Application - SAD_SUBMITAPPL







There are three for User Registration:
  • User Authentication - SCC_USERREG_AUTHENTICATE
  • User Registration - SCC_USERREG_CREATEACCT
  • Get a List of Values - SCC_GET_LOV










JDBI - Making Clean APIs without enbedded SQL

I found this article and information interesting.  http://jdbi.org/  and http://jdbi.org/getting_jdbi/

Not having to embed SQL directly into Java.  By using this, one could create a packaged stored procedure, which would then make a cleaner API.


Friday, August 5, 2011

SQL Formatter

I have used this website for many years now.  It is a great site to format SQL and Text.  Check it out!

http://www.dpriver.com/pp/sqlformat.htm

Book Review - Oracle Peoplesoft Enterprise Financial Management 9.1 Implementation

  I have started to read and review this reference on Oracle Peoplesoft Enterprise Financial Management 9.1 Implementation.  The preliminary view thus far is optimistic and it appears to be a great reference for understanding Financial Management.  The author provides some outstanding screen shots and functional design items to reference.  The book's layout is organized and has great flow between chapters.



The functional and technical items covered are as follows listed by Chapter:


  • Chapter 1 - PeopleSoft Financials Fundamentals 
  • Chapter 2 - PeopleSoft Security
  • Chapter 3: PeopleSoft Billing Module
  • Chapter 4: PeopleSoft Accounts Receivable Module
  • Chapter 5: PeopleSoft Asset Management Module
  • Chapter 6: PeopleSoft Accounts Payable Module
  • Chapter 7: PeopleSoft General Ledger Module
  • Chapter 8: PeopleSoft Expenses Module
  • Chapter 9: PeopleSoft Commitment Control
Book Link to Publisher - http://link.packtpub.com/GnLy0X

    Friday, June 10, 2011

    Campus Solutions / HCM Split documentation - List of KM docs on My Oracle Support

    Great listing of Knowledge Management docs to review within My Oracle Support concerning the CS/HCM Split.

    http://support.oracle.com


    CS/HR Split

    • Campus Solutions to HCM Integration:  A Case Study on Integration Using the Owner Subscriber Option (Doc ID 1297158.1)
    • Campus Solutions CS - HCM Integration Support Released! 
    • (Doc ID 1267773.1)
    • CS Bundle #19 Functional Documentation for Campus Solutions 9.0 & Feature Pack 4(Doc ID 1259484.1)
    • Campus Solutions Announces Support and Documentation Availability for the Subscriber Only Model of the CS-HCM Separate Instance Integration (Doc ID 1320568.1)


    Tuesday, April 5, 2011

    How to Connect to a Oracle/Peoplesoft Database using PHP

    Entry from within tnsnames.ora file


    ORA_SERVICE = (DESCRIPTION = (ADDRESS = (PROTOCOL = tcp)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME=ora_service)))

     This is sample script to connect and execute a query:
    $db_conn["host"] = "ORA_SERVICE"; # service name in the tnsnames.ora file 
    $db_conn["user"] = "myuser"; # username 
    $db_conn["pass"] = "mypass"; # password 
    $db_conn["library"] = "OCI"; 
     
    $connect_id = ocilogon($db_conn["user"], $db_conn["pass"], $db_conn["host"]); 
     
    $query = "SELECT * FROM table"; 
    $statement = ociparse($connect_id, $query); 
    ociexecute($statement); 
     
    $result = array(); while(ocifetchinto($statement, $tmp, OCI_ASSOC + OCI_RETURN_NULLS + OCI_RETURN_LOBS)) { 
      array_push($result, $tmp); } 
     
    ocifreestatement($statement); 
     
    var_dump($result); # result is here 


    Please also review this connection link for PHP - http://www.php.net/manual/en/function.oci-connect.php

    SQL Query to find all Records within a Specific Peoplesoft Component

    I found this query on CompShack and wanted to also post on here.  I have used the following sample: 'ADM_APPL_MAINTNCE'

    This query would be useful when you do a CNTL+J and are wanting to know the table names without going into App Designer.

    SELECT DISTINCT (recname)
    FROM psrecdefn
    WHERE recname IN
    (SELECT DISTINCT (recname)
    FROM pspnlfield
    WHERE pnlname IN
    (SELECT DISTINCT (b.pnlname)
     FROM pspnlgroup a, pspnlfield b
    WHERE (   a.pnlname = b.pnlname OR a.pnlname =b.subpnlname)
    AND a.pnlgrpname = 'ADM_APPL_MAINTNCE' -- specify your component name)
    AND recname <> ' ')
    UNION
    SELECT DISTINCT (recname)
    FROM pspnlfield
    WHERE pnlname IN
    (SELECT DISTINCT (b.subpnlname)
     FROM pspnlgroup a,pspnlfield b
    WHERE (a.pnlname = b.pnlname OR a.pnlname = b.subpnlname )
    AND a.pnlgrpname = 'ADM_APPL_MAINTNCE') -- specify your component name)
    AND recname <> ' ')
    AND rectype in ('0')  -- specify record type, default is 0 for table
    --AND rectype in ('0', '1', '2')  -- specify all types
    ORDER BY recname ASC

    Thursday, March 3, 2011

    Create RSS 2.0 Feed from Application Engine (AE) / Peoplecode for Peoplesoft Job Postings

    Scope of the project:  Create RSS feed for Peoplesoft Job Postings

    1. Create custom view that provides all the long datatypes for the values you want to display in the feed.  (These will be different based upon your institution or company)

    SELECT A.HRS_JOB_OPENING_ID

    , B.HRS_JO_PST_SEQ
    , C.HRS_SEQ_NUM
    , B.POSTING_TITLE
    , C.HRS_JO_PST_OPN_DT "Open Date"
    , C.HRS_JO_PST_CLS_DT "Close Date"
    , A.HRS_PRM_LOCATION "Location"
    , I.DESCRLONG "College/Division"
    , P.DESCRLONG "Scope OF Search"
    , R.DESCRLONG "Grant Funded Position"
    , G.DESCRLONG "Posted Rate OF Pay"
    , H.DESCRLONG "Duties
    AND Responsibilities"
    , N.DESCRLONG "Minimum Qualifications"
    , O.DESCRLONG "Desired Qualifications"
    , Q.DESCRLONG "Department Statement/Gen Info"
    , J.DESCRLONG "Background CHECK Statement"
    , K.DESCRLONG "Standard Statement"
    , L.DESCRLONG "Close Date"
    , M.DESCRLONG "Instructions TO Apply"
    FROM PS_HRS_JOB_OPENING A
    , PS_HRS_JO_POSTING B
    , PS_HRS_JO_PST_DST C
    , PS_HRS_SOURCE D LEFT OUTER JOIN PS_HRS_SOURCE_SITE S ON (S.HRS_SOURCE_ID = D.HRS_SOURCE_ID
    AND S.EFFDT = D.EFFDT)
    , PS_HRS_STS_JO_I E
    , PS_HRS_JO_RSEC_VW F
    , PS_HRS_JO_PST_DSCR G
    , PS_HRS_JO_PST_DSCR H
    , PS_HRS_JO_PST_DSCR I
    , PS_HRS_JO_PST_DSCR J
    , PS_HRS_JO_PST_DSCR K
    , PS_HRS_JO_PST_DSCR L
    , PS_HRS_JO_PST_DSCR M
    , PS_HRS_JO_PST_DSCR N
    , PS_HRS_JO_PST_DSCR O
    , PS_HRS_JO_PST_DSCR P
    , PS_HRS_JO_PST_DSCR Q
    , PS_HRS_JO_PST_DSCR R
    WHERE A.HRS_JOB_OPENING_ID = B.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = C.HRS_JOB_OPENING_ID
    AND B.HRS_JO_PST_SEQ = C.HRS_JO_PST_SEQ
    AND C.HRS_JO_PST_TYPE = 'E'
    AND (C.HRS_JO_PST_CLS_DT > TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD')
    OR C.HRS_JO_PST_CLS_DT IS NULL)
    AND C.HRS_JO_PST_OPN_DT <= TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD')
    AND C.HRS_SOURCE_ID = D.HRS_SOURCE_ID
    AND D.HRS_SOURCE_TYPE = '40'
    AND A.STATUS_CODE = E.STATUS_CODE
    AND E.OPEN_STS_IND = 'Y'
    AND A.HRS_JOB_OPENING_ID = F.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = G.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = H.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = I.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = J.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = K.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = L.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = M.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = N.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = O.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = P.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = Q.HRS_JOB_OPENING_ID
    AND A.HRS_JOB_OPENING_ID = R.HRS_JOB_OPENING_ID
    AND G.HRS_JO_DESCR_TYP = 'P'
    AND H.HRS_JO_DESCR_TYP = 'R'
    AND I.HRS_JO_DESCR_TYP = 'S'
    AND J.HRS_JO_DESCR_TYP = 'L'
    AND K.HRS_JO_DESCR_TYP = 'I'
    AND L.HRS_JO_DESCR_TYP = 'E'
    AND M.HRS_JO_DESCR_TYP = 'C'
    AND N.HRS_JO_DESCR_TYP = 'Q'
    AND O.HRS_JO_DESCR_TYP = 'J'
    AND P.HRS_JO_DESCR_TYP = 'B'
    AND Q.HRS_JO_DESCR_TYP = 'D'
    AND R.HRS_JO_DESCR_TYP = 'G'
    AND D.EFFDT=(
    SELECT MAX(EFFDT)
    FROM PS_HRS_SOURCE X
    WHERE X.HRS_SOURCE_ID=D.HRS_SOURCE_ID
    AND X.EFFDT<=TO_DATE(TO_CHAR(SYSDATE,'YYYY-MM-DD'),'YYYY-MM-DD'))
    AND D.HRS_SOURCE_STATUS = '10'
    AND F.ROWSECCLASS = 'HCDPALL'
     
     
    2. Create custom AE, Component, Page, Record...etc
     
    3. Create step within AE to write file.  (Here is a sample from my program)
     
    /* RSS 2.0 Feed Creation for Job Postings - J.McMahon */

    Local File &MYFILE_rss;
    Local Record &Readrec;
    Local SQL &SQL1;
    Local string &FileName1, &inFilePath, &outFilePath, &subString;
    Local integer &COUNT;
    &tab = Char(9);
    &nl = Char(13);

    &URL_value = "your URL for image";
    &Link_value_header = STATE_REC_AET.URL;
    &Title_value = STATE_REC_AET.TITLE_MAIN;
    &Link_value_detail = STATE_REC_AET.URL_1;


    &FileName1 = "C:\temp\JM_rss_sample.rss";
    &MYFILE_rss = GetFile(&FileName1, "W", %FilePath_Absolute);

    MessageBox(0, "", 0, 0, &FileName1);


    &FIRSTROW = "Y";
    If &MYFILE_rss.IsOpen Then
    &Readrec = CreateRecord(Record.SOME_CUSTOM_VW);
    &SQL1 = CreateSQL("%Selectall(:1) ", &Readrec);

    While &SQL1.Fetch(&Readrec)

    &COUNT = &COUNT + 1;

    If &FIRSTROW = "Y" Then
             &XML_Top = "<?xml version=" | """1.0""" | " encoding=" | """utf-8""" | "?>";
             &RSS_Version = "<rss version=" | """2.0""" | ">";
             &Channel_tag = "<channel>";
             &Title = "<title>" | &Title_value | "</title>";
             &Link_rss = "<link>" | &Link_value_header | "</link>";
             &Descr = "<description>This Feed will contain <Your Company> job postings.</description>";
             &Lang = "<language>en-us</language>";
             &Copyright = "<copyright>2010-2015</copyright>";
            
             &MYFILE_rss.WriteLine(&XML_Top);
             &MYFILE_rss.WriteLine(&RSS_Version);
             &MYFILE_rss.WriteLine(&Channel_tag);
             &MYFILE_rss.WriteLine(&Title);
             &MYFILE_rss.WriteLine(&Link_rss);
             &MYFILE_rss.WriteLine(&Descr);
             &MYFILE_rss.WriteLine(&Lang);
             &MYFILE_rss.WriteLine(&Copyright);
            
             &MYFILE_rss.WriteLine("<image>");
             &MYFILE_rss.WriteLine("<title>" | &Title_value | "</title>");
             &MYFILE_rss.WriteLine("<link>" | &Link_value_header | "</link>");
             &MYFILE_rss.WriteLine("<url>" | &URL_value | "</url>");
             &MYFILE_rss.WriteLine("</image>");
                
             &FIRSTROW = "N";
          End-If;

    /* MessageBox(0, "", 0, 0, &Readrec.HRS_JOB_OPENING_ID.Value);
    MessageBox(0, "", 0, 0, &Readrec.POSTING_TITLE.Value);
    MessageBox(0, "", 0, 0, &Readrec.DESCRLONG.Value);
    */
    &College = &Readrec.DESCRLONG.Value;
    &College = RTrim(LTrim(&College));

    &Scope = &Readrec.ZZZ_DESCR_LONG.Value;
    &Scope = RTrim(LTrim(&Scope));

    &Grant = &Readrec.ZZZ_DESCR_LONG2.Value;
    &Grant = RTrim(LTrim(&Grant));

    &Posted = &Readrec.ZZZ_DESCR_LONG3.Value;
    &Posted = RTrim(LTrim(&Posted));

    &Duties = &Readrec.ZZZ_DESCR_LONG4.Value;
    &Duties = RTrim(LTrim(&Duties));

    &MinQ = &Readrec.ZZZ_DESCR_LONG5.Value;
    &MinQ = RTrim(LTrim(&MinQ));

    &Des = &Readrec.ZZZ_DESCR_LONG6.Value;
    &Des = RTrim(LTrim(&Des));

    &Dep_statement = &Readrec.ZZZ_DESCR_LONG7.Value;
    &Dep_statement = RTrim(LTrim(&Dep_statement));

    &Background = &Readrec.ZZZ_DESCR_LONG8.Value;
    &Background = RTrim(LTrim(&Background));

    &Standard = &Readrec.ZZZ_DESCR_LONG9.Value;
    &Standard = RTrim(LTrim(&Standard));

    &Close_date = &Readrec.ZZZ_DESCR_LONG10.Value;
    &Close_date = RTrim(LTrim(&Close_date));

    &Apply = &Readrec.ZZZ_DESCR_LONG11.Value;
    &Apply = RTrim(LTrim(&Apply));

     &ITEM = "<title>" | &Readrec.HRS_JOB_OPENING_ID.Value | &tab | &Readrec.POSTING_TITLE.Value | "</title>";
          &PUBDATE = "<pubDate>" | %Datetime | "</pubDate>";
          &LINK_DETAIL = "<link>" | &Link_value_detail | &Readrec.HRS_JOB_OPENING_ID.Value | "</link>";
          &COMMENTS = "<comments></comments>";
          rem &LINK_DETAIL = "<link>" | &Link_value_header | "</link>";
         
          &CATEGORY = "<category>Careers</category>";
         
          /* Had Values Concatenated, but was having issues with the formatting - writting each line */
         
          &DESCR_DETAILS = "<description>" | "<![CDATA[" | "<strong>You can login and apply using:  Username: GUEST  Password: password</strong>" | "<p><strong>College/Division</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &College | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Scope of Search</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Scope | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Grant Funded Position</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Grant | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Posted Rate of Pay</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Posted | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Duties and Responsibilities</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Duties | Char(10) | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Minimum Qualifications</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &MinQ | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Desired Qualifications</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Des | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Department Statement/Gen Info</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Dep_statement | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Background Check Statement</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Background | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Standard Statement</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Standard | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Close Date</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Close_date | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p><strong>Instructions to Apply</strong></p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "<p>" | &Apply | "</p>";
          &DESCR_DETAILS = &DESCR_DETAILS | "]]>" | "</description>";
         
         
         
          /* Need to remove the '&' special characture from the long datatypes, will not work within RSS feed - J.McMahon */
          &DESCR_DETAILS = Substitute(&DESCR_DETAILS, "&", "&#38;");
         
         
         
          &MYFILE_rss.WriteLine("<item>");
          &MYFILE_rss.WriteLine(&ITEM);
          &MYFILE_rss.WriteLine(&PUBDATE);
          &MYFILE_rss.WriteLine(&LINK_DETAIL);
          rem &MYFILE_rss.WriteLine(&COMMENTS);
          &MYFILE_rss.WriteLine(&CATEGORY);
          &MYFILE_rss.WriteLine(&DESCR_DETAILS);
         
          &MYFILE_rss.WriteLine("</item>");
         
         
          &COUNT = &COUNT + 1;
         
       End-While;
      
       &MYFILE_rss.WriteLine("</channel>");
       &MYFILE_rss.WriteLine("</rss>");
      
       REM  End-If;
       REM   &COUNT1 = &COUNT | "                                ";
       REM   &COUNT1 = Substring(&COUNT1, 1, 10);
      
    End-If;


    4. This code I had placed within a Run control record Row_Init pcode.

    (Keep in mind I have updated these names, example:  "zzz")

     If %Mode = "A" Then
       zzz_RC.OPRID = %OperatorId;
       zzz_RC.ECONEFILEPATH = &outFilePath | "HR/";
       zzz_RC.FILE_NAME = "rss_jobs.xml";
       zzz_RC.TITLE_MAIN = "Job Postings";
       zzz_RC.URL = "Place your URL here for Careers";
      
       SQLExec("select lower(DBNAME) from PSDBOWNER where OWNERID='SYSADM'", &InstanceName);
       &Env = &InstanceName;
      
       If &Env = "prd" Then
          &Link_value_detail = "https://yourvaluegoeshere%3e/psp/" | &Env | "/EMPLOYEE/HRMS/c/HRS_HRAM.HRS_CE.GBL?Page&#61;HRS_CE_JOB_DTL&#38;JobOpeningId" | "&#61;";
       Else
          &Link_value_detail = "https://yourvaluegoeshere/psp/" | &Env | "/EMPLOYEE/HRMS/c/HRS_HRAM.HRS_CE.GBL?Page&#61;HRS_CE_JOB_DTL&#38;JobOpeningId" | "&#61;";
       End-If;
       zzz_RC.URL_1 = &Link_value_detail;
      
    End-If;

    Thursday, November 11, 2010

    PTF - PeopleSoft Test Framework

    Some great new functionality has been delivered with Peoplesoft Test Framework.  Check out Peoplebooks

    You are now able to automate tests within Peoplesoft and provide test cases for certain scenarios within the tool.

    You can record and playback these tests within your environment.

    1. Download or apply current tools release to be 8.51.xx
    2. Install Peoplesoft Test Framework application.  Current release is 8.51.05
    3. Create Execution Options within the tools to reference your URL and database.

    I would also recommend to toggle Skip PageSave to Yes within the "Options" tab, if you do not want to commit or save anything to your database.

    More to come...

    Take care
    Jeromy

    Tuesday, September 14, 2010

    Applying Peoplesoft Maintenance

    Over the years there have been some talks on best practices for applying Peoplesoft Maintenance. (Bundles, Tax Updates, REGS..etc)

    Here is my take:

    First, one must choose a maintenance path. (Bundles or Maintenance Packs) and stay the course.

    Maintenance Packs:
    • Maintenance Packs are nice for a new implementation or upgrade to get you current without applying individual Bundles
    • Maintenance Packs due tend to take some time to come out since it is a combination of Bundles for all modules.
    Bundles:
    • Bundles will provide you the latest and greatest code line (Keeping current with Peoplesoft/Oracle)
    • Bundles are nice for North American customers given all the regulatory releases (REGS) and updates
    The best way to search for Bundles within My Oracle Support:

    Within "Updates and Fixes"
    Apply to Release

    Product Line = Campus Solutions
    Product = Student Administration
    Release = 9 (or 8.9 if you have not upgraded yet)
    Bundles check box toggled

    This will provide you a listing of all the current bundles.

    Change Assistant is a great tool and application used to apply bundles and maintenance, if you are still applying bundles manually, now is the time to configure CA. It makes applying maintenance much easier.

    Take care