Loading
Feature degradation | Gmail Email delivery failureRead More
Set Up and Maintain Your Salesforce Organization
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Use Batch Apex Queries With Real-Time Event Monitoring

          Use Batch Apex Queries With Real-Time Event Monitoring

          Use Bulk API and batch Apex to query real-time events.

          This example shows how to query and analyze an event HBPO by using a field’s contents.

          public class EventMatchesObject implements Database.Batchable<sObject> {
              private String lastEventDate;
          
              public EventMatchesObject(String lastEventDateParam) {
                  lastEventDate = lastEventDateParam;
              }
          
              public Iterable<SObject> start(Database.BatchableContext bc) {
                  return [SELECT EventDate, EventIdentifier, QueriedEntities, SourceIp, Username, UserAgent FROM ApiEvent WHERE EventDate > lastEventDate LIMIT 50000]
              }
          
              public void execute(Database.BatchableContext bc, List<ApiEvent> events){
                  // Process this list of entities if a certain attribute matches
                  for (ApiEvent event: events) {
                      String objectString = 'Patent__c';
                      String eventIdentifier = event.EventIdentifier;
                      if (eventIdentifier.contains(objectString) {
                          // Perform actions on the event that contains 'Patent__c'
                      }
                      lastEventDate = format(event.EventDate);
                  }
              }
          
              public void finish(Database.BatchableContext bc){         
                  // You can daisy chain additional calls using EventDate or other filter fields to get around the 50k governor limit
                  EventMatchesObject nextBatch = new EventMatchesObject(lastEventDate);
                  Database.executeBatch(nextBatch);
              }
          }
           
          Loading
          Salesforce Help | Article