Olá kim,
Bem-vindo ao sdn.
O Modelo de Comunicação qRFC
Propriedades do qRFC e Possíveis Usos
Todos os tipos de aplicativos são instruídos a se comunicar com outros aplicativos. Esta comunicação pode ocorrer dentro de um sistema SAP, com outro sistema SAP ou com um aplicativo de um sistema remoto externo. Uma interface que pode ser usada para lidar com essa tarefa é a Chamada de Função Remota (RFC). As RFCs podem ser usadas para iniciar aplicativos em sistemas remotos e executar funções específicas.
Enquanto a primeira versão da RFC, a RFC síncrona (sRFC), exigia que ambos sistemas envolvidos estivessem ativos para realizar uma comunicação síncrona, as gerações posteriores de RFC tinham uma variedade maior de recursos à disposição (como serialização, garantia de execução única e o sistema receptor não precisa estar disponível). Esses recursos foram ainda mais aprimorados através da RFC em fila com entrada/saída.
A comunicação entre aplicativos dentro de um sistema SAP e também com um sistema remoto pode ser basicamente alcançada usando a Chamada de Função Remota (RFC). Aqui, os seguintes cenários são possíveis:
∑ Comunicação entre dois sistemas SAP independentes
∑ Comunicação entre um sistema SAP chamador e um sistema receptor externo
∑ Comunicação entre um sistema externo chamador e um sistema SAP receptor
O modelo de comunicação a seguir mostra como esses cenários de comunicação podem ser vistos na realidade. O processo de envio real ainda é realizado através da RFC transacional (tRFC). Filas de entrada e saída são adicionadas ao tRFC, o que nos deixa com um qRFC (Chamada de Função Remota em Fila). O sistema emissor também é chamado de sistema cliente, enquanto o sistema alvo corresponde ao sistema servidor.
Cenário 1: tRFC
Este cenário é apropriado se os dados enviados forem independentes entre si. Um aplicativo chamador (ou cliente) no sistema 1 usa uma conexão tRFC para um aplicativo chamado (ou servidor) no sistema 2. Neste cenário, os dados são transferidos por meio do tRFC, o que significa que cada módulo de função enviado para o sistema alvo tem garantia de ser executado apenas uma vez. Não é possível definir a sequência em que os módulos de função são executados, nem o momento da execução. Se ocorrer um erro durante a transferência, é programado um trabalho em segundo plano que reenvia o módulo de função após 15 minutos.
Cenário 2: qRFC com fila de saída
Neste cenário, o sistema emissor usa uma fila de saída para serializar os dados que estão sendo enviados. Isso significa que os módulos de função mutuamente dependentes são colocados na fila de saída do sistema emissor e têm garantia de serem enviados ao sistema receptor na sequência correta e apenas uma vez. O sistema chamado (servidor) não tem conhecimento da fila de saída no sistema emissor (cliente), o que significa que neste cenário, cada sistema SAP também pode se comunicar com um sistema não SAP (Nota: o código de programação do sistema servidor não deve ser alterado. No entanto, deve ser compatível com tRFC).
Cenário 3: qRFC com fila de entrada (e fila de saída)
Neste cenário, além de uma fila de saída no sistema emissor (cliente), também há uma fila de entrada no sistema alvo (servidor). Se houver um qRFC com fila de entrada, isso sempre significa que há uma fila de saída no sistema emissor. Isso garante que a sequência e controle eficientemente os recursos no sistema cliente e no sistema servidor. A fila de entrada processa apenas tantos módulos de função quanto os recursos do sistema alvo (servidor) permitirem naquele momento. Isso evita que um servidor seja bloqueado por um cliente. Um cenário com fila de entrada no sistema servidor não é possível, pois a fila de saída é necessária no sistema cliente para garantir a sequência e evitar que aplicativos individuais bloqueiem todos os processos de trabalho no sistema cliente.
Propriedades dos Três Tipos de Comunicação
Para ajudar na decisão sobre qual tipo de comunicação usar em sua paisagem de sistemas para seus requisitos, as vantagens dos três tipos de comunicação estão listadas a seguir:
...
1. tRFC: apenas para módulos de função independentes
2. qRFC com fila de saída: garante que os módulos de função independentes sejam enviados um após o outro e apenas uma vez (serialização). Adequado também para comunicação com servidores não SAP.
3. qRFC com fila de entrada: além da fila de saída no sistema cliente, uma fila de entrada garante que apenas tantos módulos de função sejam processados no sistema alvo (servidor) quanto os recursos atuais permitirem. O sistema cliente e o sistema servidor devem ser sistemas SAP. Um processo de trabalho é usado para cada fila de entrada.