E referente a Aplicacao o qual o programa pertence.- Program: E referente ao nome do programa. Os parametros Appl_shortname e Program sao usados somente se o ID do Concorrente nao for fornecido.Parametros de Saida (OUT):- Phase: Retorna a Fase referente a execucao do concorrente, no formato display, como por exemplo, Em Execucao ou Concluido (depende da linguagem).- Status: Retorna o Status referente a execucao do concorrente, no formato display, como por exemplo, Normal (depende da linguagem). - Dev_phase: Retorna a Fase referente a execucao do concorrente, no formato codigo, como por exemplo, RUNNING ou COMPLETE (utilizado para comparacoes e verificacoes universais em programas).- Dev_status: Retorna o Status referente a execucao do concorrente, no formato codigo, como por exemplo, NORMAL (utilizado para comparacoes e verificacoes universais em programas).- Message: Mensagem de conclusao do concorrente. Por exemplo, Conclusao normal (depende da linguagem).Abaixo, um exemplo de chamada:w_request_status := fnd_concurrent.get_request_status( w_request_id ,null ,null ,v_phase ,v_status ,v_dev_phase ,v_dev_status ,v_message); Aguardando a conclusao...:Quando um concorre e submetido atraves de codigo, o pacote envia a solicitacao e libera o objeto que esta submetendo, para continuar sua sequencia de execucao. Contudo, dependendo da necessidade, pode-se querer esperar o termino da execucao do concorrente, para que seja possivel tomar alguma acao mediante o status da execucao. Para isto, podemos utilizar o pacote FND_CONCURRENT.WAIT_FOR_REQUEST. Este pacote faz com que o objeto chamador aguarde pelo termino da execucao do concorrente. A chamada deste pacote deve ser realizada apos a submissao do concorrente, pela chamada SUBMIT_REQUEST e apos se certificar que o concorrente foi submetido (atraves do retorno do ID do concorrente vindo da funcao). Outro detalhe, a chamada ao WAIT_FOR_REQUEST, deve ser precedida de um COMMIT. Veja o exemplo abaixo:...if not fnd_concurrent.wait_for_request(w_request_id, 2, 0, v_phase, v_status, v_dev_phase, v_dev_status, v_message) then raise_application_error(-20001, v_message);else if v_dev_status not in ('NORMAL', 'WARNING') then raise_application_error(-20001, v_message); end if;end if;... Note no exemplo acima, que atraves do parametro de retorno V_DEV_STATUS, conseguimos saber com qual status o concorrente finalizou. Lembrando, que a chamada WAIT_FOR_REQUEST so libera a continuacao da execucao do objeto chamador, apos o termino da execucao do concorrente ou apos um tempo que pode ser definido na chamada desta funcao.Alem dos parametros referentes ao Status do concorrente, esta funcao, que retorna true ou false, tambem possui outros parametros de entrada e saida. Veja o significado de cada um deles:w_request_wait := wait_for_request( request_id IN number default NULL ,interval IN number default 60 ,max_wait IN number default 0 ,phase OUT NOCOPY varchar2 ,status OUT NOCOPY varchar2 ,dev_phase OUT NOCOPY varchar2 ,dev_status OUT NOCOPY varchar2 ,message OUT NOCOPY varchar2); Parametros de Entrada (IN):- Request_id: ID do Concorrente que deve ser monitorado, ou seja, esperar a conclusao.- Interval: Frequencia da verificacao de termino do concorrente (padrao 60 segundos).- Max_wait: Quantidade maxima de espera (em segundos) para a conclusao do concorrente (coloque 0 para espera infinita).Parametros de Saida (OUT):- Phase: Retorna a Fase referente a execucao do concorrente, no formato display, como por exemplo, Em Execucao ou Concluido (depende da linguagem).- Status: Retorna o Status referente a execucao do concorrente, no formato display, como por exemplo, Normal (depende da linguagem). - Dev_phase: