Professional Documents
Culture Documents
Desenvolvendo em ABAP/4
Instrutor: Glicrio Covizzi cruca@msn.com
Contedo
Histrico Viso Geral ABAP Dicionrio de Dados Editor ABAP Modularizao e Estrutura de programas Open SQL Report/Listas Programas de Carga (BDC) Module Pool SapScript
Histrico
Em 1972, cinco engenheiros de sistemas decidiram 1972, abandonar seus empregos e, apostando numa idia bastante extravagante para a poca, abrir uma nova empresa. empresa. Surgia a SAP . A idia por trs dessa iniciativa era a criao de uma soluo nica, totalmente integrada, capaz de automatizar todos os processos inerentes a uma empresa. 33 anos e 12 milhes de empresa. usurios depois, a SAP surge como uma das maiores empresas de software do mundo. mundo. A primeira em software de gesto empresarial. empresarial. Empregando mais de 30 mil pessoas em 50 pases diferentes, contando com mais de mil e quinhentos parceiros e 88 mil instalaes. instalaes.
Viso Geral
Qual a funo do SAP R/3?
oferecer um conjunto integrado, de aplicativos empresariais de grande escala. escala. O conjunto padro de aplicativos integrados com cada sistema R/3 R/3 o seguinte: seguinte: PP (Production Planning - planejamento de produo) MM (Materials Management - gerenciamento de materiais) SD (Sales and Distribution - vendas e distribuio) FI (Financial Accounting - contabilidade financeira) CO (Controlling - controladoria) AM (Fixed Assets Management - gerenciamento de ativos fixos) PS (Project System - sistema de projeto) WF (Workflow - fluxo de trabalho) IS (Industry Solutions - solues de industria) HR (Human Resources - recursos humanos) PM (Plant Maintenance - manuteno das instalaes) QM (Quality Management - gerenciamento da qualidade)
Viso Geral
O R/3 vem predefinindo com os aplicativos empresariais bsicos R/3 necessrios maioria das grandes corporaes. Esses corporaes. aplicativos coexistem em um ambiente homogneo. Eles so homogneo. projetados para funcionar utilizando desde um nico banco de dados e um conjunto (muito grande) de tabelas. tabelas. Os tamanhos de banco de dados de produo atuais variam de 12 gigabytes a aproximadamente 3 terabytes. Cerca de 8.000 terabytes. tabelas de banco de dados so distribudas com o produto R/3 R/3 padro. padro.
Viso Geral
O que ABAP
ABAP a linguagem de programao que a SAP criou para desenvolver as aplicaes do R/3, focada em tarefas comerciais R/3 especificas e totalmente voltada para atender as necessidades dos usurios deste software, como: processamento de dados em como: massa, moeda especifica, mltiplos idiomas, etc. etc. Falando em banco de dados o ABAP tambm tem suas particularidades, o desenvolvedor no necessita conhecer o banco no qual est rodando o R/3, apenas cabe ao programador conhecer R/3 o Open SQL. SQL.
Viso Geral
Ambiente de Trabalho
O ambiente de trabalho do ABAP normalmente dividido da seguinte maneira:
Ambiente de desenvolvimento (desenvolvimento ABAP e customatizao funcionais / testes). Ambiente de Qualidade (realizao dos testes de usurios para aprovao final). Ambiente de Produo (processamento real dos dados da empresa).
Viso Geral
Ambiente de desenvolvimento
Local onde o ABAP ir criar seus programas (objetos) no client especifico para isso, os objetos criados so armazenados a uma Classe de desenvolvimento e tambm a um Change Request/Task. Request/Task. No final do projeto cada desenvolvedor libera sua Request para ser aprovada e assim transportada para outro ambiente. ambiente.
Viso Geral
Client dependent / independent
A base de desenvolvimento normalmente dividida client ou mandante, alguns objetos quando criados em um determinado client somente so enxergados ali e outros so enxergados em todos os clients. clients.
Cdigo fonte de programas INDEPENDENT Telas, Menus e Funes INDEPENDENT Estruturas de tabela, elementos de dados e dominios INDEPENDENT Registros de dados da tabela DEPENDENT Obejtos de Texto, Formulrios SapScript DEPENDENT
Viso Geral
Particularidades
Os programas e outros objetos do repositrio criados pelo cliente devem estar no namespace, ou seja, seus nomes devem comear com as letras Z ou Y (com exceo dos campos em append structures, que devem comear po ZZ ou YY). YY). Os clientes s devem alterar objetos com nomes fora dessa especificao quando expressamente orientados pela SAP (notas de correo)
Dicionrio de Dados
Interface entre Programas
Programas
e Banco de Dados.
ABAP Dicionrio
Banco de Dados
Dicionrio de Dados
O dicionrio ABAP (ABAP dictionary) permite a criao e administrao de todas as definies de dados do SAP. SAP. Podem ser definidas tabelas, vises, ndices, elementos de dados, domnios e objetos de bloqueio. bloqueio. Todos os dados que entram no Dicionrio ABAP esto disponveis ao longo do sistema SAP. SAP. Atravs do mecanismo de ativao todas as alteraes entram em vigor em todos os componentes pertinentes ao sistema. sistema. O Dicionrio ABAP est ativamente integrado no ABAP Development Workbench. Cada mudana afeta imediatamente os Workbench. programas e telas de ABAP. ABAP. Toda informao que importante para o ambiente de operao, como tamanho de campo e tipo de campo, tirada do Dicionrio ABAP. ABAP.
Dicionrio de Dados
Tipos de Dados
Type Description of type C N D T X I P F Character Numeric string Date (YYYYMMDD) Time (HHMMSS) Byte (hexadecimal) Integer Packed number Floating point number Initial value Space '00...0' '00000000' '000000' X'00' 0 0 '0.0'
Dicionrio de Dados
Dados definidos no programa
Entre as formas de tipos de dados mostrados acima, as mais usadas no desenvolvimento de programas ABAP/4 so:
1 - Estrutura: consiste em vrios Estrutura: campos com tipos de dados elementares e tem tamanho fixo. fixo. (array) 3 Tabela Interna: uma Interna: estrutura que pode variar em tamanho, no que diz respeito a linhas. linhas. (matriz) Os outros tipos acima, so variaes dos dois j explicados e muito pouco utilizados nos programas. programas.
Dicionrio de Dados
Exemplo de criao de tipo de dados
TYPES: texto02 TYPE c. TYPES: BEGIN OF nome_tel, nome(50) TYPE c, fone(15) TYPE c, BEGIN OF nome_tel.
Dicionrio de Dados
Tipos de Dados
Domnio: Domnio: a definio tcnica do campo, onde colocamos o tipo de dados, o tamanho do campo e tabela de valores possveis. possveis. Elemento de Dados: a definio semntica para um campo Dados: individual, nele colocamos os textos do campo e amarramos a um domnio. domnio. Tabela Transparente (database table): so as tabelas que table): possuem um estrutura criada no dicionrio de dados e que so refletidas no banco de dados. dados. Viso: Viso: agrupamento de tabelas transparentes que possuem ligaes entre si. si.
Dicionrio de Dados
Entendendo Domnio e Elemento de Dados
Dicionrio de Dados
Caractersticas tcnicas das tabelas
Quando uma tabela definida no dicionrio de dados do R/3, R/3 devem ser definidas as caractersticas tcnicas (technical settings) para a tabela. Essas caractersticas so usadas para otimizar o tabela. acesso e a armazenagem da tabela individualmente. individualmente. Valores que necessitam de preenchimento: preenchimento:
Descrio Classe de entrada Campo MANDT (especifica qual o mandante). Tipo de dados Categoria de tamanho
Dicionrio de Dados
SE11
Dicionrio de Dados
Criando Tabela Transparente
Dicionrio de Dados
Criando tabela transparente
Dicionrio de Dados
Criando Tabela Transparente
Dicionrio de Dados
Criando Tabela Transparente
Editor ABAP
SE38 Criando um novo programa
Editor ABAP
Criando um novo programa
Editor ABAP
Criando um novo programa
Editor ABAP
Criando um novo programa
- Ativando programa
Editor ABAP
Tela de seleo
SELECTION-SCREEN SELECTION PARAMETER SELECT-OPTIONS SELECTEx.: TABLES: MARA
SELECTION-SCREEN BEGIN OF BLOCK bloco3 WITH FRAME TITLE text-003. PARAMETER: p_num1 TYPE i. PARAMETER: P_MATNR LIKE MARA-MATNR. SELECTION-SCREEN end of BLOCK bloco3. SELECTION-SCREEN BEGIN OF BLOCK bloco4 WITH FRAME TITLE text-004. SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. SELECTION-SCREEN end of BLOCK bloco4.
Editor ABAP
Comandos
DATA: DATA: utilizado para definir uma varivel de qualquer tipo (simples, estrutura ou tabela interna). DATA: V_num TYPE i. DATA: v_matnr LIKE mara-matnr. maraDATA: begin of t_mara occurs 0, matnr LIKE mara-matnr, maraend of t_mara. MOVE ou = : esses so os comandos de atribuio de valores. MOVE: 2 to v_num, 'MATERIAL to v_matnr. ou v_num = 2. v_matnr = MATERIAL.
Editor ABAP
Comandos
IF e CASE: so utilizados como comparativos na lgica do ABAP. CASE:
CASE p_sin. WHEN '+'. v_num = p_num1 + p_num2. WHEN ''-'. v_num = p_num1 + p_num2. WHEN OTHERS. ENDCASE.
IF p_sin = '+'. Ou v_num = p_num1 + p_num2. ELSEIF p_sin = ''-'. v_num = p_num1 + p_num2. ELSE. ENDIF.
Editor ABAP
Comandos
TABLES: TABLES: disponibiliza a estrutura da tabela do banco de dados, para ser
utilizada dentro do programa, obrigatria essa disponibilizao quando a tabela vai ser utilizada no FOR.
LOOP AT: utilizado pra ler o contedo de uma tabela AT: LOOP AT itab. WRITE: / itab-name, itab-fone. itabitabENDLOOP.
Editor ABAP
Modularizao
REPORT... * Declarao de variveis, constantes, tabela internas, ... * Tela de seleo INITIALIZATION. Primeiro passo a ser executado no programa, antes da tela de seleo e antes da lgica de processamento. AT SELECTION-SCREEN. SELECTIONExecuta logo aps sair da tela de seleo, utilizado para fazer tratamentos de obrigatoriedade de campos e similares. TOP-OFTOP-OF-PAGE. Executa quando encontrado o primeiro comando WRITE dentro da lgica principal, utilizado para colocar cabealho, textos que devem sair em todas as pginas. START-OFSTART-OF-SELECTION. Entre o START-OF-SELECTION e o END-OF-SELECTION, se encontra a lgica principal START-OFEND-OFdo programa, quando programamos de uma forma estruturada colocamos aqui apenas chamadas de sub-rotinas, para evitar poluio de cdigo. subPERFORM ... END-OF-SELECTION. END-OFAT LINE-SELECTION. LINESomente executado se o usurio der um duplo click em uma linha mostrada no relatrio, ou marcar a linha e pedir para ver detalhe, utilizada para listas interativas, drill-down. drillAT USER-COMMAND. USERSomente executado se o usurio der um click em algum objeto do menu, utilizado para listas com botes de interao.
Open SQL
O ABAP oferece um conjunto de comandos que permite realizar operaes com os dados armazenados no banco, o Open SQL. A idia SQL. central do Open SQL prover uma linguagem de acesso ao banco independente de plataforma. Os comandos Open SQL tm de passar pelo plataforma. interpretador ABAP, que os traduz para os comandos SQL do banco de dados que esteja sendo utilizado. utilizado. Comandos Dentro do Open SQL, podem-se utilizar os seguintes comandos: podemSELECT: permite a leitura de dados do banco de dados. INSERT: insere dados no banco. UPDATE: atualiza dados. MODIFY: atualiza dados existentes ou os acrescenta caso no existam no banco. DELETE: apaga registros do banco de dados.
Testando SELECT
SY-SUBRC SY SY-DBCNT SY-
Open SQL
LUW COMMIT e ROLLBACK.
Quando trabalhamos com alterao nos dados do banco, bom sabermos que todas as alteraes que estamos fazendo ainda no aconteceram efetivamente no banco, isso s ocorre quando encontra-se o primeiro encontracommit: commit: Exemplo: INSERT <tabela1>. IF SY-SUBRC = 0. SYINSERT <tabela2>. IF SY-SUBRC = 0. SYCOMMIT WORK. ELSE. ROLLBACK WORK. ENDIF. ENDIF.
Open SQL
SELECT
EX.: SELECT MATNR MAKTX INTO TABLE T_RELATORIO FROM MAKT WHERE MATNR IN S_MATNR AND SPRAS EQ SY-LANGU. SY-
Open SQL
INNER JOIN
Ex.: SELECT T1~MATNR T2~MAKTX INTO TABLE T_RELATORIO FROM MARA AS T1 INNER JOIN MAKT AS T2 ON T1~MATNR EQ T2~MATNR WHERE T1~MATNR IN S_MATNR AND T2~SPRAS EQ SY-LANGU. SY-
Open SQL
FOR ALL ENTRIES
EX.: SELECT MATNR MAKTX INTO TABLE T_RELATORIO FROM MAKT FOR ALL ENTRIES IN T_MARA WHERE MATNR EQ T_MARA-MATNR T_MARAAND SPRAS EQ SY-LANGU. SY-
Report/Lista
Criando uma lista simples
ex.: REPORT ZLISTAXX NO STANDARD PAGE HEADING LINELINE-SIZE 126 LINE-COUNT 50. LINETABLES MAKT. SELECT * FROM MAKT. WRITE / MAKT-MATNR. MAKTWRITE MAKT-MAKTX. MAKTENDSELECT.
Report/Lista
Mudando a apresentao dos campos
Podemos mudar a cor com a opo COLOR do comando WRITE; WRITE; podemos mudar a intensidade da cor com a opo INTENSIFIED {ON|OFF}, transformar o campo num HOTSPOT para uso em listas com drill-down, e mudar o posicionamento dos drillcampos com WRITE AT. AT.
LIBS
Report/Lista
Mudando a apresentao dos campos
Ex.:
WRITE: / SPFLI-CARRID COLOR 4 INTENSIFIED OFF HOTSPOT SPFLICENTERED. WRITE:/ SPFLI-CARRID COLOR 5 INVERSE. SPFLIFORMAT COLOR 3. WRITE: /10(5) SPFLI-CARRID COLOR 2 INTENSIFIED OFF HOTSPOT. SPFLI-
Report/Lista
Criando uma lista complexa
AT LINE-SELECTION LINETOP-OFTOP-OF-PAGE DURING LINE-SELECTION LINEHIDE SYSY-LSIND (usado quando se tem vrios nveis de lista) WINDOW STARTING AT <col> <lin> ENDING AT <col> <lin>
Programas de Carga
SHDB
Programa de Carga
SHDB
Programas de Carga
BATCH INPUT
So mais utilizados para grandes massas de dados, pois, ele no faz a execuo automtica da entrada dos dados, ele apenas armazena os dados da BDC em uma local chamado PASTA, e esses dados carregados somente sero processados quando essa pasta for executada na transao SM35. SM35.
BDC_OPEN_GROUP BDC_INSERT BDC_CLOSE_GROUP
Programas de Carga
CALL TRANSACTION
So mais utilizados para menor quantidade de dados, ou interfaces on-line que necessitam da resposta do processamento onlogo aps a execuo. execuo.
CALL TRANSACTION <transao> USING <tabela interna BDC> MODE <A> exibir passo a passo <E> somente erros <N> no exibir MESSAGES <tabela interna para armazenar as mensagens> UPDATE <modo de gravao (S) Sncrono>
Programas de Carga
Trabalhando com arquivo texto
WS_UPLOAD WS_DOWNLOAD OPEN DATASET READ DATASET CLOSE DATASET BACKGROUND
Programas de Carga
Tabela BDCDATA
Module Pool
SE80
Module Pool
On Principais componentes de um programa On-Line:
Development environment ABAP/4 Dictionary Screen Painter ABAP/4 Menu Painter Runtime environment Dialog processor ABAP/4 processor
Particularidade
Module Pool
Para criao de uma tela, devem ser seguidos os seguintes passos:
Defina os componentes bsicos da tela ( screen attributes ). Desenhe o Layout da tela utilizando o fullscreen editor Defina os atributos dos campos ( field list ) Escreva o fluxo lgico da tela. ( flow logic )
encontrados nos seguintes objetos: Global data ou Estruturas do dicionrio no TOP include (declarao de dados ) Module PBO ( Process Before Output ) Module PAI ( Process After Input ) Sub-rotinas ( se necessrio ) Sub-
Module Pool
DEFININDO O FLOW CONTROL
No permitido: IF MOVE PERFORM
Module Pool
Criar um Tela
Module Pool
Menu Painter
Module Pool
...
Um dia terminarei
SAPScript
SE71 Ferramenta que auxilia o desenvolvedor Abap a criar
relatrios com formatao grfica
Formatao de fontes (tamanho,tipo) Box Figuras ( logomarcas )
SAPScript
Header - Cabealho
SAPScript
Basic Setting - Configurao da pgina
SAPScript
Page Informaes do relatrio
SAPScript
Windows Janelas do relatrio
SAPScript
Page Windows Posio da Page na Window
SAPScript
Page Windows Posio da Page na Window
SAPScript
Pargrafo sublinhado Tamanho da fonte, tipo de letra, negrito, itlico ou
SAPScript
Text Elements
SAPScript
SAPSCRIPT a partir do programa
Abrindo Formulrio
MOVE: 'LOCL' TO ITCPO-TDDEST, "Impressora '' TO ITCPO-TDIMMED, "Imediato '' TO ITCPO-TDDELETE, "Deleo apos impressao P_EXIBI TO ITCPO-TDPREVIEW,"Exibir antes da impresso '' TO ITCPO-TDGETOTF. CALL FUNCTION 'OPEN_FORM' EXPORTING DEVICE = 'PRINTER' DIALOG = 'X' FORM = 'ZSAPCURSOXX' LANGUAGE = 'P' OPTIONS = ITCPO EXCEPTIONS CANCELED =1 DEVICE =2 FORM =3 OPTIONS =4 UNCLOSED =5 MAIL_OPTIONS =6 ARCHIVE_ERROR =7 MORE_PARAMS_NEEDED_IN_BATCH = 8 OTHERS = 9. IF SY-SUBRC <> 0. MESSAGE E368(00) WITH TEXT-007. ENDIF.
SAPScript
Chamando um TEXT_ELEMENT
CALL FUNCTION 'WRITE_FORM' EXPORTING ELEMENT = 'ITEM' * FUNCTION = 'SET' * TYPE = 'BODY' WINDOW = 'MAIN' * IMPORTING * PENDING_LINES = EXCEPTIONS ELEMENT =1 FUNCTION =2 TYPE =3 UNOPENED =4 UNSTARTED =5 WINDOW =6 BAD_PAGEFORMAT_FOR_PRINT = 7 OTHERS = 8.
SAPScript
Ativando e Testando Formulario
SAPScript
Fechando o Formulrio
CALL FUNCTION 'CLOSE_FORM' * * * * IMPORTING RESULT = I_RESULT TABLES OTFDATA = I_OTF EXCEPTIONS UNOPENED =1 BAD_PAGEFORMAT_FOR_PRINT = 2 SEND_ERROR =3 OTHERS = 4.
Modulo Avanado
Contedo
SAP Query Relatrio ALV Dicas de Performance de Programas
Query
Ferramenta que possibilita a emisso de relatrios, que auxilia no
desenvolvimento do relatrio de uma forma quase easy. easy. Constituio: Constituio: Grupo de Usurios rea Funcional Query
Query
Definindo rea de Trabalho
rea Standard dependente de Mandante rea Global independente de Mandante
Query
rea Funcional SQ02
Onde sero relacionadas as tabelas e campos que estaro disponveis para se fazer a Query
Query
Grupo de Usurios SQ03
Deve-se relacionar os Usurio e reas Funcionais Deve-
Query
Query Lista Bsica SQ01
Relatrio ALV
O ALV padroniza e simplifica a exibio e operao
de listas e relatrios no sistema R/3. Fornece R/3 interfaces e formatos padronizados para todas as listas e relatrios. relatrios.
Relatrio ALV
Barra de ferramentas
Relatrio ALV
Total e Subtotal
Selecione a coluna com valor numrico, e escolha Total. Para Total. subtotal, escolha uma coluna qualquer. qualquer. Sempre primeiro necessrio totalizar uma coluna com o boto de somatria e s ento definir os subtotais. subtotais.
Relatrio ALV
Microsoft Excel
exportarmos para o Excel, algumas particularidades no sero enviadas: enviadas: Assim, se a intenso e gerar o relatrio para envia-lo ao Excel, enviano perca tempo com formataes. formataes. Apenas o bsico transferido. transferido. Temos trs opes para exportar a listagem para o Microsoft Excel, vamos ver a sada de cada uma delas. delas. Ao
Relatrio ALV
Microsoft Excel Opo Excel Macros SAP
Com essa opo, o R/3 envia o R/3 relatrio para o Excel e j apresenta vrias barras de ferramentas prprias para que voc tenha as mesmas facilidades. facilidades. Repare na figura, que as opes de ferramentas do prprio Excel no aparecem. Para voltar aparecem. utilize a opo do menu Report e depois Exit. Exit.
Relatrio ALV
Microsoft Excel Opo Tabela
a forma mais simples de exportao. exportao. Veja que o R/3 R/3 mantem as barras de ferramentas do Excel e apenas inclui o relatrio na planilha. planilha.
Relatrio ALV
Microsoft Excel Opo Tabela Pivot
Nessa opo o R/3 abre o Excel e R/3 monta o relatrio que permanece com algumas funes. funes. Mesmo que o seu Excel no esteja exibindo a barra de ferramentas Tabela Dinmica, a comunicao R/3 Excel vai R/3 passar a exibi-la, para o acesso exibiaos recursos do relatrio. relatrio.
Relatrio ALV
Modificar layout
Essa opo engloba as funes do Filtro, Totalizar, Subtotalizar, Ordenar, Selecionar colunas, Ocultar colunas, etc. Vejamos etc. cada guia de opo. opo. Na parte da esquerda, temos as colunas que esto visveis no relatrio. relatrio. Na parte direita, temos todas as disponveis. disponveis. Veja que j temos aqui, a possibilidade de informar quais campos pretendemos totalizar. totalizar.
Relatrio ALV
Modificar layout
Na guia ordenao, informamos quais campos queremos classificar, em qual ordem e ainda, se desejamos um subtotal por esse campo. campo.
Relatrio ALV
Modificar layout
Na guia filtro definimos por qual campo (ou quais) gostaramos de delimitar o resultado.
A opo Viso raramente utilizada. utilizada. No se cria vises do relatrio. relatrio. muito mais utilizado e simples as opes de layout. layout. Na guia Viso voc pode utilizar templates do Excel ou do Crystal Reports. Tambm h Reports. pouca documentao sobre o assunto. assunto. Os layouts que voc cria, no deixam de ser vises diferentes de um mesmo relatrio. relatrio.
Relatrio ALV
Modificar layout
Na guia de Representao voc pode alterar algumas opes no formato de seu relatrio. Marque relatrio. ou desmarque os checkboxes. checkboxes.
Relatrio ALV
Modificar layout
O formato que seu relatrio estiver no momento pode ser salvo. O flag salvo. Config.prelim vai indicar qual o Config.prelim layout default. default. Da mesma forma possvel mudar o formato de seu relatrio a qualquer momento. momento. Basta selecionar outro layout salvo. Na salvo. figura abaixo, temos apenas um. um.
Relatrio ALV
Inserindo uma figura no cabealho
Isso melhora bem a aparncia dos relatrios. Veja que temos at a relatrios. possibilidade de inserir figura em background, como na Web. O texto Web. tambm configurvel, voc pode inserir vrias linhas e alterar o tamanho da fonte. fonte. No exemplo acima foi utilizado como background a imagem ALV_BACKGROUND e o nome do logotipo ENJOYSAP_LOGO. ENJOYSAP_LOGO. A tabela com todas as figuras disponveis a BDS_CONN05, CLASS = BDS_CONN05, PICTURES. PICTURES. Transao OAER visualizar imagens.
Relatrio ALV
Inserindo uma figura no cabealho
call function 'REUSE_ALV_GRID_DISPLAY' EXPORTING i_callback_program = v_repid i_background_id = 'ALV_BACKGROUND' i_callback_top_of_page = 'ZF_TOP_OF_PAGE' * i_callback_pf_status_set = 'ZF_STATUS' i_callback_user_command = 'ZF_USER_COMMAND' it_fieldcat = t_fieldcat[] is_layout = v_layout it_sort = t_sort[] i_default = 'X' i_save = 'A' is_variant = v_variante is_print = v_print TABLES t_outtab = t_alv EXCEPTIONS program_error =1 others = 2. call function 'REUSE_ALV_COMMENTARY_WRITE' EXPORTING i_logo = 'ENJOYSAP_LOGO' it_list_commentary = t_listheader.