Search This Blog

Loading...

Monday, February 9, 2015

%FilePath_Absolute and %Filepath_Relative


These are the meta variables used generally with File Classes.
Both of the help us in defining the path of the file. One of them is Absolute and other one is Relative.

I will not go much details about the syntax of the functions which use these variables.

I believe most of you might have put this question to your self when encounterd with below variables like what is Absolute path and Relative path.

 %FilePath_Absolute: We define the actual path on the server.
                                    We can place file on any folder path in the server.

Ex:- PS_HOME/user/filename.txt

%Filepath_Relative: This uses the system defined path.
                                  Files can be placed in the sub-folders beneath this path.
                                  System Defined paths are like PS_FILEDIR/PS_SERVDIR etc.

Ex:- PS_FILEDIR/filename.txt

SQL to find Navigation for a Given Process.

-- SQL to find Navigation for a Given Process.

The below SQL lists all the Navigations where the process is attached.

SELECT  A.PORTAL_URI_SEG2,
RTRIM(E.PORTAL_LABEL)
|| ' >> ' || RTRIM(D.PORTAL_LABEL)
|| ' >> ' || RTRIM(C.PORTAL_LABEL)
|| ' >> ' || RTRIM(B.PORTAL_LABEL)
|| ' >> ' || RTRIM(A.PORTAL_LABEL)
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_URI_SEG2 IN (SELECT PNLGRPNAME from PS_PRCSDEFNPNL P WHERE P.PRCSNAME = < PROCESS_NAME >);

Note: Substitue Process Name in the < PROCESS_NAME >.

Friday, January 30, 2015

How to find extended ASCII characters present in a string.

Lets take an example of ADDRESS record in PeopleSoft.
To identify extended ASCII character first we need to know the ASCII characters range.
ASCII characters range is from 0 - 255 and of them extended ASCII characters range is from 128 to 255.

Let's see the character value of ASCII code 229.

select chr(229) from dual;
Output: å

Below SQL will help us in getting the non-ASCII charactes.

SQL to execute:
select * from ps_addresses where regexp_like(address1,'['||chr(128)||'-'||chr(255)||']');

If we observe, chr function is used to identify the ascii character value and iphen  is used to get range (similar to BETWEEN and AND )

The above SQL will get all the rows that have extended ASCII characters present in address1 field.


Sunday, January 25, 2015

Oracle Initialization Error

Oracle Initialization Error while logging to App Designer.
Check the TNS entries are correct or not.
Check the ORACLE_HOME/TNS_ADMIN and PATH variable is set to correct values or not.

Make changes if needed to these variables and test the login again.
This should resolve the issue.

Saturday, December 13, 2014

Application Engine: State Record

State Record:

1. The record that ends with '_AET' is identified as State Record.
2. Used in Application Engine program.
3. As name itself says 'state' meaning we get to know the state of data (snapshot) that is passed through the program.
4. quite useful in restart logic, where if a process goes to NoSuccess, after correction we can restart the program from the point where it got abend.
5. State Record can by derived work record or a physical record.
6. When a program is designed for Restart enabled logic, then it would be ideal to have state record type as physical record as it stores the data to the database before the abend.
7. In case of Derived work record, during restart failure the fields would be initialized to default values.
8. There can be 200 state records but only one of them can be primary record.
9. While passing parameters to State record, if it is primary one then no need to mention the record.field format. we can directly assign to the field using %select and %bind variables.
10.To refer fields in the State record, use %BINDS.
11.It should contain Process instance as the first and the only Key field.
12.We can also share the data of one state record from one AE program to another.
13.State Record contains only one row of data for each process instance.
14.Along with passing data, we can also have other fields to store the flag values. Flag values usage helps us in Parallel processing.
15.To set values in the State record, use %SELECT.

Snapshot of Sample State Record shown below.

Friday, December 12, 2014

How to run COBOL from Application Engine using CreateProcessRequest()



Before running a Cobol , we need to make sure that the process definition is created.
When running from AE, make sure you pass runcontrolID and Process Type along with other required parameters.
 We can also use Remotecall procedure to call COBOL procedure from AE.

Sample Code:

Local ProcessRequest &ProcessRequest;
&ProcessRequest= CreateProcessRequest();

/* Set all the Required Properties */
/* Enter the RunControlID
&ProcessRequest.RunControlID = STATERECORD_AET.RUN_CNTL_ID;
&ProcessRequest.ProcessType = "COBOL SQL";
&ProcessRequest.ProcessName = "";
/* Schedule the Process */
&ProcessRequest.Schedule();

Wednesday, December 10, 2014

What is UTF-8 encoding

Each character we key in is stored in database and occupies some space.
Certain characters require less space and some require more space.

Earlier ASCII (American Standard Code for Information Interchange) is used but it supports upto maximum of 128 characters. English is suitable language for ASCII. If we see other languages in the world like chinese , japanese etc. they have characters which need more space.

With UTF-8 (Unicode Transformation Format) , we can accommodate almost all characters from all languages in the world. The number 8 denotes 8 bits.

UTF-8 stores characters ranging 1 to 4 bytes long.(Note: 1byte = 8 bits)
Like for example, character 'A' requires 1 byte and some Japanese character might require 3 bytes.

Note: First 128 characters of ASCII are same as the first 128 characters of UTF-8. So ASCII is a subset of UTF-8

Even in PeopleSoft installation, while creating database we will be asked for the type of database which needs to be created. Since most of the clients nowadays have global presence, they would prefer Unicode database.

We also hear about UTF-16, its nothing but accommodating more space. Usually UTF-16 format is used by Operating systems etc.

Below is the code for Telugu language
 Character Name            Character     OS X Option Code     Win XP ALT Code     Entity     Hex Entity
TELUGU LETTER A          అ          Option+0C05               ALT+3077                   అ    &#x0C05
TELUGU LETTER AA       ఆ          Option+0C06               ALT+3078                   ఆ    &#x0C06
Below is the code for Indian Rupee.
Char     Dec     Hex     Entity     Name
₹    8377    20B9         INDIAN RUPEE SIGN

 UTF-8 encoding for Telugu language &#3108 &#3142 &#3122 &#3137 &#3095 &#3137
 UTF-8 encoding for English language &#84 &#69 &#76 &#85 &#71 &#85

Below is the HTML version where above codes are converted(encoded) with UTF-8 format.
 
UTF-8 encoding for Telugu language తెలుగు
UTF-8 encoding for English language TELUGU