consumindo webservice via xi
DESCRIPTION
Consumindo Webservice via Xi Consumindo Webservice via XiTRANSCRIPT
Projeto PO
SAP Exchange Infrastructure
Consumindo um Webservice do SAP R/3 via XI
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
i
Índice
INICIANDO NO XI ............................................................................................................................................................ 3
ABORDAGENS PARA INTERFACES ...................................................................................................................................... 4
SYSTEM LANDSCAPE DIRECTORY ............................................................................................................................ 7
SOFTWARE CATALOG ........................................................................................................................................................ 7 TECHNICAL SYSTEM ......................................................................................................................................................... 8 BUSINESS LANDSCAPE .................................................................................................................................................... 10
INTEGRATION BUILDER: DESIGN ........................................................................................................................... 11
IMPORTANDO AS CONFIGURAÇÕES DO SOFTWARE COMPONENTE .................................................................................... 11 CONFIGURAÇÕES E DESENVOLVIMENTOS NO AMBIENTE SAP ......................................................................................... 12 INTEGRATION BUILDER: DESIGN- IMPORTANDO A RFC NO AMBIENTE XI ....................................................................... 14 INTERFACE OBJECTS ....................................................................................................................................................... 15
External Definitions .................................................................................................................................................. 15 Message Interfaces .................................................................................................................................................... 16
MAPPING OBJECTS .......................................................................................................................................................... 17 Message Mappings - Request .................................................................................................................................... 17 Interface Mappings ................................................................................................................................................... 19
INTEGRATION BUILDER: CONFIGURATION ........................................................................................................ 21
SCENARIO ....................................................................................................................................................................... 21 PREENCHENDO A ARVORE DE OBJETOS ........................................................................................................................... 22
1 - Services Without Party ......................................................................................................................................... 22 1.1 - Business System – Sender – MC0 .................................................................................................................. 22 1.2 - Business Service– Receiver – WS_Sharptooth_00 ............................................................................................ 24 2 - Sender Agreement ................................................................................................................................................ 25 3 - Receiver Determination ....................................................................................................................................... 26 4 - Interface Determination ....................................................................................................................................... 26 5 - Receiver Agreement ............................................................................................................................................. 27
TESTES ............................................................................................................................................................................. 28
TRANSPORTES ............................................................................................................................................................... 28
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
ii
Histórico de Revisão
Versão # Descrição de alterações Data Autor
1.0 Versão original 16/06/2010 Rodolfo Mão
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
3
Considerações iniciais
Iniciando no XI
O ambiente XI é composto por um servidor R/3 e os ambientes de desenvolvimento Java acessado via browser. Para acessar os ambientes Java, você pode:
1) Acessar o ambiente R/3 e executar a transação SXMB_IFR.
2) Acessar diretamente no seu browser o link: http://servidorxi:50000/rep/start/index.jsp
Em alguns casos, o ambiente onde o Java é instalado é no 001. Você irá precisar no mínimo dos seguintes rules standards no seu usuário para acessar o ambiente Java:
Roles for ABAP and Java Tools
Role Task Area
SAP_XI_DISPLAY_USER Combination of the display authorizations of all tools in Exchange Infrastructure
SAP_XI_DEVELOPER Design
SAP_XI_CONFIGURATOR Configuration
SAP_XI_CONTENT_ORGANIZER Organizing and structuring the contents of the Integration Repository, Integration Directory, and the SAP System Landscape Directory; such tasks are normally not carried out by a developer, for example, the maintenance of software components
SAP_XI_MONITOR Monitoring
SAP_XI_ADMINISTRATOR Administration and technical configuration
Links Importantes:
SAP Exchange Infrastructure : http://<server>:5<nº instance>00/rep/start/index.jsp SAP XI - System Landscape Directory : http://<server>:5<nº instance>00/sld/index.jsp SAP XI - J2EE Start Page (for administration) : http://<server>:5<nº instance>00/index.html SAP XI - Adapter Monitoring : http://<server>:5<nº instance>00/mdt/amtServlet
SAP Developer Network - SDN : https://www.sdn.sap.com/irj/sdn XI Cache - View All Caches : http://<server>:5<nºinstance>00/rep/support/public/ViewCaches XI Cache - CPA (Full Clean) : http://<server>:5<nºinstance>00/CPACache/refresh?mode=full XI Cache - Integration Server (Full Clean) : http://<server>:80<nº instance>/sap/xi/cache?sap-client=200&mode=F SAP XI - Profile em Uso (for administration) : http://<server>:5<nº instance>00/exchangeProfile/index.html
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
4
Transações no Servidor SAP-XI:
· SXMB_IFR : chama o módulo XI java
· SXMB_ADMIN : Integration Engine Administration
· SLDCHECK : verifica o status do SLD e suas configuracoes a partir do ABAP
· SICF : mantém a URL do Servidor de Integração
· SMICM : serviços (portas configuradas, restartar o serviço J2EE, coletar Portas, etc
· SXMB_MONI : Integration Engine - Monitoring
· SXMB_MONI_BPE : Process Engine - Monitoring
· SXI_CACHE : XI Directory Cache
· SMQR e SMQS : escalonador e administrador de Queues/Filas de Processamento para RFCs
· RZ70 : atualizar as informações do Technical System no SLD a partir do R/3
Abordagens para interfaces
Todas as interfaces entre o SAP e os sistemas externos irão ser baseados em SOA ( Service oriented Architecture ). O protocolo de comunicação será o SOAP utilizando-se da porta 80 (http). Haverá a necessidade de utilização de certificados de segurança ou SSL, devido ao provedor de serviço web e o consumidor (SAP) não estarem na mesma rede física. Não há autenticação para o consumo do serviço ( métodos post e get ). O arquivos de transferencia, devem estar disponíveis em formato XML. A controle de mensagem será feito no SAP onde o sistema externo será o provedor de serviços e o SAP o consumidor dos serviços. Não existe nenhuma exigência prévia para abrir novas portas no SAP para sistemas externos.
Fig. - Arquitetura orientado a Serviços
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
5
SOA é uma arquitetura que tem propriedades especiais. É composto por uma arquitetura de componentes e interconexões que sublinham a interoperabilidade e a localização transparente. O termo serviço tem sido utilizado por mais de duas décadas. Por exemplo, softwares lideres de monitoração de transações já utilizavam o termo "serviço", no início de 1990. Muitos desenvolvimentos “client-server” nos anos 90 utilizaram o termo "serviço" para indicar a capacidade de fazer uma chamada de métodos remotos. Web Services estão dando ao termo serviço, mais destaque nos últimos meses. Serviços e arquiteturas orientada a serviços estão projetando e construir sistemas heterogêneos usando redes endereçáveis e componentes de software.
Arquitetura de software, linhas gerais
Antes de entrar em detalhes da SOA, o termo arquitetura de software tem de ser definido. Arquitetura de Software é uma prática bastante nova no campo de engenharia de software. Ele descreve os componentes do sistema e como os componentes interagem num nível elevado. As interações entre os componentes são chamados conectores. A configuração de componentes e conectores fornecem tanto uma componente estrutural quanto uma visão do comportamento do sistema.
A abordagem orientada a serviço. Um serviço é basicamente comportamento que é fornecido por um componente para a utilização de qualquer outro componente exclusivamente baseadas no contrato da interface. Um serviço tem uma interface de rede endereçáveis. Um serviço salienta interoperabilidade e podem ser dinamicamente descobertos e utilizados. Web Services consiste na combinação de quatro tecnologias que oferecem uma implementação de um SOA. Você pode usar Web Services para fornecer todas as propriedades necessárias para construir um serviço. Web Services incluem HTTP como o protocolo de rede primária, SOAP / XML para o formato carga, UDDI para registros dos serviços e WSDL para descrever a interfaces do serviço. No entanto, um uma arquitetura orientada a serviço não exige Web Services. SOA é uma concepção e de uma forma de pensar sobre a construção de componentes. Um serviço deve ter uma interface de rede endereçáveis. Isto significa que um cliente em uma rede deve ser capaz de invocar um serviço. Um serviço pode ser configurado para ser usado por um componente na mesma máquina. No entanto, o serviço deve também apoiar uma configuração de rede. Uma arquitetura orientada a serviço, em primeiro lugar, salienta a interoperabilidade. Isso significa que cada componente deve fornecer uma interface que pode ser invocada por meio de um formato de carga e o protocolo que é entendida por todos os potenciais clientes do serviço. Um serviço deve ser descobertos dinamicamente. Isto significa que um terceiro mecanismo deve ser utilizado para localizar o serviço. “Hard coding” de uma máquina local, não é coerente com uma abordagem orientada serviço.
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
6
interface de Outbound do SAP:
Um programa SAP do tipo “batch job” irá extrair os dados de tabelas espelhos, e enviar para o XI via função RFC.
O XI irá converter no formato da aplicação externa para geração do arquivo XML.
O arquivo XML será enviado pelo XI via web services utilizando protocolo SOAP.
A aplicação externa ira processar os dados e retornar outro arquivo XML contendo o retorno do processamento.
O sistema XI irá receber o arquivo, efetuar as conversões e retornar a mensagem de processamento para o SAP, que ira gerar um log de processamento.
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
7
Etapas de configuração e desenvolvimentos
System Landscape Directory
Software catalog
Scopo: Criar um “Produto” e pelo menos 1 “Componente” para hospedar as regras de interface para o treinamento Categorias de nomes Passos:
Clicar no botão ;
Entre com os dados do produto :
o Vendor para representar a Empresa que é responsável pelo Produto. [exemplo: XI Training Ltda.]
o Name é o nome do Produto [exemplo TXI_00]
o Version versão do produto definida sempre por Nº.Nº, [exemplo 1.0]
Clicar no botão <CREATE>; finalizada a criação do PRODUTO.
Entre com os dados do 1º Componente (deve existir pelo menos 1 componente por Produto):
o Vendor é indicado pelo ICC a utilização do padrão URL ou URI da Empresa, e sempre em letras minúsculas. [exemplo xitraining.com.br]
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
8
o Name é o nome do Componente, onde o ICC sugere que seja prefixado pelo nome da Empresa. [TXI_00.MODULO1]
o Version neste item o ICC solicita que a numeração seja iniciada pela versão do XI e complementada pela versão do componente. [30.1]
Clicar no botão <CREATE>; finalizada a criação do COMPONENTE.
Clicar no botão <CANCEL>; finalizado a inclusão de componentes.
O Resultado será:
Na parte do Installed Systems, a princípio ficará com nenhum, mas será preenchido
nas próximas etapas:
Technical System
Nessa etapa será adicionado o ambientes SAP necessários: Verifique se esta etapa
já não foi feita pois normalmente já estão configurados:
"ERP SAP R/3 - Ambiente de Desenvolvimentos" - Web AS ABAP - [MC0]
Cadastrar um Sistema R/3
Clicar no botão ;
Selecionar a opção e clicar em ;
Entre com os detalhes do sistema R/3: o Web AS ABAP Name (SID) : MC0 (SAP Logon Atributos ID do Sistema); o Installation Number : 6020026337 (R/3 Menu Sistema SubM Status Dados do Sistema); o Database Host Name : sapsrv16 (R/3 Menu Sistema SubM Status Dados do Host);
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
9
Entre com os dados do Message Server: o Host Name: zhmc0dci (traz automaticamente); o Message Port: 3602 (36 + <número da instancia>); o Logon Groups: PUBLIC (traz automaticamente);
Entre com os dados do Central Application Server: o Host Name: sapsrv16 (traz automaticamente); o Instance Number: 02 (SAP Logon Atributos Nº de sistema);
Client Number (at least one
client) : 020
Products SAP Web AS 6.20;
Adicione ao ambiente SAP o software criado na etapa anterior clicando no botão
<ADD...>. O resultado será:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
10
Business Landscape
Nessa etapa será ativado ao ambiente SAP o software criado na primeira etapa:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
11
Integration Builder: Design
Importando as configurações do software componente
Selecione a opção de Import Software Componente Versions
Procure em seguida pelo componente criado na primeira etapa
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
12
Na tela seguinte, adicione o Namespace, que irá agrupar as regras conforme segue:
Configurações e desenvolvimentos no ambiente SAP
Desenvolvimentos necessários no Ambiente SAP:
Nesta etapa, vamos precisar sair um pouco do ambiente XI para efetuarmos os
desenvolvimentos no ambiente SAP.
1) Criando a função RFC dummy
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
13
2) Criando a conexão RFC na SM59
O nome do program ID e do destino RFC pode ser de acordo com as regras da sua
empresa
3) Criando um programa para testes
É muito importante criar um programa para efetuar a chamada ao invés de executar
diretamente na SE37, pois podemos receber por completo as mensagens
retornadas pelo XI. report zteste4.
data msg_text(600) type c. "Message text
data v_retust type string.
data v_mobilecode type string.
v_mobilecode = '79712'.
call function 'ZTXI_00_RFC2WEB'
destination 'ZXI_SND_RFC00'
exporting
mobilecode = v_mobilecode
importing
findmobileproviderresult = v_retust
exceptions
communication_failure = 1 message msg_text
system_failure = 2 message msg_text.
if not msg_text is initial.
write / msg_text.
endif.
write / v_retust.
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
14
Integration Builder: Design- Importando a RFC no ambiente XI
Abra a opção Imported Object na arvore de objetos, clique na opção RFC com o botão direito.
Na tela que irá aparecer, forneça os dados de conexão “restantes” ao ambiente de origem
o Application Server: <host do servidor R/3 Client>
o System Number: <Instance Number servidor R/3 Client>
o User Name: _________ (utilizar o seu user de acesso ao R/3)
o User Password : _________ (utilizar o seu password de acesso ao R/3)
Após a disponibilização das RFC´s , selecione a ZTXI_00_RFC2WEB;
O Resultado ficará algo assim:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
15
Interface Objects
External Definitions
Importar uma estrutura externa tipo WSDL, que contém todas as mensagens de request e response para o lado do INBOUND.
Acesse o WebService via browser e clique no link Service Description
Salve a pagina que ira aparecer com a extensão XML
No Desing, clique com o botão direito sobre a opção <External Definitions> New;
Após criar, vá ao botão (Import External Definitions) e localize o arquivo XML criado na etapa anterior;
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
16
O resultado deverá ser próximo disso:
Message Interfaces
Criar uma interface de INBOUND, ITF_00_RFC2WEB, baseado na Definição Externa (WSDL) importada anteriormente e do tipo Síncrona.
Right Click sobre a opção <Message Interfaces> New;
Após criar, mude a Categoria e o Modo de Comunicação:
Para selecionar as mensagens que irão compor os sentidos de Input e Output, utilize o
botão , e a partir do NameSpace correto selecione External Definitions e a mensagem importada; esta irá disponibilizar duas mensagens : uma de Input e outra de Output;
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
17
O resultado ficara algo do tipo
Mapping Objects
Message Mappings - Request
Criar as regras de mapeamento de campos para as mensagens de Request e Response. Neste ponto iremos determinar qual campo de origem deve ser direcionado para qual campo da mensagem de destino (target). Mapear somente os campos e não incluir a função no mapeamento.
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
18
Para adicionar a RFC e o Método do Webservice, clique no da janela correspondente e selecione o objeto que deseja incluir:
Os resultados ficaram como :
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
19
Interface Mappings
Este objeto cria a referência entre a Interface de Outbound e Inbound, relacionamento as regras de mappings entre as mensagens de Request e Response.
Right Click sobre a opção <Interface Mappings> New MAP_XX_RFC2WEB;
Para Source Interface, utilize a RFC dos Importeds Objects [ZTXI_XX_RFC2WEB];
Para a Target Interface, utilize a Interface criada na Fase 2, [ITF_XX_RFC2WEB];
Salve o objeto,
Aba Request selecione um Mapping Program [] (passo anterior);
Aba Response selecione um Mapping Program [] (passo anterior);
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
20
O resultado:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
21
Ative todos os objetos
Integration Builder: Configuration
Scenario
No integration Builder Configuration, crie um novo cenário:
Menu New scn_TXI_00_RFC2WEB
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
22
Preenchendo a arvore de objetos
1 - Services Without Party
1.1 - Business System – Sender – MC0
Caso o Business System não exista ainda no módulo Directory (ABA Objects), siga os seguintes passos:
Right-click sobre o menu Business System , e um Wizard para importar Sistemas do módulo SLD será aberto, siga os passos;
nota: desmarque a opção "Create Communication Channels Automatically", pois criaremos todos os canais manualmente;
Caso contrário apenas importe o mesmo para o cenário específico:
Aba OBJECTS Service Without Party Business System botão direito sobre o
Business System em questão opção Add to Scenario
Selecione o cenário criado no passo anterior, e click no botão <ADD>;
1.1.1 - Communication Channel – chn_snd_mc0_020_00
Right click sobre Communication Channel do BS MC0 New;
Selecione o tipo de Adaptador RFC
Altere o sentido do canal Sender
RFC Server Parameters (parâmetros de conectividade entre o RFC Destination do R/3 Sender e o XI)
Application Server (Gateway) * : <host name> (sapsrv16)
Application Server Service (Gateway) *: sapgw<instance number> (sapgw00)
Program ID * : XI_SND_RFC_00
RFC Metadata Repository Parameter (parâmetros de Logon no R/3 Sender):
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
23
Application Server * : sapsrv16
System Number * : 00
Authentication Mode * : Use Logon Data for SAP System
Logon User * : _________ (utilizar dados disponibilizados por Basis)
Logon Password *: _________ (utilizar dados disponibilizados por Basis)
Logon Language * : EN
Logon Client * : 020
Para este tipo de comunicação é necessário parametrizar um RFC Destination no R/3 de Origem. (Etapa ja efetuada nos itens anteriores)
O resultado:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
24
1.2 - Business Service– Receiver – WS_Sharptooth_00
Right-click sobre o menu Business Service , entre com um
nome para o Serviço e Salve o objeto;
1.2.1 - Communication Channel – Receiver – chn_rcv_WS_Sharptooth_00
Right click sobre Communication Channel New [chn_rcv_WS_Sharptooth_XX];
Selecione o tipo de Adaptador SOAP
Altere o sentido do canal Receiver
O resultado:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
25
2 - Sender Agreement
Associa um Canal de Comunicação para um [Business System | Interface Outbound].
Right click sobre o grupo Sender Agreement New;
Selecione um Serviço (Business System) de SENDER;
Selecione uma Interface de Outbound (entrada) [ZTXI_00_RFC2WEB];
Selecione o Canal de Comunicação criado acima (chn_snd_mc0_020_00)
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
26
3 - Receiver Determination
Associa a um [Business System | Interface Outbound], um Business System de Receiver. A partir deste objeto é possível criar todos os demais objetos de configuração.
Right click sobre o grupo Receiver Determination New;
Selecione um Serviço (Business System) de SENDER;
Selecione uma Interface de Outbound (entrada) [ZTXI_00_RFC2WEB];
Em “Configured Receivers, selecione o Business System (WS_Sharptooth_00);
4 - Interface Determination
Associa a Interface de Inbount e seu Mapping a um conjunto [Business System | Interface Outbound] + [Business System Inbound].
Ainda em Receiver Determination Configuration Overview Logo abaixo de Receiver
Service (BS_TXI_00) Right click sobre Not Defined New Generic; (desta forma os dados do Sender já são transferidos para o novo objeto)
Selecione uma Interface de Inbound [ITF_XX_RFC2WEB];
Selecione uma Interface de Mapping [MAP_XX_RFC2WEB];
Salvar;
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
27
5 - Receiver Agreement
Associa um Canal de Comunicação para um [Business System | Interface Inbound].
Ainda em Receiver Determination Configuration Overview Logo abaixo de Receiver
Agreement Right click sobre Does Not Exist New Specifc;
(desta forma os dados do Receiver e Sender já são transferidos para o novo objeto)
Selecione o Canal de Comunicação criado acima (chn_rcv_WS_Sharptooth_XX)
Salvar;
note que por este canal de comunicação ser do tipo SOAP, ao criar um Agreement para utilização
o XI associa automaticamente um protocolo de segurança.
ATIVAR TODOS OS OBJETOS CRIADOS:
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
28
Testes Vá na SE38, e execute o programa criado na etapa de configuração e desenvolvimento do SAP. O Resultado deverá ser “Orange”
Transportes Para transportar as configurações para o ambiente você deve exportar os objetos como segue
Após a exportação você deve no ambiente destino, disponibilizar o arquivo para importação e efetuar o procedimento de importação, localizando o tramporte.
Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno
29