on 04-14-2009 3:17 AM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Movendo para o fórum de tecnologia.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.