In diesem Beispiel wird eine Tabelle mit einem Parameter und einem einfachen Text angezeigt. Der Parameter wird an das Web Item Individuelle Erweiterung übergeben.
Die ABAP-Klasse ZCL_BICS_CONS_WEBITEM_ABAP implementiert das Interface IF_BICS_CONS_WEBITEM_CUST_EXIT.
In der ABAP-Methode IF_BICS_CONS_WEBITEM_CUST_EXIT~INITIALIZE werden die Eigenschaften gelesen und innerhalb des ABAP-Attributes p_properties als HTML-Tabelle in einem String gespeichert.
In der ABAP-Methode IF_BICS_CONS_WEBITEM_CUST_EXIT~EXECUTE wird ein hart-codierter String mit der HTML-Tabelle der Eigenschaften verkettet und zurückgegeben.
Die Java-basierte BEx-Web-Laufzeit fügt den zurückgegebenen HTML-Inhalt in das Web Template ein.
METHOD IF_BICS_CONS_WEBITEM_CUST_EXIT~INITIALIZE.
DATA: l_s_name_value TYPE rsbolap_s_name_value.
* The table I_T_PROPERTIES provides the name/value parameters defined
* in the template
* assemble a heading
* ======================================================================
CLEAR p_properties.
p_properties = '<h1>Name/Value-Pairs:</h1>'. "#EC NOTEXT
* open table tag
* ======================================================================
concatenate p_properties '<table border="1">' into p_properties. "#EC NOTEXT
* assemble header line
* ======================================================================
CONCATENATE p_properties '<tr>' INTO p_properties."#EC NOTEXT
CONCATENATE p_properties '<th> Name </th>' INTO p_properties. "#EC NOTEXT
CONCATENATE p_properties '<th> Value </th>' INTO p_properties. "#EC NOTEXT
CONCATENATE p_properties '</tr>' INTO p_properties. "#EC NOTEXT
* assemble name/value lines
* ======================================================================
LOOP AT i_t_properties INTO l_s_name_value.
CONCATENATE p_properties '<tr>' INTO p_properties."#EC NOTEXT
CONCATENATE p_properties '<th>' l_s_name_value-name '</th>' INTO p_properties."#EC NOTEXT
CONCATENATE p_properties '<th>' l_s_name_value-value '</th>' INTO p_properties."#EC NOTEXT
CONCATENATE p_properties '</tr>' INTO p_properties."#EC NOTEXT
ENDLOOP.
* close table tag
* ======================================================================
CONCATENATE p_properties '</table>' INTO p_properties."#EC NOTEXT
ENDMETHOD.
method IF_BICS_CONS_WEBITEM_CUST_EXIT~FREE.
* free all allocated resources here
endmethod.
METHOD IF_BICS_CONS_WEBITEM_CUST_EXIT~EXECUTE.
DATA:
l_string TYPE string.
CLEAR e_xml.
CONCATENATE p_properties 'This is a simple string in ABAP. Requested result format:' I_REQUESTED_RESULT_FORMAT INTO l_string.
TRY.
* The customer exit returns HTML data to be displayed.
* The result HTML needs to be stored in E_XML using UTF-8 encoding.
* You can convert simple ABAP-strings to UTF-8 by calling the
* following the method:
* ==================================================================
CALL METHOD cl_bics_cons_webitem_util=>string_2_utf8_xstring
EXPORTING
i_string = l_string
RECEIVING
r_utf8_xstring = e_xml.
CATCH cx_bics_cons_webitem_error.
* exception handling
ENDTRY.
ENDMETHOD.
Attribut |
Eigenschaften |
P_PROPERTIES |
● Art: Instance Attribute ● Sichtbarkeit: Public ● Bezugstyp: STRING ● Beschreibung: Zeichenkette für Eigenschaften |
Das Web Template enthält das Web Item Individuelle Erweiterung. Unter dem Web-Item-Parameter ABAP_CLASS_NAME wurde der Name der ABAP-Klasse ZCL_BICS_CONS_WEBITEM_ABAP spezifiziert.
Außerdem wird für die Drucktaste SET_PROPERTY der Befehl SET_ITEM_PARAMETERS hinterlegt, um einen Name/Wert-Parameter des Web Items Individuelle Erweiterung einzustellen.
<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" >
<html >
<head >
<title >Custom Web Item ABAP Sample</title>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body style="FONT-FAMILY: Arial" bgcolor="#ffffff" leftmargin="0" topmargin="0" >
<bi:QUERY_VIEW_DATA_PROVIDER name="DP_1" >
<bi:INITIAL_STATE type="CHOICE" value="QUERY" >
<bi:QUERY value="0D_DX_M01_Q0002" text="DalSegno Company Umsatz-Analyse" />
</bi:INITIAL_STATE>
</bi:QUERY_VIEW_DATA_PROVIDER>
<bi:TEMPLATE_PARAMETERS name="TEMPLATE_PARAMETERS" />
<bi:CUSTOMER_EXIT_ITEM name="CUSTOMER_EXIT_ITEM_1" designheight="120" designwidth="300" >
<bi:CUSTOMER_EXIT type="COMPOSITE" >
<bi:CUSTOMER_EXIT_TYPE type="CHOICE" value="ABAP_CLASS_NAME" >
<bi:ABAP_CLASS_NAME value="ZCL_BICS_CONS_WEBITEM_ABAP" />
</bi:CUSTOMER_EXIT_TYPE>
</bi:CUSTOMER_EXIT>
<bi:DATA_PROVIDER_ACCESS_LIST type="ORDEREDLIST" >
<bi:DATA_PROVIDER_ACCESS type="COMPOSITE" index="1" >
<bi:DATA_PROVIDER_REF value="DP_1" />
<bi:NAVIGATIONAL_STATE_ACCESS value="X" />
<bi:RESULT_SET_ACCESS value="X" />
</bi:DATA_PROVIDER_ACCESS>
</bi:DATA_PROVIDER_ACCESS_LIST>
</bi:CUSTOMER_EXIT_ITEM>
<p >
<bi:BUTTON_GROUP_ITEM name="BUTTON_GROUP_ITEM_1" designheight="70" designwidth="300" >
<bi:BUTTON_LIST type="ORDEREDLIST" >
<bi:BUTTON type="COMPOSITE" index="1" >
<bi:CAPTION value="Set Property" />
<bi:ACTION type="CHOICE" value="INSTRUCTION" >
<bi:INSTRUCTION >
<bi:SET_ITEM_PARAMETERS >
<bi:cmd_item_parameters type="CUSTOMER_EXIT_ITEM" >
<bi:CUSTOMER_EXIT type="COMPOSITE" >
<bi:NAMED_PROPERTY_LIST type="UNORDEREDLIST" >
<bi:NAMED_PROPERTY type="COMPOSITE" index="1" >
<bi:NAME value="NAME_1" />
<bi:VALUE value="My value..." />
</bi:NAMED_PROPERTY>
</bi:NAMED_PROPERTY_LIST>
</bi:CUSTOMER_EXIT>
</bi:cmd_item_parameters>
<bi:TARGET_ITEM_REF value="CUSTOMER_EXIT_ITEM_1" />
</bi:SET_ITEM_PARAMETERS>
</bi:INSTRUCTION>
</bi:ACTION>
</bi:BUTTON>
</bi:BUTTON_LIST>
</bi:BUTTON_GROUP_ITEM>
</p>
<p >
<bi:ANALYSIS_ITEM name="ANALYSIS_ITEM_1" designwidth="400" designheight="200" >
<bi:DATA_PROVIDER_REF value="DP_1" />
</bi:ANALYSIS_ITEM>
</p>
</body>
</html>
</bi:bisp>