State records are used in Application Engines as a storage location for data that needs to be passed across actions. An Application Engine can have more than one state records (a maximum of 200) associated with it out of which only one can be marked as a default state record. The state record, in this case, should have two extra fields – AEAPPLID and AESECTION. If you intent to make a dynamic call to sections that are in the same App engine as the calling section, then the state record would be good to go with just AESECTION. PeopleCode for Dynamic Call-Section Once you have the state record in place, it’s. PeopleSoft Application Engine Interview Questions # 16) What is a State Record? A) A PeopleSoft record that must be created and maintained by the Application Engine developer. This record defines the fields a program uses to pass values from one action to another.
I could not find this else where and hence, I decided to build one myself – a complete list of PeopleSoft tables. Often a times when working on something like a PeopleSoft issue or a PeopleSoft upgrade, you feel the need to have a handly list of PeopleSoft tables. 2) Name of the record must end in AET; this is how the system identifies the record as a state record. 3) PROCESSINSTANCE must be a key. 4) Any data types except character or numeric must not be required fields. Note: - No People code fires on an Application Engine state record.
1.It is a PeopleTool and It is used to develop batch programs oronline programs that perform the backed processing against the data. 2.It consists of the 2 distinct components .They are Designer->Consists of the batch programs. Run time Environment->To run and monitor the programs. 3.A program is a set of SQL statements. 4.It does not generate SQL or PeopleCode, but it executes SQL or PeopleCode asa part of program. 5.It is designed for batch processing where data must be processed without userinteraction. 6.AE resides on database server. APPLICATION ENGINE PROGRAM ELEMENTS: 1.PS AE consists a set of processes to execute a given task and made up ofseveral elements.They are i) Sections It is a set of ordered steps that gets executed as a part of the program.Theexecution of the program starts with the section defined as MAIN. ii) Steps Steps are the smallest unit of the program that can be commited within aprogram.It is used to execute the a peopleCode command or log a message with the step.When the section gets called, its stepsexecute sequentiately. iii) Actions Multiple actions can be within a step.There are 5 multiple actions they are DO ACTIONS: Do actions contain a SQL statements taht is designed to return the results onwhich subsequent actions depend. It is equvalent to a COBOL perfrom statement.There are 4 types of Do actios theyare: 1)Do While 2)DO When 3)Do Select 4)Do Until. SQL AND CALL SECTION ARE MUTUALLY EXCLUSIVELY ACTION WHICH CANNOT BE PERFORMEDONCE AT ATIME COZ IT CAUSES DEADLOCKS SQL: It contain a single SQL statements.There are 4 types of SQL statements.They are 1)Update 2)Delete 3)Insert 4)Select
PeopleCOde: It provides an excellent way to build dynamic SQL, perform simple if/elseedits,set defaults and other operations that don't require a trip to the database Log Message: Call Section: It is used to call and insert an action in the progaram or outside program. iv) State Records It is a PeopleSoft Record that must be created and maintained by theApplication Engine developer. This record defines the fields a program uses to pass values from one action toanother. It can be either a Physical record or a work record, any no of sate records canbe assosiated with a program. Physical state records must be keyed by process instance. APPLICATION ENGINE PROGRAM TYPES: There are 5 types of Application Engine Programs.They are. 1.Standard->Normal entery point program. 2.Upgrade Only->used in PS Upgrade utilites. 3.Import Only->used by PS import utilites. 4.Daemon Only->A type of program which is used a daemon Process. 5.Transform Only->used to support Extensible stylesheet languageTransformations(XSLT). DAEMON PROGRAM TYPE: 1.PS AE provides a daemon process called PSDAEMON, that runs continously whenPS Process Scheduler is running and it is intended for running jobs. 2.It consists of a predefined set of conditions as events.When PSDAEMONschedules a process to handle an event when the conditions are true. 3.It allows only PS AE tracing at the step and SQL levels META-SQL 1.Meta-SQL is a set of predefined terms designed to replace RDBMS syntax. 2.PS meta-SQL enables us to dynamically generate portions of SQL code.(EX;--2join 2 tables based on their common keys) 3.%select->It is ued to insert values of varibles in to sate record. 4.%bind->It is used to get values.
SQLEXEC(); By using the SQLEXEC() function we can do the data manipulation (Insert,Updateand Delete). Example: SQLEXEC('select * from PS_JOB whereX.EMPID.vlaue=:1',abc,&emplid1') The main draw back using this SQLEXEC() function is 'It will return onlyone value at a time'. Note:-for more in detail draw backs about SQLEXEC,please go through the otherpost Reasons why PeopleSoft does not recomd SQLEXEC()' Sate Records: It is a working storage. It is a physical record or derived work record It passes values from section to section ,Action to Action and step to step. We can use 'N' no of state records in a program. It consists of Runcontrol ID and Process Instance ID. It it is a physical record then process Instance ID must be keyed. It maintains temporary data in AE programs for online processing. State Record Properties General ------- It is used to select any sate record from the list Temp Tables ----------- 1.Select the temp tables tab. 2.It is used to get a temporary record. 3.When we enter any of the wild card character or the table full name and Clickon get list.Then it displays all the records containing temporary tables. 4.Select the necessary temporary table and click o add in to the list. 5.We can remove a particular temporary table by selecting it and click onremove. 6.Instance count is used to enter the no.of physical tables to be created foreach dedicated table for this program during the SQL Build procedure inPeopleSoft Application Designer.If we want to any program to run for 3 timesthen we should specify in the instance count. 7.If we select base version then it uses the temporary tables. 8.If we select Abort then the program exists with an error message. Advanced Tab ------------ 1.Disable Restart 2.Application Library 3.Batch only 4.Messsage Set 5.Program Type (STD,Upgrade,Import,Daemon,Transform) Restating an AE program The Key feature of AE is Restart. Sate record should be a physical record.When the system is processing a hugeamount of data (batch processing) and if there occurs any failure through the environment then the restartable logic comes into picture.The cursor directly comes in to the checkpoint where the commit isset upand restarts the program from that point. We can restart the program from the process request page. AERUNCONTROL record saves all the information that is required for a program torestart. File Layout's 1.It is used for file processing using INBOUND and OUTBOUND process 2.A File layout is acollection of records. 3.Works with hierarchical and non-hierarchical data 4.stored with _FLT 5.It enables us to do the following -->Export and Import the data. -->It uses Batch Process to perform large amount of data import and export. -->There are 3 types of file formats.They are CSV,XML,FIXED. 6.It also facilitates to provide the transaction between PS systems and 3rdparty systems Inbound Program Reading from a FALT file and writing in to database -->Open the flat file in READ mode -->Read each and every line in a flat file and put them in a string -->Split the data with separators and put it in an array -->Insert the values in to the record by matching the field values in torecord. Example: Local record &rec &myfile=getfile('c:/documents/abcd.txt','R',%filepath_absolute); &arr=createarrayrept(',0); &rec=createrecord(record.EMP_TBL); If &file.open() then while &file.readline(&str); &arr = split(&str,','); &rec.EMP_ID.value = &arr[1]; &rec.EMP_NAME.value = &arr[2]; &rec.EMP_AGE.value = &arr[3]; &rec.insert(); End-while; end-if; &myfile.close Outbound Program Writing from a Database to flatfile -->Open the flat file in WRITE mode. -->Use the %SELECT to select all the record field values. -->Put the field values in a dummy record. -->By using the dummy record field value write the files to FLAT file usngWRITELINE. Example: &myfile=getfile('c:/documents/abcd.txt','W',%filepath_absolute); &myfile.open('c:/documents/abcd.txt','W'); For i=1 to5; &myfile.writeline('HI welcome to PS world'); end-for; &myfile.close A sample code to read a file using file layouts and insert data read into arecord
Local File &MYFILE; Local Record &REC; Local array of string &ARRAY; Local string &FILE_DIRECTORY, &FileName; &FileName = 'MY_FILE_NAME.txt'; &FILE_DIRTORY = '/MYDIRECTORY/' /*open file for reading*/ &MYFILE = GetFile(&FILE_DIRECTORY | &FileName, 'R',%FilePath_Absolute); /*create record object*/ &REC = CreateRecord(Record.MY_RECORD); &ARRAY = CreateArrayRept(', 0); /*check if file is open*/ If &MYFILE.IsOpen Then /*The SetFileLayout method is a file layout method. It associates a specificfile layout definition with the file object executing this method, providingeasy access to rowset data.(PeopleBooks)*/ If &MYFILE.SetFileLayout(FileLayout.FILE_LAYOUT_NAME) Then /*read line into &STRING*/ While &MYFILE.ReadLine(&STRING); &ARRAY = Split(&STRING, ','); For &I = 1 To &REC.FieldCount &REC.GetField(&I).Value = RTrim(LTrim(&ARRAY [&I])); End-For; /* do additional processing here for converting values */ &REC.Insert(); /*count rows inserted into record*/ &COUNT = &COUNT + 1; End-While; Else /* do error processing - filelayout not correct */ End-If; Else /* do error processing - file not open */ End-If; We can run the AE in 3 way's 1.Application Designer -->RUN 2.Command Line -->PSAE.EXE 3.Process Scheduler. Order of events in Application Engine 1.Do When 2.Do While 3.Do Select 4.People Code 5.SQL 6.Call Section 7.Log Message 8.Do Until
Introducing Application Engine Designer
Describing Student Workstation Resources
Using Application Engine Designer
Describing Application Engine Program Structure
Building Application Engine Programs
Adding Markets and Filters to Application Engine Program Sections
Setting Application Engine Program Properties
Testing Application Engine Programs
Using State Records
Describing the Function of State Records
Executing an Application Engine Program Using the Developer’s Shortcut
Modifying Application Engine Programs to use State Records
Adding Sections and Steps to Existing Application Engine Programs
Using Meta-SQL in Application Engine Programs
Testing and Debugging
Testing Application Engine Programs
Using the Process Monitor
Using Application Engine Traces
Using the Application Engine Debugger
Testing With Application Engine Restart
Using the Do Select Action
Describing Do Select
Using Select and Fetch
Using Reselect
Using Restartable
Developing an Application Engine Program Using Do Select
Incorporating Conditional Processing
Defining Do Actions
Explaining Conditional Statements in SQL
Explaining Do Action Program Flow
Designing a Program Using Conditional Processing
Using Application Engine Libraries
Using PeopleCode with Application Engine
Identifying How to use PeopleCode in Application Engine Programs
Inserting PeopleCode into an Application Engine Program
Enabling Dynamic Calls
Using Set Processing
Describing Set Processing
Modifying a Program to use Set Processing
Using Temporary Tables
Describing Parallel Processing
Implementing Parallel Processing
Using Meta-SQL with Parallel Processing
Describing Run-Time Allocation
Executing Application Engine Programs
Executing an Application Engine Program Using a Push Button
Executing an Application Program with the Process Scheduler
Executing an Application Engine Program with a Command Script
Creating Process Definitions for Application Engine
Identify the Process Types used with Application Engine
Creating Application Engine Process Definitions
Implementing an Application Engine Program with No User Inputs
Implementing an Application Engine Program With User Inputs
Measuring Application Engine Performance
Describing Traces
Passing Trace Values to PSAE.EXE
Interpreting Application Engine Trace Data
Interpreting the PeopleTools Trace
Describing Advanced Trace Options
Tuning Application Engine Programs
State Record In Application Engine Peoplesoft Access