ai.dataSource
数据源包含设置和表格。
函数
方法 | 参数 | 退货 | 描述 |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | 返回导入表格的列表。 | |
getTable( tableId ) | tableId : 表的 String 远程编号 | ai.dataSource.table | 返回具有所请求表格编号的表格。如果未找到表格,则返回 null。 |
getSettings() | Array<ai.dataSource.setting> | 返回所有弹性设置。 | |
getSetting( displayName ) | displayName : String 设置的名称 | ai.dataSource.setting | 按弹性设置的显示名称返回弹性设置。 |
- 示例
- 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
方法 | 参数 | 退货 | 描述 |
|---|---|---|---|
getColumnByDisplayName( name ) | name : String 列的显示名称 | ai.dataSource.column | 按显示名称查找列。如果未找到列,则返回 null。 |
getColumnById( id ) | id:列的 String 远程编号 | ai.dataSource.column | 按列的远程编号查找列。如果未找到列,则返回 null。 |
getColumns() | Array<ai.dataSource.column> | 返回已启用数据导入的所有子列。 | |
getDisplayName() | String | 返回表格的显示名称。 | |
getId() | String | 返回此表格的远程编号,如果未指定远程编号,则返回显示名称。 | |
getLastImported() | String | 返回一个字符串,用于标识上次导入表格的时间。 | |
getRelationships() | Array<ai.dataSource.relationship> | 返回此表作为关系的主表的所有关系。 | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | 返回所有表格必需的参数及其参数值。 | |
getRequiredParameter( id ) | id:在导入结构期间定义的必需参数的字符串远程编号 | ai.dataSource.table.requiredParameter | 按表格的远程编号返回表格必需参数。 |
- 示例
- //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
方法 | 参数 | 退货 | 描述 |
|---|---|---|---|
getColumnType() | String | 返回列类型。值为“DateTimeColumn”、“IntegerColumn”、“FloatColumn”、“BooleanColumn”或“TextColumn”。 | |
getDisplayName() | String | 返回列的显示名称。 | |
getDisplayOrder() | String | 返回列的显示顺序。 | |
getId() | String | 如果未指定远程编号,则返回列的显示名称。 | |
getIncludeByDefault() | Boolean | 如果导入的数据中包括该列,则返回 true。 | |
getIncludeInKey() | Boolean | 如果列是表键的一部分,则返回 true。键列不允许空值。 | |
getLength() | 整数 | 注:仅适用于 TextColumns。返回 TextColumn 中所含值的最大长度。 | |
getMandatoryForImports() | True | 如果要求该列是数据导入的一部分,则返回 true。 | |
getNonFilterable() | True | 如果列不能用作 SQL 筛选器(WHERE 语句)的一部分,则返回 true。 | |
getRemoteColumnType() | String | 返回在导入结构脚本中定义的列的远程列类型。 |
- 示例
- //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
- 函数
- 方法参数退货描述getJoinExpression()String返回关系的表达式存储 SQL,例如“P.Column123 = R.Column321”。getJoinType()整数返回关系的联接类型。值为 0(内)、1(左外)或 2(右外)。getDisplayName()String返回关系的显示名称。getRelatedTableId()String返回关系的相关表格的远程编号,或者未指定远程编号时显示的名称。getRelatedTableName()String返回关系的相关表格的显示名称。
ai.dataSource.setting
弹性设置是自定义云数据源的子级条目。设置可以是静态的(通过配置值),也可以是参数化的(在脚本运行时,系统会提示用户为设置输入值)。设置用途的示例包括脚本可以访问的 URL、用户名、密码、日期范围或维度。
- 函数
- 方法参数退货描述getDisplayName()String返回设置的显示名称。getValue()混合返回设置的参数值。值可以是基本类型,也可以是复杂对象,请参见下文的值类型。isBoolean()Boolean如果设置类型为布尔值,则返回 true。isDimension()Boolean如果设置类型为“维度”,则返回 true。isInteger()Boolean如果设置类型为“整数”,则返回 true。isPassword()Boolean如果设置类型为“密码”,则返回 true。isPeriodRange()Boolean如果设置类型为 PeriodRange,则返回 true。isText()Boolean如果设置类型为“文本”,则返回 true。示例//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();
- 值类型
- 每个设置的 getValue() 函数都可以返回原始类型或复杂对象。布尔值设置:getValue() 以布尔值形式返回值。文本设置:getValue() 以字符串形式返回值。整数设置:getValue() 以整数形式返回值。密码设置:getValue() 以字符串形式返回值。期间范围设置:getValue() 以复杂对象形式返回值。此对象的定义如下:方法参数退货描述getFromPeriod()String返回一个字符串,该字符串定义了已解决的内部表示形式。Adaptive Planning起始期间,可用于传递给 ai.calendar 方法调用。例如“3152|5201611100000”getToPeriod()String返回一个字符串,该字符串定义了已解决的内部表示形式。Adaptive Planning“结束期间”,可用于传递给 ai.calendar 方法调用。例如“3152|5201611100000”getFromPeriodStartDateTime()String返回以本地时间表示的“起始期间”开始日期时间的日期时间字符串表示形式。例如"2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()String返回以本地时间表示的“起始期间”结束日期时间的日期时间字符串表示形式。例如"2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()String返回“结束期间”开始日期时间的日期时间字符串表示形式(以本地时间表示)。例如"2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()String返回以日期时间字符串表示形式表示“结束期间”结束日期时间的日期时间(以本地时间表示)。例如"2016-07-01T00:00:00+10:00"
- 示例
- 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 }
维度设置
维度设置
getValue() 以复杂对象的形式返回值。此对象的定义如下:
方法 | 参数 | 退货 | 描述 |
|---|---|---|---|
getDimensionName() | String | 返回值中定义的维度的名称。 | |
getValueName() | 混合 | 返回值中定义的维度成员的名称。 |
- 示例
- //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
在脚本执行期间,有效的“必需参数”会提示用户提供值。然后,您可以在脚本中访问这些值。可以在导入期间创建必需的参数结构。
在执行 ImportData 操作时,脚本中只能访问可通过 setForDataImport(true) 配置的“必选参数”。
- 函数
- 方法参数退货描述getId()String返回必需参数的远程编号。getValue()混合返回必需参数的参数的值。值可以是基本类型,也可以是复杂对象,请参见下文的值类型。isBoolean()Boolean如果必需参数的类型为布尔值,则返回 true。isDimension()Boolean如果必需参数的类型为“维度”,则返回 true。isInteger()Boolean如果必需参数的类型为“整数”,则返回 true。isPassword()Boolean如果必需参数的类型为“密码”,则返回 true。isPeriodRange()Boolean如果必需参数的类型为 PeriodRange,则返回 true。isText()Boolean如果必需参数的类型为“文本”,则返回 true。
- 值类型
- 每个必需参数的 getValue() 函数都可以返回原始类型或复杂对象。布尔值必需参数getValue() 以布尔值形式返回值。文本为必选参数getValue() 以字符串形式返回值。必须为整数的参数getValue() 以 Integer 形式返回值。需要密码的参数getValue() 以字符串形式返回值。期间范围必需参数getValue() 以复杂对象的形式返回值。此对象的定义如下:方法参数退货描述getFromPeriod()String返回一个字符串,用于定义已解析的事件。Adaptive Planning起始期间例如“y2016 M1 月”getToPeriod()String返回一个字符串,用于定义已解析的事件。Adaptive Planning结束期间例如“y2016 M1 月”getFromPeriodStartDateTime()String返回以本地时间表示的“起始期间”开始日期时间的日期时间字符串表示形式。例如"2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()String返回以本地时间表示的“起始期间”结束日期时间的日期时间字符串表示形式。例如"2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()String返回“结束期间”开始日期时间的日期时间字符串表示形式(以本地时间表示)。例如"2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()String返回以日期时间字符串表示形式表示“结束期间”结束日期时间的日期时间(以本地时间表示)。例如"2016-07-01T00:00:00+10:00"
- 维度设置
- getValue() 以复杂对象的形式返回值。此对象的定义如下:方法参数退货描述getDimensionName()String返回值中定义的维度的名称。getValueName()混合返回值中定义的维度成员的名称。