Task: IEtlTask;
Свойство Task возвращает задачу ETL, в которой создан объект.
Использование свойства может привести к утечке памяти.
Для предотвращения утечки памяти:
не используйте глобальные переменные для хранения значения свойства;
при работе со свойством в классе используйте локальные переменные свойств/методов класса.
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором OBJ_ETL.
Добавьте ссылки на системные сборки: Metabase, Etl.
Sub UserProc;
Var
MB: IMetabase;
Etl: IEtlTask;
EtlObj: IEtlObject;
Count: Integer;
Begin
MB := MetabaseClass.Active;
// Получим задачу ETL
Etl := MB.ItemById("OBJ_ETL").Edit As IEtlTask;
EtlObj := Etl.Item(0);
// Выведем в консоль количество объектов в задаче ETL
Count := EtlObj.Task.Count;
Debug.WriteLine("Количество объектов в задаче ETL: " + Count.ToString);
End Sub UserProc;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Etl;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Etl: IEtlTask;
EtlObj: IEtlObject;
Count: Integer;
Begin
MB := Params.Metabase;
// Получим задачу ETL
Etl := MB.ItemById["OBJ_ETL"].Edit() As IEtlTask;
EtlObj := Etl.Item[0];
// Выведем в консоль количество объектов в задаче ETL
Count := EtlObj.Task.Count;
System.Diagnostics.Debug.WriteLine("Количество объектов в задаче ETL: " + Count.ToString());
End Sub;
В результате выполнения примера в консоль будет выведено количество объектов, содержащихся в задаче ETL.
См. также: