¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Guia para iniciantes em ABAP: Uso de free, refresh, clear e delete com exemplos de código

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

Olá a todos,

Sou novo em ABAP.

Alguém pode me explicar os seguintes tópicos com exemplos de código? Qual é a sua utilidade e onde devemos usá-los?

1. free

2. refresh

3. clear

4. delete

Obrigado e cumprimentos,

navneeth

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

4 Respuestas

0
Cargando...

Olá Navneth,

CLEAR

Define uma variável com o seu valor inicial.

Sintaxe

CLEAR <f>.

A variável <f>, que pode ter qualquer tipo de dados, é definida com um valor inicial apropriado ao seu tipo.

DELETE para Arquivos

Exclui arquivos no servidor de aplicação.

Sintaxe

DELETE DATASET <dsn>.

Exclui o arquivo <dsn> do sistema de arquivos do servidor de aplicação.

DELETE para Entradas de Tabela de Banco de Dados

Exclui entradas de tabelas de banco de dados.

Sintaxe

DELETE FROM <dbtab> WHERE <cond>.

Todas as linhas na tabela de banco de dados que satisfazem as condições na cláusula WHERE são excluídas.

DELETE <dbtab> FROM <wa>.

DELETE <dbtab> FROM TABLE <itab>.

Isso exclui a linha que tem a mesma chave primária que a área de trabalho <wa>, ou exclui todas as linhas na base de dados que têm a mesma chave primária que uma linha na tabela interna <itab>. A área de trabalho <wa> ou as linhas da tabela interna <itab> devem ter pelo menos o mesmo comprimento que a área de trabalho da tabela de banco de dados.

DELETE para Bancos de Dados de Cluster

Exclui clusters de dados de tabelas de banco de dados de cluster.

Sintaxe

DELETE FROM DATABASE <dbtab>(<ar>) ID <key>.

Exclui o cluster inteiro na área <ar> com o nome <key> da tabela de banco de dados de cluster <dbtab>.

DELETE para o Buffer de Aplicação de Transações Cruzadas

Exclui clusters de dados do buffer de aplicação de transações cruzadas.

Sintaxe

DELETE FROM SHARED BUFFER <dbtab>(<ar>) ID <key>.

Exclui o cluster de dados para a área <ar> com o nome <key> armazenado no buffer de aplicação de transações cruzadas para a tabela <dbtab>.

DELETE para Linhas de uma Tabela Interna

Exclui linhas de tabelas internas de qualquer tipo.

Sintaxe

DELETE TABLE <itab> FROM <wa>.

DELETE TABLE <itab> WITH TABLE KEY <k1> = <f 1>... <k n> = <f n>.

Exclui usando a chave da tabela. Todas as linhas com a mesma chave são excluídas. Os valores da chave são obtidos ou de uma área de trabalho compatível <wa> ou especificados explicitamente.

DELETE <itab> WHERE <cond>.

Exclui usando condições. Exclui todas as entradas da tabela que satisfazem a expressão lógica <cond>. A condição lógica pode consistir em mais de uma comparação. Em cada comparação, o primeiro operando deve ser um componente da estrutura da linha.

DELETE ADJACENT DUPLICATE ENTRIES FROM <itab> [COMPARING... ].

Exclui entradas duplicadas adjacentes, seja comparando os campos de chave ou os campos de comparação especificados explicitamente na adição COMPARING.

DELETE para Linhas de Tabelas de Índice

Exclui entradas de tabelas de índice.

DELETE <itab> [INDEX <idx>].

Se você usar a adição INDEX, a linha com o índice <idx> é excluída da tabela <itab>. Sem a adição INDEX, você só pode usar a declaração acima dentro de um LOOP. Nesse caso, você exclui a linha atual.

DELETE <itab> [FROM <n1>] [TO <n 2>] [WHERE <cond>].

O sistema exclui todas as linhas de <itab> cujo índice está entre <n 1 > e <n 2 > e que atendem às condições especificadas na cláusula WHERE. Se você não especificar uma adição FROM, o sistema exclui linhas

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

CLEAR

Sintaxe

CLEAR dobj [ {COM val [NO MODO {BYTE|CARACTERE}] }

| {COM NULO} ].

Extras:

1. ... COM val [NO MODO {BYTE|CARACTERE}]

2. ... COM NULO

Efeito

Sem as adições opcionais, o objeto de dados dobj é atribuído o valor inicial específico do tipo. Aplica-se o seguinte:

Os valores iniciais são atribuídos aos tipos de dados elementares de acordo com a tabela de tipos ABAP integrados.

As variáveis de referência são atribuídas referências nulas.

As estruturas são definidas para seus valores iniciais componente por componente.

Todas as linhas de uma tabela interna são excluídas. Toda a memória necessária para a tabela, exceto o requisito de memória inicial, é liberada (consulte Declarando Tabelas Internas). A instrução FREE é usada para liberar o espaço de memória ocupado pelas linhas de tabelas internas.

As adições opcionais permitem preencher os espaços de um objeto de dados com outros valores que não o valor inicial.

Observação

Se dobj for uma tabela interna com uma linha de cabeçalho, você deve especificar dobj[] para excluir as linhas, caso contrário, apenas a linha de cabeçalho será excluída.

Adição 1

... COM val [NO MODO {BYTE|CARACTERE}]

Efeito

Se você usar a adição COM val e especificar MODO BYTE ou CARACTERE, todos os espaços são substituídos pelo primeiro byte ou pelo primeiro caractere em val. Se dobj for do tipo string ou xstring (a partir da versão 6.10), a string é processada em seu comprimento atual.

As adições NO MODO BYTE e CARACTERE podem ser usadas a partir da versão 6.10 (consulte também Processamento de Strings de Bytes e Strings de Caracteres). Sem especificação e antes da versão 6.10, aplica-se a adição NO MODO CARACTERE. Dependendo da adição, o objeto de dados dobj deve ser do tipo byte ou caractere e o objeto de dados val deve ser do tipo byte ou caractere e ter o comprimento 1. Antes da versão 6.10, dobj e val devem ser simples. Se dobj e val não tiverem o tipo correto e o comprimento correto em um programa não Unicode, eles ainda são tratados como se o tivessem, independentemente do tipo real. Em programas Unicode, isso causará um erro de sintaxe ou uma exceção que não pode ser tratada.

Exemplo

A string de bytes hexstring é atribuída a um valor de byte específico sobre todo o comprimento atual.

DADOS: hexstring TIPO xstring,

hex(1) TIPO x VALOR 'FF'.

...

hexstring = '00000000'.

...

CLEAR hexstring COM hex NO MODO BYTE.

Adição 2

... COM NULO

Efeito

Esta adição, que não é permitida em Objetos ABAP, substitui todos os bytes de dobj pelo valor hexadecimal 0. Neste caso, o objeto de dados dobj deve ser simples.

Observação

A adição COM NULO deve ser usada apenas para objetos de dados do tipo byte e, portanto, ser substituída pela adição CLEAR COM val, que - neste contexto - pelo menos garante um nível mais alto de segurança em programas Unicode.

Exceções

Exceções Não Capturáveis

Causa: O campo val não tem comprimento 1 para a variante CLEAR fld COM val NO MODO BYTE.

Erro em Tempo de Execução: CLEAR_VALUE_BYTEMODE_WRONG_LEN

Causa: O campo val não tem comprimento 1 para a variante CLEAR fld COM val [NO MODO CARACTERE].

Erro em Tempo de Execução: CLEAR_VALUE_WRONG_LENGTH

REFRESH

Sintaxe

REFRESH itab.

Efeito

Esta instrução define uma tabela interna itab para o seu valor inicial, o que significa que exclui todas as linhas da tabela interna. O espaço de memória necessário para a tabela é liberado para o tamanho de memória inicial TAMANHO INICIAL. Para itab, você deve especificar uma tabela interna.

Para excluir todas as linhas e liberar todo o espaço de memória ocupado pelas linhas, você pode usar a instrução FREE.

Nota

A instrução REFRESH itab age para todas as tabelas internas como CLEAR itab[]. Se uma tabela interna itab tiver uma linha de cabeçalho, então o corpo da tabela e não o

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

Olá,

1. Liberar: Liberar a memória da tabela interna e excluir os registros.

2. Atualizar: Excluir os registros, mas a memória permanecerá.

3. Limpar: Limpar o cabeçalho dos registros da tabela interna.

4. Excluir: Excluir os registros necessários.

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

Olá,

Por favor, encontre a explicação abaixo.

Quando você define uma variável ou uma tabela em um programa e a executa, o processador atribuirá a memória apropriada à variável, espero que você saiba disso.

Por exemplo:

DATA: Variável(1) tipo c.

Então, o processador atribuirá memória (com identificação de memória Alguns dizem 412536) igual ao tamanho de 1 caractere.

Em seguida, se você atribuir um valor à variável anterior como

Variável = 'X'. a variável ou a identificação de memória 412536 conterá esse valor 'X'.

Se você escrever:

1. FREE Variável.

A memória atribuída é atualizada e liberada. Significa que após essa declaração, a memória da variável não está mais lá. Ela é liberada do programa e pode ser usada para outro programa ou propósito.

2. REFRESH i_tab.

Usado para tabelas para apagar todas as entradas do corpo da tabela interna, mas a alocação de memória ainda existe e você pode usá-la em outro programa.

3. CLEAR variável.

Limpa a memória da variável, ou seja, a variável estará vazia.

4. DELETE variável ou I_tab índice i, etc.

Remove um valor específico do corpo de uma tabela I_tab com base em uma condição.

Espero que esteja claro,

Obrigado,

Surya

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?