ai.dataSource
La source de données contient des paramètres et des tables.
Fonctions
Méthode | Paramètres | Retours | Description |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | Renvoie une liste des tables importées. | |
getTable( tableId ) | tableId : chaîne d'identifiant distant de la table | ai.dataSource.table | Renvoie la table avec l'identifiant de table demandé. Renvoie la valeur "null" si aucune table n'est trouvée. |
getSettings() | Array<ai.dataSource.setting> | Renvoie tous les paramètres flexibles. | |
getSetting( displayName ) | displayName : chaîne de nom du paramètre | ai.dataSource.setting | Renvoie un paramètre flexible par son nom d'affichage |
- Exemple
- 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éthode | Paramètres | Retours | Description |
|---|---|---|---|
getColumnByDisplayName( nom ) | name : chaîne Nom d'affichage de la colonne | ai.dataSource.column | Recherche une colonne par son nom d'affichage. Renvoie la valeur "null" si aucune colonne n'a été trouvée. |
getColumnById( id ) | id : chaîne Identifiant distant de la colonne | ai.dataSource.column | Recherche une colonne avec son identifiant distant. Renvoie la valeur "null" si aucune colonne n'a été trouvée. |
getColumns() | Array<ai.dataSource.column> | Renvoie toutes les colonnes enfants sur lesquelles l'import de données a été activée. | |
getDisplayName() | String | Renvoie le nom d'affichage de la table. | |
getId() | String | Renvoie l'identifiant distant de cette table, ou le nom d'affichage si aucun identifiant distant n'a été spécifié. | |
getLastImported() | String | Renvoie une chaîne indiquant quand la table a été importée pour la dernière fois. | |
getRelationships() | Array<ai.dataSource.relationship> | Renvoie toutes les relations où cette table est la table principale du lien. | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | Renvoie tous les paramètres obligatoires de la table et leurs valeurs de paramètre. | |
getRequiredParameter( id ) | id : chaîne Identifiant distant du paramètre obligatoire tel que défini pendant l'import de la structure | ai.dataSource.table.requiredParameter | Renvoie un paramètre obligatoire de table par son identifiant distant. |
- Exemple
- //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éthode | Paramètres | Retours | Description |
|---|---|---|---|
getColumnType() | String | Renvoie le type de colonne. La valeur est 'DateTimeColumn', 'IntegerColumn', 'FloatColumn', 'booléenColumn' ou 'TextColumn'. | |
getDisplayName() | String | Renvoie le nom d'affichage des colonnes. | |
getDisplayOrder() | String | Renvoie l'ordre d'affichage des colonnes. | |
getId() | String | Renvoie les colonnes Identifiant distant, ou le nom d'affichage n'est pas un identifiant distant qui a été indiqué. | |
getIncludeByDefault() | Boolean | Renvoie le résultat "vrai" si la colonne est incluse dans l'import des données. | |
getIncludeInKey() | Boolean | Renvoie true (vrai) si la colonne fait partie de la clé de table. Les colonnes clés n'autorisent pas les valeurs nulles. | |
getLength() | Integer | Remarque : uniquement pour TextColumns. Renvoie la longueur maximale des valeurs contenues dans un TextColumn. | |
getMandatoryForImports() | Vrai | Renvoie true (vrai) si la colonne doit faire partie de l'import des données. | |
getNonFilterable() | Vrai | Renvoie true (vrai) si la colonne ne peut pas être utilisée dans le cadre d'un filtre SQL (instruction WHERE). | |
getRemoteColumnType() | String | Renvoie le type de colonne distante des colonnes tel que défini dans le script d'import de la structure. |
- Exemple
- //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
- Fonctions
- MéthodeParamètresRetoursDescriptiongetJoinExpression()StringRenvoie l'expression SQL de stockage de l'expression des relations 'P.Column123 = R.Column321'.getJoinType()IntRenvoie le type de jointure des relations. Les valeurs sont 0 (Inner), 1 (LeftOuter) ou 2 (RightOuter).getDisplayName()StringRenvoie le nom d'affichage des relations.getRelatedTableId()StringRenvoie l'identifiant distant de la table associée aux relations ou son nom d'affichage n'est pas indiqué.getRelatedTableName()StringRenvoie le nom d'affichage de la table associée des relations.
ai.dataSource.setting
Les paramètres flexibles sont des éléments enfant d'une Source de données Cloud personnalisée. Les paramètres peuvent être statiques dans le cas où une valeur est configurée, ou ils peuvent être paramétrés dans le fait qu'à l'exécution du script, les utilisateurs sont invités à saisir une valeur pour le paramètre. Exemples d'utilisation de paramètres : URL, noms d'utilisateur, mots de passe, plages de dates ou dimensions auxquelles un script peut accéder.
- Fonctions
- MéthodeParamètresRetoursDescriptiongetDisplayName()StringRenvoie le nom d'affichage des paramètres.getValue()MixteRenvoie la valeur du paramètre du paramètre. La valeur peut être un type primitif ou un objet complexe - voir Types de valeur ci-dessous.isBoolean()BooleanRenvoie Vrai si le type de paramètre est Booléen.isDimension()BooleanRenvoie Vrai si le type de paramètre est Dimension.isInteger()BooleanRenvoie true (vrai) si le type de paramètre est Integer.isPassword()BooleanRenvoie Vrai si le type de paramètre est Mot de passe.isPeriodRange()BooleanRenvoie true (vrai) si le type de paramètre est PeriodRange.isText()BooleanRenvoie Vrai si le type de paramètre est Texte.Exemple//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();
- Types de valeur
- La fonction getValue() de chaque paramètre peut renvoyer un type primitif ou un objet complexe.Paramètres booléens :getValue() renvoie la valeur booléenne.Paramètres du texte :getValue() renvoie la valeur sous forme de chaîne.Paramètres Integer :getValue() renvoie la valeur sous la forme d'un Integer.Paramètres du mot de passe :getValue() renvoie la valeur sous forme de chaîne.Paramètres de plage de périodes :getValue() renvoie la valeur sous forme d'objet complexe. Cet objet est défini comme suit :MéthodeParamètresRetoursDescriptiongetFromPeriod()StringRenvoie une chaîne définissant la représentation interne de l'écriture résolueAdaptive PlanningPériode de début qui peut être utilisée pour passer aux appels de la méthode ai.calendar. Ex. "3152|520161110000"getToPeriod()StringRenvoie une chaîne définissant la représentation interne de l'écriture résolueAdaptive PlanningPériode de fin qui peut être utilisée pour passer aux appels de la méthode ai.calendar. Ex. "3152|520161110000"getFromPeriodStartDateTime()StringRenvoie une représentation de chaîne de date/heure de la date/heure de début de la période de début, exprimée en heure locale. Ex. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()StringRenvoie une représentation de la date et de l'heure de fin de la Période de début, exprimée en heure locale. Ex. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()StringRenvoie une représentation de chaîne de date/heure de la date/heure de début de la période de fin, exprimée en heure locale. Ex. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()StringRenvoie une représentation de la date et de l'heure de fin de la période de fin, exprimée en heure locale. Ex. "2016-07-01T00:00:00+10:00"
- Exemple
- 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 }
Paramètres de la dimension
Paramètres de la dimension
getValue() renvoie la valeur sous forme d'objet complexe. Cet objet est défini comme suit :
Méthode | Paramètres | Retours | Description |
|---|---|---|---|
getDimensionName() | String | Renvoie le nom de la dimension défini dans la valeur. | |
getValueName() | Mixte | Renvoie le nom du membre de dimension défini dans la valeur. |
- Exemple
- //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
Pendant l'exécution du script, les paramètres obligatoires valides invitent un utilisateur à fournir des valeurs. Ces valeurs sont alors accessibles dans les scripts. Les paramètres obligatoires peuvent être créés pendant importStructure.
Pendant ImportData, seuls les paramètres obligatoires configurés avec l'option setForDataImport(true) sont accessibles dans le script.
- Fonctions
- MéthodeParamètresRetoursDescriptiongetId()StringRenvoie l'identifiant distant du paramètre obligatoire.getValue()MixteRenvoie la valeur du paramètre du paramètre obligatoire. La valeur peut être un type primitif ou un objet complexe - voir Types de valeur ci-dessous.isBoolean()BooleanRenvoie le résultat "vrai" si le type du paramètre obligatoire est Booléen.isDimension()BooleanRenvoie Vrai si le type du paramètre obligatoire est Dimension.isInteger()BooleanRenvoie true (vrai) si le type du paramètre obligatoire est Integer.isPassword()BooleanRenvoie Vrai si le type du paramètre obligatoire est Mot de passe.isPeriodRange()BooleanRenvoie true (vrai) si le type du paramètre obligatoire est PeriodRange.isText()BooleanRenvoie true (vrai) si le type du paramètre obligatoire est Texte.
- Types de valeur
- La fonction getValue() de chaque paramètre obligatoire peut renvoyer un type primitif ou un objet complexe.Paramètres booléens obligatoiresgetValue() renvoie la valeur booléenne.Paramètres de texte obligatoiregetValue() renvoie la valeur value sous forme de chaîne.Paramètres obligatoires - EntiergetValue() renvoie la valeur sous forme d'entier.Paramètres de mot de passe obligatoiregetValue() renvoie la valeur value sous forme de chaîne.Paramètres obligatoires de la fourchette de périodesgetValue() renvoie la valeur sous forme d'objet complexe. Cet objet est défini comme suit :MéthodeParamètresRetoursDescriptiongetFromPeriod()StringRenvoie une chaîne définissant le statut résoluAdaptive PlanningPériode de début. Ex. "Mois y2016 M1"getToPeriod()StringRenvoie une chaîne définissant le statut résoluAdaptive PlanningPériode de fin. Ex. "Mois y2016 M1"getFromPeriodStartDateTime()StringRenvoie une représentation de chaîne de date/heure de la date/heure de début de la période de début, exprimée en heure locale. Ex. "2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()StringRenvoie une représentation de la date et de l'heure de fin de la Période de début, exprimée en heure locale. Ex. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()StringRenvoie une représentation de chaîne de date/heure de la date/heure de début de la période de fin, exprimée en heure locale. Ex. "2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()StringRenvoie une représentation de la date et de l'heure de fin de la période de fin, exprimée en heure locale. Ex. "2016-07-01T00:00:00+10:00"
- Paramètres de la dimension
- getValue() renvoie la valeur sous forme d'objet complexe. Cet objet est défini comme suit :MéthodeParamètresRetoursDescriptiongetDimensionName()StringRenvoie le nom de la dimension défini dans la valeur.getValueName()MixteRenvoie le nom du membre de dimension défini dans la valeur.