Você está na página 1de 65

2011

WA Consultoria Carlos Rodrigo

[SAP PI NETWEAVER 7.0]


Curso SAP PI Netweaver 7.0 de 2011

Indice Curso SAP PI 7.0 ............................................................................................................................................ 2 Fundamentos ............................................................................................................................................ 2 O que o SAP PI ? ................................................................................................................................. 2 Metodologias ............................................................................................................................................ 2 ETL ( Extract / Transformation / Load ) ................................................................................................. 2 RPC ( Remote Process Call ) .................................................................................................................. 3 MOM ( Message Oriented Middleware ) .............................................................................................. 4 Integration Brokers ............................................................................................................................... 5 SOA ........................................................................................................................................................ 5 SAP PI Ambiente e Desenvolvimento de Interfaces ................................................................................. 6 Arquitetura............................................................................................................................................ 6 SLD......................................................................................................................................................... 8 ESR Enterprise Services Repository.................................................................................................. 19

Curso SAP PI 7.0 Fundamentos O que o SAP PI ?


O SAP PI Netweaver um sistema do tipo middleware, que disponibiliza ferramentas para o desenvolvimento de interfaces para integrao de sistema utilizando o conceito da arquitetura SOA ( Service Oriented Architeture Arquitetura Orientada de Servicos ) cuja as definies encontram-se na w3c.org. O SAP PI atualmente uma das principais solues para o desenvolvimento de aplicaes cross-client existente nos ambientes empresariais de grande porte. A vantagem de se utilizar o SAP PI se torna mais evidente em um ambiente onde parte dos sistemas que sero integrados fazem parte dos pacotes distribudos pela SAP onde a performance de cada integrao se torna evidentemente mais otimizada com a utilizao dos adaptadores proprietrios da plataforma SAP ( IDOC, RFC e PROXY ). Como um sistema que segue o padro SOA as mensagens que trafegam pelo ambiente de PI so basicamente arquivos de texto no padro XML

Cronologia.
O SAP PI surgiu com o nome de SAP XI em meados de 2002 tendo o seu ambiente bem simples com poucos adaptadores disponibilizados para as integraes ( basicamente RFC e IDOC ), em 2004 ocorreu a primeira mudana de impacto com o SAP XI 3.0 onde foram acrescentado os demais adaptadores de protocolos comumente utilizados em uma integrao como o SOAP ( WebServices ), ABAP PROXY ( Adapator Xi ), etc ... Em 2005, praticamente 1 ano aps o lanamento do SAP XI 3.0, devido quantidade verses lancadas nesse perodo a SAP optou comercialmente de mudar a nomenclatura para SAP PI ( Process Integration ) e comeando o versionamento a partir da 6.0, atualmente a verso mais amplamente utilizada do SAP PI a 7.0, 7.01 e a 7.1.

Metodologias
No podemos comear a falar de integrao de sistemas utilizando o SAP PI sem entendermos o desenvolvimento e amadurecimento das metodologias de integrao de sistemas utilizadas pelas empresas desde a dcada de 80 at os dias de hoje.

ETL ( Extract / Transformation / Load )


Trata-se basicamente de uma extrao de dados do sistema fonte onde geralmente gerado um arquivo de texto formato ASCII separado por virgulas ou com tamanho de cada campo de dados definidos previamente entre o emissor dos dados e o recebedor dos mesmos. Embora seja uma metodologia antiga um dos mtodos mais comuns, afinal, para as empresas que no possuem conhecimento tcnico suficiente, esse mtodo de integrao o mais bvio e mais simples de ser utilizado porm ele possui diversos problemas tcnicos entre eles podemos destacar: 2

Falta de flexibilidade Disponibilidade de recursos (banda de transmisso, tempo de processamento, etc...) Rastreabilidade e redundncia de dados

RPC ( Remote Process Call )


O RPC surgiu com a viso das empresas da necessidade de no se utilizar mais arquivos de texto para o transporte dos dados entre os seus ambientes internos onde a prpria rede conectaria diretamente um sistema ao outro podendo dessa forma, ambos os sistemas, acessarem funes/processos remotos existentes e disponibilizados pelas equipes de desenvolvimento em cada um dos sistemas. No mundo SAP esse tipo de comunicao conhecido por RFC, onde se criada uma funo que atravs de definies de comunicao pode ser disparada por sistemas externos para que sejam disponibilizados dados aos mesmos ou para que eles enviem os dados para processamento pelo ambiente SAP. Embora seja efetiva uma comunicao de integrao dessa forma ela tambm possui uma srie de problemas tcnicos, os principais que podemos citar so os seguintes: Complexidade de integraes com mais de dois sistemas, gerando problemas de manuteno Problemas de recursos para processamento Redundncia da conexo e tratamento de excees durante o processamento Rastreabilidade dos dados

MOM ( Message Oriented Middleware )


O MOM surgiu como uma evoluo do RPC, onde, as aplicaes de origem e destino dos dados passam a no mais comunicarem entre si, mas apenas com um servidor de mensagens que passa ser um centralizador responsvel pelo recebimento e entrega de mensagens entre os dois sistemas. Ele suporta dois tipos de metodologias de conexo: Pub-Sub: uma mensagem enviada ao centralizador ( MOM ) para 1 ou mais destinatrios, os sistemas interessados em receber esse tipo de mensagem que est sendo enviada, se registra nesse servio de mensagem e passam a receber os dados que so enviados pelo emissor. P2P: os dois sistemas so comunicados diretamente utilizando o MOM apenas como um intermediador dos dados.

O MOM comea a introduzir um conceito mais apurado de log e rastreabilidade das mensagens porm trata-se de um conceito primitivo baseado no RPC mantendo praticamente os mesmos problemas tcnicos de topologia e recursos de processamento.

Integration Brokers
Em um aprimoramento do MOM surgiu o conceito de Integration Broker, onde existe um servio central que faz o roteamento das mensagens para outros INtegrations Brokers e ou sistemas que necessitam se integrar, como podemos ver um conceito mais maduro e bem mais perto dos conceitos atualmente utilizados. Nesse tipo de integrao o sistema que deseja se integrar aos demais se conecta diretamente no integration broker utilizando um protocolo previamente definido, onde, aps realizada a conexo com sucesso, ele pode enviar a mensagem para qualquer outro sistema conectado ao IB como tambm receber as mensagens de qualquer outro sistema. Esse sistema foi criado a partir de observao dos arquitetos de sistemas do sistemas de logsticas das empresas areas norte americanas para o transporte de passageiros, onde , um passageiro que desejava partir de um ponto sem conexo com um aeroporto maior utilizasse aeroportos menores at atingir a rede onde encontrava-se a localidade que ele desejava desembarcar.

SOA
Com a popularizao dos IBs, muitas empresas desenvolveram uma gama enorme de protocolos prprios bem como de adaptadores, tornando a tarefa de integrao entre IBs distintos ou com mais de IBs praticamente impossvel de ser administrada e ou construda para novas aplicaes. Os problemas gerados pela pluralidade de protocolos levou os arquitetos de sistemas pensarem em um approuch diferente chamado SOA ( Service Oriented Architeture ). Ao contrrio do que muitas empresas e pessoas afirmam, SOA no um produto e sim uma metodologia, praticamente um ideal, de desenvolvimento. Essa metodologia, bem aplicada, possibilita que criemos mdulos de integrao dinmicos nos permitindo conectar qualquer sistema que seja. Cada mdulo ( ou servio ) criado seguindo os preceitos do SOA possu as seguintes caractersticas: Acessibilidade: os mdulos e ou servios devem estar disponveis para serem acessados facilmente pelos sistemas envolvidos na integrao. Autonomia: em situao ideal, o servio deve se manter ativo por sua prpria conta, independente da disponibilidade dos sistemas envolvidos na integrao. 5

Intuitividade: o servio deve ter um proposito claro, intuitivo, provendo a soluo para tarefas previamente definidas com interfaces mais simples e limpa com o seu entendimento facilitado. Estabilidade: o servio precisa ser o mais estvel possvel, bem como seguro, estabelecendo assim uma relao de confiabilidade entre os sistemas que esto sendo integrados e o prprio servio que est sendo acessado

SAP PI Ambiente e Desenvolvimento de Interfaces Arquitetura


Observe a figura abaixo:

Vamos definir cada um dos mdulos que compe o SAP PI: Enterprise Serivces Repository: composto pelos mdulos abaixo: o Integration Repository: onde so armazenados todo o desenho da soluo de integrao ( Integration Scenarios ) como definies de data types, message mappings, java mappings, integration processes, etc ... Aqui possvel desenvolver e modelar a mensagem ou servio de integrao como demonstrado na figura abaixo.

Services Registry: uma parte do SAP Netweaver Composition Environment 7.1 (CE), uma complacncia UDDI para definies de registro de servio disponvel em um repositrio. Ele prov API para busca e descoberta de servios tal qual para publicao de servios customizados e suporta o padro WSDL (Web Service Definition Language) . Integration Directory: Utilizado para as configuraes de cenrios propriamente ditas, basicamente onde so configurados todas as informaes necessrias para realizar uma conexo com ambas as partes da integrao, ou seja, com o sistema que envia a mensagem ( sender ) e o sistema que recebe a mensagem processada ( receiver ). System Landscape Directory (SLD): trata-se de um repositrio central de informaes onde so realizados os cadastros com informaes dos sistemas/servios que sero integrados. Central Monitoring: Oferece uma viso objetiva de todos os componentes e processos emtempo de execuo. essencial para: o monitorar mensagens trafegadas por diferentes partes do Integration Process; o reprocessar mensagens direto pelo Engine; o visualizar payload de mensagens etc.

Integration Server (IS): o mecanismo central de mensagens do PI. Todas as mensagens seja SAP, no SAP, A2A ou B2B independentemente da tecnologia de backend, so processadas de forma consistente.

SLD

O SLD onde comeamos a nossa construo de uma interface, cada interface que construmos no repositor e cenrios que configuramos no directory so vinculados aos dados que so previamente cadastrados no SLD, ou seja, eles so vinculados um produto que vinculado um software componente e que por sua vez esta contido em um techinical system e esse ultimo est vinculado ao um business system que o responsvel pelo provimento do servio de comunicao. Mesmo interfaces com sistemas que compe a gama de pacotes de produtos SAP precisam ser cadastrados no SLD, com a ressalva de que para esses tipos de produtos o software componente j vem previamente cadastrado 8

necessitando apenas que o profissional SAP PI faa o cadastro do techinical system e do business system respeitando as configuraes de ambiente necessrias que iremos discutir um pouco mais a frente.

Trabalhando com o SLD Produto e Software Component


A primeira atividade ao se construir uma interface no SAP PI criar no SLD os produtos referentes aos sistemas que iro interagir em nossa interface propriamente dita, caso seja um produto SAP, provavelmente ele j se encontra cadastrado previamente no SLD. A finalidade do cadastro do produto puramente simblica sendo que para ns o mais importante o software componente.

Para se iniciar o cadastro/configurao de um produto, na tela que se abriu no browser do SLD, deve-se selecionar a opo Products que imediatamente ir direcionar o cadastro para a primeira tela de informaes.

Nessa tela podemos verificar todos os produtos criados/configurados em nosso ambiente, inclusive os que j so instalados automaticamente pela SAP. Para criar um novo produto basta clicar no boto New Product Version abrindo em seguida a tela abaixo.

Nessa tela selecionado o Nome do produto, o url do fabricante e a verso, esta ultima, pode acompanhar a verso do fabricante ou ento pode seguir um controle interno de verso da empresa para qual est sendo desenvolvida a interface. Preenchendo todos esses campos ( que so obrigatrios ) passamos para a etapa automaticamente de fornecer os dados para um Software Unit que servir de base para o nosso Software Component basta preencher com o mesmo nome do produto e ou adicionar um outro nome que respeite os seus padres de desenvolvimento ou da empresa e clicar prosseguir onde sera encaminhado para tela abaixo.

10

No campo Name deve ser informado o nome do software componente que ser utilizado para armazenar os objetos das interfaces no repositor, no campo Version uma verso do software componente e o c ampo Production State pose ser selecionado dentre as seguintes opes: Planned ( planejado ); Defined ( definido ); Started ( iniciado ); Locked ( fechado ); Developed ( desenvolvido ); Published ( publicado ); Released ( atualizado ); Restricted ( restrito ); Reverted ( retornado ); Archeived ( arquivado ) (default);

Com exceo do Locked, os demais estados s possuem carter informativo e devendo ser utilizado de acordo com a sua necessidade. Ao final, basta clicar em Create e o Software Component j ser criado. Com o Sotftware Component criado basta importar ele no SLD ( ser demosntrado mais frente como deve ser feito ) para comearmos a construo dos objetos relacionados s interfaces que iremos construir no Intergration Repository Builder.

11

Techinical System
Quando iniciamos a configurao do nosso cenrio completo de comunicao no ESD ( Enterprise Service Directory ) precisamos antes ter configurado um Business System que ser no PI o provedor do servio de comunicao a ser utilizado pelo PI, esse Business System vinculado a um Technical System, onde so especificados os dados tcnicos para acesso aos servios. No caso de uma conexo com um servio NO SAP, essa configurao ser utilizada apenas como um cadastro simples para ser utilizado nas amarraes das interfaces do PI, contudo, quando trata -se do contrrio, ou seja sistemas SAP, essa configurao SAP de suma importncia onde necessrio que seja configurado todos os endereos de acesso aos devidos servios, portas e clientes de acordo com o respectivo pacote SAP. Nosso curso tem por finalidade dar base de conhecimento na construo de interfaces por esse motivo iremos nos ater as configuraes para sistemas NO SAP, onde normalmente feito pelo profissional SAP PI, em sistemas SAP essas configuraes so realizadas pelo responsvel BASIS e portanto no so nosso foco. Para iniciarmos a configurao de um Technical System primeiramente devemos acessar o ambiente do SLD.

Aps entrar na tela de cadastro do TS, basta clicar no boto New.

12

Aps isso, ir abrir uma tela pedindo para que informemos o tipo de TS que iremos criar, conforme dito anteriormente entre todas as opes selecionaremos a Third Party ( sistema de terceiro ).

A tela ir mudar automaticamente mostrando no fluxo na parte de cima as etapas para esse tipo de TS. Clique em prosseguir NEXT.

13

Aparecer na tela para que seja informado o nome do sistema e o host do sistema, no primeiro caso tenho sempre como sugesto que o nome do TS seja sempre iniciado com o prefixo TS_ e o resto um string que exemplifique claramente o sistema que se esta utilizando como servio o host pode ser um endereo fictcio do sistema, host do sistema ou simplesmente o endereo do fornecedor do sistema, pois como havia dito, para o TS Third Party esses dados so meramente informativos. A prxima tela apresentada pede que seja selecionado um produto para ser instalado no seu TS, na realidade, nesse momento estaremos estabelecendo uma relao de vinculo dos objetos do Produto/Software Component com o TS e futuramente com o BS, dessa maneira, na hora da construo dos cenrios de integrao, ao se utilizar um Business System vinculado esse TS que criamos aparecero de maneira automtica apenas os objetos de interfaces que esto instaladas/vinculadas a ele.

14

Selecione o produto e logo em seguida o Software Component que foi criado para essa interface de sistema e clique em FINISH. Concluimos assim a criao do nosso TS.

15

Business System
O Business System o cadastro/configurao que representa um provedor de servio de aplicao, entende-se por exemplo que no caso de integrao de um ambiente SAP ERP e um ambiente SAP BW, ambos seriam um business system separado onde ainda, cada cliente dos ambientes seria nico em cada BS. No caso de um BS do tipo Third Party ele pode ser utilizado para varias aplicaes pois ele no tem a necessidade de estar vinculado exatamente a uma instalao especifica agindo apenas como um cadastro de amarrao das interfaces para sua configurao. Para se iniciar o cadastro/configurao de um BS basta entrarmos no SLD e no menu principal selecionar a opo Business System.

Para incluir um novo BS basta clicar no boto New Business System que a seguinte tela ser apresentada:

16

Escolha a opo que seja a necessria para o momento, no nosso caso, third party, e em seguida clique em Next.

Selecione o TS que se deseja que esse BS seja vinculado e logo em seguida coloque um nome para o sistema que seja nico.

17

Informe o nome do BS ( sugesto sempre utilize o pre fixo BS_ ) e clique em Next.

Selecione o produto e selecione a linha do Software Component que se deseja amarrar esse BS que estamos criando.

18

Selecione com qual Integration Server esse BS vai trabalhar, normalmente, em um ambiente normal, sempr e haver apenas um integration server. Clique em Finish e nosso BS estar finalizado e pronto para ser usado em nossas configuraes de cenrios de integrao.

ESR Enterprise Services Repository


A definio usada pela SAP para esse mdulo repositrio central onde definimos, acessamos e gerenciamos objetos SOA atravs de servios. No ESR onde construmos as interfaces de conexo entre os sistemas que faro parte do nosso cenrio de integrao definindo desde sua estrutura de dados at a direo da comunicao de cada uma das interfaces, ou seja, definindo os dados que sero trafegados, se a mensagem que estaremos tratando de entrada ( input ) ou sada ( output ) bem como se possui sincronismos ou no, construmos tambm nesse mdulo as regras de transformao das mensagens atravs de Message Mapping, Java Mapping, XSLT Mapping ou ainda usando ABAP Mapping., No ESR tambm so definidos os workflows de processos de integrao conhecidos como Integration Process ou BPM.

Estrutura do ESR Software Component Version


Todos os objetos de uma interface so geralmente armazenados no Software Component Version que estaria para ns como um projeto de desenvolvimento. O FWSCV baseado no Software Component que criamos anteriormente no SLD ( System Landscape Directory ). O SFWCV precisa ser importado diretamente do SLD no ESR para darmos inicio qualquer desenvolvimento de uma interface ou de grupos de interfaces. 19

Para se importar um SCV basta acessar o ambiente do ESR e aps logar no sistema e abrir o Enterprise Service Builder ( EDI ) do ambiente acessar o meno Tools-> Transfer from System LandscapeDirectory->Import Software Component Versions.

Logo em seguida ser apresentada uma tela onde todos os Software Components criados no SLD estaro disponveis. Selecione o que ser utilizado para sua interface e clique em Import.

20

Importado o SFWC voc ver uma tela como a apresentada abaixo:

21

Nela voc vera primeiramente o nome do SFWC que voc criou e logo em seguida uma referencia repetida do nome mas com a verso que ele representa nos cadastros do SLD, esse o SFWCV ( Software Component Version ).

Namespaces
Para iniciarmos um projeto de construo de uma interface no basta apenas importarmos o SFWC dentro do ESR Builder, precisamos tambm criar um namespace. Dentro do SFWC os objetos so organizados em namespaces, esses namespaces possuem a mesma sintaxe do que os que so usados para construo dos arquivos XMLs ( para maiores informaes pesquise sobre XML no www.w3c.org ) porm a similaridade entre o XML e o namespace para ai. No ESR, o namespace serve de qualificador de um objeto de interface como uma espcie de identificador nico. Um objeto criado no ESR possui 3 chaves que garantem a sua unicidade no sistema: 1) Software Component Version ( SFWCV ) 2) Namespace 3) Nome propriamente dito do objeto Ou seja, podemos ter o objeto exatamente com o mesmo nome mas em SFWCV diferente ou em namespace diferente, mas isso no aconselhvel.

22

A definio de um namespace segue como padro como se fosse um endereo de URL. Por exemplo, a SAP utiliza o domnio sap.com para definir os namespaces das interfaces que so standart e ou p/ objetos standart. Logo em seguida, inserido um qualificador de interface /nome_da_interface/ ou um subdomn io que qualifica o tipo de interface /sub_dominio/nome_da_interface. Isso no regra, mas a maioria dos desenvolvedores utiliza essa conotao e o que usaremos durante o nosso curso. Para criarmos um namespace basta clicarmos duas vezes no SFWCV e uma janela de propriedades ser aberta no ESR Builder como demonstrado abaixo:

Para criarmos o namespace basta clicarmos no boto de editar e na tabela de namespaces inserir o namespace que se deseja criar com o prefixo http:// e ou urn:// .

23

Logo em seguida basta clicar em salvar. O namespace aparecera automaticamente abaixo do SFWCV pronto para desenvolvermos nossas interfaces porm no vai estar ativo, entende-se por ativo, os objetos salvos porm no inicializados no ESR, ou seja, eles existem, mas ainda no podem ser utilizados como um servio de integrao.

24

Para ativarmos o namespace, basta clicarmos na aba Change Lists.

25

Clique com o boto direito no elemento Standard Change List e o menu com a opo activate ser disponibilizado, selecione essa opo.

26

Logo em seguida demonstrada uma lista com os objetos que sero ativados, no nosso caso, nesse momento so todos os demonstrados na lista, basta clicar no boto Activate e seguir com o desenvolvimento de nossas interfaces.

27

Interface Objects
Aps ativado um namespace, vrios subitens so disponibilizados o que nos importa nesse momento o Interface Object, onde primeiramente criamos os nossos objetos de integrao ( data types, message types, message mappings, external definitions, etc...). Para iniciarmos uma interface iremos pela definio da estrutura de integrao, l-se data type.

Data Type
Um data type a definio propriamente da estrutura que iremos utilizar em um lado, ou em alguns casos, em ambos os lados de uma integrao de sistemas. O data type um tipo primitivo de dado, ou seja, ele a penas uma definio e no a interface utilizvel, fazendo uma comparao com o java por exemplo, ele a criao da classe e seus atributos/elementos e no a instanciao da mesma. O data type formado pelo seu nome, que geralmente por definio de mercado utilizamos um prefixo dt_ antes do seu nome. Para criarmos um data type basta clicar com o boto direito do mouse no subitem Data Type do interface Objects e em seguida escolher a opo new.

28

Ser apresentado logo em seguida uma janela solicitando o nome do seu data type, uma descrio breve e os campos de SFWCV e namespace j viro preenchidos automaticamente.

29

Preencha com o nome e a descrio que pretende usar n a sua estrutura e clique em Create. Logo em seguida aparecer a tela onde o data type ser configurado/criado.

O primeiro elementoque vemos selecionado o que denominamos elemento primrio ou de cabealho, ele s importante como referencia do tipo de estrutura que iremos utilizar, como o nome da classe em Java. Para 30

incluirmos elementos e ou atributos basta clicar com o boto direito do mouse sobre esse elemento e adiciona-los conforme a necessidade.

A diferena entre elemento e atributo que o elemento uma campo de dado propriamente dito, quanto o atributo um qualificador do elemento a qual ele atribudo. Selecionada a criao de um elemento a seguinte linha ser disponibilizada:

31

A primeira coluna onde colocamos o nome do elemento de dados que ser utilizado durante a integrao, geralmente esse nome definido em comum acordo entre as partes da integrao para que seja compreensvel para os desenvolvedores que iro interagir com ela, ou ainda, em interfaces do tipo ODBC/JDBC que iro fazer acesso ao banco de dados, os elementos tem que ter exatamente o mesmo nome dos campos das tabelas que iro receber ou enviar os dados. A coluna de categoria define se esse campo um elemento ou atributo ( falamos disso anteriormente ), enquanto a coluna type o que o mais importante nesse momento, dentro dessa coluna podemos definir entre vrios tipos primitivos ( string, integer, float, boolean, char, etc ... ) definidos pelo W3C para a criao de interfaces XML, cada um desses tipos precedido por um prefixos xsd::

32

Logo em seguida ao Type temos uma coluna denominada Ocorrence, nessa coluna definimos a quantidade de dados que podemos repetir desse dado na nossa estrutura, 0,1, n ou unbouded.

Quando definimos que no campo de mnima ocorrnc ia minOccurs o valor 0 (ZERO), estamos informando que esse campo no obrigatrio, ou seja, ele pode ser nulo ou simplesmente no ser enviado na interface, quando acrescentamos o valor 1, ele se torna obrigatrio e o no envio do mesmo ou com valor nulo nos gerar erro na interface. Quando definimos o campo de mxima ocorrncia com o valor 1 ou qualquer outro nmero, definimos que a quantidade de vezes que esse campo pode vir repetido em nossa estrutura, ou seja, se definimos um campo com o valor nome, esse campo pode aparecer de 1 vez at N vezes conforme o configurado, contendo o mesmo valor ou diferentes valores, quando definimos o valor unbouded estamos definindo que esse campo uma sub tabela de dados e que abaixo dela viro varias linhas de dados com elementos distintos. Conforme o caso de uma interface esses parmetros so configurados para melhor atender uma integrao de dados.

33

Aps definido o seu data type, basta salva-lo e ativa-lo como foi feito no namespace atravs da aba change lists ou apenas clicando com o boto direito sobre a referencia ao seu data type ao lado esquerdo da tela e clicando na opo activate.

Message Type
Um Message Type o carregamento do data type em uma classe propriamente dita de acesso, ou seja, nesse momento a estrutura passa a no ser um tipo primitivo dos dados e sim um objeto de dados. Para se criar um Message Type basta clicar com o boto direito no subitem do seu SFWCV referente aos message types e selecionar New.

Logo em seguida exibida uma tela onde voc deve informar o nome do seu Message Type e uma descrio breve, o SFWCV e o namespace j iro ser preenchidos automaticamente, aconselhamos utilizar um prefixo para o nome do seu Message Type, mt_<Nome>, dessa maneira, durante a construo das inte rfaces ficar bem visvel o que so cada um dos objetos.

34

Clicando em Create a tela de configurao/criao do seu Message Type, para esse tipo de objeto no muito o que fazer, basta associa-lo um data type, para isso existem duas formas de ser feita, a mais pratica selecionar o data type direto da janela de navegao e arrasta-lo at o cone de uma mo ( simplesmente, nessa mesma regio, clicar no cone ) na regio Data Type Used ou

e navegar at o seu data type.

Aps selecionado o data type que pretende usar nesse message type notamos que, na parte da janela que mostra a estrutura de dados, que o nome da estrutura no mais a que estava no data type que foi criado e sim o do message type, o data type passou a ser um tipo de dado como por exemplo o xsd:string, apartir desse momento, todas as referencias essa interface sero feitas estrutura mt_<nome> inclusive referente a mapeamento de futuras transformaes de dados.

35

Para concluirmos a criao de um message type, basta salva-lo e ativa-lo como feito anteriormente.

Message Interface
Quando criamos uma integrao falamos muito em interface de integrao, uma interface a definio do tipo de mensagem que iremos trafegar tendo em vista, direo, se sncrona ou assncrona e estruturas. No ESR Builder as mensagens que chegam so tratadas como outbound, ou seja, mensagens de sado do servio que est enviando a mensagem, e inbound mensagem que esta sendo enviada para o sistema de destino da mensagem. Temos ainda o tipo abstract, esse tipo utilizado para a entrada em um integration process ( BPM ) que veremos mais a frente do que se trata. Definida a direo da mensagem ( outbound ou inbound ) devemos definir se ela sncrona ou assncrona. Entende-se por interface sncrona, toda aquela que quando disparada aguarda enquanto o sistema de destino devolva uma outra mensagem de concluso do processo e ou confirmao do recebimento e interface assncrona toda aquela interface que apenas recebe e envia os dados sem ficar aguardando o final da entrega da mensagem. Em uma integrao temos sempre os dois tipos de direo de interfaces, o outbound e o inbound, sendo trabalhados cada qual em seu momento, com exceo de interfaces com RFCs e IDOCs, tipos SAP de interfaces que esto previamente configurados, todas as outras integraes necessita de um message interface. Isso ocorre pois os prprios formatos IDOC e RFC j possuem sua definio como processo sncrono pela prpria SAP. Para criarmos um message interface basta selecionarnos dentro de nosso SFWCV o Interface Objects, expandir o menu, clicar com o boto direito na opo Message Interface e em seguida em New. 36

Ser exibida em seguida uma tela onde solicitado que coloquemos o nome que desejamos para o nosso message interface, uma breve descrio ( opcional ) o namespace e o nome do SFWCV, os dois ltimos sempre sero preenchidos automaticamente, coloque o nome como definido no inicio do curso com o prefixo mi_<sync ou assymc>_<direcao>_ .

37

Logo aps se clicar no boto Create nos ser apresentada a tela de configurao do nosso message interface como demonstrado abaixo.

Nas opes de atributos ( Attributes ) temos as seguintes opes: Categorias: 38

o o o

Inbound: mensagem que ser enviada para uma interface externa ao PI, pou seja, mensagem que ser enviada para um sistema Receiver no nosso cenrio. Outbound: mensagem que o PI esta recebendo para o processamento, ou seja, que est sendo enviada pelo sistema Sender do nosso cenrio. Abastract: tipo de interface de entrada para ccBPM ou Integration Process.

Mode: o Synchronous : Mensagem sncrona, onde, uma mensagem que enviada possui um tipo de dados de retorno obrigatoriamente. o Assynchronous: Mensagem sem necessidade de aguardar uma outra estrutura de retorno.

Aps escolhido o tipo da interface que se deseja trabalhar deve-se vincular um message type interface que estamos criando para isso basta seguir com o mesmo procedimento que utilizamos para vincular um data type um message type, selecionando o message type no menu do lado esquerdo da tela e arrastando o mesmo at o cone ou simplesmente se clicando no cone .

Caso voc tenha optado por criar uma interface sncrona necessrio que vc vincule um segundo message Type, para isso basta vc realizar o mesmo procedimento para se vincular o message type da primeira vez para o campo que aparece imediatamente abaixo do primeiro. Ao final, clique em salvar e ative a sua interface para concluir a configurao.

Mapping Objects
Aps criarmos os objetos de interfaces partimos para a parte mais importante do processo de construo da transformao das mensagens que chegam para o nosso integrador de sistemas. A transformao das mensagens ocorrem dentro do SAP PI podem ser feitas das seguintes maneiras: ABAP Mapping ( totalmente em desuso e provavelmente no estar mais disponvel no PI 7.3 ) XSLT Mapping : mapeando baseado em linguagem XML padro W3C, simples e poderosa ferramenta. Message Mapping: ferramenta de manipulao das estruturas de dados para sua transformao totalmente visual e mais utilizada no ambiente SAP PI. Java Mapping: mais poderosa ferramenta de transformao de dados disponibilizada no ambiente SAP PI Netweaver.

No nosso curso iremos nos atentar apenas a dois tipos de mapeamento: Message Mapping e Java Mapping, os demais tipos aconselhado pelo instrutor que sejam pesquisados fora da classe para que seja adicionado ao conhecimento que esta sendo passado. Cada transformao, ou grupos de transformao ( no caso de mensagens sncronas ) agrupada em interfaces de mapeamento Interface Mapping ). Os objetos de transformao ( message mapping, javammapping e interface mapping ) sero discutidos separadamente partir desse momento. 39

Message Mapping
O message Mapping a ferramenta mais utilizada e simples para se criar uma transformao de dados dentro do ambiente PI e alm do que, oferece uma grande quantidade de ferramentas que aumentam a produtividade de desenvolvimento das interfaces. Para se criar um massage mapping basta acessar o menu do seu SFWCV, expandir a opo Mapping Objects, selecionar a opo message Mapping, clicar com o boto direito e selecionar a opo New.

A primeira tela que disponibilizada segue o padro das que utilizamos para criar os interfaces Objects, voc deve informar o nome do seu Message Mapping, sugerimos nesse moemento utilizar o prefixo MM_ antes do nome do seu mapeamento mas isso facultativo, e uma descricao breve, os demais dados j viro preenchidos automaticamente. Clique em create.

40

A seguinte tela sera aprenstada, nela que faremos as configuracoes e os desenvolvimentos necessarios para a nossa transformao.

Em vermelho, na parte superior da tela, temos o cabealho do nosso objeto com as informaes do nome, status, namespace e SFWCV que ele pertence, al da descrio obviamente. 41

Em roxo, do lado direito, temos a estrutura ( message type ) que dar origem aos dados que sero transformados, ou seja, ser a estrutura que receberemos do sistema que est enviando a mensagem ao PI, em amarelo teremos a estrutura ( message type ) que deveremos gerar para ser enviado ao sistema que receber a mensagem ao final do processo. Em azul, na parte inferior da tela, temos a rea de desenvolvimento/relacionamento da integrao propriamente dita onde adicionamos a lgica para cada campo mapeado, simplesmente legando um campo ao outro, ou inserindo steps lgicos para que a mensagem seja convertida no formato esperado na estrutura de sada dos dados. E finalmente, em verde, na parte mais inferior da tela, temos as funes que podemos utilizar na rea de desenvolvimento, essas funes podem ser as default da SAP ou podemos criar nossas prprias utilizando a linguagem java, essas funes customizadas so chamadas de UDFs ( User Defined Functions ) e iremos aborda-las mais a frente no curso. Para comearmos realmente a meter a mo na massa e criar um mapeamento para a transformao dos dados basta selecionar o message type da estrutura que ser enviada pelo sistema de origem da mensagem e arrasta lo at o cabealho da rea roxa da figura, logo em seguida devemos prosseguir arrastando o message type referente estrutura que ser enviada ao sistema de destino da mensagem para o cabealho da rea em amarelo da figura, dessa maneira teremos disponvel os campos de cada uma das estruturas. Basicamente, para se passar o valor de um campo de uma estrutura para o outro, basta selecionar o campo e arrasta-lo at ele se posicionar sobre o campo que ele deve enviar ou receber os dados e soltar, automaticamente eles aparecero ligados na rea em azul. Dessa maneira, o dado que est chegando no lado esquerdo da tela e que est sendo enviado pelo sistema de origem da mensagem ser encaminhado automaticamente ao campo que ele est ligado do lado direito da mensagem e ser enviado ao ambiente de destino do processo. Caso os campos apenas precisem ser passados sem nenhum tratamento aos respectivos campos do lado direito ( receiver ), basta liga-los salvar e ativar o message mapping, dessa maneira a transformao dos nossos dados estar concluda.

Funes
A interface de desenvolvimento do message mapping possibilita que faamos um tratamento mais avanado das mensagens campo a campo que chegam em nosso ambiente de PI utilizando funes ( as standarts ou as customizadas conhecidas como UDF ). As funes standart so dividas em alguns grupos especficos: Text: funes para o tratamento de texto nesse grupo podemos encontrar ferramentas para obter uma parte especifica de um string ( substring ), juntar 1 ou mais campos em um nico ( concatenate), compara strings para verificar se so iguais ( equalsS), etc ... Arithmetic: funes para clculos matemticos como adio, subtrao, diviso, expoenciao, raiz quadrada, etc ... Statistic: funes para clculos estatiscos como totalizao, mdia, contagem e ndice. 42

Conversions: funes de converso, basicamente, dado um valor de entrada, ele busca em uma tabela de sistema ou uma pr-determinada o equivalente em valor. Date: funes para tratamento de data, como por exemplo, obter a data corrente ( currentDate ), transformao de data ( DateTrans), calculo de dias antes ( DateBefore ) e de depois ( DateAfter), comparao entre duas datas ( CompareDates ). Node Functions: tratamento especifico para cada node, verificao da existncia dele no xml de entrada, validao de formatos, etc ... Constants: Inclusao de constantes na lgica e ou obteno de constantes do sistema. Boolean: funes de tratamento lgicos incluindo tomadas de decises tipo IF, AND, NOT, etc ...

User Defined Functions


UDFs so funes construidas utilizando-se da linguagem Java pelo prprio usurio e que so somente disponveis para o message mapping que estivermos trabalhando. Basicamente ela recebe um quantidade X de parmetros que so sempre no formato String e retorna um nico parmetro String para o nosso mapeamento. Como se trata de uma insero ( injection ) de um cdigo java no nosso processo, podemos utilizar QUASE todas as ferramentas da verso JSDK 1.4 para interagir com sistemas externos ( chamar uma RFC por exemplo ou um 43

WebService ) para obter parmetros para o tratamento dos dados, podemos utilizar lgicas mais robustas e acessar variveis de ambiente. Como se trata de uma das ferramentas mais poderosas e que a SAP disponibiliza na construo de interfaces de integrao devemos utiliza-la com cautela, at porque, no existe maneira de debugar e no temos como verificar possveis erros lgicos em tempo de execuo e dessa maneira, quando a utilizamos, devemos criar processos de testes mais completos afim de verificar todas as possibilidades antes de liberarmos para o uso em produo. Para de criar uma UDF basta se clicar no cone localizado no canto inferior esquerdo da tela na barra de funes, ao se clicar nos ser apresentada a tela abaixo.

44

Nessa tela devemos informar o nome da funo no campo label, uma descrio breve ( opcional ) e os argumentos com os respectivos nomes, por default fornecido na tela um primeiro argumento com o nome a do tipo String, basta alterarmos o nome ( oopcional ) e ou adicionarmos mais clicando-se no cone .

Aps feita as configuraes acima basta se clicar em Create Function e a seguinte tela ser disponibilizada.

45

Na regio do campo imports devemos adicionar as bibliotecas java que iremos utilizar caso seja necess rio, caso contrrio, basta deixa-la em branco e no campo abaixo incluir o cdigo java que se deseja utilizar. Vale lembrar que esse editor bem simples, no tem critica a erros de sintaxe e ou nomes de variaveis, no edenta cdigo automaticamente e no oferece um menu de help, dessa maneira aconselho que seja utilizada uma EDI Java como o Eclipse para ser criar e testar o cdigo antes de se utilizar como UDF.

Interface Mapping
Nossas transformaes e message interfaces so agrupadas em um nico objeto, o Interface Mapping nele informamos o message interface que criamos, definindo assim se o tipo da nossa interface ( sncrona ou assncrona) as estruturas que sero utilizadas ( message types ) e as transformaes que sero utilizadas. Para criar uma Interface Mapping basta acessarmos o menu do nosso SFWCV expandir o nosso namespace, dentro dele acessar a opo Mapping Objects e dentro dela clicar com o boto direito do mouse no item Interface Mappings e escolher a opo New.

46

Ser apresentada uma tela onde devemos informar o nome do Interface Mapping que desejamos criar, aconselhase a usar o prefixo IM_ antes do nome que vamos utilizar, opcionalmente podemos colocar uma breve descrio sobre esse objeto e os campos namespace e SFWCV j estaro preenchidos automaticamente, cliq ue em Create e ser disponibilizada a tela para configurao do Interface Mapping.

47

Na tela de configurao devemos proceder da seguinte maneira: 1) Na rea em vermelho ao lado esquerdo da tela, devemos colocar o Message Interface do tipo output criado anteriormente e que ser a interface de origem dos dados que esto sendo enviados para a transformao do nosso cenrio de integrao, para isso podemos proceder de duas maneiras, ou selecionando o message interface desejado no menu ao lado esquerdo ou si mplesmente clicando no campo Name na linha que aparece dentro dessa area e selecionando o boto se navegando at o message interface que se deseja utilizar. que ser apresentado e

2) Na rea em amarelo ao lado direito da tela, devemos colocar o Message Interface do tipo input criado anteriormente e que ser a interface de destino dos dados que j sofreram transformao no nosso cenrio de integrao, para isso podemos proceder de duas maneiras, ou selecionando o message interface desejado no menu ao lado esquerdo ou simplesmente clicando no campo Name na linha que aparece dentro dessa area e selecionando o boto message interface que se deseja utilizar. que ser apresentado e se navegando at o

3) Aps os passos 1 e 2 deve-se clicar no boto read interface ( em azul na figura ) para que as configurao sejam lidas e os campos de Source Message e Target Message sejam preenchidos automaticamente. 4) Feito o passo 3, deve-se selecionar o Message Mapping disponivel para essa interface especifica clicandose no campo name que estar disponivel e selecionando o message mapping atravs do boto .

48

Aps realizados os passos descritos, basta salvar e ativar o Interface Mapping que foi criado. OBs.: caso seja uma interface sncrona, abaixo do boto Read Interface ser apresentado dois folders com o nome request e o outro com o nome response e sendo dessa maneira necessrio que se repita o passo 4 duas vezes, uma vez para cada folder.

Integration Scenarios & Integration Process Integration Scenario


Basicamente o Integration Scenrio um facilitados de configurao utilizado para aps as nossas interfaces estarem prontas no IR criarmos pacotes para automatizar o processo de criao dos cenrios no Integration Directory. O IS um fluxo da mensagem dentro no nosso cenrio com uma ao de incio e outra ao de final de processo, entre essas duas aes podem haver outras interligadas mas que seguem obrigatoriamente da de nicio, sendo chamada cada uma das aes especficas at a de final de processo.

Criando um Integration Scenario


Parar criarmos um novo Integration Scenario basta dentro do nosso SFWCV acessarmos o grupo Integration Scenario & Integration Process, expandir as opes e em seguida, na opo Integration Scenario clicar com o boto direito e selecionar a opo New.

49

Ser apresentada a tela incial de criao/configurao desse objeto exigindo que se informe o nome, que geralmente por conveno utilizamos o prefixo IS_<NOME>, e tambm existe a possibilidade de informarmos uma descrio breve sobre esse objeto ( no obrigatoriamente ).

Informando-se o nome e clicando no boto create ser disponibilizada a tela principal de criao/configurao do Integration Scenrio.

50

Nessa tela visualizamos vrias colunas, nessas colunas ns iremos adicion ar os Application Components que utilizaremos para definir o fluxo de aes, cada Apliccation Component uma referncia ao produto cadastrado no SLD que ser responsvel por conter a estrutura da mensagem que utilizaremos para a integrao. Para adicionar um aplication component, basta clicar em uma coluna que no tenha sido utilizada at o momento e em seguida com o boto direto do mouse selecionar a opo Insert Application Component .

Ser apresentada uma tela onde iremos selecionar o produto e as demais opes para criarmos uma coluna de Application Component.

51

Na opo Product Version ( que j vem selecionada por default ), iremos selecionar o nome de um dos produtos que utilizamos em nossas interfaces, lembrando que, nesse momento selecionamos o produto que contem a interface para a mensagem que iremos utilizar naquele momento para cada uma das aes. Podem ocorrer situaes em que um nico produto contenha todas as interfaces, nesse caso, ele ser inserido uma vez para cada ao que ser disparada em colunas diferentes. Logo aps selecionada a verso do produto que iremos trabalhar devemos selecionar o Software Component que estaremos vinculados em uma eventual ao a ser criada. E, por ltimo, damos um nome e uma descrio para o Application Component que estaremos criando. Caso seja um integration Process, devemos selecionar o IP 52

correspondente na pasta Integration Process . No final basta clicar em Apply que a coluna para qual criamos o Application Component estar vinculada ao componente.

Repita os passos descritos at que todos os applications compnents que sero necessrios estejam devidamente criados para comearmos com a criao das aes para definirmos o nosso integration scenrio como o exemplo abaixo demonstra ( nesse caso teremos apenas duas colunas de aes, caso estivessemos usando um integration process provavelmente haveriam mais colunas ).

53

Actions
Aps criado os application components em nsso integration scenrio devemos comecar a criar as aes ( actions ) que sero utilizados para definir os momentos de configurao de um cenrio de integrao. Para criarmos aes basta clicar com o boto direito em um application component e logo em seguida na opo Create Action.

Logo em seguida ser disponibilizada uma tela onde devemos informar qual o tipo de ao, se uma ao interna do nosso SFWCV ou se uma ao que chama uma interface de um outro SFWCV existente, no caso desse exemplo 54

tomemos como referncia uma interface interna do nosso SFWCV. Clique em Continue para prosseguir para a tela de configurao do Action.

Na tela seguinte ser pedido que seja criado um nome para o Action em questo, normalmente seguimos o padro com o prefixo AC_ antes do nome. Clique em Finish e prossiga com a criao do Action.

Ser apresentada a seguir a tela de configurao do Integration Scenario com uma caixa com o action que criamos, clique duas vezes sobre o action e a tela de configurao do mesmo ser apresentada.

55

Na tela de configurao do action, clique no boto Editar

, e insira a interface que ir ser utilizada ou dentro

do grupo de outbound interface ou de inbound interface, para isso, basta clicar no boto respectivo de cada um dos grupos, dessa maneira uma linha ser disponibilizada e para inserir a interface basta selecionar ela no menu Interface Objects ao lado esquerdo da tela e arrastar para cima da nova linha de maneira que ela fique completamente seleciona e soltar o objeto, automaticamente os campos de configurao dessa interface estaro preenchidos. Clique em salvar e retorne para a tela do integration scenario e repita esse procedimento para cada uma das aes que forem necessrias serem criadas lembrando que, caso as aes sejam sincronas sempre estaro no mesmo nivel no integration scenario, caso sejam assincronas estaro em nveis diferentes.

56

Aps criados todos os actions, no nosso exemplo estamos utilizando aes sincronas, devemos configurar qual delas a ao de nicio de processo e a de final, para isso basta clicar com o boto direito em cima de cada uma dela e selecionar se ela for de incio de processo ou de final de processo como demonstrado abaixo:

Para a ao que ser configurada como inicio do processo aparecer um ponto negro acima do action e para a que est configurada como final de processo, aparecer um ponto identico mas abaixo da ao. Aps definida a ao de inicio e de fim de processo devemos conectar as aes para isso, basta selecionar primeiramente a ao direita e aps isso a ao esquerda pressionando o boto shift do teclado e clicando-se 57

com o mouse sobre cada uma delas, logo aps basta cliclar novamente sobre as aes selecionados e selecionar a opo Create Connection....

As aes estamdo devidamente no nivel correto para seu tipo de sincronia ou assincronia, ao tentar realizar a conexo entre elas, apresentar a tela abaixo para se configurar a conexo entre elas:

58

Estando as interfaces de output e input corretamente selecionada entre as opes existentes ( podem haver mais de uma opo para cada tipo de interface dependendo da configurao do action ) devemos selecionar a aba Assign Mapping e selecionar o Interface Mapping Correspondente que foi criado anteriormente.

59

Caso tenhamos criado um Communication Channel Template ( vide prximo tpico como criar um CC template ), clique sobre a opo Assign Communication Channel Template e selecione os respectivos CCs que sero utilizados, caso contrrio poder pular essa etapa, caso for necessidade de se criar alguma documentao para acompanhar esse processo basta clicar na aba Documentation e inserir qualquer texto que desejar. Ao final clique em Apply e finalise o seu integration scenrio.

60

Salve e ative todos os objetos criados.

Communication Channel Template


Quando desejamos pr-configurar um communication channel a ser criado no ambiente do Directory para ser utilizado pelo nosso futuro cenrio de integrao podemos utilizar um template criado no ambiente do repository. Esse communication channel template deve estar associado ao nosso Integration Scenrio e dessa maneira, no momento de configurao do Scenrio poderemos gerar os devidos CCs que estiverem vinculados a ele. 61

Para se criar um Communication Channel Template basta acessar o menu Adapter Objects no seu Software Component Version e clicar com o boto direito na opo Communication Channel Template selecionando a opo New.

Aps selecionado o boto para criar um novo CC Template, uma tela ser disponibilizada para darmos um nome para esse objeto, normalmente usamos o prefixo CC_<Adap ter Type>_<SYNC OU ASSYNC>_<SENDER ou RECEIVER> antes do nome do nosso CC Template. Aps incluir o nome clique no boto Create.

62

Aps clicado para criar o objeto, uma tela de configurao do CC aparecer para que realizemos os parmetros de configurao muito similar tela de configurao do CC existente no Directory.

Basta selecionarmos o tipo de Adaptador ( SOAP, RFC, IDOC, HTTP, XI, FILE, etc), a direo da mensagem( sender ou receiver), o tipo de protocolo e o protocolo de mensagem, caso deseje configuraes mais especificas para o seu CC, basta clicar no boto de Attributes e selecionar os parmetros que deseja pr -configurar e aps isso clique em salvar e ao final ativar. 63

No esquea que ele s ser disponibilizado via um Integration Scenrio por isso, edite as configuraes de conexo entre os Actions correspondentes ao seus CCs templates e depois salve e ative o Integration Scenrio.

Integration Process

64