Search This Blog

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