Limitar execução em background ou foreground

images/thumbnail.jpg - Thumbnail

Desenvolveste um report que sabes que demora 12 horas a correr. Por isso não queres que ninguém tente corrê-lo em foreground. Vou mostrar-te uma forma de garantires que isso não acontece.

REPORT zbackground.

* Este é o include mágico
INCLUDE rsdbc1xx.

* Ecrã de selecção
PARAMETERS: p_voto TYPE c.

* Evento mágico
AT SELECTION-SCREEN OUTPUT.
  APPEND 'ONLI' TO current_scr-excl. " Executar
  APPEND 'PRIN' TO current_scr-excl. " Executar + imprimir
  APPEND 'SJOB' TO current_scr-excl. " Executar em background

Tens 3 opções: ONLI, PRIN e SJOB. Cada uma corresponde a uma das formas de execução disponíveis no menu “Programa”. Quando acrescentas uma à tabela CURRENT_SCR-EXCL essa opção é inibida no menu e na barra de ferramentas.

Não podia ser mais simples!

Há também outra forma de fazer isto que é bastante semelhante mas que usa a função RS_SET_SELSCREEN_STATUS em vez de declarar o include e acrescentar os valores à tabela declarada no include. Caso esta por alguma razão não funcione podes experimentar a função.

Obrigado Víctor Villamarín pela foto.

O Abapinho saúda-vos.