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.org/wp-content/uploads/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( ).


