/* POPUP INI */
/* POPUP FIM */

Conteúdo

Alterar valor no programa origem na chamada de uma exit, função, etc


Digamos que o programa em execução tem uma variável chamada V_BANANA que está com o valor SAP, porém o programa é standard e vc precisa alterar ela para SAPeiros. Não tem exit ou função onde você possa alterar este campo por ele não estar parametrizado. Porém sabe que existe uma exit, função, ou enhancement onde você pode manipular os dados.

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

No exemplo abaixo temos um programa e uma função, onde na chamada 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.
/* POPUP INI */ /* POPUP FIM */