ai.dataSource
La source de données contient des paramètres et des tableaux.
Fonctions
Méthode | Paramètres | Retours | Description |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | Renvoie une liste de tables importées. | |
getTable( tableId ) | tableId : Identifiant distant de la table - Chaîne | ai.dataSource.table | Renvoie la table avec l’identifiant de la table demandée. Renvoie nul si aucune table n'est trouvée. |
getSettings() | Array<ai.dataSource.setting> | Renvoie tous les paramètres flexibles. | |
getSetting( displayName ) | afficherName : Nom de la chaîne du paramètre | ai.dataSource.setting | Retourne 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 : String Nom d'affichage de la colonne | ai.dataSource.column | Recherche une colonne par son nom d’affichage. Renvoie nul si aucune colonne n'est trouvée. |
getColumnById( id ) | id : Identifiant distant de la colonne | ai.dataSource.column | Recherche une colonne par son identifiant distant. Renvoie nul si aucune colonne n'est trouvée. |
getColumns() | Array<ai.dataSource.column> | Renvoie toutes les colonnes enfants qui ont été activées pour l’importation de données. | |
getDisplayName() | Chaîne | Renvoie le nom d'affichage du tableau. | |
getId() | Chaîne | Renvoie l’identifiant distant de cette table ou le nom d’affichage si aucun identifiant distant n’a été précisé. | |
getLastImported() | Chaîne | Renvoie une chaîne indiquant à quel moment la table a été importée. | |
getRelationships() | Array<ai.dataSource.relationship> | Renvoie toutes les relations lorsque cette table est la table principale de la relation. | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | Renvoie tous les paramètres de tableau obligatoires et leurs valeurs de paramètre. | |
getRequiredParater( id ) | id : Identifiant distant de la chaîne du paramètre obligatoire tel que défini pendant l'importation de la structure | ai.dataSource.table.requiredParameter | Renvoie un paramètre obligatoire de tableau 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() | Chaîne | Renvoie le type de colonne. La valeur est 'DateTimeColumn', 'IntegerColumn', 'FlottColumn', ' BooléenColumn' ou 'TextColumn'. | |
getDisplayName() | Chaîne | Renvoie le nom d'affichage des colonnes. | |
getDisplayOrder() | Chaîne | Renvoie l’ordre d’affichage des colonnes. | |
getId() | Chaîne | Renvoie l’identifiant distant de la colonne ou le nom d’affichage n’a pas d’identifiant distant. | |
getIncludeByDefault() | Booléen | Renvoie la valeur Vrai si la colonne est incluse dans l'importation des données. | |
getIncludeInKey() | Booléen | Renvoie la valeur vraie si la colonne fait partie de la clé de la table. Les colonnes clés n'autorisent pas les valeurs nulles. | |
getLength() | Entier | Note : uniquement pour TextColumns. Renvoie la longueur maximum des valeurs contenues dans une TextColumn. | |
getMandatoryForImports() | Vrai | Renvoie la valeur Vrai si la colonne doit faire partie de l’importation des données. | |
getNonFilterable() | Vrai | Renvoie la valeur vraie si la colonne ne peut pas être utilisée dans le cadre d’un filtre SQL (énoncé WHERE). | |
getRemoteColumnType() | Chaîne | Renvoie le type de colonne distante des colonnes tel que défini dans le script de la structure d’importation. |
- 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()ChaîneRenvoie le stockage de l'expression des relations, par exemple SQL 'P.Column123 = R.Column321'.getJoinType()IntRenvoie le type de jointure des liens. Les valeurs sont 0 (Inner), 1 (LeftOuter) ou 2 (RightOuter).getDisplayName()ChaîneRenvoie le nom d’affichage des liens.getRelatedTableId()ChaîneRenvoie l’identifiant distant de la table associée aux relations, ou son nom d’affichage n’est pas un identifiant distant.getRelatedTableName()ChaîneRenvoie le nom d’affichage de la table associée des liens.
ai.dataSource.setting
Les paramètres flexibles sont des éléments enfants d’une source de données infonuagique personnalisée. Les paramètres peuvent être statiques dans le cas où une valeur est configurée ou ils peuvent être paramétrables de manière à ce qu’au moment de l’exécution du script, les utilisateurs soient invités à entrer une valeur pour le paramètre. Les adresses URL, les noms d’utilisateur, les mots de passe, les intervalles de dates ou les dimensions auxquels un script peut accéder sont des exemples d’utilisation du paramètre.
- Fonctions
- MéthodeParamètresRetoursDescriptiongetDisplayName()ChaîneRenvoie 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 les types de valeurs ci-dessous.isBoolean()BooléenRenvoie la valeur Vrai si le type de paramètre est Booléen.isDimension()BooléenRenvoie la valeur Vrai si le type de paramètre est Dimension.isInteger()BooléenRenvoie la valeur Vrai si le type de paramètre est Entier.isPassword()BooléenRenvoie la valeur Vrai si le type de paramètre est Mot de passe.isPeriodRange()BooléenRenvoie la valeur vrai si le type de paramètre est PeriodRange.isText()BooléenRenvoie la valeur 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 valeurs
- La fonction getValue() de chaque paramètre peut renvoyer un type primitif ou un objet complexe.Paramètres de type booléen :getValue() renvoie la valeur sous forme de booléen.Paramètres de texte :getValue() renvoie la valeur sous forme de chaîne.Paramètres Entier :getValue() renvoie la valeur sous forme d’entier.Paramètres des mots de passe :getValue() renvoie la valeur sous forme de chaîne.Paramètres de la plage de périodes :getValue() renvoie la valeur sous forme d’objet complexe. Cet objet est défini comme tel :MéthodeParamètresRetoursDescriptiongetFromPeriod()ChaîneRenvoie une chaîne définissant la représentation interne d’un processus résoluAdaptive PlanningPériode de début qui peut être utilisée pour passer aux appels de méthode ai.calendar. Ex. « 3152|5201611100 000 »getToPeriod()ChaîneRenvoie une chaîne définissant la représentation interne d’un processus résoluAdaptive PlanningÀ la période qui peut être utilisée pour passer aux appels de méthode ai.calendar. Ex. « 3152|5201611100 000 »getFromPeriodStartDateTime()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’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()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’heure de fin de la période De, exprimée en heure locale. Ex. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()ChaîneRenvoie une représentation de chaîne de date/heure de la date de début de la période À, exprimée en heure locale. Ex. « 2016-06-01T00:00:00+10:00 »getToPeriodEndDateTime()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’heure de fin de la période À, 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 dimension
Paramètres de dimension
getValue() renvoie la valeur sous forme d’objet complexe. Cet objet est défini comme tel :
Méthode | Paramètres | Retours | Description |
|---|---|---|---|
getDimensionName() | Chaîne | Renvoie le nom de la dimension définie 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, des paramètres obligatoires valides invitent un utilisateur à fournir des valeurs. Ces valeurs sont ensuite accessibles dans les scripts. Les paramètres obligatoires peuvent être créés pendant l'importation de Structure.
Pendant ImportData, seuls les paramètres obligatoires qui ont été configurables en tant que setForDataImport(true) sont accessibles dans le script.
- Fonctions
- MéthodeParamètresRetoursDescriptiongetId()ChaîneRenvoie 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 les types de valeurs ci-dessous.isBoolean()BooléenRenvoie la valeur vraie si le type du paramètre obligatoire est Booléen.isDimension()BooléenRenvoie la valeur Vrai si le type du paramètre obligatoire est Dimension.isInteger()BooléenRenvoie la valeur Vrai si le type du paramètre obligatoire est Entier.isPassword()BooléenRenvoie la valeur Vrai si le type du paramètre obligatoire est Mot de passe.isPeriodRange()BooléenRenvoie la valeur vrai si le type du paramètre obligatoire est PeriodRange.isText()BooléenRenvoie la valeur Vrai si le type du paramètre obligatoire est Texte.
- Types de valeurs
- La fonction getValue() de chaque paramètre obligatoire peut renvoyer un type primitif ou un objet complexe.Paramètres obligatoires de type booléengetValue() renvoie la valeur sous forme de booléen.Paramètres de texte obligatoiresgetValue() renvoie la valeur sous forme de chaîne.Paramètres obligatoires de valeur entièregetValue() renvoie la valeur sous forme d’entier.Paramètres obligatoires pour le mot de passegetValue() renvoie la valeur sous forme de chaîne.Paramètres obligatoires pour la plage de périodesgetValue() renvoie la valeur sous forme d’objet complexe. Cet objet est défini comme tel :MéthodeParamètresRetoursDescriptiongetFromPeriod()ChaîneRenvoie une chaîne définissant la valeur résolueAdaptive PlanningDe la période. Ex. « Mois y2016 M1 »getToPeriod()ChaîneRenvoie une chaîne définissant la valeur résolueAdaptive PlanningÀ la période. Ex. « Mois y2016 M1 »getFromPeriodStartDateTime()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’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()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’heure de fin de la période De, exprimée en heure locale. Ex. "2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()ChaîneRenvoie une représentation de chaîne de date/heure de la date de début de la période À, exprimée en heure locale. Ex. « 2016-06-01T00:00:00+10:00 »getToPeriodEndDateTime()ChaîneRenvoie une représentation sous forme de chaîne de date de la date et de l’heure de fin de la période À, exprimée en heure locale. Ex. "2016-07-01T00:00:00+10:00"
- Paramètres de dimension
- getValue() renvoie la valeur sous forme d’objet complexe. Cet objet est défini comme tel :MéthodeParamètresRetoursDescriptiongetDimensionName()ChaîneRenvoie le nom de la dimension définie dans la valeur.getValueName()MixteRenvoie le nom du membre de dimension défini dans la valeur.