Die Selektion, die in einer Dropdown-Box vorgenommen wird, soll die Werte einer abhängigen Dropdown-Box einschränken.
Ein Beispiel hierfür wäre, zuerst eine Materialgruppe auszuwählen und dann in der (davon abhängigen) Dropdown-Box nur die zu dieser Materialgruppe (0MATL_GROUP) gehörenden Materialien (0MATERIAL) angezeigt zu bekommen.
Wenn Sie im Web Item Dropdown-Box unter Datenanbindungstyp den Eintrag Merkmalswert/Strukturelement (CHARACTERISTIC_SELECTION) ausgewählt haben, können Sie über den Parameter Beeinflusste Data Provider (LINKED_DATA_PROVIDER_REF_LIST) festlegen, dass die Dropdown-Box ihre Selektion auf mehrere Data Provider anwenden soll. Definieren Sie die abhängigen Web Items vom Typ Dropdown-Box auf separaten Data Providern, und nehmen Sie diese in die Liste der beeinflussten Data Provider auf. Somit lässt sich diese über das Web Item Dropdown-Box einschränken.
Wenn sämtliche, in diesem Zusammenhang verwendeten Data Provider von einer Query versorgt werden, die die gewünschten Kombinationen von Merkmalswerten z.B. in dem Zeilenaufriss hat, ist das gewünschte kaskadierende Verhalten erreicht.
Diese Ansatz kann für zwei oder mehr abhängige Dropdown-Boxen verwendet werden.
Wählen Sie für die Query als Zugriffsart für Ergebniswerte die Option gebuchte Werte. Weitere Informationen finden Sie unter Eigenschaften des Merkmals ® Registerkarte Erweitert.
Nehmen Sie die abhängigen Merkmale so in den Aufriss der Query, dass sich das zu lesende abhängige Merkmal (im oben genannten Beispiel Material) in den Zeilen befindet und als zweites Merkmal im Aufriss ist.
...
1. Legen sie eine Query COMBINATIONS an, die die abhängigen Merkmale enthält. In unserem Beispiel beruht die Query auf den Stammdaten des Merkmals Material (0MATERIAL), welches die Materialgruppe (0MATL_GROUP) als Attribute enthält.
2. Legen sie zwei Data Provider DP_MASTER und DP_SLAVE zu der Query COMBINATIONS an.
3. Fügen Sie in das Web Template ein Web Item vom Typ Dropdown-Box DROPDOWN_SLAVE ein, und wählen sie als Datenquelle den Data Provider DP_SLAVE. Wählen sie die abhängigen Merkmale aus.
4. Fügen Sie in das Web Template ein Web Item vom Typ Dropdown-Box DROPDOWN_MASTER ein, und wählen sie als Datenquelle den Data Provider DP_MASTER. Wählen sie als Merkmal das übergeordnete aus, und tragen Sie als abhängige Data Provider DP_SLAVE und DP_DATA ein.
5. Sobald sich die Auswahl im DROPDOWN_MASTER ändert, ist der Wert des abhängigen DROPDOWN_SLAVE in der Regel nicht mehr gültig und muss gelöscht bzw. durch einen passenden Wert gefüllt werden.
○ Löschen des Eintrages: Fügen Sie in den Eigenschaften der Dropdown-Box DROPDOWN_MASTER als Parameter Zusätzliche Aktion (ACTION_WITH_DEFAULT) das Kommando CLEAR_SELECTION_STATE ein, und wählen Sie als Ausführungszeitpunkt die Option Nach Standardaktion. Dadurch wird die Selektion der Data Provider DP_SLAVE und DP_DATA gelöscht.
○ Passender Wert (= erster Wert der geänderten Ergebnisliste): Der erste Wert aus der Ergebnisliste soll als neuer Filterwert für die Dropdown-Box DROPDOWN_SLAVE verwendet werden. Dies wird durch das Kommando SET_SELECTION_STATE erreicht, das nach dem Kommando CLEAR_SELECTION_STATE beim Löschen des Eintrages verwendet wird.
Mit Hilfe eines Ausdrucks, der sich an die XPath-Notation anlehnt und in der Lage ist, Werte aus z.B. einem Data Provider zu lesen und damit dynamisch Parameterwerte verändern kann, wird der (sich ändernde) erste Wert mit dem Kommando verbunden.
Gehen Sie im einzelnen wie folgt vor:
i. Das Kommando SET_SELECTION_STATE wird wie beim Löschen des Eintrages beschrieben angelegt. Als Filterwert wird z.B. der Wert PLACEHOLDER verwendet.
ii. Wechseln Sie in die XHTML-Sicht.
iii. Suchen Sie nach dem Text value=“PLACEHOLDER“.
iv. Ersetzen Sie den Text durch: path="DATA_PROVIDER:DP_SLAVE?/ BICS_VIEW/RESULT_SET/AXES/AXIS[@name="ROWS"]/TUPLES/TUPLE[1]/ELEMENT[2]/MEMBER/@name.
Dieser Ausdruck setzt voraus, dass sich das zu lesende Merkmal (Material 0MATERIAL) in den Zeilen befindet [@name=’ROWS’] und als zweites Merkmal im Aufriss ist [ELEMENT[2]].
6. Testen Sie Ihre Web Application.
Tipp 1: Falls mehr Daten angezeigt werden als erwartet, könnte dies dadurch verursacht sein, dass als Zugriffsart für Ergebniswerte nicht die Option gebuchte Werte gewählt wurde.
Tipp 2: Um die Funktionsweise transparenter zu machen, können Sie den Data Providern DROPDOWN_MASTER und DROPDOWN_SLAVE jeweils ein Web Item vom Typ Analyse zuordnen, welches die jeweiligen Kombinationen anzeigt.
7. Um das Beispiel zu vervollständigen, wird eine Query benötigt, die Daten anzeigt und über die beiden Dropdown-Boxen eingeschränkt wird.
Gehen Sie im einzelnen wie folgt vor:
a. Legen Sie einen Data Provider DP_DATA an, der auf die Query QUERY_DATA verweist.
b. Nehmen Sie in den Web Items vom Typ Dropdown-Box den Data Provider DP_DATA in die Liste der beeinflussten Data Provider auf.
c. Nehmen Sie ein Web Item vom Typ Analyse auf, das auf den DataProvider DP_DATA verweist.
Im folgenden finden Sie den Beispiel-Quelltext aus der XHTML-Sicht des Web Application Designers:
XHTML-Beispiel-Quelltext für kaskadierende Dropdown-Boxen
<bi:bisp xmlns="http://www.w3.org/TR/REC-html40" xmlns:bi="http://xml.sap.com/2005/01/bi/wad/bisp" xmlns:jsp="http://java.sun.com/JSP/Page" > |