Outcomes
Outcome definitions are managed by the Sitecore.Marketing.Definitions.Outcomes.OutcomeDefinitionManager class.
Outcomes are specialized events. IOutcomeDefinition inherits IEventDefinition.
Accessing the OutcomeDefinitionManager
The OutcomeDefinitionManager is available from the Sitecore DI container. It is preferable to include a parameter of type DefinitionManagerBase<IOutcomeDefinition, OutcomeDefinitionRecord> in the constructor of your class and pull your class from the container, allowing the container to resolve the instance for you:
If you cannot use the container to construct your class, you can use the service locator. This class is also available in the Sitecore DI container:
Defining a outcome
A outcome is defined using types from the Sitecore.Marketing.Definitions.Outcomes.Model namespace.
IsMonetaryValueApplicable is used in reporting. It is valid to have an outcome with no meaningful monetary value, such as a contract signed or commitment made. In these instances, set IsMonetaryValueApplicable to false.
AdditionalRegistrationsAreIgnored was used by the OutcomeManager and is no longer in use. Please remove this property from your code.
Live events
The IsLiveEvent property is part of the base EventDefinition class and is used by Marketing Automation to determine if an event should be processed immediately rather than on session end. Read more about live event processing.
Saving a outcome
Once you have defined a outcome you may save it by calling the SaveAsync() method on the definition manager.
You can also optionally activate the outcome during save by passing true to the second parameter of the SaveAsync() method:
Activating a outcome
Outcomes must be activated before they are available for use outside of management. Outcomes can be activated when they’re saved by passing true to the activate (second) parameter of the SaveAsync() method:
Outcomes can also be activated without calling save, using the ActivateAsync() method:
The ActivateAsync() method takes the ID of the outcome and does not require the outcome definition model.
Deleting a outcome
To delete a outcome, use the Delete() method on the manager. Individual cultures cannot be deleted from the definition, only the entire definition. The culture provided to the method call should be either null (default value) or CultureInfo.InvariantCulture.
Retrieve a outcome
A single outcome can be retrieved by its ID using one of the Get() methods on the manager.
Retrieve an outcome by its alias
You can also retrieve an outcome by its alias:
Update an existing outcome
To update an existing outcome definition, retrieve the outcome by ID, edit the outcome
Retrieving all outcomes
The GetAll() method can be used to get all outcomes from the manager. As there may be a large number of definitions, this method supports paging. The return value is a single page of results.
To access the results, use the DataPage property of the result.
The result also includes properties to expose the total number of definitions and the current page index and page size.