cancel
Showing results for 
Search instead for 
Did you mean: 

Mudança na estrutura de um serviço

Former Member
0 Kudos

Boa noite pessoal,

Nao conhecia esse forum em Portugues, parabens a SAP!

Minha duvida é a seguinte: meu cliente tem um serviço (web service) que é acessado por vários parceiros/clientes. Agora precisamos alterar o serviço (adicionando campos), mas estamos com receio do impacto dessa alteração. A pergunta é simples: Voces ja passaram por essa situacao? como fizeram pra atualizar?

Obrigado,

Leonardo Santana

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Leonardo,

Avalie a possibilidade de criar um serviço intermediário que adapte a interface do serviço legado para a nova. Contudo, cuide pra que os clientes do seu serviço sejam notificados sobre esta mudança, marque seu serviço como depreciado (veja as opções do seu landscape, está usando ESR?) alertando a mudança nos próximos releases.

Acho que assim você evita manter duas versões de um serviço e não "quebra" os processos existentes. Atente-se também para a diferença entre interfaces públicas e publicadas (public/published). Tem um artigo do Fowler que pode ajudar a entender - apesar de tratar interfaces como recurso de linguagem, creio que a explicação é válida também nesse contexto.

[]s

Laércio Queiroz

http://laercioqueiroz.wordpress.com

Former Member
0 Kudos

obrigado Laercio!!

Vou fazer dessa forma mesmo e valeu pelo link, bem interessante.

abraco,

Leonardo

Answers (2)

Answers (2)

henrique_pinto
Active Contributor
0 Kudos

Movendo para o fórum de tecnologia.

henrique_pinto
Active Contributor
0 Kudos

Leonardo,

os servicos sao baseados nos Global Data Types (GDTs), que sao definidos pela propria SAP e incorporam basicamente todas as informacoes que sao tratadas pelas aplicacoes SAP!

Se ainda assim, vc tem campos que nao sao cobertos por determinado servico/GDT, imagino q esses campos sao campos Z, ou nao?

A alternativa que a SAP recomenda para customizacao de servicos é a utilizacao do CAF (Composite Application Framework), framework que faz parte do CE 7.1. O que vc poderia fazer era criar um servico customizado que incluiria mais campos do que o standard. Dentro do codigo desse servico customizado, vc poderia chamar o servico standard + chamar um outro servico com os campos extras.

Se alternativamente vc precisa passar os campos extras na mesma transacao, entao talvez vc precise replicar a funcionalidade (codigo) do servico standard dentro do seu.

Att.

Henrique.

Former Member
0 Kudos

Henrique:

obrigado pela resposta, mas nao eh um servico da SAP! Eh um servico Z, especifico do negocio do cliente.

mesmo assim, fiquei curioso agora... como isso me ajudaria a nao quebrar os processos que ja utilizam meu servico (web service)? Ja que eu mudaria sua interface, entende? Entendi a solucao do Laercio e me parece a melhor saida ate agora.

abraco,

Leonardo

henrique_pinto
Active Contributor
0 Kudos

A idéia por traz do CAF é simplificar (ou customizar) serviços já existentes para outros usos especificos. Por exemplo, um servico existente tem 1000 campos, vc quer expor o servico para uma aplicacao mas expondo apenas 10 campos. Vc pode entao desenvolver um servico sobre o CAF q é nada mais do que uma simplificacao do servico existente (com field mapping etc).

Outra possibilidade seria vc expor n serviços diferentes como um unico serviço. Dentro do seu novo servico, vc chamaria os servicos existentes de acordo com a necessidade do processo de negocio.

No seu caso, em vez de uma simplificacao seria uma extensao, mas a ideia seria a mesma.

O CAF nao cria um novo conceito, a ideia é a mesma do q o Laercio falou, mas ele te provê um framework pra fazer isso de maneira rapida e facil (e, principalmente, de facil manutencao).

Abs,

Henrique.

Former Member
0 Kudos

Leonardo,

Digamos que o Laércio e Henrique fizeram uma parceria excelente nesse caso :-). Laércio mostrou como fazer independente da tecnologia utilizada e o Henrique mostrou muito bem como utilizar os recursos SAP para tal. Atualmemte tenho uma série de serviços utilizando exatamente o que o Henrique descreveu utilizando o CAF. Inclusive precisei fazer refactoring no "meio do caminho" usando a técnica descrita pelo Laércio dentro do CAF, ou seja criei um novo método com os parâmetros que precisava e passei a chamar o método antigo.

Caso queira usar o CAF vai suprir suas necessidades. Estou usando em situação real.

[]'s

Isaías Barroso

Belo Horizonte - MG

Former Member
0 Kudos

Vlw pessoal!

Tenho certeza que este forum sera um sucesso!

abracos,

Leonardo Santana