- Peoplesoft Functional
- Peoplesoft Technical
- Database (Oracle)
- Tips and Tricks
- Interview Questions
- Peoplesoft Functional Interview Questions
- Workforce Development Questions
- Workforce Administration Questions
- PS PayRoll
- Recruiting Questions
- Security Questions
- Benefits Questions
- Setup HRMS Questions
- Other Functional Questions
- Peoplesoft Technical Interview Questions
- PeopleCode Questions
- Component Interface Questions
- Application Engine Questions
- SQR Questions
- PeopleSoft Mixed Questions
- PeopleSoft Certification Exam Questions
- Security Questions
|PeopleSoft Technical articles - Application Engine|
Temporary tables are used exclusively with Application Engine programs and are intended to provide parallel processing. The Application Engine programs may be executed online via CallAppEngine PeopleCode function or invoked through the Process Scheduler.
Parallel or concurrent processing allows multiple instances of an Application Engine program to execute against the same tables while drastically reducing the risk for table contention.
Batch process performance can be improved by splitting the data to be processed into groups and simultaneously running multiple instances of the program to deal with different groups of data. For example, employees could be processed by last name by splitting the group into multiple groups alphabetically.
If you have a program that uses a temporary table and it is invoked multiple times, that single temporary table could be used concurrently in multiple executions of the code.
This could create unpredictable results since the different instances of the code would be issuing Deletes, Inserts, and/or Updates unsynchronized with each other.
You could solve this problem by creating multiple temporary tables as a pool of tables. Each invocation of your program would have to allocate an unused temporary table, mark it as “in use” and release it back to the pool when you are through with it.
By using the Temporary Table record type definition, you are able to define a record and the PS Build process will build multiple uniquely named copies of your Temporary Table as a pool.
Additionally, PS does Temporary Table management for your Application Engine programs. You can code your program with supplied meta-SQL (%Table) so each execution of your Application Engine program will be given access to its own copy of the Temporary Table for its exclusive use. When the program ends, the table will be returned to the pool of Temporary Tables.
Temporary Table Pools
Defined in PeopleTools Options by PS Admins. Our current setting is five (5).
Used by Application Engine programs invoked by CallAppEngine.
Defined in Application Engine program properties. Properties that must be set include:
§ Assign Temporary Tables to the Application Engine program (Temp Table tab)
§ Set the Instance Count (Temp Table tab). The number entered here will dedicate the number of instances requested for the AE program.
§ Set the Runtime option (Temp Table tab). This is the action the AE program will take if batch/dedicated tables cannot be allocated at runtime.
• Continue – the base table will be used instead (using Process Instance)
• Abort – program execution terminates.
§ Set the Batch Only checkbox (Advanced tab). If the program will only be run in batch mode and not executed from the CallAppEngine() PeopleCode function, you should use this checkbox. Any dedicated temporary tables used for Batch Only programs do not have online instances created.
Instance Count and the Batch Only checkbox should be set prior to building the record definition.
Ø If the temporary table was originally built with online instances (Batch Only checkbox is not checked) and then changed to “batch only”, online tables must be dropped manually.