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 campo
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 prefixo 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, sempre
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 subdomnio 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 na 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 ocorrncia 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 interfaces 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 arrastalo 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 necessrio, 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, clique 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 simplesmente 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 adicionar 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_<Adapter 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