Syed Ghulam Ali escreveu::Em vez de uma variável ao atribuir valores aos campos em uma área de trabalho.
Acredito que o termo correto seja "estrutura", não "área de trabalho".
Avalados por :
Olá Especialistas,
Pode parecer uma pergunta boba, mas realmente não encontrei uma resposta para isso em nenhum lugar.
É realmente necessário fazer isso?
LIMPAR l_material.
l_material = 'UmMaterialAleatório'.
Tenho visto o trecho acima em vários programas e até mesmo ABAPers experientes o escrevem.
Está correto considerar uma variável como um quadro-negro ou é apenas um desperdício de esforço humano ao ler e escrever o código?
Syed Ghulam Ali escreveu::Em vez de uma variável ao atribuir valores aos campos em uma área de trabalho.
Acredito que o termo correto seja "estrutura", não "área de trabalho".
Além do que jorg disse,
Em vez de uma variável ao atribuir valores aos campos na área de trabalho.
Considere que a área de trabalho possui três campos que foram usados na parte anterior do código e possuem valores em todos os campos,
e agora, ao atribuir valores apenas a dois campos sem limpar a área de trabalho, o que você acha que terá na área de trabalho? Terá valores para os três campos. Os dois campos terão os valores que você atribuiu e o terceiro terá o valor anterior.
Olá,
Em um exemplo como o seu, onde você atribui um valor constante, é certamente desnecessário e dificilmente você encontrará isso em um código bem escrito.
Principalmente é feito para evitar que os resíduos sejam interpretados como conteúdo real.
Ou seja, quando você atribui um valor a uma variável, por exemplo, em um loop, você quer ter certeza de que esse valor da variável l_xxx é o que você acabou de atribuir e não de algum trecho anterior.
Por isso é prática comum limpar uma variável antes de mover o conteúdo de outra variável de estado desconhecido.
Além disso, em qualquer estrutura de controle, é documentado que você está ciente e cuida de possíveis efeitos colaterais ou resíduos.
Portanto, principalmente é uma questão de estilo e segurança, não tanto de necessidade.
Cumprimentos,
Jörg
Como regra geral, prefiro limpar os campos antes ou depois de seu uso, para que cada execução obtenha um resultado correto, exceto para variáveis locais em forma curta ou métodos, que são reiniciados pelo sistema, é claro.
por exemplo:
CLEAR l_max.LOOP AT itab INTO wa_temp. IF wa_temp-value GT l_max. l_max = wa_temp-value. ENDIF.ENDLOOP.
A resposta para sua pergunta exata é NÃO, devido à cláusula "antes de sobrescrever", mas SIM se esta cláusula é/pode ser omitida.
Saudações,
Raymond
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute