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 o RFC síncrono e assíncrono, consulte Cenários de Entrada de 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 seqüência de ações de processamento que resultam de um pedido 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
Se você selecionar
RFC Síncrono (o padrão) durante a configuração, ocorrerão as seguintes etapas de processamento:
- O adaptador inicia os listeners do evento, que atendem para um evento de função ativada do RFC
(que você especificou com a propriedade RFCProgramID)
no Servidor SAP.
- 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ócios de resposta para uma função ativada do RFC
e a retorna para o Servidor SAP.
O adaptador não atende eventos até que o terminal esteja ativo
e disponível.
Assíncrono Transacional RFC
Se você selecionar
RFC Enfileirado/Transacional Assíncrono durante a
configuração, ocorrerão as seguintes etapas de processamento:- Um cliente no Servidor SAP faz uma chamada
da função ativada do RFC no adaptador.
Nota: Para enviar as funções ativadas do
RFC de uma fila no Servidor SAP,
o programa cliente no Servidor SAP entrega
os eventos a uma fila de saída definida pelo usuário.
Um ID de transação
é associado à chamada.
O programa de chamada noServidor SAP não aguarda para ver se a chamada para o adaptador obteve êxito e nenhum dado é retornado ao programa de chamada.
- A chamada de função do RFC é colocada em uma lista de funções a serem entregues.
É possível
ver a lista de eventos inserindo o código de transação SM58 no Servidor SAP
- A chamada de função do RFC é feita no adaptador. Se o adaptador não estiver disponível,
s chamada permanece na lista no Servidor SAP
e a chamada é repetida em intervalos regulares até que ela possa ser processada
pelo adaptador.
Quando o Servidor SAP entrega com êxito o evento de chamada, ele remove a função da lista.
- Se você selecionou Garanta a entrega do evento apenas 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 estiver enviando funções de uma fila definida pelo usuário no
Servidor SAP,
as funções serão entregues na ordem que aparecem na
fila. É possível ver o conteúdo da fila inserindo o código de transação
SMQ1 no Servidor SAP.
- Se a entrega obtiver êxito e se você selecionou Garantia
da entrega do evento apenas 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 for enviado pelo
Servidor SAP,
ocorrerá 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 apenas uma vez.