¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como corrigir um módulo de função em ABAP para exibir a saída correta

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Olá a todos.

Criei um módulo de função <b>(Tcode SE37)</b>. Não está apresentando nenhum erro de sintaxe, meu problema é que não está mostrando a saída.

Por favor, revise este código e me ajude a corrigi-lo.

Programa principal.

parâmetros: planta tipo zmonthpay-dcode.

dados: início de itab2 ocorre 0,

nome(20),

idade(2),

trabalho(5),

fim de itab2.

CHAMAR FUNÇÃO 'ZP_FM1'

EXPORTAÇÃO

planta = planta

tabelas

itab1 = itab2

.

escrever: itab2-nome, itab2-idade, itab2-trabalho.

Código do módulo de função:-

<b>Parâmetro de importação: planta.

Tabelas: itab1</b>

FUNÇÃO ZP_FM1.

dados: início de itab ocorre 0,

nome(20),

idade(2),

trabalho(5),

fim de itab.

se planta = 'AD00'.

itab-nome = 'prajwe'.

itab-idade = '24'.

itab-trabalho = 'abap'.

adicionar itab.

fim se.

se planta = 'IC00'.

itab-nome = 'prajwe12'.

itab-idade = '25'.

itab-trabalho = 'abap1'.

adicionar itab.

senão.

itab-nome = 'prajwe13'.

itab-idade = '26'.

itab-trabalho = 'abap2'.

adicionar itab.

fim se.

mover itab[] para itab1[].

adicionar itab1.

FINFUNÇÃO.

Por favor, ajude-me.

Saudações.

Prajwal.k

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Hymavathi.

Sim, eu declarei. Mas não mencionei o tipo associado.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Na lógica do módulo fn, você declarou itab na coluna de tabelas?

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá

revise o documento do módulo de diversão e aja de acordo

Os Módulos de Função são programas ABAP globais criados pela SAP com propósitos reutilizáveis. Eles têm parâmetros de IMPORT, EXPORT e TABLE, e EXCEÇÕES para lançar quando ocorre um erro.

Você pode criá-los a partir da transação SE37.

Revise o seguinte documento:

Os módulos de função são procedimentos reutilizáveis entre programas, organizados em grupos de funções, cujas funções são implementadas entre as sentenças FUNCTION e ENDFUNCTION. Os módulos de função e suas interfaces são criados no Construtor de Funções.

Interfaces de Módulos de Função

A interface de parâmetros de um módulo de função é definida no Construtor de Funções. Inclui a definição de parâmetros de interface e a especificação de exceções que podem ser acionadas por um módulo de função. O Construtor de Funções gera automaticamente linhas de comentários abaixo da sentença FUNCTION no código-fonte do módulo de função, que representam a interface do módulo de função com a seguinte sintaxe:

Sintaxe

... [parâmetros de IMPORTING]

[parâmetros de EXPORTING]

[parâmetros de CHANGING]

[parâmetros de TABLES]

[{RAISING|EXCEPTIONS} exc1 exc2 ...]

A sintaxe e semântica de IMPORTING, EXPORTING, CHANGING, RAISING e EXCEPTIONS correspondem principalmente à definição de interfaces de métodos com [CLASS-]METHODS. A opção adicional de definir parâmetros de tabela usando TABLES está obsoleta.

Parâmetros de Interface

Os parâmetros de interface são definidos nas abas relevantes no Construtor de Funções.

Os parâmetros de IMPORTING são parâmetros de entrada. Quando um módulo de função é chamado, um parâmetro atual adequado deve ser especificado para cada parâmetro de entrada não opcional. O conteúdo do parâmetro atual é passado para o parâmetro de entrada quando a chamada é feita. O conteúdo de um parâmetro de entrada para o qual 'passagem por referência' é definida não pode ser alterado no módulo de função.

Os parâmetros de EXPORTING são parâmetros de saída. Quando um módulo de função é chamado, um parâmetro atual adequado pode ser especificado para cada parâmetro de saída. O conteúdo de um parâmetro de saída definido para 'passagem por valor' é transferido para o parâmetro atual se o módulo de função for concluído sem erros. Um parâmetro de saída definido para passagem por referência não é inicializado quando o módulo de função é chamado.

Os parâmetros de CHANGING são parâmetros de entrada e saída. Quando um módulo de função é chamado, um parâmetro atual adequado deve ser especificado para cada parâmetro de entrada ou saída não opcional. Quando um módulo de função é chamado, o conteúdo do parâmetro atual é passado para o parâmetro de entrada/saída, e quando o módulo de função é concluído, o conteúdo do parâmetro de entrada/saída é passado para o parâmetro atual.

Os parâmetros de TABLES são parâmetros de tabela. Os parâmetros de tabela são parâmetros CHANGING obsoletos que são tipificados como tabelas padrão com uma linha de cabeçalho. Se uma tabela interna for passada sem uma linha de cabeçalho ou um corpo de tabela como um parâmetro atual para um parâmetro formal desse tipo, uma linha de cabeçalho local vazia é gerada no módulo de função. Se uma tabela interna com uma linha de cabeçalho for usada como um parâmetro atual, tanto o corpo da tabela quanto a linha de cabeçalho são passados para o módulo de função. Não é possível passar por valor em parâmetros formais definidos usando TABLES. Os parâmetros formais definidos com TABLES podem ser substituídos por parâmetros formais definidos com CHANGING. Uma área de trabalho local para a tabela interna pode ser criada no módulo de função usando a adição LIKE LINE OF itab da declaração DATA.

Exceções

As exceções de um módulo de função são definidas na aba Exceções no Construtor de Funções. Aqui você pode selecionar classes de exceção para definir se exceções baseadas em classes são declaradas ou exceções não baseadas em classes são definidas. As exceções baseadas em classes são representadas na sintaxe anterior por RAISING, e as exceções não baseadas em classes são representadas por EXCEPTIONS.

A adição RAISING é usada para declarar exceções baseadas em classes que podem ser propagadas do módulo de função para o chamador. As exceções nas categorias CX_STATIC_CHECK e CX_DYNAMIC_CHECK devem ser declaradas explicitamente, caso contrário, uma propagação pode levar a uma violação de interface. Uma violação de interface leva à exceção tratável CX_SY_NO_HANDLER. As exceções da categoria CX_NO_CHECK são sempre declaradas implicitamente. A declaração de exceções da categoria CX_STATIC_CHECK é verificada estaticamente na verificação de sintaxe. Para exceções da categoria CX_DYNAMIC_CHECK, a verificação não é feita até o tempo de execução. Em um módulo de função onde exceções baseadas em classes são declaradas com a adição RAISING, não é possível usar

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Ao escrever os valores do itab2, faça um loop e depois tente escrever

loop at itab2.

write: itab2-field1, itab2-field2.

endloop.

Saudações

Se ainda houver erros, envie uma mensagem.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?