Вызов диалога настройки очерёдности выполнения операций в задаче ETL.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать следующие значение:
Тип значения | Описание |
IEtlTask | Задача ETL, для которой необходимо настроить очерёдность выполнения операций. |
Команда может применяться только для задач ETL. Указываемая задача должна быть открыта на редактирование. Результатом выполнения команды будет логическое значение, указывающее какая кнопка была нажата в диалоге: True, если была нажата кнопка «ОК» и False, если была нажата кнопка «Отмена».
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «ETL». В задаче реализованы какие-либо цепочки импорта/экспорта/преобразования данных. Добавьте ссылки на системные сборки «Etl», «Metabase», «Ui».
Sub UserProc;
Var
MB: IMetabase;
ETL: IEtlTask;
CommandTarget: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Result: Boolean;
Begin
MB := MetabaseClass.Active;
ETL := MB.ItemById("ETL").Edit As IEtlTask;
CommandTarget := WinApplication.Instance.GetPluginTarget("Etl");
Context := CommandTarget.CreateExecutionContext;
Context.Data := ETL;
Result := CommandTarget.Execute("ShowExecutionOrder", Context);
If Result Then
(Etl As IMetabaseObject).Save;
End If;
End Sub UserProc;
При выполнении примера на экран будет выведен диалог настройки очерёдности выполнения операций в задаче ETL. Если в диалоге будут внесены какие-либо изменения и нажата кнопка «ОК», то все изменения будут сохранены.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ui;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
ETL: IEtlTask;
WinApp: WinApplication = New WinApplicationClass_2();
CommandTarget: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Result: Boolean;
Begin
MB := Params.Metabase;
ETL := MB.ItemById["ETL"].Edit() As IEtlTask;
CommandTarget := WinApp.GetPluginTarget("Etl");
Context := CommandTarget.CreateExecutionContext();
Context.Data := ETL;
Result := CommandTarget.Execute("ShowExecutionOrder", Context, Null) As Boolean;
If Result Then
(Etl As IMetabaseObject).Save();
End If;
End Sub;
См. также: