Conteúdo

Exportar e Importar valores para/da memória

Existem algumas ocasiões que não é possível receber valores, seja tabelas, variáveis, etc. Neste caso existe uma maneira de exportar os dados para memória e receber de volta os mesmos dados. Isto é comumente utilizado quando um programa A chama um programa B, e este programa B precisa de alguma variável, tabela, etc, do programa A. Lembrando que a memória é na sessão, portanto, se você deslogar ou entrar em outra sessão, não vai ter o este valor em memória. Neste exemplo vamos exportar e importar o conteúdo de uma tabela.
REPORT ZSAPeiros_a.

DATA:
  BEGIN OF gt_saida OCCURS 0,
    line(150) TYPE c,
    END OF gt_saida.

gt_saida+0(10) = '1111111111'.
gt_saida+10(5) = '22222'.
APPEND gt_saida.

EXPORT gt_saida[] TO MEMORY ID '#SapeirosBrasil'.

CLEAR gt_saida[].

SUBMIT ZSAPeiros_b AND RETURN.

IMPORT gt_saida[] FROM MEMORY ID '#SapeirosBrasilO'.

READ TABLE gt_saida INDEX 1.

IF gt_saida+15(1) = 'X'.
  WRITE: / 'Sucesso!!!'.
ENDIF.

FREE MEMORY ID '#SapeirosBrasil'.

FREE MEMORY ID '#SapeirosBrasilO'.

FREE gt_saida[].


REPORT ZSAPeiros_b. DATA: BEGIN OF gt_saida OCCURS 0, line(150) TYPE c, END OF gt_saida. IMPORT gt_saida[] FROM MEMORY ID '#SapeirosBrasil'. READ TABLE gt_saida INDEX 1. gt_saida+15(1) = 'X'. MODIFY gt_saida INDEX 1. EXPORT gt_saida[] TO MEMORY ID '#SapeirosBrasilO'.