Contributor II

Why You Should Care About Event Handlers?

So, you're in the OneStream universe, and you might be thinking, "What's the big deal about Event Handlers?" Well, hold onto your hats because these aren't just tiny features tacked on at the end – they're like the secret sauce that can seriously amp up your application.

Event Handlers are like the helpful elves behind the scenes. They're those mini-programs that magically respond when stuff happens in your system. Think data saved, workflows kicked off, or forms getting a makeover. These little wizards can do things like start a sequence, ensure your data's top-notch, or keep your workflows on track.

But why should you care? Because Event Handlers make your application a brainiac. They take care of tasks automatically, meaning less manual toil. Fewer manual tasks? That means fewer chances for oopsies. And that equals a smoother ride for you and your users. Plus, the coolest part? You can customize and reuse these Event Handlers all over your app. Double win!

Different types of event handlers

OneStream boasts a total of eight event handler business rules are available in the Extensibility Rules section of the Business Rule editor,

each uniquely designed to address specific actions within the application:

1.     Data Management Event Handler

2.     Data Quality Event Handler

3.     Forms Event Handler

4.     Journal Event Handler

5.     Save Data Event Handler

6.     Transformation Event Handler

7.     Workflow Event Handler

8.     WCF Event Handler

Each event handler business rule comes with a predefined set of actions, dictating when the business rule will execute. By employing a select case statement and leveraging the BREventOperationType, you can determine the actions that trigger the execution of each Event Handler.



Here's a list of all the methods available for each event Handler.

  • Data Management
    • EndSequence
    • ExecuteStep
    • StartSequenc
  • Data Quality
    • Certify.EndSetCertifyState
    • Certify.EndSetQuestionairreState
    • Certify.FinalizeSaveQuestionResponse
    • Certify.FinalizeSetCertifyState
    • Certify.FinalizeSetQuestionairreState
    • Certify.SaveCertifyState
    • Certify.SaveQuestionairreState
    • Certify.SaveQuestionResponse
    • Certify.StartSetCertifyState
    • Certify.StartSetQuestionairreState
    • Confirm.EndConfirm
    • Confirm.FinalizeConfirm
    • Confirm.StartConfirm
    • ICTransStatus.AddICTranscationStatus
    • ICTransStatus.FinalizeAddICTranscationStatus
    • PrepareICMatch.EndICMatch
    • PrepareICMatch.PrepareICMatchData
    • PrepareICMatch.StartICMatch
    • ProcessCube.Calculate
    • ProcessCube.Consolidate
    • ProcessCube.EndProcessCube
    • ProcessCube.FinalizeProcessCube
    • ProcessCube.NoCalculate
    • ProcessCube.StartProcessCube
    • ProcessCube.Translate
  • Forms
    • CompleteForm
    • EndUpdateFormWorkflow
    • FinalizeCompleteForm
    • FinalizeRevertForm
    • FinalizeSaveForm
    • FinalizeUpdateFormWorkflow
    • RevertForm
    • SaveForm
    • StartUpdateFormWorkflow
  • Journal
    • ApproveJournal
    • EndUpdateJournalWorkflow
    • FinalizeApproveJournal
    • FinalizePostJournal
    • FinalizeRejectJournal
    • FinalizeSubmitJournal
    • FinalizeUnpostJournal
    • FinalizeUpdateJournalWorkflow
    • PostJournal
    • RejectJournal
    • StartUpdateJournalWorkflow
    • SubmitJournal
    • UnpostJournal
  • SaveData
    •  SaveCubeData
  • Transformation
    • BiBlend.BiBlendUnitPagePartDeriveAll
    • BiBlend.BiBlendUnitPagePartDeriveBase
    • BiBlend.BiBlendUnitPagePartDeriveParent
    • BiBlend.BiBlendUnitPagePartDimAgg
    • BiBlend.BiBlendUnitPagePartEditRowSetMetaData
    • BiBlend.BiBlendUnitPagePartPersist
    • BiBlend.BiBlendUnitPagePartSetMetaData
    • BiBlend.CheckBiBlendMemoryOnAgg
    • BiBlend.CheckBiBlendMemoryOnInit
    • BiBlend.CreateBiBlendUnitPagesAndParitions
    • BiBlend.CreateUserDefinedMeasures
    • BiBlend.DeleteBiBlendTable
    • BiBlend.EndBiBlendProcessing
    • BiBlend.EndValidateTransform
    • BiBlend.FilterAndSummarizeBiBlendCache
    • BiBlend.FinalizeBiBlendTable
    • BiBlend.FinalizeValidateTransform
    • BiBlend.IndexBlendTable
    • BiBlend.InitializeBiBlendCache
    • BiBlend.PrepareBiBlendTable
    • BiBlend.RenameBiBlendTable
    • BiBlend.SetEventRules
    • BiBlend.StartBiBlendProcessing
    • BiBlend.StartValidateTransform
    • BiBlend.TranslateBiBlendCache
    • BiBlend.ValidateBiBlendTransformation
    • BiBlend.ValidateDimension
    • DirectLoad.DirectLoadDeleteData
    • DirectLoad.DirectLoadWriteSummaryData
    • DirectLoad.DirectLoadWriteToCube
    • DirectLoad.EndDirectLoadProcessing
    • DirectLoad.EndValidateTransform
    • DirectLoad.FinalizeDirectLoadStorage
    • DirectLoad.FinalizeValidateTransform
    • DirectLoad.InitializeDirectLoadCache
    • DirectLoad.SetEventRules
    • DirectLoad.StartDirectLoadProcessing
    • DirectLoad.StartValidateTransform
    • DirectLoad.SummarizeDirectLoadCache
    • DirectLoad.ValidateDimension
    • DirectLoad.ValidateDirectLoadIntersections
    • DirectLoad.ValidateDirectLoadTransformation
    • LoadIntersect.EndLoadIntersect
    • LoadIntersect.FinalizeLoadIntersect
    • LoadIntersect.StartLoadIntersect
    • ParseAndTrans.CreateRuleHistory
    • ParseAndTrans.DeleteData
    • ParseAndTrans.DeleteRuleHistory
    • ParseAndTrans.EndClearData
    • ParseAndTrans.EndParseAndTransform
    • ParseAndTrans.EndPreserveData
    • ParseAndTrans.EndRestoreData
    • ParseAndTrans.EndRetransform
    • ParseAndTrans.FinalizeClearData
    • ParseAndTrans.FinalizeParseAndTransform
    • ParseAndTrans.FinalizeRestoreData
    • ParseAndTrans.FinalizeRetransform
    • ParseAndTrans.InitializeExcelRangeLayout
    • ParseAndTrans.InitializeTransformer
    • ParseAndTrans.LoadDataCacheFromDB
    • ParseAndTrans.ParseSourceData
    • ParseAndTrans.ProcessDerivativeRules
    • ParseAndTrans.ProcessTargetDerivativeRules
    • ParseAndTrans.ProcessTransformationRules
    • ParseAndTrans.StartClearData
    • ParseAndTrans.StartParseAndTransform
    • ParseAndTrans.StartPreserveData
    • ParseAndTrans.StartRestoreData
    • ParseAndTrans.StartRetransform
    • ParseAndTrans.SummarizeTransformedData
    • ParseAndTrans.SummarizeTransformedDataInMemory
    • ParseAndTrans.WriteTransformedData
    • ValIntersect.EndValidateIntersect
    • ValIntersect.FinalizeValidateIntersect
    • ValIntersect.StartValidateIntersect
    • ValTrans.EndValidateTransform
    • ValTrans.FinalizeValidateTransform
    • ValTrans.SetEventRules
    • ValTrans.StartValidateTransform
    • ValTrans.ValidateDimension
  • Workflow
    • ClearAllFormsDataFromCube
    • ClearAllInputDataFromCube
    • UpdateWorkflowStatusw
    • WorkflowFileBatchEnd
    • WorkflowFileBatchInitializeFileGroups
    • WorkflowFileBatchLoadFile
    • WorkflowFileBatchProcessFile
    • WorkflowFileBatchStart
    • WorkflowLock
    • WorkflowUnlock
    • WorkflowViewBatchEnd
    • WorkflowViewBatchExecuteStep
    • WorkflowViewBatchInitialize
    • WorkflowViewBatchStart

How to create an Event Handler business rule

Creating an Event Handler business rule in OneStream is a straightforward process:

  • Navigate to the business rule section.

  • Click on extensibility rules.

  • Choose "Create rule."

  • From the Type combo box, select "Event Handler business rule."


Setting Up an Event Handler

After creating your event handler business rule, the next step involves configuring the rule to execute during specific actions:  


In the screenshot provided, we have set up the Forms Event Handler to execute on Save Form and Complete Form user action.


Here's an example of how a form event handler business rule can be used. In the example below, we are working with FX rates as a forms input. As the user enters the FX rates and performs a save action, the values are set using a Finance Business Rule. This rule is then executed through the appropriate data management sequence, handling the newly entered FX rates.


Enhancing User Experience and Application Efficiency

OneStream Event Handlers bring significant improvements to both user experience and application efficiency. These clever components make the software more responsive, automatically responding to user actions with precise and automated tasks. This means less need for manual work, reducing the chance of mistakes and making the workflow smoother.

For example, consider a scenario where users input FX rates into a form. As the user enters the FX rates and performs a save action, the values are set using a Finance Business Rule. This rule is then executed through the appropriate data management sequence, handling the newly entered FX rates. This automation not only streamlines the input process but also ensures that the values are correctly managed without the need for manual interventions.

The beauty of Event Handlers lies in their flexibility and usefulness in various situations. They can be applied to different processes, making the entire application more efficient and reliable. Users can trust that these automated mechanisms will maintain data accuracy and integrity across the system.

In a nutshell, OneStream Event Handlers elevate the software by making it smarter and more efficient. They respond to user actions instantly, automating tasks, and reducing the need for manual interventions. With their help, the application becomes more reliable and user-friendly, resulting in a better overall experience.


In conclusion, OneStream Event Handlers stand as a powerful and essential feature that enhances both user experience and application efficiency. By enabling automation and seamless interactions, these components offer an innovative approach to optimizing the functionality of OneStream software.

The true strength of Event Handlers lies in their ability to improve user experiences subtly but significantly. They streamline processes, reduce manual efforts, and minimize the risk of errors, making the software more reliable and user-friendly.

Embracing the power of Event Handlers opens a world of possibilities for maximizing the benefits of OneStream software. These intelligent tools empower users to tailor their application precisely to their needs, achieving greater control and efficiency.

Incorporating Event Handlers into your OneStream application unlocks an extraordinary potential that elevates its performance to new heights. With these remarkable components at your disposal, you'll undoubtedly appreciate the transformation they bring to your OneStream experience.