Represents the object, measure, date type, and hierarchy that a forecast uses
to project sales. This object is available in API version 52.0 and later.
Supported Calls
create(), delete(), describeSObjects(), query(), retrieve(), update(), upsert()
Fields
| Field | Details |
|---|---|
| CategoryField |
|
| DateField |
|
| DeveloperName |
|
| FamilyField |
|
| Language |
|
| MasterLabel |
|
| MeasureField |
|
| SourceObject |
|
| Territory2Field |
|
| UserField |
|
Usage
Use ForecastingSourceDefinition to define a forecast type’s structure. A forecasting source definition is joined via ForecastingTypeSource to ForecastingType.
In this example, a user role-based forecast type called Custom Amount Forecast is based on the Amount and Close Date fields on opportunities.
ForecastingType type = new sforce.SObject("ForecastingType");
type.DeveloperName = "Custom_Amount_Forecast";
type.MasterLabel = "Custom Amount Forecast";
type.IsAmount = true;
type.IsQuantity = false;
type.RoleType = "R";
type.DateType = "OpportunityCloseDate";
String typeId = insert(type);
ForecastingSourceDefinition sourceDefinition = new sforce.SObject("ForecastingSourceDefinition")
sourceDefinition.DeveloperName = "Custom Amount Source";
sourceDefinition.MasterLabel = "Custom_Amount_Source";
sourceDefinition.SourceObject = "Opportunity";
sourceDefinition.MeasureField = "Opportunity.Amount";
sourceDefinition.DateField = "Opportunity.CloseDate";
sourceDefinition.UserField = "Opportunity.OwnerId";
sourceDefinition.CategoryField = "Opportunity.ForecastCategoryName";
String sourceDefinitionId = insert(sourceDefinition);
ForecastingTypeSource typeSource = new sforce.SObject("ForecastingTypeSource");
typeSource.MasterLabel = "Custom Amount Type Source";
typeSource.DeveloperName = "Custom_Amount_Type_Source";
typeSource.ForecastingTypeId = typeId;
typeSource.ForecastingSourceDefinitionId = sourceDefinitionId;
typeSource.SourceGroup = 1;
insert(typeSource);