An event trigger checks for an event and when the event occurs, it runs the code associated with the trigger.
Oracle BI Publisher supports three types:
Before Data - Fires right before the data set is executed.
After Data - Fires right after the data engine executes all data sets and generates the XML.
Schedule Trigger - Fires when a scheduled job is triggered and before it runs.
Before data and after data triggers execute a PL/SQL function stored in a PL/SQL package in your Oracle Database. The return data type for a PL/SQL function inside the package must be a Boolean type and the function must explicitly return TRUE or FALSE.
A schedule trigger is associated with a scheduled job. It's a SQL query that executes at the time a report job is scheduled to run. If the SQL returns any data, the report job runs. If the SQL query returns no data, the job instance is skipped.
Event triggers accept only one value in a parameter. If you pass multiple values to a schedule event trigger parameter, the status of the scheduled job is set to Skipped.
Event triggers aren't used to populate data used by a bursting definition. See Adding Bursting Definitions.
You can add event triggers that fire before and after data.
If you define a default package then you must define all parameters as a global PL/SQL variable in the PL/SQL package. You can then explicitly pass parameters to your PL/SQL function trigger or all parameters are available as a global PL/SQL variable, see Setting Data Model Properties
A schedule trigger fires when a report job is scheduled to run. Schedule triggers are of type SQL Query.
When a report job is scheduled to run, the schedule trigger executes the SQL statement defined for the trigger. If data is returned, then the report job is submitted. If data isn't returned from the trigger SQL query, the report job is skipped.
The schedule trigger that you associate with a report job can reside in any data model in the catalog. You don't need to create the schedule trigger in the data model of the report for which you want to execute the trigger. You can reuse schedule triggers across multiple report jobs.