E presumo que no final, esse Serviço OData será exposto, para que uma parte externa possa chamá-lo?
Nesse caso, você tem várias opções:
-
Sei que existe a possibilidade de "embrulhar" automaticamente um módulo de função habilitado para acesso remoto como um Serviço Web. Requer um pouco de configuração no
Administrador de SOA
, que então gera automaticamente uma interface de Serviço Web (e um arquivo WSDL) a partir da interface do módulo de função e inicia um ponto final HTTP, que invoca o módulo de função quando recebe uma solicitação de Serviço Web.
A desvantagem é que isso é SOAP e não OData, mas acredito que algo semelhante também deve ser possível para OData (provavelmente dependendo da versão do seu sistema SAP backend). -
Existe um complemento chamado
SAP Netweaver Gateway
que pode ser instalado na versão do sistema SAP backend e pode ser usado para expor automaticamente vários objetos SAP (incluindo módulos de função habilitados para acesso remoto) como Serviços OData baseados em JSON.
Não tenho certeza se o SAP Netweaver Gateway requer uma licença adicional. Mas se já estiver instalado no seu sistema SAP, provavelmente é a melhor opção. -
Existe um componente Java leve chamado
Conector Empresarial SAP
, que está incluído na licença padrão da SAP. Precisa ser instalado em algum lugar da Intranet (onde tenha acesso ao sistema SAP backend) e então pode ser usado para todos os tipos de interfaces orientadas para a Internet (bidirecionais). Isso inclui a exposição automática de módulos de função habilitados para acesso remoto (que residem no backend da SAP) como pontos finais de SOAP / WebService. Portanto, se o cliente esperado estiver bem com SOAP em vez de OData, isso só exigiria um pouco de configuração. No entanto, se o cliente precisar de OData, você teria que usar um pouco de codificação Java no SAP BC para analisar a solicitação de OData recebida (O mapeamento dos dados da solicitação de OData para os parâmetros de entrada/saída dos módulos de função pode ser feito com um mapeamento gráfico simples).
Uma vantagem desse abordagem (em comparação com 1 e 2) é que você não precisa abrir uma conexão com seu sistema SAP backend em seu firewall. Em vez disso, você só abre uma conexão com o SAP BC, que (ao contrário do backend da SAP) não contém dados sensíveis. (Há até uma configuração de "alta segurança" chamada "Inversão de Invocação", onde você instala um SAP BC na DMZ e uma segunda instância em sua rede privada, por exemplo, no servidor de aplicativos SAP, e apenas o SAP BC na DMZ precisa ser exposto à Internet).
Avise-me se quiser experimentar alguma dessas opções e precisar de mais instruções.