File: String;
File: String;
The File property determines the path and the name of the JSON file, from which data is to be imported.
Executing the example requires the D:\Work\Data.json JSON file.
An ETL task with the ETL identifier is created in the repository.
Add links to the Andy, Drawing, Dt, Etl, Metabase system assemblies.
Sub UserProc;
Var
MB: IMetabase;
MObj: IMetabaseObject;
EtlTask: IEtlTask;
EtlProvider: IEtlPlainDataProvider;
JSONProvider: IDtJsonProvider;
WxProvider: IWxRectangle;
WxETLProvider: IWxETLObject;
Begin
MB := MetabaseClass.Active;
//Search for ETL task. Repository object wih the ETL identifier
MObj := MB.ItemById("ETL").Edit;
EtlTask := MObj As IEtlTask;
//Provider creation start
//Create the Import from JSON provider
EtlProvider := EtlTask.Create(EtlObjectType.PlainDataJsonProvider) As IEtlPlainDataProvider;
EtlProvider := EtlProvider.Edit;
EtlProvider.Id := "JSON_Provider";
EtlProvider.Name := "Import from JSON";
EtlProvider.Description := "Import from JSON";
//Set up data provider
JSONProvider := EtlProvider.Provider As IDtJsonProvider;
JSONProvider.File := "D:\Work\Data.json";
JSONProvider.Query := "$..data";
EtlProvider.FillDefault;
//Save provider
EtlProvider.Save;
//Provider creation end
//Visual object creation start
WxProvider := EtlTask.Workspace.CreateRectangle;
WxETLProvider := New WxETLObject.Create;
WxETLProvider.ETLObject := EtlProvider;
WxProvider.Style.TextPosition := WxTextPosition.Bottom;
WxProvider.Style.PictureMarginTop := -10;
WxProvider.PinPosition := New GxPointF.Create(50, 50);
WxProvider.Extension := WxETLProvider As IWxShapeExtension;
//Visual object creation end
//Save ETL task
MObj.Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Andy;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Dt;
Imports Prognoz.Platform.Interop.Etl;
Imports Prognoz.Platform.Interop.Metabase;
<font color="#008080">Public</font><font color="#000000"> </font><font color="#008080">Shared</font><font color="#000000"> </font><font color="#008080">Sub</font><font color="#000000"> Main(Params: StartParams);<br /> </font><font color="#008080">Var</font><font color="#000000"><br /> MB: IMetabase;<br /> MObj: IMetabaseObject;<br /> EtlTask: IEtlTask;<br /> EtlProvider: IEtlPlainDataProvider;<br /> JSONProvider: IDtJsonProvider;<br /> WxProvider: IWxRectangle;<br /> WxETLProvider: IWxETLObject;<br /> Point: GxPointF = </font><font color="#008080">New</font><font color="#000000"> GxPointFClass();<br /> </font><font color="#008080">Begin</font><font color="#000000"><br /> MB := Params.Metabase;<br /> </font><font color="#008000">//Search for ETL task. Repository object with the "ETL identifier"<br /> </font><font color="#000000"> MObj := MB.ItemById[</font><font color="#800000">"ETL"</font><font color="#000000">].Edit();<br /> EtlTask := MObj </font><font color="#008080">As</font><font color="#000000"> IEtlTask;<br /> </font><font color="#008000">//Provider creation start<br /> </font><font color="#000000"> </font><font color="#008000">//Create the "Import from JSON"<br /> </font><font color="#000000"> EtlProvider := EtlTask.Create(EtlObjectType.eotPlainDataJsonProvider) </font><font color="#008080">As</font><font color="#000000"> IEtlPlainDataProvider;<br /> EtlProvider := EtlProvider.Edit();<br /> EtlProvider.Id := </font><font color="#800000">"JSON_Provider"</font><font color="#000000">;<br /> EtlProvider.Name := </font><font color="#800000">"Import from JSON"</font><font color="#000000">;<br /> EtlProvider.Description := </font><font color="#800000">"Import from JSON"</font><font color="#000000">;<br /> </font><font color="#008000">//Set up data provider<br /> </font><font color="#000000"> JSONProvider := EtlProvider.Provider </font><font color="#008080">As</font><font color="#000000"> IDtJsonProvider;<br /> JSONProvider.File := </font><font color="#800000">"D:\Work\Data.json"</font><font color="#000000">;<br /> JSONProvider.Query := </font><font color="#800000">"$..data"</font><font color="#000000">;<br /> EtlProvider.FillDefault();<br /> </font><font color="#008000">//Save provider<br /> </font><font color="#000000"> EtlProvider.Save();<br /> </font><font color="#008000">//Provider creation start<br /> </font><font color="#000000"> </font><font color="#008000">//Visual object creation start<br /> </font><font color="#000000"> WxProvider := EtlTask.Workspace.CreateRectangle();<br /> WxETLProvider := </font><font color="#008080">New</font><font color="#000000"> WxETLObject();<br /> WxETLProvider.ETLObject := EtlProvider;<br /> WxProvider.Style.TextPosition := WxTextPosition.wtpBottom;<br /> WxProvider.Style.PictureMarginTop := -</font><font color="#008000">10</font><font color="#000000">;<br /> Point.Create(</font><font color="#008000">50</font><font color="#000000">, </font><font color="#008000">50</font><font color="#000000">);<br /> WxProvider.PinPosition := Point;<br /> WxProvider.Extension := WxETLProvider </font><font color="#008080">As</font><font color="#000000"> IWxShapeExtension;<br /> </font><font color="#008000">//Visual object creation end<br /> </font><font color="#000000"> </font><font color="#008000">//Save ETL task<br /> </font><font color="#000000"> MObj.Save();<br /> </font><font color="#008080">End</font><font color="#000000"> </font><font color="#008080">Sub</font><font color="#000000">;</font>
On executing the example a new data provider will be created in ETL task - Import from Json. The data provider is set up to work with the specified file.
See also: