Comunicação por evento entre programas
Na mitologia grega a forma de comunicação mais frequentemente utilizada pelos deuses para comunicar com os mortais era o estupro. Estupravam por dá cá aquela palha.
O mais parecido que temos com estupro no ABAP é o comando SUBMIT, que é também a forma mais comum de comunicação entre dois programas.
Mas há formas menos brutas de um programa comunicar com outro. Recorrendo a um evento, por exemplo.
Presumamos que tens um programa chamado ZEUS (em rigor seria ZEUS_TOURO, mas OK) que quer comunicar com outro chamado ZEUROPA.
-
Na transacção SM62 crias o evento com um nome tipo Z*. Chamemos-lhe ZAS! Uma vez criado podes encontrá-lo perto do fim da longa lista de eventos, junto dos restantes eventos criados pelo cliente;
-
Se carregares no botão direito podes fazer uma data de coisas com ele. Uma delas é transportá-lo, ou seja, adicioná-lo a uma ordem de transporte;
-
No programa ZEUS, no sítio onde houver vontade de invocar a ZEUROPA, mete o seguinte código:
CALL FUNCTION 'BP_EVENT_RAISE'
EXPORTING
eventid = 'ZAS'
EXCEPTIONS
BAD_EVENTID = 1
EVENTID_DOES_NOT_EXIST = 2
EVENTID_MISSING = 3
RAISE_FAILED = 4
OTHERS = 5
-
Na transacção SM36 cia um job ZEUS_ZAS_EUROPA com um único passo, a execução (salvo seja) da ZEUROPA;
-
Nas condições de execução do job escolhe a opção “após evento” e escolhe o evento ZAS. Grava.
Pronto. Ao correres o programa ZEUS, Ele lança o evento ZAS, Que espoleta o job ZEUS_ZAS_EUROPA, Que executa (salvo seja) a ZEUROPA.
O Abapinho saúda-vos.