ResetMetaModel;
ResetMetaModel();
Метод ResetMetaModel обновляет метамодель в цепочке расчета.
Используйте метод, если изменились параметры модели в репозитории и теперь её надо обновить в цепочке расчёта.
Для выполнения примера в репозитории предполагается наличие в репозитории контейнера моделирования с идентификатором «MS». Данный контейнер должен содержать метамодель с идентификатором «CALCULATIONCHAIN», содержащей в цепочке расчёта метамодель с идентификатором «METAMODEL_CONVERT».
Добавьте ссылки на системные сборки: Metabase, Ms.
Sub UserProc;
Var
mb: IMetabase;
msKey: Integer;
MetaModel: IMsMetaModel;
CalculationChain: IMsCalculationChainEntries;
ChainMetaModel: IMsCalculationChainMetaModel;
Begin
// Получаем текущий репозиторий
mb := MetabaseClass.Active;
// Получаем ключ контейнера моделирования, содержащего метамодель
msKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace("CALCULATIONCHAIN", msKey).Edit As IMsMetaModel;
// Получаем цепочку расчёта метамодели
CalculationChain := MetaModel.CalculationChain;
// Находим по идентификатору метамодель в цепочке расчёта
ChainMetaModel := CalculationChain.FindById("METAMODEL_CONVERT") As IMsCalculationChainMetaModel;
// Обновляем найденную метамодель
ChainMetaModel.ResetMetaModel;
// Сохраняем изменения
(MetaModel As IMetabaseObject).Save;
End Sub UserProc;
В результате выполнения примера в цепочке расчёта будет обновлена метамодель «METAMODEL_CONVERT».
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Ms;
…
Public Shared Sub Main(Params: StartParams);
Var
mb: IMetabase;
msKey: uinteger;
MetaModel: IMsMetaModel;
CalculationChain: IMsCalculationChainEntries;
ChainMetaModel: IMsCalculationChainMetaModel;
Begin
// Получаем текущий репозиторий
mb := Params.Metabase;
// Получаем ключ контейнера моделирования, содержащего метамодель
msKey := mb.GetObjectKeyById("MS");
// Получаем метамодель
MetaModel := mb.ItemByIdNamespace["CALCULATIONCHAIN", msKey].Edit() As IMsMetaModel;
// Получаем цепочку расчёта метамодели
CalculationChain := MetaModel.CalculationChain;
// Находим по идентификатору метамодель в цепочке расчёта
ChainMetaModel := CalculationChain.FindById("METAMODEL_CONVERT") As IMsCalculationChainMetaModel;
// Обновляем найденную метамодель
ChainMetaModel.ResetMetaModel();
// Сохраняем изменения
(MetaModel As IMetabaseObject).Save();
End Sub;
См. также: