メインコンテンツにスキップ
Adaptive Planning
最終更新: 2023-06-23
ai.dataSource

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 Planning
ai.calendar メソッド呼び出しに渡すことができる "From Period"。E.g."3152|5201611100000"
getToPeriod()
String
解決済みの内部表現を定義する文字列を返します
Adaptive Planning
ai.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()
混在
値で定義された属性メンバーの名前を返します。