Olá Hymavathi.
Sim, eu declarei. Mas não mencionei o tipo associado.
Avalados por :
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
Olá Hymavathi.
Sim, eu declarei. Mas não mencionei o tipo associado.
Na lógica do módulo fn, você declarou itab na coluna de tabelas?
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
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.
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute