No processamento de saída BAPI,
um fluxo de mensagens envia um pedido para o Servidor SAP.
Para as unidades de trabalho BAPI e para os conjuntos de resultados BAPI, o processamento é tratado
simultaneamente (o fluxo de mensagens aguarda por uma resposta do Servidor SAP).
Para BAPIs simples é possível pedir que o processamento seja tratado sincronicamente
ou assincronicamente (o fluxo de mensagens não aguarda por uma resposta
do Servidor SAP).
Para as unidades de trabalho BAPI e para os conjuntos de resultados BAPI, o processamento é
tratado conforme descrito em RFC Síncrono.
Para BAPIs simples é feita uma seleção durante a configuração, sobre o tipo
de chamada RFC remota que deseja fazer.
RFC Síncrono
Se você selecionart RFC Síncrono (o padrão) durante a configuração para um BAPI simples ou se estiver utilizando as unidades de trabalho BAPI ou os conjuntos de resultados BAPI, ocorrerão as seguintes
etapas de processamento:- O adaptador recebe um pedido de um fluxo de mensagens na forma de um
objeto de negócos BAPI.
- O adaptador converte o objeto de negócios BAPI para uma chamada de função SAP JCo.
- O adaptador utiliza a interface RFC (Remote Function Call) para processar a função BAPI ou RFC no aplicativo SAP.
- Depois de passar os dados para o Servidor SAP,
o adaptador trata a resposta a partir do SAP e a converte de volta no formato de objeto de negócios necessário para o fluxo de mensagens.
- O adaptador, em seguida, envia a resposta de volta ao fluxo de mensagens.
Assíncrono Transacional RFC
Se
RFC Transacional
Assíncrono for selecionado durante a configuração, ocorrerão as seguintes
etapas de processamento:
- O adaptador recebe um pedido de um fluxo de mensagens na forma de um
objeto de negócos BAPI.
- O adaptador verifica o objeto de negócios para ver se o atributo ID da transação SAP
possui um valor designado. (O TID (ID da transação
SAP) é um campo em sua mensagem.)
- Se o ID de transação SAP tiver um valor, o adaptador utiliza
tal valor durante o processamento.
- Se o atributo não tiver um valor, o adaptador fará uma chamada
ao Servidor SAP e
consiguirá o ID da transação a partir do Servidor SAP.
- O adaptador converte o objeto de negócios BAPI para uma chamada de função SAP JCo.
- O adaptador utiliza o protocolo do tRFC (transactional Remote Function Call)
para fazer a chamada ao Servidor SAP.
O
adaptador não aguarda por uma resposta do Servidor SAP.
- Após os dados de função terem siso passados para o aplicativo SAP, o controle
retorna ao adaptador.
- Se a ligação para o Servidor SAP falhar,
o Servidor SAP lança
uma ABAPException.
- Se a ligação para o Servidor SAP for bem-sucedida,
mas contiver dados inválidos, nenhuma exceção será retornada ao adaptador.
Por exemplo, se o adaptador enviar um pedido que contenha um número de
cliente inválido, o adaptador não responderá com uma exceção indicando
que tal cliente não existe.
- O nó de pedido constrói uma árvore de mensagens que contenha o ID da transação
como um dos campos.
RFC Enfileirado Assíncrono
Se
RFC Enfileirado
Assíncrono for selecionado durante a configuração, ocorrerão as seguintes
etapas:
- O adaptador recebe um pedido de um fluxo de mensagens na forma de um
objeto de negócos BAPI.
- O adaptador verifica o objeto de negócios para ver se o atributo ID da transação SAP
possui um valor designado. (O TID (ID da transação
SAP) é um campo em sua mensagem.)
- Se o ID de transação SAP tiver um valor, o adaptador utiliza
tal valor durante o processamento.
- Se o atributo não tiver um valor, o adaptador fará uma chamada
ao Servidor SAP e
consiguirá o ID da transação a partir do Servidor SAP.
- O adaptador converte o objeto de negócios BAPI para uma chamada de função SAP JCo.
- O adaptador utiliza o protocolo do tRFC para fazer a chamada para a fila especificada
no Servidor SAP.
O
adaptador não aguarda por uma resposta do Servidor SAP.
- Após os dados de função terem siso passados para o aplicativo SAP, o controle
retorna ao adaptador.
- Se a ligação para o Servidor SAP falhar,
o Servidor SAP lança
uma ABAPException.
- Se a ligação para o Servidor SAP for bem-sucedida,
mas contiver dados inválidos, nenhuma exceção será retornada ao adaptador.
Por exemplo, se o adaptador enviar um pedido que contenha um número de
cliente inválido, o adaptador não responderá com uma exceção indicando
que tal cliente não existe.
- O nó de pedido constrói uma árvore de mensagens que contenha o ID da transação
como um dos campos.