Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Aufruf einer BSP-Seite mit Übergabe des Data-Provider-Zustands  Dokument im Navigationsbaum lokalisieren

In diesem Beispiel wird das Web Item Individuelle Erweiterung verwendet, um den ABAP-Hostnamen als JavaScript-Variable in das Web Template zu schreiben. Der ABAP-Hostname wird genutzt, um eine BSP-Seite aufzurufen. Der BSP-Seite wird der Zustand des Data Provider als XML übergeben.

Web Template 0BWVT_RUNTIME_EXPORT_XML_BSP

Dieses Web Template übergibt das XML des Befehls Data Provider als XML exportieren (EXPORT_XML) an die BSP-Seite ZEXPORT_XML_BSP. Die BSP-Seite zeigt das Ergebnis in einem HTML-Textbereich (HTML-Tag <textarea>) an. 

Desweiteren wird in diesem Web Template das Web Item Individulle Erweiterung mit der ABAP-Klasse ZCL_BICS_CONS_WEBITEM_ABAP_SER verwendet, um den Hostnamen und Port des Web Application Servers zu erhalten und diesen String in eine JavaScript-Variable einzufügen. Die JavaScript-Variable wird im Web Item Skript verwendet, um eine system-unabhängige URL für die BSP-Seite zu erzeugen.

Ablauf

Wählen Sie in der Web Application die Drucktaste XML-Übergabe an BSP-Seite, um den Befehl auszuführen. Sie können ebenfalls zuvor navigieren, um ein bestimmtes Ergebnis an die BSP-Seite zu übergeben. Das XML entspricht dem aktuellen Navigationszustand.

Verwendete Objekte

Name des Web Templates: 0BWVT_RUNTIME_EXPORT_XML_BSP

Name der BSP-Seite: ZEXPORT_XML_BSP

Name der ABAP-Klasse: ZCL_BICS_CONS_WEBITEM_ABAP_SER

Im Folgenden sehen Sie die zu den verwendeten Objekten zugehörigen Coding-Abschnitte:

Web Template 0BWVT_RUNTIME_EXPORT_XML_BSP

XHTML

<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 >XML Export with redirect</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_SER" />

                    </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>

            <bi:SCRIPT_ITEM name="SCRIPT_ITEM_1" designwidth="300" designheight="120" >

                <bi:SCRIPT value="biLargeData:5AIA8AK1DXI8JQ5B6413CU5RZ" />

            </bi:SCRIPT_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="XML Redirect to BSP" />

                            <bi:ACTION type="CHOICE" value="SCRIPT_FUNCTION" >

                                <bi:SCRIPT_FUNCTION value="setRedirectURL" />

                            </bi:ACTION>

                        </bi:BUTTON>

                        <bi:BUTTON type="COMPOSITE" index="2" >

                            <bi:CAPTION value="XML" />

                            <bi:ACTION type="CHOICE" value="INSTRUCTION" >

                                <bi:INSTRUCTION >

                                    <bi:EXPORT_XML >

                                        <bi:TARGET_DATA_PROVIDER_REF value="DP_1" />

                                        <bi:RESULT_SET value="X" />

                                    </bi:EXPORT_XML>

                                </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>

 

JavaScript

function setRedirectURL( currentState, defaultCommandSequence ){

      //Create a new object of type sapbi_CommandSequence

      var commandSequence = new sapbi_CommandSequence();

      /*

       * Create a new object of type sapbi_Command with the command named "SET_ITEM_PARAMETERS"

     */

      var commandSET_ITEM_PARAMETERS_1 = new sapbi_Command( "SET_ITEM_PARAMETERS" );

      /* Create parameter ITEM_TYPE */

    var paramITEM_TYPE = new sapbi_Parameter( "ITEM_TYPE", "BUTTON_GROUP_ITEM" );commandSET_ITEM_PARAMETERS_1.addParameter( paramITEM_TYPE );

           

    /* End parameter ITEM_TYPE  */

      /* Create parameter INIT_PARAMETERS */

      var paramINIT_PARAMETERS = new sapbi_Parameter( "INIT_PARAMETERS" );

    var paramListINIT_PARAMETERS = new sapbi_ParameterList();commandSET_ITEM_PARAMETERS_1.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 paramBUTTON1 = new sapbi_Parameter( "BUTTON", "" );

      var paramListBUTTON1 = new sapbi_ParameterList();

      // Create parameter ACTION

      var paramACTION = new sapbi_Parameter( "ACTION", "INSTRUCTION" );

      var paramListACTION = new sapbi_ParameterList();

      // Create parameter INSTRUCTION

      var paramINSTRUCTION = new sapbi_Parameter( "INSTRUCTION", "" );

      paramListACTION.addParameter( paramINSTRUCTION );

            // End parameter INSTRUCTION!

      paramACTION.setChildList( paramListACTION );

      paramListBUTTON1.addParameter( paramACTION );

            // End parameter ACTION!

      paramBUTTON1.setChildList( paramListBUTTON1 );

      paramListBUTTON_LIST.setParameter( paramBUTTON1, 1 );

            // End parameter BUTTON!

      paramBUTTON_LIST.setChildList( paramListBUTTON_LIST );

      paramListINIT_PARAMETERS.addParameter( paramBUTTON_LIST );

            // End parameter BUTTON_LIST!

      paramINIT_PARAMETERS.setChildList( paramListINIT_PARAMETERS );

      /* End parameter INIT_PARAMETERS  */

     

      /* Create parameter TARGET_ITEM_REF */

      var paramTARGET_ITEM_REF = new sapbi_Parameter( "TARGET_ITEM_REF", "BUTTON_GROUP_ITEM_1" );

      commandSET_ITEM_PARAMETERS_1.addParameter( paramTARGET_ITEM_REF );

           

      /* End parameter TARGET_ITEM_REF */

     

      // Add the command to the command sequence

      commandSequence.addCommand( commandSET_ITEM_PARAMETERS_1 );

      /*

       * End command commandSET_ITEM_PARAMETERS_1

     */

      /*

       * Create a new object of type sapbi_Command with the command named "EXPORT_XML"

     */

      var commandEXPORT_XML_2 = new sapbi_Command( "EXPORT_XML" );

      /* Create parameter TARGET_DATA_PROVIDER_REF */

      var paramTARGET_DATA_PROVIDER_REF = new sapbi_Parameter( "TARGET_DATA_PROVIDER_REF", "DP_1" );

      commandEXPORT_XML_2.addParameter( paramTARGET_DATA_PROVIDER_REF );

           

      /* End parameter TARGET_DATA_PROVIDER_REF */

     

      /* Create parameter REDIRECT_URL */

      var paramREDIRECT_URL = new sapbi_Parameter( "REDIRECT_URL", url_prefix + "/sap/bc/bsp/sap/zexport_xml_bsp/get_state.htm" );

      commandEXPORT_XML_2.addParameter( paramREDIRECT_URL );

           

      /* End parameter REDIRECT_URL */

     

      // Add the command to the command sequence

      commandSequence.addCommand( commandEXPORT_XML_2 );

      /*

       * End command commandEXPORT_XML_2

     */

      //Send the command sequence to the server

    return sapbi_page.sendCommand( commandSequence );

}

BSP ZEXPORT_XML_BSP

Layout

<%@page language="abap"%>
<
html>

  <
head>
    <
link rel="stylesheet" href="../../sap/public/bc/bsp/styles/sapbsp.css">
    <
title> iView </title>
  </
head>

  <
body class="bspBody1">
    <
h1>XML String</h1>
    <
p>
      <
textarea name="user_eingabe" cols="120" rows="40">
        
<%= p_xml_string %>
      </
textarea>
    </
p>
  </
body>

</
html>

Eventhandler

OnInitialization

* event handler for data retrieval

type-pools: rrx1.

data:
      l_xml_string 
type string,
      l_sx_view 
type rrx1_sx_view.

l_xml_string = request->get_form_field( 
'xml' ).
p_xml_string = l_xml_string.

call method cl_bics_cons_state_converter=>convert_xml
  
exporting
    i_xml_string = l_xml_string
  
importing
    e_sx_view    = l_sx_view.

p_sx_view = l_sx_view.

Seitenattribute

P_SX_VIEW   TYPE   RRX1_SX_VIEW

P_XML_STRING TYPE   STRING

ABAP-Klasse ZCL_BICS_CONS_WEBITEM_ABAP_SER

METHOD IF_BICS_CONS_WEBITEM_CUST_EXIT~INITIALIZE.

 

  DATA:

          l_url_prefix type string.

 

  CALL FUNCTION 'RSBB_URL_PREFIX_GET'

    EXPORTING

      I_MESSAGESERVER       = space

    IMPORTING

      E_URL_PREFIX          = l_url_prefix.

 

  CONCATENATE p_url_prefix

    '<script type="text/javascript">'

    'var url_prefix="' l_url_prefix '";'

    '</script>'

  INTO p_url_prefix.

 

ENDMETHOD.

 

 

 

METHOD IF_BICS_CONS_WEBITEM_CUST_EXIT~EXECUTE.

 

  DATA:

    l_string TYPE  string.

 

  CLEAR e_xml.

 

  l_string = p_url_prefix.

 

  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.

 

Ende des Inhaltsbereichs