SAP ERP
O conetor do SAP ERP permite-lhe realizar operações de inserção, eliminação, atualização e leitura em dados do SAP ERP.
Edições suportadas
O conector do SAP ERP pode comunicar com os sistemas SAP R/3 através dos seguintes métodos:
- Interfaces de programação de aplicações empresariais (BAPIs)
- Chamadas de funções remotas (RFCs)
- Tabelas SAP
- Consultas SAP
- Mensagens IDoc
- SAP ECC
- SAP ERP
- SAP R/3
- SAP S/4HANA no local
- Versão do SAP JCo.
Este conetor requer o fornecimento de dois ficheiros JCo durante a criação da associação:
sapjco3.jar
elibsapjco3.so
(para Unix). Pode transferir a versão 3.1.5 do JCo a partir do site dos conetores SAP.
Se o sistema SAP suportar uma ligação RFC e as RFCs necessárias estiverem disponíveis, a ligação ao sistema SAP funciona. Outras edições que suportam ligações RFC também podem ser suportadas.
Tabelas SAP: as tabelas SAP são expostas como visualizações automaticamente através da propriedade de ligação TableMode. Especifique as tabelas SAP com as quais quer trabalhar através da propriedade de ligação Views, que substitui TableMode. A SAP desaconselha a modificação direta das tabelas. Em alternativa, é recomendado usar BAPIs para modificar quaisquer dados tabulares. A modificação direta de tabelas SAP não é suportada.
BAPIs e RFCs: as BAPIs e as RFCs são expostas diretamente como procedimentos armazenados. Por predefinição, todas as RFCs que começam com a palavra-chave BAPI são apresentadas como um procedimento armazenado disponível.
IDoc: os ficheiros de documentos intermédios (IDoc) são objetos SAP que transportam dados de transações empresariais de um sistema para outro sob a forma de uma mensagem eletrónica. Os IDocs transferem dados do SAP para sistemas não SAP através de sistemas de troca eletrónica de dados (EDI).
Para mais informações acerca destes termos, consulte o glossário da SAP.
Antes de começar
Antes de usar o conector SAP ERP, faça as seguintes tarefas:
- No seu projeto do Google Cloud:
- Certifique-se de que a conetividade de rede está configurada. Para obter informações sobre padrões de rede, consulte o artigo Conetividade de rede.
- Conceda a função IAM roles/connectors.admin ao utilizador que está a configurar o conetor.
- Conceda as seguintes funções de IAM à conta de serviço que quer usar para o conector:
roles/secretmanager.viewer
roles/secretmanager.secretAccessor
roles/storage.objectViewer
Uma conta de serviço é um tipo especial de Conta Google destinada a representar um utilizador não humano que precisa de autenticação e autorização para aceder a dados nas APIs Google. Se não tiver uma conta de serviço, tem de criar uma. O conector e a conta de serviço têm de pertencer ao mesmo projeto. Para mais informações, consulte Criar uma conta de serviço.
- Ative os seguintes serviços:
secretmanager.googleapis.com
(Secret Manager API)connectors.googleapis.com
(API Connectors)
Para saber como ativar serviços, consulte o artigo Ativar serviços.
Se estes serviços ou autorizações não tiverem sido ativados anteriormente para o seu projeto, é-lhe pedido que os ative quando configurar o conector.
Se ativar a subscrição de eventos, tem de configurar o SDK ABAP. Para obter informações sobre a configuração do SDK ABAP, consulte o artigo Vista geral do SDK ABAP para o Google Cloud.
-
Tem de criar um contentor designado e carregar os seguintes IDs de objetos transferidos do portal do SAP ERP:
- Caminho do Cloud Storage do JAR do JCo: o caminho do Cloud Storage do ficheiro JAR do Java Connector (JCo).
- Caminho do Cloud Storage libsapjco3: o caminho do Cloud Storage do ficheiro JAR libsapjco3.
Configure o conetor
Uma associação é específica de uma origem de dados. Isto significa que, se tiver muitas origens de dados, tem de criar uma associação separada para cada origem de dados. Para criar uma associação, faça o seguinte:
- Na Cloud Console, aceda à página Integration Connectors > Ligações e, de seguida, selecione ou crie um projeto do Google Cloud.
- Clique em + Criar novo para abrir a página Criar associação.
-
Na secção Localização, escolha a localização para a ligação.
- Região: selecione uma localização na lista pendente.
Para ver a lista de todas as regiões suportadas, consulte o artigo Localizações.
- Clicar em Seguinte.
- Região: selecione uma localização na lista pendente.
- Na secção Detalhes da associação, conclua o seguinte:
- Conector: selecione SAP ERP na lista pendente de conectores disponíveis.
- Versão do conetor: selecione a versão do conetor na lista pendente de versões disponíveis.
- No campo Nome da ligação, introduza um nome para a instância de ligação.
Os nomes das associações têm de cumprir os seguintes critérios:
- Os nomes das associações podem usar letras, números ou hífenes.
- As letras têm de ser minúsculas.
- Os nomes das associações têm de começar com uma letra e terminar com uma letra ou um número.
- Os nomes das associações não podem exceder 49 carateres.
- Para os conetores que suportam a subscrição de eventos, os nomes das associações não podem começar com o prefixo "goog".
- Opcionalmente, introduza uma Descrição para a associação.
- Opcionalmente, ative o Registo na nuvem e, em seguida, selecione um nível de registo. Por predefinição, o nível do registo está definido como
Error
. - Conta de serviço: selecione uma conta de serviço que tenha as funções necessárias.
- Para usar a associação para subscrições de eventos, selecione Ativar subscrição de eventos. Se selecionar
esta opção, são apresentadas as seguintes opções:
- Ativar subscrição de eventos com entidade e ações: selecione esta opção para usar a associação para a subscrição de eventos e as operações do conetor (entidades e ações).
- Ativar apenas subscrição de eventos: selecione esta opção para usar a associação apenas para a subscrição de eventos. Se selecionar esta opção, clique em Seguinte e, de seguida, configure a subscrição de eventos.
- Cliente: o cliente que está a fazer a autenticação no sistema SAP.
- ID do sistema: o ID do sistema ou o R3Name do sistema SAP é uma string com um máximo de três carateres. É frequentemente usado em ligações de balanceamento de carga.
- Número do sistema: o número pelo qual o sistema de destino é definido. Usado quando define a propriedade de ligação do anfitrião.
- ID do projeto: o ID do projeto do Google Cloud onde reside o contentor JAR do SAP JCo.
- Bucket: o nome do contentor que contém os ficheiros sapjco3.jar e libsapjco3.so.
- Caminho do Cloud Storage do JAR do JCo: caminho do Cloud Storage do JAR do JCo.
- Caminho do Cloud Storage libsapjco3: caminho do Cloud Storage do JAR libsapjco3.
- Modo de tabela: selecione a tabela SAP a apresentar como uma vista.
- Função de leitura de tabelas: nome da função a usar para ler tabelas. Para mais informações, consulte o artigo Use uma função de tabela de leitura personalizada.
- ID do sistema: o ID do sistema ou o R3Name do sistema SAP. Pode introduzir um máximo de 3 carateres.
- Modo de consulta: selecione as tabelas SAP que têm de ser apresentadas como vistas.
-
Visualizações navegáveis: introduza uma lista de visualizações separada por vírgulas a apresentar.
Por exemplo,
ViewA,ViewB,ViewC
. - Idioma: defina esta propriedade para o idioma que especificar quando iniciar sessão no SAP. Esta propriedade é um código ISO 639-1 para o idioma que o sistema SAP usa. Por predefinição, é usado o idioma EN.
- Entradas de serviço: as entradas de serviço a usar para a ligação.
-
Modo SNC: selecione esta opção para ativar o SNC para a autenticação entre os Integration Connectors e o seu sistema SAP. Se selecionar esta opção, especifique os seguintes detalhes:
- ID do objeto SNC_LIB: ID do objeto da biblioteca SNC.
- Nome do PSE: nome do ficheiro do ambiente de segurança pessoal (PSE) aplicável ao contentor. Um ficheiro PSE armazena o par de chaves públicas e privadas, bem como os certificados X.509 numa estrutura ASN.1.
- Código secreto do SNC: selecione o segredo do Secret Manager do código secreto da biblioteca do SNC.
- Versão do Secret: selecione a versão do Secret.
- Nome do SNC: introduza um nome para a ligação SNC.
-
SNC qop: selecione um nível de proteção. Seguem-se os níveis suportados:
- 1: aplique apenas a autenticação.
- 2 - Aplique a proteção de integridade. Isto também inclui a proteção de autenticação.
- 3 - Aplique a proteção de privacidade. Isto também inclui a proteção da integridade e da autenticação.
- 8 - Aplique a proteção predefinida.
- 9: aplique a proteção máxima.
- Nome do parceiro SNC: introduza o nome SNC do servidor de aplicações.
-
Esquema de ligação: especifique se está a estabelecer ligação a um sistema SAP com um servidor de mensagens (servidor de grupo) ou um servidor de aplicações. Para informações sobre os pré-requisitos que tem de cumprir para estabelecer ligação a um sistema SAP com um servidor de mensagens, consulte o tipo de ligação do servidor de mensagens (servidor de grupo).
Se selecionar GroupServer, tem de especificar os seguintes detalhes:
- Servidor de mensagens: especifique o servidor de mensagens quando se ligar a um sistema SAP que usa o equilíbrio de carga.
- Serviço de servidor de mensagens: o serviço de servidor de mensagens ao qual quer estabelecer ligação.
- Grupo: o grupo de início de sessão usado. Só tem de especificar este parâmetro quando estabelecer ligação a um sistema SAP que use o equilíbrio de carga.
Se estiver a estabelecer ligação a um sistema SAP com um servidor de mensagens (servidor de grupo), não precisa de especificar o endereço do anfitrião na secção Destinos.
- Opcionalmente, configure as definições do nó de associação:
- Número mínimo de nós: introduza o número mínimo de nós de ligação.
- Número máximo de nós: introduza o número máximo de nós de ligação.
Um nó é uma unidade (ou uma réplica) de uma ligação que processa transações. São necessários mais nós para processar mais transações para uma ligação e, inversamente, são necessários menos nós para processar menos transações. Para compreender como os nós afetam os preços dos conectores, consulte o artigo Preços dos nós de ligação. Se não introduzir valores, por predefinição, os nós mínimos são definidos como 2 (para uma melhor disponibilidade) e os nós máximos são definidos como 50.
- Opcionalmente, clique em + ADICIONAR ETIQUETA para adicionar uma etiqueta à associação sob a forma de um par chave/valor.
- Clicar em Seguinte.
- Na secção Destinos, introduza os detalhes do anfitrião remoto (sistema de back-end) ao qual quer estabelecer ligação. Se estiver a estabelecer ligação a um sistema SAP com um servidor de mensagens, não precisa de especificar o endereço do anfitrião.
- Tipo de destino: selecione um Tipo de destino.
- Selecione Endereço do anfitrião na lista para especificar o nome do anfitrião ou o endereço IP do destino.
- Se quiser estabelecer uma ligação privada aos seus sistemas de back-end, selecione Anexo de ponto final na lista e, de seguida, selecione o anexo de ponto final necessário na lista Anexo de ponto final.
Se quiser estabelecer uma ligação pública aos seus sistemas de back-end com segurança adicional, pode considerar configurar endereços IP estáticos de saída para as suas ligações e, em seguida, configurar as regras da firewall para permitir apenas os endereços IP estáticos específicos.
Para introduzir destinos adicionais, clique em +Adicionar destino.
- Clicar em Seguinte.
- Tipo de destino: selecione um Tipo de destino.
-
Na secção Autenticação, introduza os detalhes de autenticação.
- Selecione um Tipo de autenticação e introduza os detalhes relevantes.
Os seguintes tipos de autenticação são suportados pela ligação SAP ERP:
- Autenticação baseada em certificado X509
- Nome de utilizador e palavra-passe
- Clicar em Seguinte.
Para saber como configurar estes tipos de autenticação, consulte o artigo Configurar autenticação.
- Selecione um Tipo de autenticação e introduza os detalhes relevantes.
- Se tiver ativado a subscrição de eventos, a secção Detalhes da subscrição de eventos é apresentada na página de criação da associação. Para saber como configurar os detalhes da subscrição de eventos, consulte o artigo Configure a subscrição de eventos.
- Rever: reveja os detalhes da ligação e da autenticação.
- Clique em Criar.
Configure a autenticação
Introduza os detalhes com base na autenticação que quer usar.
-
Autenticação baseada em X509Certificate
- X509Certificate: o certificado X509 usado para iniciar sessão.
- Versão do Secret: selecione a versão do Secret.
-
Nome de utilizador e palavra-passe
- Nome de utilizador: nome de utilizador do conetor
- Palavra-passe: Secret do Secret Manager que contém a palavra-passe associada ao conector.
Configure para a subscrição de eventos
Se ativar a subscrição de eventos, tem de configurar o SDK ABAP. Para obter informações sobre a configuração do SDK ABAP, consulte o artigo Vista geral do SDK ABAP para o Google Cloud.
Introduza os seguintes valores na secção Detalhes da subscrição de eventos:
-
Selecione um dos seguintes tipos de autenticação para o ouvinte de eventos.
- Autenticação Google. Se ativar esta opção, siga os passos em Autentique através de tokens Web JSON para configurar a autenticação para o SDK ABAP. Além disso, certifique-se de que a conta de serviço tem a função roles/connectors.listener cuja chave de acesso é usada para autenticação.
- Autenticação de chave da API. Se selecionar esta opção, tem de ter criado uma chave da API e, em seguida, guardado a chave como um Secret do Secret Manager. Para mais informações, consulte o artigo Crie uma chave da API.
-
Introduza o nome do campo do tipo de evento. Este campo identifica o tipo de evento associado ao pedido de evento recebido.
{ "event_type": "user.created", ... // other request fields ... }
- Selecione Ativar conetividade privada para uma conetividade segura entre a sua aplicação de back-end e a sua ligação. Se selecionar esta opção, tem de realizar passos de configuração adicionais depois de criar a associação. Para mais informações, consulte o artigo Conetividade privada para subscrição de eventos.
- Introduza a configuração de mensagens não entregues. Se configurar a fila de mensagens rejeitadas, a ligação escreve
os eventos não processados no tópico Pub/Sub especificado. Introduza os seguintes detalhes:
- ID do projeto de mensagens não entregues: o ID do projeto do Google Cloud onde configurou o tópico Pub/Sub de mensagens não entregues.
- Tópico de mensagens não entregues: o tópico do Pub/Sub onde quer escrever os detalhes do evento não processado.
Exemplos de configuração de ligação
As secções seguintes listam os valores de exemplo para os vários campos quando cria a associação do SAP ERP e os parâmetros necessários para os diferentes tipos de associação.
Estabelecer ligação a um sistema SAP distribuído
Se se ligar a um sistema SAP distribuído, como um sistema que usa o equilíbrio de carga, tem de especificar as seguintes propriedades de ligação adicionais. Um administrador pode obter estas propriedades de associação no separador Associação da caixa de diálogo Propriedades de entrada do sistema no sistema SAP.
- SystemId: especifique o valor que obteve da propriedade SystemId. O ID do sistema é o ID do sistema/R3Name do sistema SAP. O ID do sistema é uma string com um máximo de três carateres.
- Servidor de mensagens: quando se liga a um sistema SAP que usa o equilíbrio de carga, tem de especificar o campo Servidor de mensagens. Defina esta propriedade para o valor que obteve da propriedade MessageServer no sistema SAP. Além disso, adicione o valor da caixa SAProuter antes do valor do campo Message Server.
- Grupo: defina esta propriedade para o valor que obteve da propriedade Grupo/servidor. A propriedade Group especifica o grupo de início de sessão que está a ser usado. O valor predefinido é PUBLIC.
Estabelecer ligação a um servidor de aplicações personalizado
Se estabelecer ligação a um sistema SAP com um servidor de aplicações dedicado ou um servidor de aplicações personalizado, tem de especificar as seguintes propriedades de ligação adicionais. Um administrador pode obter estas propriedades de ligação a partir do sistema SAP.
- SystemId: especifique o valor que obteve da propriedade SystemId. Este é o ID do sistema ou o R3Name do sistema SAP. O ID do sistema é uma string com um máximo de três carateres.
- Anfitrião: especifique o valor que obteve do servidor de aplicações.
Isto especifica o nome do anfitrião do sistema de destino. Este valor pode ser um nome de anfitrião normal, um endereço IP ou um endereço de router SAP.
- Número do sistema: especifique o valor que obteve da propriedade SystemNumber.
A propriedade SystemNumber define o sistema de destino.
Configurar ligações de rede seguras
Se o administrador tiver configurado a comunicação de rede segura (SNC), tem de definir as seguintes propriedades adicionais. No sistema SAP, pode obter as seguintes propriedades da string de ligação SNC no separador Rede da caixa de diálogo Propriedades de entrada do sistema.
- Modo SNC: se a caixa de verificação "Ativar ligações de rede seguras" estiver ativada no SAP, defina a propriedade de ligação do modo SNC como Verdadeiro. Caso contrário, defina a propriedade de ligação do modo SNC como False.
A propriedade de ligação SNCMode é um valor booleano que determina se está a usar o SNC. O valor predefinido é False.
- SNC PartnerName: o SNC PartnerName especifica o nome SNC do servidor de aplicações. Por exemplo: p:CN=IDS, OU=IT, O=CSW, C=DE
- Nome da SNC: opcional. A propriedade SNCName especifica o nome da ligação SNC. Defina esta propriedade para se certificar de que o nome SNC correto é usado para a ligação.
- SNC Qop: defina esta propriedade para a opção selecionada na secção Definições de rede segura. Por exemplo, se a opção Integridade estiver selecionada, defina a propriedade SNCQop como 3.
A propriedade SNCQop especifica o nível (ou a qualidade) de proteção de dados. Se esta propriedade não for especificada, o número inteiro -1 é definido para esta propriedade. Os valores válidos são 1, 2, 3, 8 ou 9, que correspondem aos níveis de proteção.
- ID do objeto SNC_Lib: defina esta propriedade para o caminho e o nome do ficheiro da sua biblioteca SNC. Especifique o caminho completo para a biblioteca de segurança que está a usar, como
C:\Secude\secude.xll.
Tipo de ligação ApplicationServer
Para a conetividade do servidor de aplicações, o Private Service Connect e o balanceador de carga têm de ser configurados com o IP e a porta 33XX do sistema SAP no grupo de pontos finais da rede (NEG) e na verificação de estado. Em que XX é o número do sistema ou da instância do sistema SAP usado. A tabela seguinte apresenta os valores de configuração de exemplo para o tipo de ligação ApplicationServer
. Consulte a interface de criação de associações na consola para saber os campos obrigatórios e opcionais.
Nome do campo | Valor de exemplo |
---|---|
Região | us-central1 |
Conetor | SAP ERP |
Versão do conetor | 1 |
Nome do conector | saperp-applicationserver-conn |
Descrição | NA |
Conta de serviço | xxxxxxxxx-compute@developer.gserviceaccount.com |
Cliente | 800 |
Número do sistema | 00 |
ID do projeto | xxxx-gcp-project |
Grupo | sap-erp-bucket |
ID do objeto Jco Jar | sapjco3.jar |
ID do objeto libsapjco3 | libsapjco3.so |
Modo de mesa | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
Função de leitura de tabelas | Z_CUSTOM_READ_TABLE |
Esquema de ligação | ApplicationServer |
ID do sistema | SA1 |
Modo de consulta | NA |
Visualizações navegáveis | NA |
Nível de verbosidade | 5 |
Número mínimo de nós | 2 |
Número máximo de nós | 50 |
Endereço do anfitrião | 10.30.X.XX ou string do router de um sistema SAP externo. |
Autenticação | Palavra-passe do utilizador |
Nome de utilizador | 12345 |
Palavra-passe | xyz@12345 |
versões | 1 |
Tipo de ligação do servidor de mensagens (servidor de grupo)
Antes de se ligar a um sistema SAP com um servidor de mensagens (servidor de grupo), certifique-se de que os seguintes pré-requisitos são cumpridos:- O Private Service Connect e o balanceador de carga têm de ser configurados com o IP do sistema SAP na porta 33XX e 36XX no grupo de pontos finais da rede (NEG) e na verificação de estado. Em que XX é o número do sistema ou da instância do sistema SAP usado.
- Tem de criar uma zona de DNS no Cloud DNS e mapear a associação do ponto final do servidor de aplicações, que está configurado na porta 33XX com o nome do anfitrião do sistema SAP.
- Só pode estabelecer ligação a um sistema SAP com um servidor de mensagens (servidor de grupo) se o servidor de mensagens devolver o endereço do nome do domínio totalmente qualificado (FDQN) do servidor de aplicações. Não pode estabelecer ligação a um sistema SAP com um servidor de mensagens (servidor de grupo) se o servidor de mensagens devolver o endereço IP.
- O servidor de mensagens tem de responder com o DNS dos servidores de aplicações aos quais a aplicação tem de se ligar quando a aplicação o solicita.
- O DNS dos servidores de aplicações tem de ser exclusivo e não pode ser usado por nenhum outro sistema SAP.
- Na aplicação SAP, os IPs de anexos de pontos finais para os servidores de aplicações e os servidores de mensagens têm de ser mantidos nos parâmetros gw/alternative_hostnames.
- Aceda ao código de transação RZ10 e faça uma entrada para o parâmetro "gw/alternative_hostname" no perfil da instância.
- Defina o parâmetro
ms/lg\_with\_hostname
como 1 para configurar as versões do servidor de mensagens SAP anteriores à 7.53 para devolver nomes de anfitriões. As versões 7.53 e posteriores devolvem nomes de anfitriões por predefinição. - Reinicie a aplicação SAP para aplicar os parâmetros.
A tabela seguinte apresenta os valores de configuração de exemplo para o tipo de ligação Group Server
:
Nome do campo | Valor de exemplo |
---|---|
Região | us-central1 |
Conetor | SAP ERP |
Versão do conetor | 1 |
Nome do conector | saperp-groupserver-conn |
Descrição | NA |
Conta de serviço | SA-compute@developer.gserviceaccount.com |
Cliente | 800 |
Número do sistema | 00 |
ID do projeto | Google-cloud-project |
Grupo | sap-erp-bucket |
ID do objeto Jco Jar | sapjco3.jar |
ID do objeto libsapjco3 | libsapjco3.so |
Modo de mesa | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
Grupo | PÚBLICO |
Servidor de mensagens | 10.30.X.XX |
Função de leitura de tabelas | Z_CUSTOM_READ_TABLE |
Esquema de ligação | GroupServer |
ID do sistema | SA1 |
Modo de consulta | NA |
Visualizações navegáveis | NA |
Nível de verbosidade | 5 |
Número mínimo de nós | 2 |
Número máximo de nós | 50 |
Autenticação | Palavra-passe do utilizador |
Nome de utilizador | NOME DE UTILIZADOR |
Palavra-passe | PASSWORD |
versões | 1 |
Tipo de ligação de certificado X509
Para comunicações de rede seguras (SNC) com conetividade X509, o Private Service Connect e o balanceador de carga têm de ser configurados com o IP e a porta 48XX do sistema SAP no grupo de pontos finais da rede (NEG) e na verificação de estado. Em que XX é o número do sistema ou da instância do sistema SAP usado. A tabela seguinte apresenta os valores de configuração de exemplo para o tipo de ligação X509 certificate
. Consulte a interface de criação de associações na consola para saber os campos obrigatórios e opcionais.
Configure o SNC num sistema Linux
Certifique-se de que tem os seguintes ficheiros antes de iniciar o SNC num sistema Linux:
- O ficheiro de certificado do sistema SAP, como
SA1cert.crt
. - A versão do ficheiro SAPCAR adequada para gerar o ficheiro .PSE, como
SAPCAR.exe
. - O
.SAR file
que contém os ficheiros DLL nas bibliotecas delibsapcrypto.so
esapgenpse
, comoSAPCRYPTOLIBP_*.SAR
.
- Crie um diretório denominado
snc
na localização pretendida e copie todos os ficheiros mencionados acima para o diretório. Aqui, o diretóriosnc
é criado na localização/home/admin/snc
. Use o terminal/VM/cliente SSH, como o PuTTY, para criar o diretório. - Execute o seguinte comando para extrair o arquivo SAR e os ficheiros binários
sapgenpse
elibsapcrypto.so
:./SAPCAR.exe -xvf SAPCRYPTOLIBP_8524-20011697.SAR
. - Gere o ficheiro do ambiente de segurança pessoal (PSE) através do comando:
./sapgenpse get_pse -p EHP8_GCP_SA1.pse -x google,123
.É-lhe pedido que introduza o nome do PSE no seguinte formato:
CN=EHP8_GCP_SA1, OU=IT, O=CSW, C=DE
. Aqui,EHP8_GCP_SA1
é o nome fornecido por si e pelo PSE.Também lhe é pedido que introduza uma FRASE SECRETA, que funciona como uma palavra-passe e tem de ser anotada para referência futura.
O PSE do SNC contém as informações de segurança do servidor a usar para proteger a ligação SNC. Estas informações incluem a chave pública e privada do servidor, bem como a lista de certificados correspondente.
Se receber um erro, como
SECUDIR is not set
, execute o seguinte comando:SECUDIR=/home/admin/snc; export SECUDIR
. - Exporte o certificado de cliente do ficheiro PSE criado recentemente:
./sapgenpse export_own_cert -o EHP8_GCP_SA1.crt -p EHP8_GCP_SA1.pse -x google,123
. Este comando gera o certificado de clienteEHP8_GCP_SA1.crt
, que contém a chave pública para a identidade do SNC.Aqui, tem de indicar o nome do certificado. Recomendamos que mantenha o mesmo nome para o PSE e o certificado de cliente.
- Associe o certificado do sistema ao PSE:
./sapgenpse maintain_pk -a SA1cert.crt -p EHP8_GCP_SA1.pse
. Isto associa o certificado do sistema SAP (SA1cert.crt
) ao PSE local. - Importe o certificado de cliente no sistema SAP com a ajuda da equipa BASIS e mapeie-o com o utilizador para o tipo de ligação de certificado X509.
EHP8_GCP_SA1.crt
: este é o certificado público usado para estabelecer uma ligação fidedigna do sistema SAP ao Google Cloud. Garante a autenticidade da conta de serviço que está a comunicar.EHP8_GCP_SA1.pse
: o ficheiro do ambiente de segurança pessoal (PSE) armazena a chave privada e as informações do certificado necessárias para a comunicação segura no ambiente SAP NetWeaver. Este ficheiro é fundamental para as ligações baseadas em SSL/TLS.SA1cert.crt
: um certificado adicional, potencialmente para validação de CA intermédia ou de raiz, usado para concluir a cadeia de confiança durante a validação de certificados. Isto garante que o SAP pode validar a autenticidade da conta de serviço do GCP ou dos pontos finais relacionados.libsapcrypto.so
: O ficheiro de objeto partilhado da biblioteca criptográfica SAP (ambientes Linux/Unix) é necessário para ativar a comunicação segura (SSL, SNC) no SAP. Fornece funções criptográficas, como encriptação e processamento de certificados.libsapjco3.so
: ficheiro de biblioteca nativa para o SAP Java Connector (JCo). Isto é essencial para permitir que as aplicações ou o software intermédio baseados em Java comuniquem com os sistemas SAP.sapgenpse
: a ferramenta de linha de comandos da SAP usada para gerir ficheiros PSE, certificados e operações criptográficas. Esta utilidade é crucial para gerar e manter identidades seguras em ambientes SAP.sapjco3.jar
: o ficheiro de arquivo Java para o SAP Java Connector. Isto permite que as aplicações Java chamem funções SAP através de chamadas de funções remotas (RFC). É necessária para qualquer integração baseada em Java com o SAP.- Inicie sessão na SAP GUI e abra o código de transação
STRUST
. - Aceda a
SNC (SAPCRYPTOLIB)
. - Em alguns sistemas, pode ter de mudar para o modo
Display Change
. Clique no botão Importar na parte inferior da página. - Procure e selecione um nome de PSE de cliente válido. Selecione o formato de ficheiro como Binário
- Clique em Adicionar à lista de certificados e Guardar.
- Inicie sessão no SAP GUI e abra o código de transação
SM30
- Mapeie o certificado para a tabela
VSNCSYSACL
através dos seguintes passos:- Abra a tabela
VSNCSYSACL
para manutenção. - Escolha a área de trabalho do tipo externo como
E
. - Escolha Novas entradas.
- Introduza os seguintes dados nos campos correspondentes:
- ID do sistema: o nome do sistema SAP.
- Nome do SNC: o nome do assunto associado ao certificado de cliente (adicione
p:
antes do certificado)
Exemplo:p:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE
.
- Guarde os dados.
- Abra a tabela
- Mapeie o certificado para a tabela
VUSREXTID
através dos seguintes passos:- Abra a tabela
VUSREXTID
para manutenção. - Escolha a área de trabalho como
DN
. - Escolha Novas entradas
- Introduza os dados nos campos correspondentes, conforme explicado abaixo:
- Utilizador: introduza o ID do utilizador ao qual o certificado tem de ser mapeado.
- Número da sequência: introduza o número do cliente SAP.
- Nome do SNC: introduza o nome do assunto associado ao certificado de cliente.
Exemplo:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE
- Ativado: selecione esta opção
- Guarde os dados.
- Abra a tabela
- Repita o mesmo processo para X.
- Inicie sessão no SAP GUI e abra o código de transação
SU01
- No campo do utilizador, introduza o nome de utilizador do SAP ao qual quer conceder autorizações para executar as funções do SNC.
- Clique no ícone Alterar.
- Clique no separador SNC.
- No campo do nome do SNC, introduza o nome distinto do PSE do cliente com o prefixo
p:
, como no exemplo abaixo.
Exemplo:p:CN=QAEHP8ER8, OU=IT, O=CSW, C=DE
- Clique em OK e Guardar. É apresentada uma mensagem a indicar que o nome canónico foi determinado.
Os nomes dos ficheiros criados nos passos anteriores, os nomes dos ficheiros carregados para o contentor de armazenamento de destino e os nomes dos ficheiros especificados na configuração da associação têm de ser idênticos para garantir a integração e o acesso aos dados adequados.
Ficheiros obrigatórios no contentor do Cloud Storage
Os seguintes ficheiros têm de ser armazenados no contentor do Cloud Storage para facilitar a comunicação segura entre os sistemas SAP e os Google Cloud serviços. Estes ficheiros são essenciais para estabelecer ligações fidedignas, ativar a encriptação e suportar as bibliotecas de comunicação Java e criptográficas da SAP:
Configuração da GUI do SAP
Siga estes passos para importar o certificado gerado pelo cliente:
Definições SAP para X.509
O certificado tem de ser mapeado para as seguintes tabelas:
Configuração do mapeamento de utilizadores
Nome do campo | Valor de exemplo |
---|---|
Região | us-central1 |
Conetor | SAP ERP |
Versão do conetor | 1 |
Nome do conector | saperp-X509Certificate-conn |
Descrição | NA |
Conta de serviço | xxxxxxxxx-compute@developer.gserviceaccount.com |
Cliente | 800 |
Número do sistema | 00 |
ID do projeto | xxxx-gcp-project |
Grupo | sap-erp-bucket |
ID do objeto Jco Jar | sapjco3.jar |
ID do objeto libsapjco3 | libsapjco3.so |
Modo de mesa | TransparentApplication/TransparentCustomer/TransparentSystem/Pooled/Cluster/None |
ID do objeto SNC_LIB | libsapcrypto.so |
Nome do PSE para criar o ficheiro cred_v2 | EHP8_GCP_SA1.pse |
Função de leitura de tabelas | Z_CUSTOM_READ_TABLE |
Esquema de ligação | ApplicationServer |
ID do sistema | SA1 |
Código secreto do SNC | xyz@gcp |
Modo SNC | Um valor booleano que determina se está a usar o SNC. Defina esta opção como verdadeira para usar o SNC. |
Nome do SNC | p:CN=EHP8_GCP_SA1, OU=IT, O=CSW, C=DE |
SNC Qop | 3 |
SNC PartnerName | p:CN=SA1, OU=I0020070395, OU=SAP Web AS, O=SAP Trust Community, C=DE |
Modo de consulta | NA |
Visualizações navegáveis | NA |
Nível de verbosidade | 5 |
Número mínimo de nós | 2 |
Número máximo de nós | 50 |
Endereço do anfitrião | 10.30.X.XX ou string do router do sistema SAP externo. |
Autenticação | Autenticação baseada em certificado X509 |
X509Certificate | O certificado X509 pode ser especificado através de um caminho de ficheiro que aponta para um ficheiro que contém um certificado X509 no formato PEM, um blob PEM que começa com o cabeçalho "-----BEGIN ..." ou um blob PEM sem o cabeçalho "-----BEGIN ...". |
versões | 1 |
Se a ligação SNC não ficar ativa depois de concluir todos os passos:
- Certifique-se de que o IP do anexo do ponto final é adicionado ao parâmetro do perfil SAP
gw/alternative_hostnames
. - Para ligações SNC a sistemas SAP no local, o gateway SAP ouve normalmente na porta
48XX
, em queXX
é o número da instância.
Os elementos SNC Name
e PartnerName
devem começar com o prefixo p: quando os especificar na configuração da associação.
Autenticação de certificado X509: importe o certificado de cliente que foi gerado anteriormente e já está disponível no sistema SAP.
Limitações do sistema
O conector do SAP ERP pode processar 7 transações por segundo, por nó, e limita todas as transações que excedam este limite. Por predefinição, os Integration Connectors atribuem 2 nós (para uma melhor disponibilidade) a uma ligação.
Para informações sobre os limites aplicáveis aos Integration Connectors, consulte Limites.
Use a associação do SAP ERP numa integração
Depois de criar a ligação, esta fica disponível no Apigee Integration e no Application Integration. Pode usar a ligação numa integração através da tarefa Conectores.
- Para compreender como criar e usar a tarefa Connectors no Apigee Integration, consulte o artigo Tarefa Connectors.
- Para compreender como criar e usar a tarefa Connectors na integração de aplicações, consulte o artigo Tarefa Connectors.
Entidades, operações e ações
Todos os conetores de integração oferecem uma camada de abstração para os objetos da aplicação ligada. Só pode aceder aos objetos de uma aplicação através desta abstração. A abstração é exposta como entidades, operações e ações.
- Entidade: pode considerar uma entidade como um objeto ou uma coleção de propriedades na aplicação ou no serviço associado. A definição de uma entidade difere de um conetor para um conetor. Por exemplo, num conetor de base de dados, as tabelas são as entidades. Num conetor de servidor de ficheiros, as pastas são as entidades. Num conetor de sistema de mensagens, as filas são as entidades.
No entanto, é possível que um conector não suporte ou não tenha entidades, caso em que a lista
Entities
estará vazia. - Operação: uma operação é a atividade que pode realizar numa entidade. Pode realizar
qualquer uma das seguintes operações numa entidade:
Selecionar uma entidade na lista disponível gera uma lista de operações disponíveis para a entidade. Para uma descrição detalhada das operações, consulte as operações de entidades da tarefa de conectores. No entanto, se um conector não suportar nenhuma das operações de entidades, essas operações não suportadas não são apresentadas na lista
Operations
. - Ação: uma ação é uma função de primeira classe que é disponibilizada à integração
através da interface do conetor. Uma ação permite-lhe fazer alterações a uma ou mais entidades e
varia de conetor para conetor. Normalmente, uma ação tem alguns parâmetros de entrada e um parâmetro de saída. No entanto, é possível que um conector não suporte nenhuma ação, caso em que a lista
Actions
está vazia.
Ações
Esta secção fornece informações sobre as RFCs e lista as ações suportadas pelo conetor. Para compreender como configurar as ações, consulte os exemplos de ações.
Usar RFCs
Esta secção fornece informações sobre as RFCs necessárias e a utilização das RFCs.
RFCs obrigatórias
Se alguma das RFCs necessárias não estiver disponível, algumas ou todas as funcionalidades podem não funcionar. O código T SE37 pode ser usado para ver os módulos de funções disponíveis no SAP.
As seguintes RFCs são usadas pelo conector do SAP ERP.
- DDIF_FIELDINFO_GET
- RFC_GET_FUNCTION_INTERFACE
- RFC_GET_STRUCTURE_DEFINITION
- RFC_GET_SYSTEM_INFO
- RFC_GET_UNICODE_STRUCTURE
- RFC_READ_TABLE
- SLDAG_CHECK_FOR_UNICODE
Ler grandes volumes de dados
Esta secção descreve a abordagem que tem de seguir para ler grandes quantidades de dados do seu back-end SAP.
O conector SAP ERP usa a função SAP RFC_READ_TABLE
para obter dados de tabelas SAP,
e esta função tem um tamanho fixo de 512 bytes. Pode armazenar em buffer para cada linha de dados e, por isso, não pode selecionar mais colunas do que a quantidade que caberia neste buffer. Se selecionar mais de 512 bytes, ocorre a exceção DATA_BUFFER_EXCEEDED
quando executar a integração, o que indica que excedeu o tamanho máximo da memória intermédia permitido por linha e tem de selecionar menos colunas.
Para ultrapassar este problema, pode incluir o código para um
Custom RFC_READ_TABLE
, que é semelhante ao SAP RFC_READ_TABLE
, mas com um buffer maior para resolver o problema de
DATA_BUFFER_EXCEEDED
.
Usar uma função de tabela de leitura personalizada
O conector suporta um Custom RFC_READ_TABLE
semelhante ao SAP RFC_READ_TABLE
, mas tem um buffer maior para que possa resolver o problema DATA_BUFFER_EXCEEDED
.
Crie uma RFC_READ_TABLE personalizada no seu back-end do SAP
Siga os passos abaixo para usar o exemplo personalizado RFC_READ_TABLE.
- Use a função
RFC_READ_TABLE
como modelo para a nova função: selecione o código de transação SE37 e o grupo de funções SDTX e copieRFC_READ_TABLE
para um novo grupo de funções ou o seu grupo de funções de trabalho. Neste exemplo,RFC_READ_TABLE
é copiado paraZ_CUSTOM_RFC_TABLE
. - No separador Atributos da página SAP, selecione Módulo ativado remotamente.
- No separador Tabelas, defina o parâmetro
DATA
comoCHAR8000
(pode ter de clicar com o botão direito do rato e, de seguida, clicar em Apresentação -> Alterar). - No separador Código fonte, introduza o código RFC da tabela de leitura personalizado. Para referência, consulte o sample Z_CUSTOM_RFC_TABLE_function.txt.
- Clique em Guardar.
- Defina as importações, as tabelas e as exceções, conforme documentado na tabela de leitura personalizada fornecida.
- Ative o módulo de funções.
Tabela de leitura personalizada para ABAP 7.52
Se estiver a usar o ABAP 7.52 ou superior, consulte o exemplo Z_CUSTOM_RFC_TABLE_function_ABAP752.txt.
A função de exemplo foi concebida para a versão 7.52 e superiores do ABAP. É semelhante à função Z_CUSTOM_RFC_TABLE
, mas tira partido das palavras-chave recentemente disponíveis no ABAP 7.52 para fazer a paginação na base de dados em vez de no próprio script ABAP. Isto torna a paginação muito mais eficiente e melhora o desempenho quando trabalha com tabelas grandes. Recomendamos que use o elemento
Z_CUSTOM_RFC_TABLE_752 RFC
sempre que possível.
Acesso à função RFC_READ_TABLE
Esta secção fornece informações sobre a função a atribuir a um utilizador do SAP para aceder à função RFC_READ_TABLE. Esta função é um módulo de funções ativado remotamente que permite o acesso de leitura genérico a tabelas arbitrárias.
Para que as tabelas sejam apresentadas em Entidades ao configurar a tarefa de conetores SAP ERP, tem de usar a função RFC_READ_TABLE ao nível da ligação SAP ERP e ter autorização para aceder à função R/3 RFC_READ_TABLE
Adicione a autorização S_TABU_DIS para a atividade 03 (apresentação) e o grupo de autorizações "SC" para a função RFC_READ_TABLE.
Seguem-se algumas das limitações técnicas da RFC_READ_TABLE:
- Só é possível ler tabelas com tipos de dados simples. Não existe suporte para campos STRING ou XSTRING.
- A largura máxima da linha é de 512 carateres.
- O número de registos devolvidos é limitado pelos limites de memória.
Ação BAPI_MATERIAL_SAVEDATA
Esta ação permite-lhe realizar tarefas específicas. Por exemplo, pode usá-lo para criar ou alterar dados mestres de materiais no SAP ERP.
Introduza os parâmetros da ação BAPI_MATERIAL_SAVEDATA
Nome do parâmetro | Tipo de dados | Obrigatória | Descrição |
---|---|---|---|
HEADDATA | String | Sim | O parâmetro de entrada HEADDATA. |
CLIENTDATA | String | Sim | O parâmetro de entrada CLIENTDATA. |
CLIENTDATAX | String | Sim | O parâmetro de entrada CLIENTDATAX. |
MATERIALDESCRIPTION | String | Sim | A tabela MATERIALDESCRIPTION. |
Parâmetros de saída da ação BAPI_MATERIAL_SAVEDATA
Esta ação devolve o estado 200 (OK) se for bem-sucedida.
Por exemplo, para saber como configurar a ação BAPI_MATERIAL_SAVEDATA
, consulte Exemplos de ações.
Ação ZFM_GCP_MULTIDATA_TAB
Esta ação permite que os utilizadores realizem tarefas específicas. Por exemplo, pode criar dados de vários tipos de dados no SAP ERP.
Introduza os parâmetros da ação ZFM_GCP_MULTIDATA_TAB
Nome do parâmetro | Tipo de dados | Obrigatória | Descrição |
---|---|---|---|
ReturnTables | String | Sim | Uma lista separada por vírgulas que especifica as tabelas no módulo de funções que devem ser geradas. Se não for especificado, todas as tabelas devolvidas são apresentadas. |
T_TABLE | String | Sim | A tabela T_TABLE. |
IM_INPUT_1 | String | Sim | O parâmetro de entrada IM_INPUT_1. |
IM_INPUT_2 | String | Sim | O parâmetro de entrada IM_INPUT_2. |
Parâmetros de saída da ação ZFM_GCP_MULTIDATA_TAB
Esta ação devolve o estado 200 (OK) se for bem-sucedida.
Por exemplo, para saber como configurar a ação ZFM_GCP_MULTIDATA_TAB
, consulte os exemplos de ações.
Ação PushIDoc
Esta ação permite-lhe realizar tarefas específicas. Por exemplo, pode transferir dados do SAP para um sistema externo.
Introduza os parâmetros da ação PushIDoc
Nome do parâmetro | Tipo de dados | Obrigatória | Descrição |
---|---|---|---|
FileType | String | Sim | O tipo de ficheiro.Os valores permitidos são XML e IDoc. |
Modo | String | Sim | O modo de transferência.Os valores permitidos são Sync e ASync. |
Conteúdo | String | Sim | Conteúdo do ficheiro. |
Parâmetros de saída da ação PushIDoc
Esta ação devolve o estado 200 (OK) se for bem-sucedida.
Por exemplo, para saber como configurar a ação PushIDoc
, consulte os exemplos de ações.
Ação ExecuteCustomQuery
Esta ação permite-lhe executar uma consulta personalizada.
Para criar uma consulta personalizada, siga estes passos:
- Siga as instruções detalhadas para adicionar uma tarefa de conetores.
- Quando configurar a tarefa do conetor, no tipo de ação que quer realizar, selecione Ações.
- Na lista Ação, selecione Executar consulta personalizada e, de seguida, clique em Concluído.
- Expanda a secção Entrada de tarefas e, de seguida, faça o seguinte:
- No campo Tempo limite após, introduza o número de segundos a aguardar até que a consulta seja executada.
Valor predefinido:
180
segundos. - No campo Número máximo de linhas, introduza o número máximo de linhas a devolver da base de dados.
Valor predefinido:
25
. - Para atualizar a consulta personalizada, clique em Editar script personalizado. É apresentada a caixa de diálogo Editor de scripts.
- Na caixa de diálogo Editor de scripts, introduza a consulta SQL e clique em Guardar.
Pode usar um ponto de interrogação (?) numa declaração SQL para representar um único parâmetro que tem de ser especificado na lista de parâmetros de consulta. Por exemplo, a seguinte consulta SQL seleciona todas as linhas da tabela
Employees
que correspondem aos valores especificados para a colunaLastName
:SELECT * FROM Employees where LastName=?
- Se usou pontos de interrogação na sua consulta SQL, tem de adicionar o parâmetro clicando em + Adicionar nome do parâmetro para cada ponto de interrogação. Durante a execução da integração, estes parâmetros substituem os pontos de interrogação (?) na consulta SQL sequencialmente. Por exemplo, se adicionou três pontos de interrogação (?), tem de adicionar três parâmetros por ordem de sequência.
Para adicionar parâmetros de consulta, faça o seguinte:
- Na lista Tipo, selecione o tipo de dados do parâmetro.
- No campo Valor, introduza o valor do parâmetro.
- Para adicionar vários parâmetros, clique em + Adicionar parâmetro de consulta.
A ação Executar consulta personalizada não suporta variáveis de matriz.
- No campo Tempo limite após, introduza o número de segundos a aguardar até que a consulta seja executada.
Após a execução bem-sucedida, esta ação devolve o estado 200 (OK) com um corpo de resposta que tem os resultados da consulta.
Exemplos de ações
Exemplo: crie um registo
Este exemplo cria um registo de material através da ação BAPI_MATERIAL_SAVEDATA.
- Na caixa de diálogo
Configure connector task
, clique emActions
. - Selecione a ação
BAPI_MATERIAL_SAVEDATA
e, de seguida, clique em Concluído. - Na secção Entrada da tarefa da tarefa Conetores, clique em
connectorInputPayload
e, de seguida, introduza um valor semelhante ao seguinte no campoDefault Value
:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009001\",\"IND_SECTOR\":\"M\",\"MATL_TYPE\":\"HALB\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA" : "{\"MATL_GROUP\":\"00107\",\"BASE_UOM\":\"KG\"}", "CLIENTDATAX" : "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION" : "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Google\"}" }
Se a ação for bem-sucedida, o parâmetro de resposta da tarefa BAPI_MATERIAL_SAVEDATA
connectorOutputPayload
terá um valor semelhante ao seguinte:
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9001 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9001", "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
Exemplo: atualize um registo
Este exemplo atualiza um registo de material através da ação BAPI_MATERIAL_SAVEDATA.
- Na caixa de diálogo
Configure connector task
, clique emActions
. - Selecione a ação
BAPI_MATERIAL_SAVEDATA
e, de seguida, clique em Concluído. - Na secção Entrada da tarefa da tarefa Conetores, clique em
connectorInputPayload
e, de seguida, introduza um valor semelhante ao seguinte no campoDefault Value
:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"IND_SECTOR\":\"A\",\"MATL_TYPE\":\"FHMI\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"MATL_GROUP\":\"013\",\"BASE_UOM\":\"ST\"}", "CLIENTDATAX": "{\"MATL_GROUP\":\"X\",\"BASE_UOM\":\"X\"}", "MATERIALDESCRIPTION": "{\"LANGU\":\"E\",\"MATL_DESC\":\"Classification Googlecloud\"}" }
Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:BAPI_MATERIAL_SAVEDATA
connectorOutputPayload
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_MESSAGE": "The material 9000 has been created or extended", "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
Exemplo: elimine um registo
Este exemplo elimina um registo de material através da ação BAPI_MATERIAL_SAVEDATA.
- Na caixa de diálogo
Configure connector task
, clique emActions
. - Selecione a ação
BAPI_MATERIAL_SAVEDATA
e, de seguida, clique em Concluído. - Na secção Entrada da tarefa da tarefa Conetores, clique em
connectorInputPayload
e, de seguida, introduza um valor semelhante ao seguinte no campoDefault Value
:{ "HEADDATA": "{\"MATERIAL\":\"000000000000009000\",\"BASIC_VIEW\":\"X\"}", "CLIENTDATA": "{\"DEL_FLAG\":\"X\"}", "CLIENTDATAX": "{\"DEL_FLAG\":\"X\"}" }
Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:BAPI_MATERIAL_SAVEDATA
connectorOutputPayload
[{ "RETURN_TYPE": "S", "RETURN_ID": "MM", "RETURN_NUMBER": 356, "RETURN_LOG_NO": "", "RETURN_LOG_MSG_NO": 0, "RETURN_MESSAGE_V1": "9000", "RETURN_PARAMETER": "", "RETURN_ROW": 0, "RETURN_FIELD": "", "RETURN_SYSTEM": "T90CLNT090", "RESULT_TABLE": null }]
Exemplo: crie dados de vários tipos de dados
Este exemplo cria dados de vários tipos de dados usando a ação ZFM_GCP_MULTIDATA_TAB.
- Na caixa de diálogo
Configure connector task
, clique emActions
. - Selecione a ação
ZFM_GCP_MULTIDATA_TAB
e, de seguida, clique em Concluído. - Na secção Entrada da tarefa da tarefa Conetores, clique em
connectorInputPayload
e, de seguida, introduza um valor semelhante ao seguinte no campoDefault Value
:{ "T_TABLE": "{\"ZACCP\":\"111\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_1": "{\"ZACCP\":\"222\",\"ZCHAR\":\"CHARACTER1\",\"ZCLNT\":\"100\",\"ZCUKY\":\"INR\",\"ZCURR\": 200,\"ZDATS\": \"20231213\",\"ZINT1\": 45,\"ZINT2\":54,\"ZDEC\": 0.12,\"ZFLTP\": 1234,\"ZLANG\":\"E\",\"ZNUMC\":\"110\",\"ZPREC\": 3,\"ZQUAN\": 188.0,\"ZRAW\":\"01010008010101050401\",\"ZTIMS\": \"103056\",\"ZUNIT\":\"11\",\"ZINT4P\": 45,\"ZINT4\": 54,\"ZLRAW\":\"0101000801010105040100030101010300040000\"}", "IM_INPUT_2": "{\"ZSTRING\": \"HI Google\",\"ZSSTRING\": \"HI Google How are you\"}" }
Se a ação for bem-sucedida, o parâmetro de resposta da tarefa terá um valor semelhante ao seguinte:ZFM_GCP_MULTIDATA_TAB
connectorOutputPayload
[{ "EX_OUTPUT_1_ZACCP": 222, "EX_OUTPUT_1_ZCHAR": "CHARACTER1", "EX_OUTPUT_1_ZCLNT": "100", "EX_OUTPUT_1_ZCUKY": "INR", "EX_OUTPUT_1_ZCURR": 200, "EX_OUTPUT_1_ZDATS": "2023-12-13", "EX_OUTPUT_1_ZRAW": "01010008010101050401", "EX_OUTPUT_1_ZTIMS": "10:30:56", "EX_OUTPUT_1_ZUNIT": "11", "EX_OUTPUT_1_ZINT4P": 45, "EX_OUTPUT_1_ZINT4": 54, "EX_OUTPUT_1_ZLRAW": "0101000801010105040100030101010300040000\u0000", "EX_OUTPUT_2_ZSTRING": null, "EX_OUTPUT_2_ZSSTRING": null, "RESULT_TABLE": null, "T_TABLE_ZACCP": null, "T_TABLE_ZCHAR": null, "T_TABLE_ZCLNT": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZRAW": null, "T_TABLE_ZLANG": null, "T_TABLE_ZNUMC": null, "T_TABLE_ZPREC": null, "T_TABLE_ZQUAN": null, "T_TABLE_ZRAW": null, "T_TABLE_ZTIMS": null, "T_TABLE_ZUNIT": null },{ "EX_OUTPUT_1_ZACCP": null, "EX_OUTPUT_1_ZCHAR": null, "EX_OUTPUT_1_ZCLNT": null, "EX_OUTPUT_1_ZCUKY": null, "EX_OUTPUT_1_ZCURR": null, "EX_OUTPUT_1_ZDATS": null, "EX_OUTPUT_1_ZDEC": null, "EX_OUTPUT_1_ZQUAN": null, "T_TABLE_ZNUMC": 110, "T_TABLE_ZPREC": 3, "T_TABLE_ZQUAN": 188, "T_TABLE_ZRAW": "01010008010101050401", "T_TABLE_ZTIMS": "10:30:56", "T_TABLE_ZUNIT": "11" }]
Exemplo: enviar um IDoc
Este exemplo envia um IDoc para o SAP ERP.
- Na caixa de diálogo
Configure connector task
, clique emActions
. - Selecione a ação
PushIDoc
e, de seguida, clique em Concluído. - Na secção Entrada da tarefa da tarefa Conetores, clique em
connectorInputPayload
e, de seguida, introduza um valor semelhante ao seguinte no campoDefault Value
:{ "Content": "\n\n\n EDI_DC40\n 800\n 0000000008604824\n 740\n 53\n 2\n \n MATMAS05\n MATMAS\n ZLS_QA23\n LS\n ZLS_QA23\n SAPSA1\n LS\n SA1CLNT800\n 20230218\n 232556\n\n\n 005\n 000000000000000012\n 20170328\n 42039\n 20170727\n 42039\n KLVC\n FERT\n M\n 02\n BG\n 000\n 002\n 0.000\n 0.000\n KGM\n 0.000\n 0001\n 0.000\n 0.000\n 0.000\n 0.000\n 0.000\n", "FileType": "XML", "Mode": "ASync" }
. Se a ação for bem-sucedida, o parâmetro de resposta da
PushIDoc
tarefaconnectorOutputPayload
terá um valor semelhante ao seguinte:
[{ "Result": "Success", "Message": "Push IDoc success" }]
Exemplos de operações de entidades
Esta secção mostra como realizar algumas das operações de entidades neste conector.
Exemplo: lista todos os registos
Este exemplo apresenta todos os registos na entidade T001
.
- Na caixa de diálogo
Configure connector task
, clique emEntities
. - Selecione
T001
na listaEntity
. - Selecione a operação
List
e, de seguida, clique em Concluído. - Opcionalmente, na secção Entrada de tarefas da tarefa Conectores, pode filtrar o conjunto de resultados especificando uma cláusula de filtro. Especifique sempre o valor da cláusula de filtro entre aspas simples (').
Exemplo: obter um registo de uma entidade
Este exemplo obtém um registo com o ID especificado da entidade T001
.
- Na caixa de diálogo
Configure connector task
, clique emEntities
. - Selecione
T001
na listaEntity
. - Selecione a operação
Get
e, de seguida, clique em Concluído. - Na secção Entrada de tarefas da tarefa Conetores, clique em EntityId e, de seguida,
introduza
0001
no campo Valor predefinido.Aqui,
0001
é um ID de registo exclusivo na entidadeT001
.
Crie ligações com o Terraform
Pode usar o recurso do Terraform para criar uma nova associação.
Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.
Para ver um modelo do Terraform de exemplo para a criação de ligações, consulte o modelo de exemplo.
Quando criar esta associação através do Terraform, tem de definir as seguintes variáveis no ficheiro de configuração do Terraform:
Nome do parâmetro | Tipo de dados | Obrigatória | Descrição |
---|---|---|---|
cliente | STRING | True | O cliente que está a fazer a autenticação no sistema SAP. |
grupo | STRING | Falso | O grupo de início de sessão que está a ser usado. Normalmente, só é necessário especificar esta opção quando se estabelece ligação a um sistema SAP que usa o equilíbrio de carga. |
message_server | STRING | Falso | O servidor de mensagens tem de ser especificado quando se liga a um sistema SAP que usa o equilíbrio de carga. |
read_table_function | STRING | Falso | A função a usar para ler dados de tabelas. |
connection_scheme | ENUM | Falso | Especifica se está a estabelecer ligação a um sistema SAP com um servidor de mensagens (GroupServer) ou sem um (ApplicationServer). Os valores suportados são: ApplicationServer, GroupServer |
system_id | STRING | Falso | O ID do sistema ou o nome R3 do sistema SAP é uma string com um máximo de três carateres. É frequentemente usado em ligações de balanceamento de carga. |
system_number | STRING | True | O número pelo qual o sistema de destino é definido. Usado quando define a propriedade de ligação do anfitrião. |
project_id | STRING | True | O ID do projeto do Google Cloud onde reside o ficheiro JAR do SAP JCo no contentor do Cloud Storage. |
balde | STRING | True | O nome do contentor que contém os ficheiros sapjco3.jar e libsapjco3.so |
sapjco3_jar | STRING | True | O ID do objeto para sapjco3.jar |
libsapjco3_so | STRING | True | O ID do objeto para libsapjco3.so |
snc_lib | STRING | Falso | O ID do objeto para a biblioteca SNC |
snc_mode | BOOLEAN | Falso | Um valor booleano que determina se está a usar o SNC. Defina esta opção como verdadeira para usar o SNC. |
snc_name | STRING | Falso | Uma entrada opcional com o nome da sua ligação SNC. |
snc_qop | ENUM | Falso | A qualidade da proteção para a sua ligação SNC.Os valores válidos são 1, 2, 3, 8 ou 9, que correspondem aos seguintes níveis de proteção: 1 Aplique apenas a autenticação. 2 Aplique a proteção da integridade (autenticação). 3 Aplique a proteção de privacidade (integridade e autenticação). 8 Aplique a proteção predefinida. 9 Aplique a proteção máxima. Os valores suportados são: 1, 2, 3, 8 e 9 |
snc_partner_name | STRING | Falso | O nome SNC do servidor de aplicações. Este é um campo obrigatório quando usa o SNC. |
query_mode | ENUM | Falso | Determina que tabelas SAP são apresentadas como vistas, se existirem. Os valores suportados são: Global, Local, All, None |
table_mode | ENUM | Falso | Determina que tabelas SAP são apresentadas como vistas, se existirem. Os valores suportados são: TransparentApplication, TransparentCustomer, TransparentSystem, Pooled, Cluster, All e None |
verbosidade | STRING | Falso | Nível de verbosidade para a ligação, varia de 1 a 5. Um nível de detalhe mais elevado regista todos os detalhes de comunicação (pedido,resposta e certificados SSL). |
Resolução de problemas de configuração no local do SAP
Se o seu sistema SAP estiver no local, tem de criar um balanceador de carga de proxy com um NEG híbrido.
- Crie um túnel IPsec entre o sistema nas instalações e o Google Cloud com sub-redes permitidas.
- Permita a sub-rede de balanceamento de carga e a sub-rede de proxy em firewalls no local.
- Adicione todas as portas necessárias, como 33XX para a ligação do servidor de aplicações, 36XX para a ligação do servidor de mensagens/servidor de LB e 48XX para a ligação SNC-X509. Em que XX é o número do sistema ou da instância do sistema SAP. Adicione o IP necessário para a firewall na lista de autorizações de entrada do projeto do Google Cloud, como o IP e a porta do LB, o IP e a porta do sistema SAP.
- Configure o balanceador de carga de rede de proxy interno regional através do NEG híbrido. Para mais informações, consulte o artigo Equilibrador de carga de proxy interno regional com conetividade NEG híbrida.
Se encontrar um erro semelhante ao seguinte depois de configurar a conetividade de rede,use a solução alternativa abaixo para adicionar o IP do anexo do ponto final à lista de autorizações.
Initialization of destination SAP--1910584855 failed: Connect from SAP gateway to RFC server failed connection parameters: TYPE=A DESTINATION=SAP--1910584855 ASHOST=10.128.0.43 SYSNR=00 PCS=1 LOCATION SAP-Gateway on host DELVM05S15.bcone.com / sapgw00 ERROR timeout during allocate TIME Wed Apr 3 17:24:40 2024 RELEASE 754 COMPONENT SAP-Gateway VERSION 2 RC 242 MODULE D:/depot/bas/754_REL/src/krn/si/gw/gwr3cpic.c LINE 2208 DETAIL no connect of TP sapdp00 from host 10.128.0.43 after 20 sec COUNTER 2
Glossário da SAP
SAP: o termo SAP é um termo genérico para todas as edições SAP suportadas. Em geral, isto indica o SAP ECC versão 6 ou superior. Para que o conetor SAP ERP funcione, requer uma ligação a uma edição do SAP que suporte o RFC SDK.
Módulo de função: um módulo de função é um tipo de programa ou função no SAP que pode ser usado para executar quase qualquer operação. Estes módulos podem ser testados e escritos no SAP através do código de transação SE37.
RFC: uma chamada de função remota (RFC) é uma chamada para um determinado RFM/FM que pode ser executada por aplicações externas. Isto inclui a utilização de bibliotecas distribuídas pela SAP que estão instaladas no servidor SAP e que também podem ser transferidas a partir de sap.com. Os RFMs específicos podem ou não ser mantidos nas atualizações da SAP. Existem RFMs padrão fornecidos pela SAP e, por isso, podem ter diferenças ou não existir em edições mais antigas. Os RFMs personalizados podem (e são frequentemente) criados para suportar integrações e têm de ser mantidos pelo cliente da SAP. Por convenção, os RFMs personalizados começam com a letra Z.
BAPI: uma API empresarial (BAPI) é um método de API de um objeto empresarial que, por sua vez, é um módulo de função ativado por RFC da SAP para dar acesso a operações de lógica empresarial. Por exemplo, existem cerca de 60 BAPIs relacionadas apenas com o objeto Customer. Na prática, normalmente, só são usados alguns.
Tabela SAP: uma tabela SAP é uma tabela que armazena dados no SAP. Estes não são iguais aos objetos empresariais. Por exemplo, não existe uma tabela de notas de encomenda no SAP. Em alternativa, existem muitas tabelas que incluem dados de notas de encomenda, como EBAN, EBKN, EINA, EKPO, etc. Por convenção, as tabelas personalizadas começam com a letra Z.
Consultas SAP: uma consulta SAP é um objeto guardado no SAP que detalha as informações a obter de uma ou mais tabelas. Normalmente, são usadas para fins de relatórios.
Obtenha ajuda da comunidade do Google Cloud
Pode publicar as suas perguntas e discutir este conector na comunidade do Google Cloud nos Fóruns do Cloud.O que se segue?
- Compreenda como suspender e retomar uma associação.
- Compreenda como monitorizar a utilização do conector.
- Compreenda como ver os registos do conetor.