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

Se você selecionar RFC Síncrono (o padrão) durante a configuração, ocorrerão as seguintes etapas de processamento:
  1. 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.
  2. O evento de função ativada do RFC é enviado ao adaptador por meio dos listeners do evento.
  3. O adaptador resolve a operação e o nome do objeto de negócios utilizando o nome da função RFC-ativado recebido.
  4. O adaptador envia o objeto de negócios para um terminal de maneira síncrona.
  5. O adaptador recebe o objeto de negócios de resposta de resposta do terminal.
  6. 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

Se você selecionar RFC Enfileirado/Transacional Assíncrono durante a configuração, ocorrerão as seguintes etapas de processamento:
  1. 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.

  2. 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

  3. 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.

  4. 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.

  5. O adaptador resolve a operação e o nome do objeto de negócios utilizando o nome da função RFC-ativado recebido.
  6. 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.

  7. 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:
    1. O adaptador verifica o ID da transação.
    2. 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.