A classe CL_ABAP_BROWSER encapsula o uso da classe CL_GUI_HTML_VIEWER. O método estático SHOW_HTML pode ser usado para exibir um arquivo HTML em uma caixa de diálogo. Dados externos, neste caso, uma imagem carregada a partir do Repositório MIME ou um endereço da web, pode ser passado e exibido. Os eventos SAPEVENT também podem ser manuseados pelo desenvolvedor.
É possível exibir um arquivo HTM, XML ou uma URL usando os métodos estáticos da classe CL_ABAP_BROWSER.
Exemplo:
Neste exemplo criamos uma variável String contendo o código Html e a exibimos como em um browser.
Abap
*&---------------------------------------------------------------------* *& Report ZHTML *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& SAP HTML Browser *&---------------------------------------------------------------------* REPORT ZHTML. * Classe html Browser CLASS HtmlBrowser DEFINITION. PUBLIC SECTION. CLASS-METHODS Browser. PRIVATE SECTION. TYPES: pict_line(1022) TYPE x, pict_tab TYPE STANDARD TABLE OF pict_line . CLASS-DATA pict TYPE pict_tab. CLASS-METHODS get_pict_tab IMPORTING mime_url TYPE csequence EXPORTING pict_tab TYPE STANDARD TABLE . ENDCLASS. * Implementação html browser CLASS HtmlBrowser IMPLEMENTATION. METHOD Browser. " Declara variaveis para a pagina html DATA html_pagina TYPE string. DATA titulo TYPE cl_abap_browser=>title. DATA ext_data TYPE cl_abap_browser=>load_tab. DATA ext_line TYPE cl_abap_browser=>load_tab_line. DATA error_list TYPE cl_abap_browser=>html_table. FIELD-SYMBOLS <error> LIKE LINE OF error_list. titulo = 'Desenvolvimento Aberto'. get_pict_tab( EXPORTING mime_url = '' IMPORTING pict_tab = pict ). ext_line-name = 'PICT.GIF'. ext_line-type = 'image'. GET REFERENCE OF pict INTO ext_line-dref. APPEND ext_line TO ext_data. " Cria pagina html html_pagina = '<html>' && '<body>' && '<H1><font SIZE=5 color="#000080">HTML - SAP</font></H1>' && '<h3>Desenvolvimento Aberto</h3>' && 'Abap - Java - C++ - C# - Python - JavaScript - Transact, PL, DB2 SQL ...' && '<br><img src="https://desenvolvimentoaberto.files.wordpress.com/2014/02/can-stock-photo_csp116670342.jpg" >' && '<h4>Cl_Abap_Browser<h4>' && 'A classe CL_ABAP_BROWSER classe encapsula o uso da classe CL_GUI_HTML_VIEWER.' && '<p>O método estático SHOW_HTML pode ser usado para exibir um arquivo HTML em uma caixa de diálogo.</p>' && '<p>Dados externos, neste caso, uma imagem carregada a partir do Repositório MIME, pode ser passado e exibido.</p>' && '</body>' && '</html>'. " Exibe pagina html cl_abap_browser=>show_html( EXPORTING html_string = html_pagina title = titulo buttons = cl_abap_browser=>navigate_html format = cl_abap_browser=>landscape size = cl_abap_browser=>medium data_table = ext_data IMPORTING html_errors = error_list ). ENDMETHOD. " Manipula imagens da pagina. METHOD get_pict_tab. DATA pict_wa TYPE xstring. DATA length TYPE i. DATA mime_api TYPE REF TO if_mr_api. mime_api = cl_mime_repository_api=>get_api( ). mime_api->get( EXPORTING i_url = mime_url IMPORTING e_content = pict_wa EXCEPTIONS OTHERS = 4 ). IF sy-subrc = 4. RETURN. ENDIF. CLEAR pict_tab. length = xstrlen( pict_wa ). WHILE length >= 1022. APPEND pict_wa(1022) TO pict_tab. SHIFT pict_wa BY 1022 PLACES LEFT IN BYTE MODE. length = xstrlen( pict_wa ). ENDWHILE. IF length > 0. APPEND pict_wa TO pict_tab. ENDIF. ENDMETHOD. ENDCLASS. START-OF-SELECTION. * Inicializa Browser HtmlBrowser=>BROWSER( ).