RFC Síncrono e assíncrono
Para o processamento de entrada e saída BAPI, você pode especificar que o processamento seja manipulado de forma síncrona (na qual o fluxo de mensagens e o adaptador devem estar disponíveis durante o processamento) ou de forma assíncrona (na qual o adaptador não tem que estar disponível quando o fluxo de mensagens faz a chamada de função). No processamento síncrono, o fluxo de mensagens aguarda uma resposta do adaptador. No processamento assíncrono, o aplicativo SAP não aguarda por uma resposta e o adaptador não precisa estar disponível quando o aplicativo SAP faz a chamada de função.
Para diagramas que ilustram Chamadas de Função Remota Síncrona e Assíncrona (RFC), consulte Cenários de entrada BAPI.
A interface BAPI tem dois conjuntos de propriedades de especificação de ativação (um para RFC síncrono e um para RFC assíncrono), que você usa para configurar o processamento de entrada. Você especifica valores para as propriedades com o assistente de Conexão do adaptador.
A sequência de ações de processamento que resultam de uma solicitação de entrada difere, dependendo da seleção que você fez durante a configuração da lista SAP do Tipo RFC (Remote Function Call).
RFC Síncrono
- O adaptador inicia os atendentes de eventos, que atendem um evento de função habilitado por RFC (que você especificou com a propriedade RFCProgramID) no SAP servidor.
- O evento de função ativada do RFC é enviado ao adaptador por meio dos listeners do evento.
- O adaptador resolve a operação e o nome do objeto de negócios utilizando o nome da função RFC-ativado recebido.
- O adaptador envia o objeto de negócios para um terminal de maneira síncrona.
- O adaptador recebe o objeto de negócios de resposta de resposta do terminal.
- O adaptador mapeia o objeto de negócio de resposta a uma função habilitada por RFC e a devolve para o SAP servidor.
O adaptador não atende eventos até que o terminal esteja ativo e disponível.
Assíncrono Transacional RFC
- Um cliente no SAP servidor invoca uma chamada de função ativada por RFC no adaptador. Nota: Para enviar as funções habilitadas por RFC a partir de uma fila no SAP servidor, o programa cliente no SAP servidor entrega os eventos para uma fila de saída definida pelo usuário.
Um ID de transação é associado à chamada.
O programa de chamada no SAP servidor não espera para ver se a chamada para o adaptador foi bem-sucedida, e nenhum dado é voltado para o programa de chamada.
- A chamada de função do RFC é colocada em uma lista de funções a serem entregues.
Você pode ver a lista de eventos inserindo código de transação SM58 no SAP servidor
- A chamada de função do RFC é feita no adaptador. Se o adaptador não estiver disponível, a chamada permanece na lista no SAP servidor, e a chamada é repetida em intervalos regulares até que possa ser processada pelo adaptador.
Quando o SAP servidor entrega com sucesso o evento de chamada, ele remove a função da lista.
- Se você selecionou Garanta a entrega do evento somente uma vez,
o adaptador configura O ID da transação na tabela persistente do evento.
Isto garante que o evento n~ao seja processado mais de uma vez.
- O adaptador resolve a operação e o nome do objeto de negócios utilizando o nome da função RFC-ativado recebido.
- O adaptador envia o objeto de negócios para um terminal.
Se você estiver enviando funções a partir de uma fila definida pelo usuário no SAP servidor, as funções são entregues na ordem em que elas existem na fila. Você pode ver o conteúdo da fila inserindo código de transação SMQ1 no SAP servidor.
- Se a entrega obtiver êxito e se você selecionou Garantia
da entrega do evento somente uma vez, o adaptador remove o ID da transação
da tabela persistente do evento.Se ocorrer uma falha quando o adaptador tentar entregar o objeto de negócios, o ID da transação ficará na tabela de eventos. Quando outro evento é recebido a partir do SAP servidor, ocorre o seguinte processamento:
- O adaptador verifica o ID da transação.
- Se o evento corresponder a um ID da tabela, o adaptador processará o evento com falha uma vez; ele não envia o evento com o ID duplicado, assegurando, assim, que o evento seja processado somente uma vez.