アプリケーション・データソースの作成
/essbase/rest/v1/applications/{applicationName}/datasources
指定された入力内容に基づいてアプリケーションレベルのデータソースを作成します。name
、connection
およびtype
は、すべてのタイプのデータソースに必須の入力内容です。必要なその他の入力内容は、データソースのタイプによって異なります。
リクエスト
- application/json
- application/xml
- applicationName(required): string
アプリケーション名。
データソースの詳細。
object
- application(required): string
データソースのtypeがESSBASEである場合に適用可能。Essbaseアプリケーション名。
- columns(required): object ColumnsType
- connection(required): string
このデータソースで使用される接続。
- cube(required): string
データソースのtypeがESSBASEである場合に適用可能。Essbaseデータベース名。
- customDelimiter: string
delimiterに指定されている値が
Custom
である場合の、データ・レコードのカスタム・デリミタ。 - delimeter: string
データソースのtypeが
DELIMITEDFILE
である場合の、データ・レコードのデリミタ。デリミタは、CSVフォーマットの場合はComma
、タブ区切りフォーマットの場合はTab
にできます。カスタム・デリミタを使用するには、値Custom
を使用し、デリミタをcustomDelimiterの値として指定します。 - description(required): string
このデータソースのオプションの説明。
- endRow: integer(int64)
データソースがExcelファイルまたはテキスト・ファイルである場合の、終了行番号。
- headerRow: integer(int64)
データソースがExcelファイルまたはテキスト・ファイルである場合の、ヘッダー行番号。ヘッダーがない場合は0。
- headers: array headers
- ignoreErrorRecords: boolean
- links: array links
- name: string
データソース名。先頭は文字である必要があります。文字、アンダースコア文字および数字のみを含めることができます。
- query(required): string
データソースに関連付けられている問合せ。たとえば、外部データベースの場合はSQL問合せ、または別のEssbaseキューブの場合はMDX問合せ。問合せによって、このデータソース内の使用可能にするデータが選択されます。
- queryParameters: array queryParameters
データソース問合せがパラメータ化されている場合の、パラメータ実装詳細。たとえば、問合せ
select * from profit_data where year=?
のように、パラメータを渡すための?
プレースホルダが問合せに含まれる場合、実装詳細を定義する必要があります。 - sheet(required): string
データソースがExcelファイルである場合の、ワークシート名。
- skipHiddenRows: boolean
- startRow(required): integer(int64)
オプション(指定されていない場合、デフォルトは1です)。データソースがExcelファイルまたはテキスト・ファイルである場合の、(headerRowが存在する場合はこれを除いた)データ開始行番号。たとえば、headerRowが1として指定され、startRowが10として指定されている場合、実際のデータ開始行は11になります。
- type(required): string
指定可能な値:
[ "TEMPLATE", "EXCELFILE", "DB", "DELIMITEDFILE", "FIXEDWIDTHFILE", "BI", "ESSBASE", "JDBC", "SPARK", "MS_SQL", "MYSQL", "DB2", "ORACLE", "FILE" ]
- widths(required): array widths
array
データソース問合せがパラメータ化されている場合の、パラメータ実装詳細。たとえば、問合せselect * from profit_data where year=?
のように、パラメータを渡すための?
プレースホルダが問合せに含まれる場合、実装詳細を定義する必要があります。
object
- format: string
- index: integer(int32)
- name: string
- nullable: boolean
- system: boolean
- type: string
指定可能な値:
[ "STRING", "DOUBLE", "DATE", "TIMESTAMP", "LONG" ]
object
- defaultValue: string
実行時にパラメータに無効なコンテキストがある場合に、データソースがフォールバックとして使用する固定のデフォルト・パラメータ値。例: Jan。データソース問合せがパラメータ化されており(パラメータを渡すための
?
プレースホルダが含まれている)、かつプレースホルダが代替変数を参照することも、外部ソースで開発されたユーザー定義関数を参照することも意図されていない場合にのみ必須。 - index: integer(int32)
データソース問合せパラメータの順序インデックス。たとえば、最初のパラメータの場合は1、2番目のパラメータの場合は2、など。
- name: string
各自のユースケースに対して意味のある、データソース問合せパラメータのオプションの名前。たとえば、Param1のかわりにparam_G_monthを使用して、そのパラメータで現在の月のグローバル変数を使用することを示したり、名前をparam_appName_monthに変更して、そのパラメータで現在の月のアプリケーション・レベルの変数を使用することを示すことができます。
- required: boolean
データソース問合せパラメータが必須の場合はtrue、それ以外の場合はfalse。
- subVariableName: string
useSubVariableがtrueの場合、Essbase代替変数の名前。
- type: string
指定可能な値:
[ "STRING", "DOUBLE", "DATE", "TIMESTAMP", "LONG" ]
データソース問合せパラメータのデータ型。
- useSubVariable: boolean
データソース問合せパラメータでEssbase代替変数を参照する場合はtrue、それ以外の場合はfalse。
レスポンス
- application/json
- application/xml
200 レスポンス
OK
データソースが正常に作成されました。
400 レスポンス
不正なリクエスト
データソースの作成に失敗しました。
例
次の例では、アプリケーションレベルのデータソースを作成する方法を示します。
この例では、cURLを使用して、Windowsシェル・スクリプトからREST APIにアクセスします。呼出し元ユーザーのIDおよびパスワードは変数であり、properties.bat
内でその変数値が設定されています。
cURLコマンドを含むスクリプト
curl -X POST "https://myserver.example.com:9001/essbase/rest/v1/applications/Sample/datasources" -H Accept:application/json -H Content-Type:application/json --data "@./app_DS_create.json" -u %User%:%Password%
サンプルのJSONペイロード - Oracle Database
前述のcURLの例では、次のJSONペイロードがapp_DS_create.json
で配信されます。
このサンプル・データソースは、その問合せにランタイム・パラメータを含んでいます。ランタイム・パラメータは、Essbase代替変数を使用して、現在の月に基づいてOracle Databaseソース・レコードをフィルタするために設定されています。
{
"name" : "OracleDB_DS",
"description" : "Datasource for ORCL current month only",
"connection" : "Sample.OracleDB",
"type" : "DB",
"columns" : {
"Column" : [ {
"name" : "DIMENSION_PRODUCT",
"type" : "STRING",
"index" : 1,
"system" : false
}, {
"name" : "DIMENSION_MARKET",
"type" : "STRING",
"index" : 2,
"system" : false
}, {
"name" : "DIMENSION_YEAR",
"type" : "STRING",
"index" : 3,
"system" : false
}, {
"name" : "DIMENSION_SCENARIO",
"type" : "STRING",
"index" : 4,
"system" : false
}, {
"name" : "SALES",
"type" : "DOUBLE",
"index" : 5,
"system" : false
}, {
"name" : "COGS",
"type" : "DOUBLE",
"index" : 6,
"system" : false
}, {
"name" : "MARKETING",
"type" : "DOUBLE",
"index" : 7,
"system" : false
}, {
"name" : "PAYROLL",
"type" : "DOUBLE",
"index" : 8,
"system" : false
}, {
"name" : "MISC",
"type" : "DOUBLE",
"index" : 9,
"system" : false
}, {
"name" : "INITIAL_INVENTORY",
"type" : "DOUBLE",
"index" : 10,
"system" : false
}, {
"name" : "ADDITIONS",
"type" : "DOUBLE",
"index" : 11,
"system" : false
} ]
},
"query" : "select * from SB_DATA where dimension_year=?",
"queryParameters" : [ {
"index" : 1,
"name" : "Param1",
"required" : false,
"useSubVariable" : true,
"subVariableName" : "CurrMonth",
"type" : "STRING"
} ]
}
Essbaseキューブ、Excelワークブックまたはフラット・ファイル・ソース用に作成されるデータソースの例は、「グローバル・データソースの作成」エンドポイントを参照してください。JSONペイロードの指定は類似しています。