Conteúdo

Alterar valor no programa origem dentro da chamada da exit, função, etc


O título é um pouco complexo para simplificar, mas digamos que sua transação standard chama uma exit mas não usa o campo que você precisa alterar na transação standard.

Então que novamente FIELD-SYMBOLS e ASSIGN entram na jogada.

No exemplo criaremos 1 programa e 1 função, onde dentro da função, vamos alterar o valor da variável do programa.

Programa:
REPORT ZSAPeiros.
DATA v_banana(10) TYPE c.
v_banana = 'SAP'.
WRITE:/ v_banana.
CALL FUNCTION 'ZSAPeiros'.
WRITE:/ v_banana.

Função:
FUNCTION ZSAPeiros.
  DATA lv_banana TYPE string.
  FIELD-SYMBOLS <fv_banana> TYPE any.
* Busca no Programa ZSAPeiros a variável v_banana
  lv_banana = '(ZSAPeiros)v_banana'.
  ASSIGN (lv_banana) TO <fv_banana>.
  <fv_banana> = 'SAPeiros'.
ENDFUNCTION.