Search This Blog/Web

Wednesday, November 20, 2013

Oracle Forms 11g Triggers

Sequence of trigger when Form is opened closed

Run Form
1. Pre-Logon Form
2. On-Logon Form
3. Post-Logon Form
4. Pre-Form Form
5. When-Create-Record Block
6. Pre-Block Block
7. Pre-Record Block
8. Pre-Text-Item Item
9. When-New-Form-Instance Form
10. When-New-Block-Instance Block
11. When-New-Record-Instance Block
12. When-New-Item-Instance Item
Exit
1. Post-Text-Item Item
2. Post-Record Block
3. Post-Block Block
4. Post-Form Form
5. On-Rollback Form
6. Pre-Logout Form
7. On-Logout Form
8. Post-Logout Form

1. Sequence of trigger when Navigation from one item to another

· Key-next -1
· Post Change –1
· When validate -1
· Post text -1
· Pre – text - 2
· When new item instance - 2

Action Trigger Firing Order Level
------ -------------------- -----
Runform 1. Pre-Logon Form
2. On-Logon Form
3. Post-Logon Form
4. Pre-Form Form
5. When-Create-Record Block
6. Pre-Block Block
7. Pre-Record Block
8. Pre-Text-Item Item
9. When-New-Form-Instance Form
10. When-New-Block-Instance Block
11. When-New-Record-Instance Block
12. When-New-Item-Instance Item

***********
Enter Query 1. Post-Text-Item Item
2. Post-Record Block
3. When-Clear-Block Block
4. When-New-Record-Instance Block
5. When-New-Item-Instance Item

Note: If you define the Key-ENTQRY trigger, this is the only trigger
which fires in an Enter Query situation.


*****************
Execute Query
After Enter Query 1. Pre-Query Block
2. Pre-Select Block
3. On-Select Block
4. When-Clear-Block Block
5. Post-Select Block
6. On-Fetch Block
7. On-Close Form
8. When-Clear-Block Block

Note: If you define the Key-EXEQRY trigger, this is the only trigger
which fires in an Execute Query situation.


*************
Execute Query
Without Enter
Query 1. Post-Text-Item Block
2. Pre-Query Block
3. Pre-Select Block
4. On-Select Block
5. Post-Select Block
6. On-Fetch Block
7. On-Close Form
8. When_Create_Record Block
9. Pre-Record Block
10. Pre-Text-Item Item
11. When-New-Record-Instance Block
12. When-New-Item-Instance Item


****
Exit 1. Post-Text-Item Item
2. Post-Record Block
3. Post-Block Block
4. Post-Form Form
5. On-Rollback Form
6. Pre-Logout Form
7. On-Logout Form
8. Post-Logout Form


**************
Next Field and
Previous field 1. When-New-Item-Instance Item


***************
Next Record and
Previous Record 1. When-New-Record-Instance Block
2. When-New-Item-Instance Item

**************
Next Block and
Previous Block 1. Post-Text-Item Item
2. Post-Record Block
3. Post-Block Block
4. When-Create-Record Block
5. Pre-Block Block
6. Pre-Record Block
7. Pre-Text-Item Block
8. When-New-Block-Instance Block
9. When-New-Record-Instance Block
10. When-New-Item-Instance Form


*******************
Records Are Queried 1. Post-Query Block
2. Post-Change Block
3. Post-Change Item
4. Post-Change Block
5. Post-Change Block
Go back to Post-Query

NOTE: This cycle is repeated for each record retrieved.


**********************
No Records Are Queried 1. When-New-Record-Instance Block
2. When-New-Item-Instance Item

NOTE: To observe this Trigger Firing Order:
a. Enter a query.
b. Enter a nonexistent record.
c. Execute the query.

The two triggers listed above, the Enter Query triggers, and
the Execute Query triggers fire.


*************
Create Record 1. Post-Change Block
2. When-Validate-Item Block
3. Post-Text-Item Block
4. When-Validate-Record Block
5. Post-Record Block
6. Post-Block Block
7. On-Savepoint Form
8. Pre-Commit Form
9. Pre-Insert Block
10. On-Insert Form
11. Post-Insert Block
12. Post-Forms-Commit Form
13. On-Commit Form
14. Post-Database-Commit Form
15. Pre-Block Block
16. Pre-Record Block
17. Pre-Text-Item Block
18. When-New-Item-Instance Form


*************
Update Record 1. When-Database-Record Block
2. Post-Change Block
3. When-Validate-Item Block
4. Post-Text-Item Block
5. When-Validate-Record Block
6. Post-Record Block
7. Post-Block Block
8. On-Savepoint Form
9. Pre-Commit Form
10. Pre-Update Block
11. On-Update Block
12. Post-Update Block
13. Post-Forms-Commit Form
14. On-Commit Form

Here the transaction is complete and one record added.

15. Post-Database-Commit Form
16. Pre-Text-Item Block
17. When-New-Item-Instance Form

NOTE: To observe this Trigger Firing Order:

a. Execute a query.
b. Change a value.
c. Choose Action->Save from the menu.
d. Record the triggers from that point.


*************
Delete Record 1. On-Lock Block
2. When-Remove-Record Block
3. Post-Change Block
4. Post-Change Block
5. Post-Change Block
6. Post-Change Block
7. Post-Change Block
8. Post-Change Block
9. Post-Change Item
10. Post-Query Block
11. Post-Text-Item Block
12. Post-Record Block
13. Pre-Record Block
14. Pre-Text-Item Block
15. When-New-Record-Instance Block
16. When-New-Item-Instance Form

NOTE: To observe this Trigger Firing Order, delete a detail record.

Master-Detail Relation Triggers Types and Procedures

Isolated: - Masters Can be deleted when Child is existing 
Triggers: - On Populate details         Block level trigger
On Clear Details          Form    level trigger
Procedure fired
Check Package Failure
Clear all master Detail
Query Master Detail       

Non- Isolated: - Masters Cannot be deleted when Child is existing.
Triggers: - On Populate details        Block level trigger
On Check Delete master    Block level trigger
On Clear Details         Form level trigger
Procedure
Check Package Failure
Clear all master Detail
Query Master Detail

Cascading: - Child Record Automatically Deleted when Masters is deleted.
Triggers: - On Populate details         Block level trigger
Pre Delete               Block level trigger
On Clear Details          Form level trigger
Procedure
Check Package Failure
Clear all master Detail
Query Master Detail     

The Firing sequence for report triggers is
  • Before Parameter Form
  • After Parameter Form 
  • Before Report 
  • Between Pages 
  • After Report.

Mutating trigger is trigger that is currently being modified by DML opertion. For eg.,
You created a trigger trigger1 on table1, it should fire after update for each row. And you wrote some update statement on the same table (table1) inside the trigger . When you execute the individual update stmt on table1, the trigger get fires and the trigger also is currently being updated the same rows in table1, which is called mutating error and mutating trigger.

No comments:

Post a Comment