30
Projeto PO SAP Exchange Infrastructure Consumindo um Webservice do SAP R/3 via XI

Consumindo Webservice via Xi

Embed Size (px)

DESCRIPTION

Consumindo Webservice via Xi Consumindo Webservice via Xi

Citation preview

Page 1: Consumindo Webservice via Xi

Projeto PO

SAP Exchange Infrastructure

Consumindo um Webservice do SAP R/3 via XI

Page 2: Consumindo Webservice 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

Page 3: Consumindo Webservice via Xi

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

Page 4: Consumindo Webservice via Xi

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

Page 5: Consumindo Webservice via Xi

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

Page 6: Consumindo Webservice via Xi

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.

Page 7: Consumindo Webservice via Xi

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.

Page 8: Consumindo Webservice via Xi

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]

Page 9: Consumindo Webservice via Xi

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);

Page 10: Consumindo Webservice via Xi

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á:

Page 11: Consumindo Webservice via Xi

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:

Page 12: Consumindo Webservice via Xi

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

Page 13: Consumindo Webservice via Xi

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

Page 14: Consumindo Webservice via Xi

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.

Page 15: Consumindo Webservice via Xi

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:

Page 16: Consumindo Webservice via Xi

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;

Page 17: Consumindo Webservice via Xi

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;

Page 18: Consumindo Webservice via Xi

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.

Page 19: Consumindo Webservice via Xi

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 :

Page 20: Consumindo Webservice via Xi

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);

Page 21: Consumindo Webservice via Xi

Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno

20

O resultado:

Page 22: Consumindo Webservice via Xi

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

Page 23: Consumindo Webservice via Xi

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):

Page 24: Consumindo Webservice via Xi

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:

Page 25: Consumindo Webservice via Xi

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:

Page 26: Consumindo Webservice via Xi

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)

Page 27: Consumindo Webservice via Xi

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;

Page 28: Consumindo Webservice via Xi

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:

Page 29: Consumindo Webservice via Xi

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.

Page 30: Consumindo Webservice via Xi

Padrão de desenvolvimento de Aplicações e Procedimentos 16/06/2010 Para uso Interno

29