SAP – Submit – Calling Programs – Abap

Publicado: 27 de julho de 2014 em Abap

Se você precisa programar uma aplicação extensiva, um único programa pode se tornar muito complexo. Para tornar o programa mais fácil de ler, muitas vezes é razoável dividir as funções necessárias entre vários programas. Programas ABAP, como grupos de funções, também podem se conectar com outros programas ABAP e podem se comunicar de varias maneiras diferentes.

A instrução Submit permite que você possa especificar o nome do programa que você deseja chamar estaticamente, digitando o nome do programa no código do programa de chamada, ou dinamicamente, especificando o nome de um campo (entre parênteses) que contém o nome do programa. Se o sistema não encontrar o programa executável especificado ao tentar executar a instrução, ocorre um erro de execução.

O Submit possui a instrução complementar chamada And Return que permite retornar ao programa que o chamou, deste modo o sistema armazena os dados do programa executável chamado e retorna para a chamada após o processamento do programa chamado. O sistema retoma a execução do programa de chamada para a declaração após a chamada.

Submit

Submit

Uma observação interessante neste ponto é que cada vez que você executa um programa executável, uma declaração SUBMIT ocorre. Quando você digita o nome do programa em uma transação como SE38 e SA38 e escolhe Executaruma declaração Submit ocorre na transação. É, portanto, um atributo técnico de um programa do tipo 1 que são chamados usando a instrução Submit, embora sua principal característica do ponto de vista de um usuário é que eles são iniciados em primeiro plano.

Exemplo:

Neste exemplo criamos dois programas, o ZPROG1 e ZPROG2, onde o programa 1 chama e alimenta parâmetros para o programa 2 e assim que o programa 2 é fechado, a execução do programa 1 é automaticamente retomada.

Abap

Programa – 1

*&---------------------------------------------------------------------*
*& Report  ZPROG1
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Programa 1 - Call Program
*&---------------------------------------------------------------------*

REPORT  ZPROG1.

Write : / 'Eu sou o programa 1'.

* Chama e transfere dados
SUBMIT ZPROG2 VIA SELECTION-SCREEN
              WITH v1 eq 'Desenvolvimento'
              WITH v2 eq 'Aberto' AND RETURN.

SKIP 2.

FORMAT HOTSPOT COLOR 3 INVERSE ON.
Write : / 'Você retornou para o programa 1'.

Programa – 2

*&---------------------------------------------------------------------*
*& Report  ZPROG2
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Programa 2 - Call Program
*&---------------------------------------------------------------------*

REPORT  ZPROG2.

PARAMETER : v1(15) TYPE c,
            v2(15) TYPE c.

START-OF-SELECTION.

WRITE : 'Eu sou o Programa 2 e recebi duas variáveis', /,
      / 'Variável 1 = ', v1,
      / 'Variável 2 = ', v2.

SKIP.

FORMAT HOTSPOT COLOR 6 INVERSE ON.
WRITE : / 'Clique no botão Voltar e em Fechar para retornar ao programa 1'.

Deixe um comentário