ai.dataSource
データ ソースには設定とテーブルが含まれます。
関数
方法 | パラメータ | 返品 | 説明 |
|---|---|---|---|
getTables() | Array<ai.dataSource.table> | インポートしたテーブルのリストを返します。 | |
getTable( tableId ) | tableId: テーブルの文字列リモート ID | ai.dataSource.table | リクエストされたテーブル ID を持つテーブルを返します。テーブルが見つからない場合は、ヌルを返します。 |
getSettings() | Array<ai.dataSource.setting> | すべてのフレキシブル設定を返します。 | |
getSetting( displayName ) | displayName: 設定の文字列名 | 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: 列の文字列表示名 | ai.dataSource.column | 表示名で列を検索します。列が見つからない場合は、ヌルを返します。 |
getColumnById( id ) | ID: 列の文字列リモート ID | ai.dataSource.column | リモート ID で列を検索します。列が見つからない場合は、ヌルを返します。 |
getColumns() | Array<ai.dataSource.column> | データのインポートに対して有効化されているすべての子列を返します。 | |
getDisplayName() | String | テーブルの表示名を返します。 | |
getId() | String | このテーブルのリモート ID、またはリモート ID が指定されていない場合は表示名を返します。 | |
getLastImported() | String | テーブルが最後にインポートされた日を識別する文字列を返します。 | |
getRelationships() | Array<ai.dataSource.relationship> | このテーブルが関係の主テーブルであるすべての関係を返します。 | |
getRequiredParameters() | Array<ai.dataSource.table.requiredParameter> | テーブルの必須パラメータとそのパラメータ値をすべて返します。 | |
getRequiredParameter( id) | ID: 構造のインポート時に定義された必須パラメータの文字列リモート ID | ai.dataSource.table.requiredParameter | テーブルの必須パラメータをリモート ID 別に返します。 |
- 例
- //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'、'BuildanColumn'、'TextColumn' のいずれかです。 | |
getDisplayName() | String | 列の表示名を返します。 | |
getDisplayOrder() | String | 列の表示順序を返します。 | |
getId() | String | 列のリモート ID を返すか、表示名がリモート ID に指定されていません。 | |
getIncludeByDefault() | ブール値 | その列がデータのインポートに含まれている場合に真を返します。 | |
getIncludeInKey() | ブール値 | 列がテーブル キーの一部である場合に真を返します。キー列はヌル値にできません。 | |
getLength() | 整数 | 注: TextColumns に限定されます。TextColumn に保持される値の最大長を返します。 | |
getMandatoryForImports() | True | 列がデータのインポートに含まれる必要がある場合に真を返します。 | |
getNonFilterable() | True | 列が SQL フィルタ (WHERE ステートメント) の一部として使用できない場合に真を返します。 | |
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()Int関係の結合タイプを返します。値は、0 (内部)、1 (左外部)、2 (右外部) のいずれかです。getDisplayName()String関係の表示名を返します。getRelatedTableId()String関係の関連テーブルのリモート ID を返します。あるいは、その表示名がリモート ID に指定されていません。getRelatedTableName()String関係の関連テーブルの表示名を返します。
ai.dataSource.setting
フレキシブル設定は、カスタム クラウド データ ソースの子アイテムです。設定は、値が設定されるという点で静的にすることも、スクリプトの実行時にユーザーが設定の値を入力するよう要求されるようにパラメータ化することもできます。設定の使用例としては、スクリプトがアクセスできる URL、ユーザー名、パスワード、日付範囲、または属性などがあります。
- 関数
- 方法パラメータ返品説明getDisplayName()String設定の表示名を返します。getValue()混在設定のパラメータの値を返します。値は基本タイプまたは複雑なオブジェクトの場合があります。下記の「値タイプ」を参照してください。isBoolean()ブール値設定タイプがブール値の場合に真を返します。isDimension()ブール値設定タイプが属性である場合に真を返します。isInteger()ブール値設定タイプが整数である場合に真を返します。isPassword()ブール値設定タイプが "パスワード" の場合に真を返します。isPeriodRange()ブール値設定タイプが PeriodRange の場合に真を返します。isText()ブール値設定タイプがテキストの場合に真を返します。例//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 Planningai.calendar メソッド呼び出しに渡すことができる "From Period"。E.g."3152|5201611100000"getToPeriod()String解決済みの内部表現を定義する文字列を返しますAdaptive Planningai.calendar メソッド呼び出しに渡すために使用できる "終了期間"E.g."3152|5201611100000"getFromPeriodStartDateTime()Stringローカル時間で表された、"開始" 期間の開始日時の日時文字列を返します。E.g."2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()String開始期間の終了日時の日時文字列をローカル時間で表して返します。E.g."2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()String終了日の開始日時の日時文字列をローカル時間で返します。E.g."2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()String終了日の終了日時の日時文字列をローカル時間で表して返します。E.g."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
スクリプトの実行中に、有効な "必須パラメータ" が指定された場合、ユーザーは値を入力するよう要求されます。その後、これらの値にはスクリプトでアクセスできます。必須パラメータは importStructure 中に作成できます。
ImportData の実行中は、setForDataImport(true) として設定可能な必須パラメータのみにスクリプトでアクセスできます。
- 関数
- 方法パラメータ返品説明getId()String必須パラメータのリモート ID を返します。getValue()混在必須パラメータのパラメータの値を返します。値は基本タイプまたは複雑なオブジェクトの場合があります。下記の「値タイプ」を参照してください。isBoolean()ブール値必須パラメータのタイプがブール値である場合に真を返します。isDimension()ブール値必須パラメータのタイプが属性である場合に真を返します。isInteger()ブール値必須パラメータのタイプが整数である場合に真を返します。isPassword()ブール値必須パラメータのタイプが "パスワード" である場合に真を返します。isPeriodRange()ブール値必須パラメータのタイプが PeriodRange である場合に真を返します。isText()ブール値必須パラメータのタイプがテキストである場合に真を返します。
- 値タイプ
- それぞれの必須パラメータの getValue() 関数は、プリミティブなタイプまたは複雑なオブジェクトを返すことができます。ブール値の必須パラメータgetValue() は値をブール値として返します。テキスト必須パラメータgetValue() は値を文字列として返します。整数の必須パラメータgetValue() は整数として値を返します。パスワードの必須パラメータgetValue() は値を文字列として返します。期間範囲の必須パラメータgetValue() は、複雑なオブジェクトとして値を返します。このオブジェクトは次のように定義されています。方法パラメータ返品説明getFromPeriod()String解決されたフィールドを定義する文字列を返しますAdaptive Planning開始期間E.g."Month y2016 M1"getToPeriod()String解決されたフィールドを定義する文字列を返しますAdaptive Planning終了期間E.g."Month y2016 M1"getFromPeriodStartDateTime()Stringローカル時間で表された、"開始" 期間の開始日時の日時文字列を返します。E.g."2016-01-01T00:00:00+10:00"getFromPeriodEndDateTime()String開始期間の終了日時の日時文字列をローカル時間で表して返します。E.g."2016-02-01T00:00:00+10:00"getToPeriodStartDateTime()String終了日の開始日時の日時文字列をローカル時間で返します。E.g."2016-06-01T00:00:00+10:00"getToPeriodEndDateTime()String終了日の終了日時の日時文字列をローカル時間で表して返します。E.g."2016-07-01T00:00:00+10:00"
- 属性設定
- getValue() は、複雑なオブジェクトとして値を返します。このオブジェクトは次のように定義されています。方法パラメータ返品説明getDimensionName()String値で定義された属性の名前を返します。getValueName()混在値で定義された属性メンバーの名前を返します。