Question is related to Application Engine in PeopleSoft Q4 A
Question is related to Application Engine in PeopleSoft
Q4 Assume there are 2 tables ABC and XYZ. Both the tables are having ROW_NUM filed with length of 3 digits. ABC is having the 5 values 699, 799, 899, 999, 299. And we are trying to insert these 5 values into XYZ table by adding 1 to each number
Main Section
Step1
DoSelect
%Select(ROW_NUM)
SELECT ROW_NUM
FROM ABC
PeopleCode
Here I will write the Commit only for 3rd Example.
SQL
INSERT INTO XYZ
VALUES (%Bind(ROW_NUM)+1)
Step2
PeopleCode
SQLExec(\"COMMIT\");
What would be the program flow when
Section Level - Auto Commit – After Step is unchecked,
Step Level – Commit After is Later.
Step Level – OnError is Ignore.
Scenario is same as above A, Assume due to some Code error Step2 – PeopleCode got errored out then what will happen?
Solution
4
1) First 3 rows will be inserted. Commit will not execute.
AE will throw and error while inserting 4th row.
Since we selected the Ignore option, AE will ignores that error and Issues the Commit, so first 3 rows will be get committed.
And then continues with the process and inserts the 5th row.
And it will not Commit after the Step1 since we selected Later option for Step1. So 5th row will be in buffer.
Then Step2 – PeopleCode will execute and issues the Commit.
So finally there would be 4 rows 700, 800, 900, 300 in XYZ.
2) First 3 rows will be inserted. Commit will not execute.
AE will throw and error while inserting 4th row.
Since we selected the Ignore option, AE will ignores that error and Issues the Commit, so first 3 rows will be get committed.
And then continues with the process and inserts the 5th row.
And it will not Commit after the Step1 since we selected Later option for Step1. So 5th row will be in buffer.
Then Step2 – PeopleCode will execute and it will throw an error. So it will not issue the commit. 5th row in buffer will not be get committed in XYZ Table.
So finally there would be 3 rows 700, 800, 900 in XYZ.

