ai.dataSource
El origen de datos contiene configuraciones y tablas.
Funciones
Método | Parámetros | Devoluciones | Descripción |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | Devuelve una lista de tablas importadas. | |
getTable( tableId ) | tableId : ID remoto de cadena de la tabla | ai.dataSource.table | Devuelve la tabla con el ID de tabla solicitado. Devuelve un valor nulo si no se encuentra ninguna tabla. |
getSettings() | Array<ai.dataSource.setting> | Devuelve todos los parámetros flexibles. | |
getSetting( displayName ) | displayName : Cadena Nombre de la configuración | ai.dataSource.setting | Devuelve una configuración flexible por su nombre de visualización |
- Ejemplo
- 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 | Devoluciones | Descripción |
|---|---|---|---|
getColumnByDisplayName( name ) | name : Cadena Nombre de visualización de la columna | ai.dataSource.column | Busca una columna por su nombre de visualización. Devuelve un valor nulo si no se encuentra ninguna columna. |
getColumnById( id ) | id : ID remoto de cadena de la columna | ai.dataSource.column | Busca una columna por su ID remoto. Devuelve un valor nulo si no se encuentra ninguna columna. |
getColumns() | Array<ai.dataSource.column> | Devuelve todas las columnas secundarias que se han activado para la importación de datos. | |
getDisplayName() | Cadena | Devuelve el nombre de visualización de la tabla. | |
getId() | Cadena | Devuelve el ID remoto de esta tabla o el nombre de visualización si no se ha especificado ningún ID remoto. | |
getLastImported() | Cadena | Devuelve una cadena que identifica cuándo se importó la tabla por última vez. | |
getRelationships() | Array<ai.dataSource.relationship> | Devuelve todas las relaciones en las que esta tabla es la tabla principal de la relación. | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | Devuelve todos los parámetros obligatorios de la tabla y sus valores de parámetro. | |
getRequiredParameter( id ) | id : ID remoto de cadena del parámetro obligatorio definido durante la importación de estructura | ai.dataSource.table.requiredParameter | Devuelve un parámetro obligatorio de tabla por su ID remoto. |
- Ejemplo
- //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 | Devoluciones | Descripción |
|---|---|---|---|
getColumnType() | Cadena | Devuelve el tipo de columna. El valor es "DateTimeColumn", "IntegerColumn", "FloatColumn", "BooleanColumn" o "TextColumn". | |
getDisplayName() | Cadena | Devuelve el nombre de visualización de las columnas. | |
getDisplayOrder() | Cadena | Devuelve el orden de visualización de las columnas. | |
getId() | Cadena | Devuelve el ID remoto de las columnas o el nombre de visualización si no se ha especificado ningún ID remoto. | |
getIncludeByDefault() | Booleano | Devuelve verdadero si la columna está incluida en la importación de datos. | |
getIncludeInKey() | Booleano | Devuelve verdadero si la columna forma parte de la clave de tabla. Las columnas clave no permiten valores nulos. | |
getLength() | Valor entero | Nota: solo para TextColumns. Devuelve la longitud máxima de los valores contenidos en una TextColumn. | |
getMandatoryForImports() | Verdadero | Devuelve verdadero si la columna debe formar parte de la importación de datos. | |
getNonFilterable() | Verdadero | Devuelve verdadero si la columna no se puede utilizar como parte de un filtro SQL (sentencia WHERE). | |
getRemoteColumnType() | Cadena | Devuelve el tipo de columna remota de las columnas tal como se define en la secuencia de comandos de estructura de importación. |
- Ejemplo
- //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
- Funciones
- MétodoParámetrosDevolucionesDescripcióngetJoinExpression()CadenaDevuelve el SQL de almacenamiento de expresión de las relaciones, por ejemplo 'P.Column123 = R.Column321'.getJoinType()IntDevuelve el tipo de combinación de las relaciones. Los valores son 0 (Inner), 1 (LeftOuter) o 2 (RightOuter).getDisplayName()CadenaDevuelve el nombre de visualización de las relaciones.getRelatedTableId()CadenaDevuelve el ID remoto de la tabla relacionada de las relaciones o su nombre de visualización es no se ha especificado ningún ID remoto.getRelatedTableName()CadenaDevuelve el nombre de visualización de la tabla relacionada de las relaciones.
ai.dataSource.setting
Los parámetros flexibles son elementos secundarios de un origen de datos de nube personalizada. Los parámetros pueden ser estáticos en el sentido de que se configura un valor, o se pueden parametrizar de forma que, en tiempo de ejecución de la secuencia de comandos, se solicite a los usuarios que introduzcan un valor para el parámetro. Algunos ejemplos de uso de configuración son las URL, los nombres de usuario, las contraseñas, los rangos de fechas o las dimensiones a las que puede acceder una secuencia de comandos.
- Funciones
- MétodoParámetrosDevolucionesDescripcióngetDisplayName()CadenaDevuelve el nombre de visualización de la configuración.getValue()MixtoDevuelve el valor del parámetro de configuración. El valor puede ser un tipo primitivo o un objeto complejo; consulte Tipos de valor a continuación.isBoolean()BooleanoDevuelve verdadero si el tipo de configuración es booleano.isDimension()BooleanoDevuelve verdadero si el tipo de configuración es Dimensión.isInteger()BooleanoDevuelve verdadero si el tipo de configuración es Entero.isPassword()BooleanoDevuelve verdadero si el tipo de configuración es Contraseña.isPeriodRange()BooleanoDevuelve verdadero si el tipo de configuración es PeriodRange.isText()BooleanoDevuelve verdadero si el tipo de configuración es Texto.Ejemplo//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
- La función getValue() de cada configuración puede devolver un tipo primitivo o un objeto complejo.Configuración booleana:getValue() devuelve el valor como valor booleano.Configuración de texto:getValue() devuelve el valor como una cadena.Configuración de número entero:getValue() devuelve el valor como número entero.Configuración de contraseña:getValue() devuelve el valor como una cadena.Configuración de rango de periodo:getValue() devuelve el valor como un objeto complejo. Este objeto se define como:MétodoParámetrosDevolucionesDescripcióngetFromPeriod()CadenaDevuelve una cadena que define la representación interna de resueltoAdaptive PlanningFrom Period que se puede utilizar para pasar a las llamadas al método ai.calendar. P. ej. "3152|5201611100000"getToPeriod()CadenaDevuelve una cadena que define la representación interna de resueltoAdaptive PlanningHasta Periodo que se puede usar para pasar a las llamadas al método ai.calendar. P. ej. "3152|5201611100000"getFromPeriodStartDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora inicial de Desde periodo, expresada en hora local. P. ej. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora final del periodo inicial, expresada en la hora local. P. ej. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora inicial de Periodo final, expresada en hora local. P. ej. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora final del periodo final, expresada en hora local. P. ej. "2016-07-01T00:00:00+10:00"
- Ejemplo
- 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 }
Configuración de dimensión
Configuración de dimensión
getValue() devuelve el valor como un objeto complejo. Este objeto se define como:
Método | Parámetros | Devoluciones | Descripción |
|---|---|---|---|
getDimensionName() | Cadena | Devuelve el nombre de la Dimensión definida en el valor. | |
getValueName() | Mixto | Devuelve el nombre del miembro de dimensión definido en el valor. |
- Ejemplo
- //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 la ejecución de la secuencia de comandos, los parámetros obligatorios válidos solicitan al usuario que proporcione valores. A continuación, se puede acceder a estos valores en las secuencias de comandos. Los parámetros obligatorios se pueden crear durante importStructure.
Durante ImportData, solo se puede acceder en la secuencia de comandos a los parámetros obligatorios que se hayan configurado como setForDataImport(true).
- Funciones
- MétodoParámetrosDevolucionesDescripcióngetId()CadenaDevuelve el ID remoto del parámetro obligatorio.getValue()MixtoDevuelve el valor del parámetro del parámetro obligatorio. El valor puede ser un tipo primitivo o un objeto complejo; consulte Tipos de valor a continuación.isBoolean()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es booleano.isDimension()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es Dimensión.isInteger()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es Entero.isPassword()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es Contraseña.isPeriodRange()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es PeriodRange.isText()BooleanoDevuelve verdadero si el tipo de parámetro obligatorio es Texto.
- Tipos de valor
- La función getValue() de cada parámetro obligatorio puede devolver un tipo primitivo o un objeto complejo.Parámetros booleanos obligatoriosgetValue() devuelve el valor como valor booleano.Parámetros obligatorios de textogetValue() devuelve el valor como una cadena.Parámetros obligatorios de número enterogetValue() devuelve el valor como un valor entero.Parámetros obligatorios de contraseñagetValue() devuelve el valor como una cadena.Parámetros obligatorios de rango de periodogetValue() devuelve el valor como un objeto complejo. Este objeto se define como:MétodoParámetrosDevolucionesDescripcióngetFromPeriod()CadenaDevuelve una cadena que define el valor resuelto.Adaptive PlanningPeriodo inicial P. ej. "Mes y2016 M1"getToPeriod()CadenaDevuelve una cadena que define el valor resuelto.Adaptive PlanningPeriodo final P. ej. "Mes y2016 M1"getFromPeriodStartDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora inicial de Desde periodo, expresada en hora local. P. ej. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora final del periodo inicial, expresada en la hora local. P. ej. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora inicial de Periodo final, expresada en hora local. P. ej. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()CadenaDevuelve una representación de cadena de fecha y hora de la fecha y hora final del periodo final, expresada en hora local. P. ej. "2016-07-01T00:00:00+10:00"
- Configuración de dimensión
- getValue() devuelve el valor como un objeto complejo. Este objeto se define como:MétodoParámetrosDevolucionesDescripcióngetDimensionName()CadenaDevuelve el nombre de la Dimensión definida en el valor.getValueName()MixtoDevuelve el nombre del miembro de dimensión definido en el valor.