Cenário 2: Processamento de Criação do Solicitação e do Aplicativo de Consulta com Dois Fluxos

Você deve configurar a propriedade Modo de transação apropriadamente em um nó SAPRequest quando você estiver processando usando fluxos de mensagens separados.

Este cenário é um dos dois exemplos que ilustram os conceitos descritos em SAP BAPI transaction commit; consulte também Cenário 1: processamento de parceiro de negócios e relacionamento em um único fluxo.

Neste cenário, dois fluxos de mensagens são usados para emitir uma criação de solicitação de vendas e uma verificação de solicitação de vendas subsequente usando duas chamadas BAPI:

BAPI_SALESORDER_CREATEFROMDAT2
BAPI_SALESORDER_GETSTATUS
Por exemplo, um usuário consulta uma solicitação após uma compra ter sido feita usando um aplicativo baseado na Web. O resultado da consulta está diretamente vinculado ao comportamento assíncrono ou síncrono das etapas de criação da solicitação executadas pelo servidor SAP externo.
No exemplo assíncrono a seguir (o comportamento padrão), a consulta pode falhar e o usuário recebe um reconhecimento negativo para a ordem que foi criada.
Diagrama mostrando como os nós SAPRequest em um fluxo de mensagens interagem com o servidor SAP . O diagrama é descrito nas etapas a seguir.
Fluxo de mensagens Criar Solicitação do BAPI
A1. Um aplicativo aciona o fluxo de mensagens transacional que cria uma solicitação de vendas.
A2. O nó SAPRequest submete uma criação de ordem e retorna o número de registro de pedidos. A confirmação ocorre quando o fluxo de mensagens é concluído porque o nó participa de uma transação no nível do fluxo de mensagens.
A3. O nó MQReply coloca uma mensagem MQ na fila de saída pendente de commit transacional.
A4. O fluxo de mensagens é concluído e o nó de integração começa a comprometer todos os recursos envolvidos nesse fluxo, incluindo SAP e a chamada de nós MQReply . O número da solicitação está disponível para o aplicativo de usuário.

Os dois processos a seguir ocorrem simultaneamente e concorrem efetivamente entre si para concluírem.
SAP confirma o processamento assincronamente Fluxo de mensagens Obter status do pedido da BAPI
B1. A confirmação de SAP inicia. C1. uma Solicitação para uma consulta de status de solicitação é feito.  
B2. A confirmação de SAP é concluída. C2. O nó SAPRequest solicita o pedido.  

Devido à confirmação assíncrona, dois resultados são possíveis quando a solicitação é consultado:
  • O solicitação não é localizado porque o SAP não concluiu a confirmação da solicitação.
  • O solicitação é localizado mas somente se SAP tiver confirmado a solicitação antes da consulta ser feita.
Você pode evitar essa incerteza configurando o adaptador para executar o commit sincronamente; configure o parâmetro Use wait parameter before calling BAPI commit no assistente de conexão do adaptador para True, e configure a propriedade Modo de transação no nó SAPRequest para Sim.
No exemplo síncrono a seguir, a consulta é bem-sucedida e o usuário recebe um reconhecimento positivo para a ordem que foi criada.
Diagrama mostrando como os nós SAPRequest em um fluxo de mensagens interagem com o servidor SAP . O diagrama é descrito nas etapas a seguir.
Fluxo de mensagens Criar Solicitação do BAPI
1. Um aplicativo aciona o fluxo de mensagens transacional que cria a solicitação de vendas.
2. O nó SAPRequest submete uma criação de ordem e retorna o número de registro de pedidos. A confirmação ocorre quando o fluxo de mensagens é concluído porque o nó participa de uma transação no nível do fluxo de mensagens.
3. O nó MQReply coloca uma mensagem MQ na fila de saída pendente de commit transacional.
4. O fluxo de mensagens é concluído e o nó de integração começa a confirmar todos os recursos envolvidos nesse fluxo, inclusive o SAP.
SAP Comfirma o processamento sincronamente
5. A confirmação de SAP inicia.
6. A confirmação de SAP é concluída.
7. O adaptador passa o controle de volta ao nó de integração.
8. A chamada do nó MQReply é comprometida, portanto o número do pedido está disponível para o aplicativo do usuário.
Fluxo de Mensagens Obter Status do Solicitação do BAPI
9. uma Solicitação para uma consulta de status de solicitação é feito.
10. O nó SAPRequest solicita o pedido.

SAP concluiu a confirmação da solicitação; portanto, a consulta da solicitação é bem-sucedida.