ai.dataSource
Die Datenquelle enthält Einstellungen und Tabellen.
Funktionen
Methode | Parameter | Retouren | Beschreibung |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | Gibt eine Liste der importierten Tabellen zurück. | |
getTable(Tabellen-ID) | tableId: Zeichenfolge Remote-ID der Tabelle | ai.dataSource.table | Gibt die Tabelle mit der angeforderten Tabellen-ID zurück. Gibt „null“ zurück, wenn keine Tabelle gefunden wird. |
getSettings() | Array<ai.dataSource.setting> | Gibt alle flexiblen Einstellungen zurück. | |
getSetting(Anzeigename) | displayName: Zeichenfolge Name der Einstellung | ai.dataSource.setting | Gibt eine flexible Einstellung anhand des Anzeigenamens zurück |
- Beispiel
- function previewData(context) { var dataSource = context.getDataSource(); var allTablesInThisDataSource = dataSource.getTables(); //Navigate to Designer Settings tab, drag and drop a Static Integer parameter from the Settings Component //Setting Name: Custom Integer and Value: 100 var getSetting=dataSource.getSetting("Custom Integer" ); ai.log.logInfo(getSetting.getValue()); //100 }
ai.dataSource.table
Methode | Parameter | Retouren | Beschreibung |
|---|---|---|---|
getColumnByDisplayName( name) | name: Zeichenfolge Anzeigename der Spalte | ai.dataSource.column | Sucht eine Spalte anhand ihres Anzeigenamens. Gibt „null“ zurück, wenn keine Spalte gefunden wurde. |
getColumnById( id ) | id: Zeichenfolge Remote-ID der Spalte | ai.dataSource.column | Sucht eine Spalte anhand ihrer Remote-ID. Gibt „null“ zurück, wenn keine Spalte gefunden wurde. |
getColumns() | Array<ai.dataSource.column> | Gibt alle untergeordneten Spalten zurück, die für den Datenimport aktiviert wurden. | |
getDisplayName() | String | Gibt den Anzeigenamen der Tabelle zurück. | |
getId() | String | Gibt die Remote-ID dieser Tabelle oder den Anzeigenamen zurück, wenn keine Remote-ID angegeben wurde. | |
getLastImported() | String | Gibt eine Zeichenfolge zurück, die angibt, wann die Tabelle zuletzt importiert wurde. | |
getRelationships() | Array<ai.dataSource.relationship> | Gibt alle Beziehungen zurück, bei denen diese Tabelle die primäre Tabelle der Beziehung ist. | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | Gibt alle erforderlichen Tabellenparameter und deren Parameterwerte zurück. | |
getRequiredParameter( id) | id: Zeichenfolge Remote-ID des erforderlichen Parameters, wie bei der Aufgabe „Struktur importieren“ definiert | ai.dataSource.table.requiredParameter | Gibt einen erforderlichen Tabellenparameter anhand seiner Remote-ID zurück. |
- Beispiel
- //Consider a sample data source dataSample = { rows: [ {"Value": 10, "Measure": "", "Test": "No Space", "Effective Date": "2018-11-01"}, {"Value": 20, "Measure": " ", "Test": "One Space", "Effective Date": "2018-11-01"}, {"Value": 30, "Measure": " ", "Test": "Two Spaces", "Effective Date": "2018-11-01"}, {"Value": 40, "Measure": " ", "Test": "Three Spaces", "Effective Date": "2018-11-01"}, {"Value": 50, "Measure": "1 ", "Test": "Aus" + '\\-' + "tin" + '\\-', "Effective Date": "2018-11-01"}, {"Value": 10, "Measure": "2 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 20, "Measure": "3 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 30, "Measure": "4 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 40, "Measure": "5 ", "Test": "Austin", "Effective Date": "2018-12-01"} ] }; ExternalMetadataDefinition = { Tables : [ { name : "dataSample", displayName : "Sample", id:"dataSample", parameterId:"sampleParameter", columns : [ {name : "Value", displayName : "Value", type: "float", includeByDefault : true, }, {name : "Measure", displayName : "Measure", type: "text", includeByDefault : true}, {name : "Test", displayName : "Test", type: "text", includeByDefault : true}, {name : "Effective Date", displayName : "Date", type : "datetime", includeByDefault : true} ] } ] }; //Create a table structure function importStructure(context) { var addColumn = function(table, column, order) { var recordColumn = table.addColumn(column.name); recordColumn.setDisplayName(column.displayName); switch (column.type) { case "text": recordColumn.setTextColumnType(column.length); break; case "int": recordColumn.setIntegerColumnType(); break; case "float": recordColumn.setFloatColumnType(); break; case "boolean": recordColumn.setBooleanColumnType(); break; case "datetime": recordColumn.setDateTimeColumnType(); break; default: recordColumn.setTextColumnType(200); break; } recordColumn.setDisplayOrder(order); recordColumn.setIncludeByDefault(column.includeByDefault || false); recordColumn.setIncludeInKey(column.includeInKey || false); recordColumn.setMandatoryForImports(column.mandatoryForImport || false); recordColumn.setRemoteColumnType(column.remoteColumnType || "String"); }; var builder = context.getStructureBuilder(); var dataSource=context.getDataSource(); for (var i = 0; i < ExternalMetadataDefinition.Tables.length; i++) { var externalTable = ExternalMetadataDefinition.Tables[i]; var table = builder.addTable(externalTable.name); table.setDisplayName(externalTable.displayName); for (var j = 0; j < externalTable.columns.length; j++) { addColumn(table, externalTable.columns[j], j + 1); } } } //Examples for ai.datasource.table function importData(context){ var dataSource = context.getDataSource(); var alltablesinds=dataSource.getTables(); var rowset=context.getRowset(); //Example: getTableId; var tableId = rowset.getTableId(); ////dataSample var table= dataSource.getTable( tableId ); //Example: getDisplayName var dname=table.getDisplayName(); //Sample ai.log.logInfo("Table Display Name",dname); //Example: getLastImported var lastImported=table.getLastImported(); ai.log.logInfo("Last Imported:",lastImported); //Last Imported 10/23/2020 01:12:59 //Example: getId ai.log.logInfo("Table id",table.getId()) //dataSample }
ai.dataSource.table.column
Methode | Parameter | Retouren | Beschreibung |
|---|---|---|---|
getColumnType() | String | Gibt die Spaltenart zurück. Wert ist entweder "DateTimeColumn", "IntegerColumn", "FloatColumn", "BooleanColumn" oder "TextColumn". | |
getDisplayName() | String | Gibt den Anzeigenamen der Spalten zurück. | |
getDisplayOrder() | String | Gibt die Anzeigereihenfolge der Spalten zurück. | |
getId() | String | Gibt die Remote-ID der Spalte zurück oder der Anzeigename ist keine Remote-ID wurde angegeben. | |
getIncludeByDefault() | Boolesch | Gibt „true“ zurück, wenn die Spalte im Datenimport enthalten ist. | |
getIncludeInKey() | Boolesch | Gibt „true“ zurück, wenn die Spalte Teil des Tabellenschlüssels ist. Schlüsselspalten erlauben keine Nullwerte. | |
getLength() | Ganzzahl | Hinweis: Nur für Textspalten. Gibt die maximale Länge von Werten zurück, die in einer TextColumn enthalten sind. | |
getMandatoryForImports() | Wahr | Gibt „true“ zurück, wenn die Spalte Teil des Datenimports sein muss. | |
getNonFilterable() | Wahr | Gibt „true“ zurück, wenn die Spalte nicht als Teil eines SQL-Filters verwendet werden kann (Where-Anweisung). | |
getRemoteColumnType() | String | Gibt die Remote-Spaltenart der Spalten zurück, wie im Skript für den Import der Struktur definiert. |
- Beispiel
- //Consider a sample JSON data set dataSample = { rows: [ {"Value": 10, "Measure": "", "Test": "No Space", "Effective Date": "2018-11-01"}, {"Value": 20, "Measure": " ", "Test": "One Space", "Effective Date": "2018-11-01"}, {"Value": 30, "Measure": " ", "Test": "Two Spaces", "Effective Date": "2018-11-01"}, {"Value": 40, "Measure": " ", "Test": "Three Spaces", "Effective Date": "2018-11-01"}, {"Value": 50, "Measure": "1 ", "Test": "Aus" + '\\-' + "tin" + '\\-', "Effective Date": "2018-11-01"}, {"Value": 10, "Measure": "2 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 20, "Measure": "3 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 30, "Measure": "4 ", "Test": "Austin", "Effective Date": "2018-12-01"}, {"Value": 40, "Measure": "5 ", "Test": "Austin", "Effective Date": "2018-12-01"} ] }; ExternalMetadataDefinition = { Tables : [ { name : "dataSample", displayName : "Sample", id:"dataSample", parameterId:"2018-01-01", columns : [ {name : "Value", displayName : "Value", type: "float", includeByDefault : true, }, {name : "Measure", displayName : "Measure", type: "text", includeByDefault : true}, {name : "Test", displayName : "Test", type: "text", includeByDefault : true}, {name : "Effective Date", displayName : "Date", type : "datetime", includeByDefault : true} ] } ] }; function testConnection(context) { return true; } //Create a table structure function importStructure(context) { var addColumn = function(table, column, order) { var recordColumn = table.addColumn(column.name); recordColumn.setDisplayName(column.displayName); switch (column.type) { case "text": recordColumn.setTextColumnType(column.length); break; case "int": recordColumn.setIntegerColumnType(); break; case "float": recordColumn.setFloatColumnType(); break; case "boolean": recordColumn.setBooleanColumnType(); break; case "datetime": recordColumn.setDateTimeColumnType(); break; default: recordColumn.setTextColumnType(200); break; } recordColumn.setDisplayOrder(order); recordColumn.setIncludeByDefault(column.includeByDefault || false); recordColumn.setIncludeInKey(column.includeInKey || false); recordColumn.setMandatoryForImports(column.mandatoryForImport || false); recordColumn.setRemoteColumnType(column.remoteColumnType || "String"); }; var builder = context.getStructureBuilder(); var dataSource=context.getDataSource(); for (var i = 0; i < ExternalMetadataDefinition.Tables.length; i++) { var externalTable = ExternalMetadataDefinition.Tables[i]; var table = builder.addTable(externalTable.name); table.setDisplayName(externalTable.displayName); for (var j = 0; j < externalTable.columns.length; j++) { addColumn(table, externalTable.columns[j], j + 1); } } } //Examples for ai.datasource.table.column function importData(context) { var columnArray = rowset.getColumns(); var colIds=[]; var colDisplayNames=[]; var colTypes=[]; var colDisplayOrder=[]; var colIncludeByDefault=[]; var colLength=[]; for (var k = 0; k < columnArray.length; k++) { //Example:getColumnType colTypes.push(columnArray[k].getDisplayName().toString()+":"+columnArray[k].getColumnType().toString()); //Example:getDisplayName colDisplayNames.push(columnArray[k].getDisplayName().toString()); //Example:getDisplayOrder colDisplayOrder.push(columnArray[k].getDisplayName().toString()+":"+columnArray[k].getDisplayOrder().toString()); //Example:getId colIds.push(columnArray[k].getId().toString()); //Example:getIncludeByDefault colIncludeByDefault.push(columnArray[k].getDisplayName().toString()+":"+columnArray[k].getIncludeByDefault().toString()); //Example:getLength if(columnArray[k].getColumnType()==="TextColumn") { colLength.push(columnArray[k].getDisplayName().toString()+":"+columnArray[k].getLength()); } } ai.log.logInfo("Column Ids are "+colIds); //Column Ids are Effective Date,Value,Measure,Test ai.log.logInfo("Column Display names are "+colDisplayNames); //Column Display names are Date,Value,Measure,Test ai.log.logInfo("Column Types are "+colTypes); //Column Types are Date: DateTimeColumn, Value:FloatColumn, Measure:TextColumn,Test:TextColumn ai.log.logInfo("Column Display Order: "+colDisplayOrder); //Column Display Order: Date:4,Value:1,Measure:2,Test:3 ai.log.logInfo("Column Included by Default:"+colIncludeByDefault); //Column Included by Default:Date:true,Value:true,Measure:true,Test:true ai.log.logInfo("Length - "+colLength); //Length - Measure:200,Test:200 }
ai.dataSource.table.relationship
- Funktionen
- MethodeParameterRetourenBeschreibunggetJoinExpression()StringGibt den SQL-Wert für den Ausdruck von Beziehungen zurück, z. B 'P.Column123 = R.Column321'.getJoinType()IntGibt die Art des Joins der Beziehungen zurück. Die Werte sind entweder 0 (Inner), 1 (LeftOuter) oder 2 (RightOuter).getDisplayName()StringGibt den Anzeigenamen der Beziehungen zurück.getRelatedTableId()StringGibt die Remote-ID der zugehörigen Tabelle der Beziehungen zurück, oder der Anzeigename ist, dass keine Remote-ID angegeben wurde.getRelatedTableName()StringGibt den Anzeigenamen der zugehörigen Tabelle der Beziehungen zurück.
ai.dataSource.setting
Flexible Einstellungen sind untergeordnete Elemente einer benutzerdefinierten Cloud-Datenquelle. Einstellungen können statisch sein, indem ein Wert konfiguriert wird, oder sie können parametrisiert werden, indem Benutzer zur Laufzeit des Skripts aufgefordert werden, einen Wert für die Einstellung einzugeben. Beispiele für die Verwendung von Einstellungen sind URLs, Benutzernamen, Kennwörter, Datumsbereiche oder Dimensionen, auf die ein Skript zugreifen kann.
- Funktionen
- MethodeParameterRetourenBeschreibunggetDisplayName()StringGibt den Anzeigenamen der Einstellungen zurück.getValue()KombinationGibt den Wert des Parameters der Einstellung zurück. Wert kann eine einfache Art oder ein komplexes Objekt sein - siehe unten Wertarten.isBoolean()BooleschGibt „true“ zurück, wenn die Einstellungsart Boolesch ist.isDimension()BooleschGibt „true“ zurück, wenn die Einstellungsart „Dimension“ lautet.isInteger()BooleschGibt „true“ zurück, wenn die Einstellungsart „Integer“ ist.isPassword()BooleschGibt „true“ zurück, wenn die Einstellungsart „Kennwort“ lautet.isPeriodRange()BooleschGibt „true“ zurück, wenn die Einstellungsart PeriodRange ist.isText()BooleschGibt „true“ zurück, wenn die Einstellungsart Text ist.Beispiel//Navigate to Designer Settings tab and drag an Integer Static parameter from the Settings Component pane //Name the setting Custom Integer and set the value to 100 var dataSource= context.getDataSource(); var setting=dataSource.getSetting("Custom Integer" ); //Example: getDisplayName var name = setting.getDisplayName(); //Custom Integer //Example: getValue var value = setting.getValue(); //100 // DataType checkup for the setting. if(setting.isInteger()){ ai.log.logInfo("Setting is of the type Integer"); //Setting is of the type Integer } //Check for other data types using setting.isPeriodRange(), setting.isInteger(), setting.isBoolean(), setting.isText(), setting.isPassword(), setting.isDimension();
- Wertarten
- Die Funktion getValue() jeder Einstellung kann einen einfachen Typ oder ein komplexes Objekt zurückgeben.Boolesche Einstellungen:getValue() gibt den Wert als Boolesch zurück.Texteinstellungen:getValue() gibt den Wert als Zeichenfolge zurück.Ganzzahl-Einstellungen:getValue() gibt den Wert als Ganzzahl zurück.Kennworteinstellungen:getValue() gibt den Wert als Zeichenfolge zurück.Periodenbereichseinstellungen:getValue() gibt den Wert als komplexes Objekt zurück. Dieses Objekt ist wie folgt definiert:MethodeParameterRetourenBeschreibunggetFromPeriod()StringGibt eine Zeichenfolge zurück, die die interne Darstellung von „aufgelöst“ definiertAdaptive PlanningFrom Period, der verwendet werden kann, um an die Methodenaufrufe ai.calendar zu übergeben. z. B "3152|5201611100000"getToPeriod()StringGibt eine Zeichenfolge zurück, die die interne Darstellung von „aufgelöst“ definiertAdaptive PlanningBis Periode, die zur Übergabe an die Methodenaufrufe ai.calendar verwendet werden kann. z. B "3152|5201611100000"getFromPeriodStartDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Startdatums der Periode zurück, das in lokaler Zeit angegeben wird. z. B "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Enddatums der Von Periode zurück, angegeben in lokaler Zeit. z. B "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Startdatums/der Zeitperiode für Bis Periode zurück, angegeben in lokaler Zeit. z. B "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Enddatums der Bis Periode zurück, angegeben in lokaler Zeit. z. B "2016-07-01T00:00:00+10:00"
- Beispiel
- function importData(context) { var dataSource = context.getDataSource(); //getFromPeriod var getFromPeriod=dataSource.getSetting("Period Range").getValue().getFromPeriod(); //getToPeriod var getToPeriod=dataSource.getSetting("Period Range").getValue().getToPeriod(); //getFromPeriodStartDateTime var getFromPeriodStartDateTime = dataSource.getSetting("Period Range").getValue().getFromPeriodStartDateTime().substring(0, 10); ai.log.LogInfo("getFromPeriodStartDateTime"+getFromPeriodStartDateTime); //2017-12-01 //getFromPeriodEndDateTime var getFromPeriodEndDateTime = dataSource.getSetting("Period Range").getValue().getFromPeriodEndDateTime().substring(0, 10); ai.log.LogInfo("getFromPeriodEndDateTime"+getFromPeriodEndDateTime); //2017-12-31 //getToPeriodStartDateTime var getToPeriodStartDateTime = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10); ai.log.LogInfo("getToPeriodStartDateTime"+getToPeriodStartDateTime); //2018-01-01 //getToPeriodEndDateTime var getToPeriodEndDateTime = dataSource.getSetting("Period Range").getValue().getToPeriodEndDateTime().substring(0, 10); ai.log.LogInfo("getToPeriodEndDateTime"+getToPeriodEndDateTime); //2018-01-30 }
Dimensionseinstellungen
Dimensionseinstellungen
getValue() gibt den Wert als komplexes Objekt zurück. Dieses Objekt ist wie folgt definiert:
Methode | Parameter | Retouren | Beschreibung |
|---|---|---|---|
getDimensionName() | String | Gibt den Namen der im Wert definierten Dimension zurück. | |
getValueName() | Kombination | Gibt den Namen des im Wert definierten Dimensionselements zurück. |
- Beispiel
- //Navigate to Designer Settings tab and drag a Static Dimension parameter from the Settings Component pane //Name the setting "Custom Dimension" and set a value from the Static Dimension Setting dropdown var setting=dataSource.getSetting("Custom Dimension" ); var value = setting.getValue(); //Example: getDisplayName var name = value.getDimensionName(); var settingValue=value.getValueName(); ai.log.logInfo("Dimension Settings Name: "+name+" and Dimension Settings Value: "+settingValue); //Dimension Settings Name: Level and Dimension Settings Value: Company B (40% owned)Example for Dimension Settings //Navigate to Designer Settings tab and drag a Static Dimension parameter from the Settings Component pane //Name the setting "Custom Dimension" and set a value from the Static Dimension Setting dropdown var setting=dataSource.getSetting("Custom Dimension" ); var value = setting.getValue(); //Example: getDisplayName var name = value.getDimensionName(); var settingValue=value.getValueName(); ai.log.logInfo("Dimension Settings Name: "+name+" and Dimension Settings Value: "+settingValue); //Dimension Settings Name: Level and Dimension Settings Value: Company B (40% owned)
ai.dataSource.table.requiredParameter
Während der Skriptausführung fordern gültige Erforderliche Parameter einen Benutzer auf, Werte anzugeben. Auf diese Werte kann dann in Skripten zugegriffen werden. Erforderliche Parameter können während der importStructure erstellt werden.
Während des Imports von Daten kann im Skript nur auf erforderliche Parameter zugegriffen werden, die als setForDataImport(true) konfigurierbar sind.
- Funktionen
- MethodeParameterRetourenBeschreibunggetId()StringGibt die Remote-ID des erforderlichen Parameters zurück.getValue()KombinationGibt den Wert des Parameters des erforderlichen Parameters zurück. Wert kann eine einfache Art oder ein komplexes Objekt sein - siehe unten Wertarten.isBoolean()BooleschGibt "true" zurück, wenn der erforderliche Parameter einen booleschen Wert hat.isDimension()BooleschGibt „true“ zurück, wenn die Art des erforderlichen Parameters „Dimension“ ist.isInteger()BooleschGibt „true“ zurück, wenn die Art des erforderlichen Parameters „Integer“ ist.isPassword()BooleschGibt „true“ zurück, wenn der erforderliche Parameter „Kennwort“ hat.isPeriodRange()BooleschGibt „true“ zurück, wenn der erforderliche Parameter PeriodRange hat.isText()BooleschGibt „true“ zurück, wenn die Art des erforderlichen Parameters Text ist.
- Wertarten
- Die Funktion getValue() jedes erforderlichen Parameters kann einen einfachen Typ oder ein komplexes Objekt zurückgeben.Erforderliche boolesche ParametergetValue() gibt den Wert als Boolesch zurück.Text Erforderliche ParametergetValue() gibt den Wert als Zeichenfolge zurück.Ganzzahl - Erforderliche ParametergetValue() gibt den Wert als Ganzzahl zurück.Kennwort erforderlichgetValue() gibt den Wert als Zeichenfolge zurück.Erforderliche Parameter für PeriodenbereichgetValue() gibt den Wert als komplexes Objekt zurück. Dieses Objekt ist wie folgt definiert:MethodeParameterRetourenBeschreibunggetFromPeriod()StringGibt eine Zeichenfolge zurück, die das aufgelöste Element definiertAdaptive PlanningVon Periode z. B "Monat y2016 M1"getToPeriod()StringGibt eine Zeichenfolge zurück, die das aufgelöste Element definiertAdaptive PlanningIn Periode z. B "Monat y2016 M1"getFromPeriodStartDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Startdatums der Periode zurück, das in lokaler Zeit angegeben wird. z. B "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Enddatums der Von Periode zurück, angegeben in lokaler Zeit. z. B "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Startdatums/der Zeitperiode für Bis Periode zurück, angegeben in lokaler Zeit. z. B "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()StringGibt eine DATETIME-Zeichenfolgendarstellung des Enddatums der Bis Periode zurück, angegeben in lokaler Zeit. z. B "2016-07-01T00:00:00+10:00"
- Dimensionseinstellungen
- getValue() gibt den Wert als komplexes Objekt zurück. Dieses Objekt ist wie folgt definiert:MethodeParameterRetourenBeschreibunggetDimensionName()StringGibt den Namen der im Wert definierten Dimension zurück.getValueName()KombinationGibt den Namen des im Wert definierten Dimensionselements zurück.