JavaScript-API zum Ausführen von
Befehlen
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);