IdentificationStartDateCoord: IMsModelCoordAttributes;
The IdentificationStartDateCoord property determines settings of the coordinate that sets sample period start date.
The coordinate is available only if the model is in the multidimensional iterator. In calculation, the coordinate is the current iteration of multidimensional iterator, in which the model is calculated.
Executing the example requires that the repository contains a modeling container with the MODEL_SPACE identifier. A problem with the PROBLEM identifier and a metamodel, to which multidimensional iterator is added, are created in the container. One model is included in the multidimensional iterator. A data source for the model includes the dimension, which includes attributes with the STARTDATE and ENDDATE identifiers. Dates are stored as attribute values.
Add links to the Cubes, Dimensions, Metabase, Ms system assemblies.
Sub UserProc;
Var
Mb: IMetabase;
Problem: IMsProblem;
MetaModel: IMsMetaModel;
Model: IMsModel;
Iterator: IMsCalculationChainMultiDimIterator;
Stub: IVariableStub;
CalcPeriod: IMsModelPeriod;
DateCoord: IMsModelCoordAttributes;
OutputPeriod: IMsDatePeriod;
Begin
// Get model
Mb := MetabaseClass.Active;
Problem := Mb.ItemByIdNamespace("PROBLEM", Mb.GetObjectKeyById("MODEL_SPACE")).Edit As IMsProblem;
MetaModel := Problem.MetaModel;
Iterator := MetaModel.CalculationChain.Item(0) As IMsCalculationChainMultiDimIterator;
Model := (Iterator.Contents.Item(0) As IMsCalculationChainModel).EditModel;
Stub := Model.Transform.Inputs.Item(0).VariableStub;
// Calculation periods
CalcPeriod := Model.Transform.Period;
// Sample period start
DateCoord := CalcPeriod.IdentificationStartDateCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("STARTDATE"));
// Sample period end
DateCoord := CalcPeriod.IdentificationEndDateCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("ENDDATE"));
// Forecasting period start
DateCoord := CalcPeriod.ForecastStartDateCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("STARTDATE"));
// Forecasting period end
DateCoord := CalcPeriod.ForecastEndDateCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("ENDDATE"));
// Loading period
OutputPeriod := Model.Transform.OutputPeriod As IMsDatePeriod;
// Clear data loading period
OutputPeriod.ClearPeriod;
// Set loading period start and end
OutputPeriod.Enabled := True;
// Loading period start
DateCoord := OutputPeriod.StartCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("STARTDATE"));
// Loading period end
DateCoord := OutputPeriod.EndCoord;
DateCoord.Stub := Stub;
DateCoord.Dimension := Stub.Dimension(1);
DateCoord.Attributes.Add(DateCoord.Dimension.Attributes.FindById("ENDDATE"));
// Save changes
Model.MetabaseObject.Save;
End Sub UserProc;
After executing the example sample, forecasting and data loading periods are changed for the model. Period values are taken according to the current iterator iteration and created by values of specified dimension attributes.
See also: