Skip to content

Exit events

Ryan Newington edited this page Sep 4, 2025 · 7 revisions

Exit Events

Exit events are a powerful feature that allows you to perform actions external to the object being exported. They enable ACMA to trigger additional processing, notifications, and integrations after an object export completes.

When Exit Events Execute

Exit events are evaluated and executed after an export operation has completed for an individual object:

  1. Object export completes: All attribute constructors finish executing
  2. Final state evaluation: Exit events are evaluated against the exported object in its final state
  3. Condition checking: Event conditions are tested against the object
  4. Event execution: If conditions are met, the event is raised and processing begins

Exit Event Types

Internal Exit Events

Internal exit events send events to other objects within the ACMA database.

Key Features:

  • Target selection: Send events to referenced objects or objects found via database queries
  • Event processing: Receiving objects process events through Event rule
  • Cascading operations: Enable complex workflows across multiple objects

Use Cases:

  • Notifying manager objects when direct reports change
  • Updating group memberships based on user attribute changes
  • Triggering department-wide updates when organizational changes occur

Command Exit Events

Command exit events execute external processes when events are raised.

Key Features:

  • Process execution: Launch external applications, scripts, or commands
  • Parameter passing: Pass object attributes as command-line arguments
  • Integration: Connect ACMA to external systems and workflows

Use Cases:

  • Triggering home directory creation scripts
  • Sending email notifications via external mail utilities
  • Updating external databases or systems

Extension Exit Events

Extension exit events execute custom C# code when events are raised.

Key Features:

  • Custom logic: Implement complex business logic in C#
  • Full .NET access: Leverage the complete .NET Framework capabilities
  • Interface implementation: Implement IAcmaExternalEventExtensible interface

Use Cases:

  • Complex data transformations requiring custom algorithms
  • Integration with .NET-based APIs and services
  • Advanced validation and business rule enforcement

Important Considerations

Performance Impact

  • Exit events execute after object processing, potentially affecting export performance
  • Complex or long-running exit events may impact overall synchronization speed
  • Consider using background processing for time-intensive operations

Error Handling

  • Failed exit events can affect the success of the export operation
  • Implement proper error handling in custom extension code
  • Test exit events thoroughly with various data scenarios

Dependencies

  • Exit events execute after all attribute constructors complete
  • Events can access the final state of all object attributes
  • Ensure proper ordering when multiple exit events are configured

Clone this wiki locally