Module: IMetabaseObjectDescriptor;
Module: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor;
Свойство Module определяет описание объекта среды разработки, содержащего реализацию выполняемой процедуры/функции.
В качестве значения свойства может быть указано описание какого-либо модуля/формы/сборки/.NET-сборки репозитория.
Для выполнения примера предполагается наличие в репозитории задачи ETL с идентификатором «OBJ_ETL» и модуля «ETL_Module». В модуле реализована процедура «RunExport». Добавьте ссылки на системные сборки: Andy, Drawing, Etl, Metabase.
Sub CreateCodeBlock;
Var
MB: IMetabase;
Task: IEtlTask;
ProcedureObj: IEtlCodeBlock;
WxConsumer: IWxRectangle;
WxETLConsumer: IWxEtlObject;
Begin
MB := MetabaseClass.Active;
Task := MB.ItemById("OBJ_ETL").Edit As IEtlTask;
//Создание объекта Процедура
ProcedureObj := Task.Create(EtlObjectType.CodeBlock) As IEtlCodeBlock;
ProcedureObj := ProcedureObj.Edit;
//Настройка параметров
ProcedureObj.Module := MB.ItemById("ETL_Module");
ProcedureObj.Procedure := "RunExport";
//Сохранение объекта
Процедура
ProcedureObj.Save;
//Начало создания визуального объекта
WxConsumer := Task.Workspace.CreateRectangle;
WxETLConsumer := New WxEtlObject.Create;
WxETLConsumer.EtlObject := ProcedureObj;
WxConsumer.Style.TextPosition := WxTextPosition.Bottom;
WxConsumer.Style.PictureMarginTop := -10;
WxConsumer.PinPosition := New GxPointF.Create(50, 50);
WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
//Конец создания визуального объекта
//Сохранение задачи ETL
(Task As IMetabaseObject).Save;
End Sub CreateCodeBlock;
При выполнении примера в задаче ETL будет создан новый объект, осуществляющий запуск процедуры. Для объекта будут настроены необходимые для выполнения параметры: указан модуль запускаемая процедура.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Etl;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Task: IEtlTask;
ProcedureObj: IEtlCodeBlock;
WxConsumer: IWxRectangle;
WxETLConsumer: IWxEtlObject = New WxEtlObjectClass();
Point: GxPointF = New GxPointFClass();
Begin
MB := Params.Metabase;
Task := MB.ItemById["OBJ_ETL"].Edit() As IEtlTask;
//Создание объекта Процедура
ProcedureObj := Task.Create(EtlObjectType.eotCodeBlock) As IEtlCodeBlock;
ProcedureObj := ProcedureObj.Edit();
//Настройка параметров
ProcedureObj.Module := MB.ItemById["ETL_Module"];
ProcedureObj.Procedure := "RunExport";
//Сохранение объекта
Процедура
ProcedureObj.Save();
//Начало создания визуального объекта
WxConsumer := Task.Workspace.CreateRectangle();
WxETLConsumer.EtlObject := ProcedureObj;
WxConsumer.Style.TextPosition := WxTextPosition.wtpBottom;
WxConsumer.Style.PictureMarginTop := -10;
Point.Create(50, 50);
WxConsumer.PinPosition := Point;
WxConsumer.Extension := WxETLConsumer As IWxShapeExtension;
//Конец создания визуального объекта
//Сохранение задачи ETL
(Task As IMetabaseObject).Save();
End Sub;
См. также: