ai.dataSource
A fonte de dados contém configurações e tabelas.
Funções
Método | Parâmetros | Devoluções | Descrição |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | Retorna uma lista de tabelas importadas. | |
getTable( tableId ) | tableId: cadeia de caracteres da ID remota da tabela | ai.dataSource.table | Retorna a tabela com a ID da tabela solicitada. Retorna nulo se nenhuma tabela é encontrada. |
getSettings() | Array<ai.dataSource.setting> | Retorna todas as configurações flexíveis. | |
getSetting( displayName ) | displayName : cadeia de caracteres do nome da configuração | ai.dataSource.setting | Retorna uma configuração flexível pelo nome de exibição |
- Exemplo
- 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
Método | Parâmetros | Devoluções | Descrição |
|---|---|---|---|
getColumnByDisplayName( name ) | name: cadeia de caracteres Nome de exibição da coluna | ai.dataSource.column | Localiza uma coluna pelo nome de exibição. Retorna nulo se nenhuma coluna é encontrada. |
getColumnById( id ) | id : cadeia de caracteres da ID remota da coluna | ai.dataSource.column | Localiza uma coluna por sua ID remota. Retorna nulo se nenhuma coluna é encontrada. |
getColumns() | Array<ai.dataSource.column> | Retorna todas as colunas filho que foram habilitadas para importação de dados. | |
getDisplayName() | Cadeia de caracteres | Retorna o nome de exibição da tabela. | |
getId() | Cadeia de caracteres | Retorna a ID remota desta tabela ou o nome de exibição se nenhuma ID remota foi especificada. | |
getLastImported() | Cadeia de caracteres | Retorna uma cadeia de caracteres que identifica quando a tabela foi importada pela última vez. | |
getRelationships() | Array<ai.dataSource.relationship> | Retorna todos os relacionamentos em que esta tabela é a tabela principal do relacionamento. | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | Retorna todos os parâmetros obrigatórios da tabela e seus valores de parâmetro. | |
getRequiredParameter( id ) | id: ID remota da cadeia de caracteres do parâmetro obrigatório conforme definido durante a importação de estrutura | ai.dataSource.table.requiredParameter | Retorna um parâmetro obrigatório de tabela por sua ID remota. |
- Exemplo
- //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
Método | Parâmetros | Devoluções | Descrição |
|---|---|---|---|
getColumnType() | Cadeia de caracteres | Retorna o tipo de coluna. O valor é "DateTimeColumn", "IntegerColumn", "FloatColumn", "BoolianoColumn" ou "TextColumn". | |
getDisplayName() | Cadeia de caracteres | Retorna o nome de exibição das colunas. | |
getDisplayOrder() | Cadeia de caracteres | Retorna a ordem de exibição das colunas. | |
getId() | Cadeia de caracteres | Retorna a ID remota das colunas ou o nome de exibição é que nenhuma ID remota foi especificada. | |
getIncludeByDefault() | Booliano | Retorna verdadeiro se a coluna está incluída na importação de dados. | |
getIncludeInKey() | Booliano | Retorna verdadeiro se a coluna faz parte da chave da tabela. Colunas-chave não permitem valores nulos. | |
getLength() | Número inteiro | Observação: somente para TextColumns. Retorna o comprimento máximo de valores mantidos em um TextColumn. | |
getMandatoryForImports() | Verdadeiro | Retorna verdadeiro se a coluna for obrigatória para fazer parte da importação de dados. | |
getNonFilterable() | Verdadeiro | Retorna verdadeiro se a coluna não pode ser usada como parte de um filtro SQL (instrução WHERE). | |
getRemoteColumnType() | Cadeia de caracteres | Retorna o tipo de coluna remota das colunas, conforme definido no script de importação de estrutura. |
- Exemplo
- //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
- Funções
- MétodoParâmetrosDevoluçõesDescriçãogetJoinExpression()Cadeia de caracteresRetorna o SQL de armazenamento de expressões dos relacionamentos, por exemplo 'P.Column123 = R.Column321'.getJoinType()IntRetorna o tipo de junção dos relacionamentos. Os valores são 0 (interno), 1 (LeftOuter) ou 2 (RightOuter).getDisplayName()Cadeia de caracteresRetorna o nome de exibição dos relacionamentos.getRelatedTableId()Cadeia de caracteresRetorna a ID remota da tabela relacionada dos relacionamentos, ou seu nome de exibição é Nenhuma ID remota especificada.getRelatedTableName()Cadeia de caracteresRetorna o nome de exibição da tabela relacionada dos relacionamentos.
ai.dataSource.setting
As configurações flexíveis são itens filho de uma fonte de dados em nuvem personalizada. As configurações podem ser estáticas, em que um valor é definido, ou podem ser parametrizadas de forma que, em tempo de execução do script, os usuários sejam solicitados a inserir um valor para a configuração. Exemplos de uso de configuração são URLs, nomes de usuário, senhas, intervalos de datas ou dimensões que um script pode acessar.
- Funções
- MétodoParâmetrosDevoluçõesDescriçãogetDisplayName()Cadeia de caracteresRetorna o nome de exibição das configurações.getValue()MistoRetorna o valor do parâmetro da configuração. O valor pode ser um tipo primário ou um objeto complexo - consulte Tipos de valor abaixo.isBoolean()BoolianoRetorna verdadeiro se o tipo de configuração é Booliano.isDimension()BoolianoRetorna verdadeiro se o tipo de configuração é Dimensão.isInteger()BoolianoRetorna verdadeiro se o tipo de configuração é Número inteiro.isPassword()BoolianoRetorna verdadeiro se o tipo de configuração é Senha.isPeriodRange()BoolianoRetorna verdadeiro se o tipo de configuração é PeriodRange.isText()BoolianoRetorna verdadeiro se o tipo de configuração é Texto.Exemplo//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();
- Tipos de valor
- A função getValue() de cada configuração pode retornar um tipo primário ou um objeto complexo.Configurações de booliano:getValue() retorna o valor como um booliano.Configurações de texto:getValue() retorna o valor como uma cadeia de caracteres.Configurações de número inteiro:getValue() retorna o valor como um número inteiro.Configurações de senha:getValue() retorna o valor como uma cadeia de caracteres.Configurações de intervalo de períodos:getValue() retorna o valor como um objeto complexo. Esse objeto é definido da seguinte forma:MétodoParâmetrosDevoluçõesDescriçãogetFromPeriod()Cadeia de caracteresRetorna uma cadeia de caracteres que define a representação interna de resolvido.Adaptive PlanningPeríodo inicial que pode ser usado para passar para as chamadas de método ai.calendar. E.g. "3152|5201611100000"getToPeriod()Cadeia de caracteresRetorna uma cadeia de caracteres que define a representação interna de resolvido.Adaptive PlanningPeríodo de término que pode ser usado para passar para as chamadas de método do ai.calendar. E.g. "3152|5201611100000"getFromPeriodStartDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de início do período inicial, expressa na hora local. E.g. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de término do período inicial, expressa na hora local. E.g. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de início do Período final, expressa na hora local. E.g. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de término do Período final, expressa na hora local. E.g. "2016-07-01T00:00:00+10:00"
- Exemplo
- 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 }
Configurações de dimensão
Configurações de dimensão
getValue() retorna o valor como um objeto complexo. Esse objeto é definido da seguinte forma:
Método | Parâmetros | Devoluções | Descrição |
|---|---|---|---|
getDimensionName() | Cadeia de caracteres | Retorna o nome da dimensão definida no valor. | |
getValueName() | Misto | Retorna o nome do membro da dimensão definido no valor. |
- Exemplo
- //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
Durante a execução do script, Parâmetros obrigatórios válidos solicitam que o usuário forneça valores. Esses valores podem ser acessados em scripts. Parâmetros obrigatórios podem ser criados durante importStructure.
Durante ImportData, somente os Parâmetros obrigatórios que foram configuráveis como setForDataImport(true) estão acessíveis no script.
- Funções
- MétodoParâmetrosDevoluçõesDescriçãogetId()Cadeia de caracteresRetorna a ID remota do parâmetro obrigatório.getValue()MistoRetorna o valor do parâmetro obrigatório. O valor pode ser um tipo primário ou um objeto complexo - consulte Tipos de valor abaixo.isBoolean()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é Booliano.isDimension()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é Dimensão.isInteger()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é Número inteiro.isPassword()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é Senha.isPeriodRange()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é PeriodRange.isText()BoolianoRetorna verdadeiro se o tipo do parâmetro obrigatório é Texto.
- Tipos de valor
- A função getValue() de cada parâmetro obrigatório pode retornar um tipo primário ou um objeto complexo.Parâmetros boolianos obrigatóriosgetValue() retorna o valor como um valor booliano.Parâmetros obrigatórios de textogetValue() retorna o valor como uma Cadeia de caracteres.Parâmetros de número inteiro obrigatóriosgetValue() retorna o valor como um número inteiro.Parâmetros obrigatórios de senhagetValue() retorna o valor como uma Cadeia de caracteres.Parâmetros obrigatórios de intervalo de períodosgetValue() retorna o valor como um objeto complexo. Esse objeto é definido da seguinte forma:MétodoParâmetrosDevoluçõesDescriçãogetFromPeriod()Cadeia de caracteresRetorna uma cadeia de caracteres que define o resolvidoAdaptive PlanningPeríodo inicial E.g. "Mês y2016 M1"getToPeriod()Cadeia de caracteresRetorna uma cadeia de caracteres que define o resolvidoAdaptive PlanningPeríodo final E.g. "Mês y2016 M1"getFromPeriodStartDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de início do período inicial, expressa na hora local. E.g. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de término do período inicial, expressa na hora local. E.g. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de início do Período final, expressa na hora local. E.g. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()Cadeia de caracteresRetorna uma representação de cadeia de caracteres de data e hora da data e hora de término do Período final, expressa na hora local. E.g. "2016-07-01T00:00:00+10:00"
- Configurações de dimensão
- getValue() retorna o valor como um objeto complexo. Esse objeto é definido da seguinte forma:MétodoParâmetrosDevoluçõesDescriçãogetDimensionName()Cadeia de caracteresRetorna o nome da dimensão definida no valor.getValueName()MistoRetorna o nome do membro da dimensão definido no valor.