!--a11y-->
コマンドを実行する JavaScript API 
JavaScript を使用すると、コマンドまたはコマンドシーケンスを実行することができます。
コマンドを実行するには、最初にコマンドおよびそのパラメータを生成する必要があります。この場合、コマンドオブジェクト sapbi_Command およびパラメータオブジェクト sapbi_Parameter を使用することができます。スクリプトWeb アイテムでは、コマンドウィザードによって JavaScript の生成がサポートされています。コマンドを選択してパラメータを設定すると、JavaScript コードが生成されます。
コマンドの構造およびパラメータ
1 つのパラメータは、名称と値で構成されています。JavaScript で新規パラメータを生成するには、以下の構文を使用します。
● var parameter_object = new sapbi_Parameter("Name", "Value");
一部のパラメータには、子パラメータ (一覧またはネストされているパラメータ) があります。これらのパラメータの場合は、パラメータ一覧内の子パラメータを指定します (以下に示すパラメータ一覧を参照)。パラメータ一覧を追加するには、以下のメソッドを使用します。
● setChildList(parameter_list)
パラメータ一覧をインスタンス化するには、以下の構文を使用します。
var parameter_list = new sapbi_Parameter();
以下のメソッドを使用すると、パラメータを一覧に追加することができます。
● parameter_list.addParameterNameValue("Name","Value");
● parameter_list.addParameter(parameter_object);
すでに一覧にある特定のパラメータを変更するには、以下の構文を使用して索引を指定します (以下の例を参照)。
● paramList.setParameter(parameter_object, 1);
sapbi_Command オブジェクトは、以下のようにしてインスタンス化します。
● var command = new sapbi_Command("Name of Command");
コマンドにパラメータオブジェクトを追加するには、addParameter メソッドを使用します。また、addParameterNameValue コマンドを使用することもできます。
● command.addParameterNameValue("Name","Value");
● command.addParameter(parameter_object);
sapbi_CommandSequence は、sapbi_Commands の一覧です。
このオブジェクトは、以下のようにしてインスタンス化します。
● var cmdSeq = new sapbi_CommandSequence();
コマンドシーケンスにコマンドを追加するには、addCommand メソッドを使用することができます。
● cmdSeq.addCommand( sapbi_Command );
このコマンドまたはコマンドシーケンスは、以下のメソッドを使用して実行されます。
● sapbi_page.sendCommand(CommandOrCommandSequenceObject)
例
例 1
コマンドウィザードで、データプロバイダ DP_1 に軸の切替(SWAP_AXES) コマンドを設定しました。Web アプリケーションデザイナの XHTML ビューには、以下の結果が表示されます (この例は、INSTRUCTION ノードのみを示しています)。
<bi:INSTRUCTION >
<bi:SWAP_AXES >
<bi:TARGET_DATA_PROVIDER_REF_LIST type="ORDEREDLIST" >
<bi:TARGET_DATA_PROVIDER_REF index="1" value="DP_1" />
</bi:TARGET_DATA_PROVIDER_REF_LIST>
</bi:SWAP_AXES>
</bi:INSTRUCTION>
この結果、JavaScript で以下の変換が実行されます。
/* Create TARGET_DATA_PROVIDER_REF */
var paramListDP_LIST = new sapbi_ParameterList();
var paramDP_LIST = new sapbi_Parameter("TARGET_DATA_PROVIDER_REF_LIST", "");
paramListDP_LIST.addParameterNameValue ("TARGET_DATA_PROVIDER_REF", "DP_1");
paramDP_LIST.setChildList (paramListDP_LIST);
/* Create Command */
var commandSWAP_AXES = new sapbi_Command("SWAP_AXES");
commandSWAP_AXES.addParameter( paramDP_LIST );
/* Send Command */
sapbi_page.sendCommand(commandSWAP_AXES);
例 2
ANALYSIS_ITEM_1Web アイテムを非表示にするために、コマンドウィザードで Web アイテムパラメータを設定 (SET_ITEM_PARAMETERS)を設定しています。
Web アイテムパラメータ (SET_ITEM_PARAMETERS)を設定すると、INIT_PARAMETERSの特殊ルールが適用されます。参照: パラメータを使用した Web アプリケーションの呼出
Web アプリケーションデザイナのXHTML ビューには、以下の結果が表示されます (この例は、INSTRUCTION ノードのみを示しています)。
<bi:INSTRUCTION >
<bi:SET_ITEM_PARAMETERS >
<bi:cmd_item_parameters type="ANALYSIS_ITEM" >
<bi:VISIBILITY value="VISIBLE" />
</bi:cmd_item_parameters>
<bi:TARGET_ITEM_REF value="ANALYSIS_ITEM_1" />
</bi:SET_ITEM_PARAMETERS>
</bi:INSTRUCTION>
この結果、JavaScript で以下の変換が実行されます。
/* SET_ITEM_PARAMETERS */
/* Create TARGET_DATA_PROVIDER_REF */
var paramListINIT_PARAMETERS = new sapbi_ParameterList();
var paramINIT_PARAMETERS = new sapbi_Parameter( "INIT_PARAMETERS", "" );
paramListINIT_PARAMETERS.addParameterNameValue ("VISIBILITY", "VISIBLE" );
paramINIT_PARAMETERS.setChildList (paramListINIT_PARAMETERS);
var paramTARGET_ITEM_REF = new sapbi_Parameter( "TARGET_ITEM_REF", "ANALYSIS_ITEM_1" );
/* Create Command */
var commandSET_ITEM_PARAMETERS = new sapbi_Command("SET_ITEM_PARAMETERS");
commandSET_ITEM_PARAMETERS.addParameter( paramINIT_PARAMETERS );
commandSET_ITEM_PARAMETERS.addParameter( paramTARGET_ITEM_REF );
/* Send Command */
sapbi_page.sendCommand(commandSET_ITEM_PARAMETERS);
例 3
Web アイテム BUTTON_GROUP_ITEM_1の最初のボタンのラベルを JavaScript でのテキストに変更するために、コマンドウィザードの Web アイテムパラメータを設定 (SET_ITEM_PARAMETERS)コマンドを設定しています。この例は、setParameter を使用し、一覧の既存のパラメータをどのように変更できるかを示しています。
Web アイテムパラメータ (SET_ITEM_PARAMETERS)を設定すると、INIT_PARAMETERSの特殊ルールが適用されます。参照: パラメータを使用した Web アプリケーションの呼出
Web アプリケーションデザイナのXHTML ビューには、以下の結果が表示されます (この例は、INSTRUCTION ノードのみを示しています)。
<bi:INSTRUCTION >
<bi:SET_ITEM_PARAMETERS >
<bi:cmd_item_parameters type="BUTTON_GROUP_ITEM" >
<bi:BUTTON_LIST type="ORDEREDLIST" >
<bi:BUTTON type="COMPOSITE" index="1" >
<bi:CAPTION value="Text in JavaScript" />
</bi:BUTTON>
</bi:BUTTON_LIST>
</bi:cmd_item_parameters>
<bi:TARGET_ITEM_REF value="BUTTON_GROUP_ITEM_1" />
</bi:SET_ITEM_PARAMETERS>
</bi:INSTRUCTION>
この結果、JavaScript で以下の変換が実行されます。
/* Create Command */
var commandSET_ITEM_PARAMETERS = new sapbi_Command("SET_ITEM_PARAMETERS");
/* Create parameter ITEM_TYPE */
var paramITEM_TYPE = new sapbi_Parameter( "ITEM_TYPE", "BUTTON_GROUP_ITEM" );
commandSET_ITEM_PARAMETERS.addParameter( paramITEM_TYPE );
/* Create parameter INIT_PARAMETERS */
var paramINIT_PARAMETERS = new sapbi_Parameter( "INIT_PARAMETERS" );
var paramListINIT_PARAMETERS = new sapbi_ParameterList();
commandSET_ITEM_PARAMETERS.addParameter( paramINIT_PARAMETERS );
// Create parameter BUTTON_LIST
var paramBUTTON_LIST = new sapbi_Parameter( "BUTTON_LIST", "" );
var paramListBUTTON_LIST = new sapbi_ParameterList();
// Create parameter BUTTON
var paramBUTTON = new sapbi_Parameter( "BUTTON", "" );
var paramListBUTTON = new sapbi_ParameterList();
// Create parameter CAPTION
var paramCAPTION = new sapbi_Parameter( "CAPTION", "Text in JavaScript" );
paramListBUTTON.addParameter( paramCAPTION );
paramBUTTON.setChildList( paramListBUTTON );
paramListBUTTON_LIST.setParameter( paramBUTTON, 1 );
// End parameter BUTTON!
paramBUTTON_LIST.setChildList( paramListBUTTON_LIST );
paramListINIT_PARAMETERS.addParameter( paramBUTTON_LIST );
// End parameter BUTTON_LIST!
paramINIT_PARAMETERS.setChildList (paramListINIT_PARAMETERS);
/* Create parameter TARGET_ITEM_REF */
var paramTARGET_ITEM_REF = new sapbi_Parameter( "TARGET_ITEM_REF", "BUTTON_GROUP_ITEM_1" );
commandSET_ITEM_PARAMETERS.addParameter( paramTARGET_ITEM_REF );
/* Send Command */
sapbi_page.sendCommand(commandSET_ITEM_PARAMETERS);