Sie können Befehle oder auch Befehlsfolgen per JavaScript ausführen.
Zum Ausführen eines Befehls müssen Sie zunächst den Befehl mit seinen Parametern erzeugen. Dazu steht Ihnen das Befehlsobjekt sapbi_Command und das Parameterobjekt sapbi_Parameter zur Verfügung. Eine Hilfe zur Erzeugung des JavaScripts bietet Ihnen der Befehle-Wizard im Web Item Skript. Nach Auswahl des Befehls und Setzen der Parameter wird Ihnen das nötige JavaScript-Coding generiert.
Ein Parameter besteht aus einem Namen und einem Wert. Um einen neuen Parameter in JavaScript zu erzeugen, verwenden Sie die folgende Syntax:
● var parameter_object = new sapbi_Parameter(“Name”, “Wert”);
Einige Parameter besitzen Kinderparameter (Listen oder geschachtelte Parameter). Für diese Parameter geben Sie die Kinderparameter in einer Parameterliste an (siehe Parameterliste unten). Zum Hinzufügen von Parameterlisten verwenden Sie folgende Methode:
● setChildList(parameter_list)
Zum Instanziieren einer Parameterliste wählen Sie folgende Syntax:
var parameter_list = new sapbi_Parameter();
Sie können mit folgenden Methoden Parameter zur Liste hinzufügen:
● parameter_list.addParameterNameValue(“Name“,“Wert“);
● parameter_list.addParameter(parameter_object);
Falls Sie einen bestimmten, vorhandenen Parameter in einer Liste ändern wollen, wählen Sie folgende Syntax und geben Sie den Index an (siehe Beispiel unten):
● paramList.setParameter(parameter_object, 1);
Ein sapbi_Command-Objekt wird wie folgt instanziiert:
● var command = new sapbi_Command(“Name des Befehls”);
Um ein Parameterobjekt zum Befehl hinzuzufügen, verwenden Sie die Methode addParameter. Alternativ können Sie auch den Befehl addParameterNameValue verwenden:
● command.addParameterNameValue(“Name“,“Wert“);
● command.addParameter(parameter_object);
Eine sapbi_CommandSequence ist eine Liste von sapbi_Commands.
Instanziiert wird das Objekt wie folgt:
● var cmdSeq = new sapbi_CommandSequence();
Um Befehle zur Befehlsfolge hinzuzufügen, steht Ihnen die Methode addCommand zur Verfügung:
● cmdSeq.addCommand( sapbi_Command );
Das Ausführen des Befehls oder der Befehlsfolge erfolgt schließlich mit folgender Methode:
● sapbi_page.sendCommand(CommandOrCommandSequenceObject)
Sie haben den Befehl Vertauschen von Achsen (SWAP_AXES) für den Data Provider DP_1 im Befehle-Wizard eingestellt. Die XHTML-Sicht des Web Application Designers zeigt Ihnen das folgende Ergebnis (nur der Knoten INSTRUCTION wird hier angezeigt):
<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>
Daraus resultiert die folgende Umsetzung in 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);
Sie haben den Befehl Parameter des Web Items festlegen (SET_ITEM_PARAMETERS) im Befehle-Wizard eingestellt, um das Web Item ANALYSIS_ITEM_1 auszublenden.
Bitte beachten Sie, dass beim Setzen von Web-Item-Parametern (SET_ITEM_PARAMETERS) die Besonderheit mit INIT_PARAMETERS gilt. Siehe auch: Parametrisiertes Aufrufen von Web Applications.
Die XHTML-Sicht des Web Application Designers zeigt Ihnen das folgende Ergebnis (nur der Knoten INSTRUCTION wird hier angezeigt):
<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>
Daraus resultiert die folgende Umsetzung in 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);
Sie haben den Befehl Parameter des Web Items festlegen (SET_ITEM_PARAMETERS) im Befehle-Wizard eingestellt, um die Beschriftung vom 1. Schalter im Web Item BUTTON_GROUP_ITEM_1 in Text in JavaScript zu ändern. Dies Beispiel zeigt, wie vorhandene Parameter in einer Liste mithilfe von setParameter geändert werden können.
Bitte beachten Sie, dass beim Setzen von Web-Item-Parametern (SET_ITEM_PARAMETERS) die Besonderheit mit INIT_PARAMETERS gilt. Siehe auch: Parametrisiertes Aufrufen von Web Applications.
Die XHTML-Sicht des Web Application Designers zeigt Ihnen das folgende Ergebnis (nur der Knoten INSTRUCTION wird hier angezeigt):
<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>
Daraus resultiert die folgende Umsetzung in 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);