Anda di halaman 1dari 5

A Hora do Pesadelo - Transporte de

Requests
Fala moada! Meu primeiro post do ano, e claro que eu quero comear desejando um excelente 2015, com muita paz, sade,
sucesso e muito debug pra vocs!
Bom, agora vamos aos trabalhos
Imagine a seguinte situao: faltam dois dias para o Go-live e voc precisa verificar a lista de transporte de requests. Ento
voc descobre que existem centenas de requests, com milhares de objetos. Logo no comeo da lista voc percebe que est
uma baguna. Dependncias entre requests que no esto na lista, alguns transportes no so mais necessrios, mas as
mudanas no foram revertidas no ambiente, alguns transportes emergenciais j foram feitos para produo, e assim vai E
mesmo depois de tudo isso, quando os transportes foram finalmente liberados, surge aquele erro que causa tristeza e
depresso:
ENCERRADO COM CDIGO DE RETORNO:

===> 8 <===.

Pois , meu caro amigo zumbi, isso tambm j tirou o sono de muita gente. impossvel muito difcil garantir que todas as
requests sero transportadas para a produo sem problemas, e quanto maior a lista, maiores so as chances de erros.
Limpar toda a baguna demora muito tempo e muito chato. O que fazer ento? A dica mais valiosa que eu dou :
SEJA ORGANIZADO
Isso mesmo! A maioria dos problemas podem ser evitados se voc ficar bem atento ao criar a lista de transportes e organizlos corretamente antes de liber-los. Mas ningum perfeito, no mesmo?
Se voc no to organizado assim e se atrapalha com as dependncias, a dica que eu vou dar agora pode te ajudar.
Acesse a transao SE03 (Transport Organizer) e selecione a opo Exibir/modificar atributos da ordem na pasta
Administrao:

Crie um novo atributo que voc vai usar para gravar o nmero da request que deve ser transportada antes:

Agora, se voc criar/ alterar uma request (transao SE01), na aba Caracts., o atributo que voc acabou de criar pode ser
preenchido no campo Atributo e o nmero da request no campo Valor:

Pronto! Agora quando voc (ou qualquer outra pessoa) for liberar a request para transporte, pode verificar quais so as
requests que devem ser liberadas primeiro atravs do atributo que voc criou. Mas e se algum esquecer de verificar antes
de liberar? Voc pode automatizar esse processo implementando o mtodo CHECK_BEFORE_RELEASE da BADI
CTS_REQUEST_CHECK. Basicamente, fazemos uma validao se as requests relacionadas ao atributo j foram liberadas.

Mas os problemas no so apenas em relao ordem de transporte. Podem existir outros problemas, como por exemplo,
outros projetos que utilizam o mesmo objeto ou verses diferentes entre os ambientes de produo e desenvolvimento. Voc
precisa estar sempre atento para essas situaes.
Como regra geral, User- Exits devem sempre ser transportados separadamente. A mesma regra se aplica para elementos DDIC
que podem ou sero usados em vrios objetos.
Outras consideraes que devemos fazer: o grupo de funo precisa ser transportado ou apenas a funo? A classe completa
dever ser transportada ou apenas a implementao do mtodo? O programa completo (incluindo textos e documentao)
dever ser transportado ou apenas o cdigo do relatrio? Manter a lista de transporte limpa e simples pode evitar uma dor de
cabea mais tarde.
Vou listar aqui alguns erros comuns que podem acontecer nos transportes:

Perda de funcionalidade na produo (se um transporte mais recente sobrescrito);

Transportar cdigo para produo que ainda no foi testado;

Objetos dependentes de elementos DDIC (Data Dictionary) que esto em desenvolvimento, mas no em produo
(gerando DUMPs).
Agora, imagina um projeto que durou mais de um ano, onde vrios desenvolvedores trabalharam nele e cada um fez uma lista
de transportes. E adivinha quem vai verificar a lista inteira? VOC, claro! Mas calma! Antes que voc vire um zumbi comedor de
crebro, vou te mostrar algumas ferramentas que podem te ajudar um pouco nessa difcil misso.
Para fazer o acompanhamento das requests, eu acho bem legal esse programa: Transport Trace. um relatrio ALV que
mostra os status das requests e o progresso dos transportes. Se voc tem uma lista enorme de requests para monitorar, eu
recomendo!

Na minha busca pelo SCN encontrei esse programa que verifica se algum objeto est faltando no transporte. Fiz um teste bem
simples, onde criei uma tabela em uma request e o elemento de dados local. Executei o programa analisando a request e ele
detectou o erro sem problemas.

Uma outra ferramenta que eu testei foi a ZTCT Transport Checking Tool (disponvel AQUI), que faz uma anlise mais
elaborada, como por exemplo, as verses dos objetos.

Ateno: esses programas no detectam erros complexos, mas podem te ajudar a analisar a lista de transporte.
E o Transporte de Cpias?
Isso veio para ajudar (e muito) o nosso lado. Se voc ainda no sabe o que , se liga.
Vamos imaginar um sistema padro com 3 ambientes: Desenvolvimento (DEV) Qualidade (QAS) e Produo (PRD).
Normalmente, todo seu trabalho feito no ambiente de DEV e quando voc libera a request para transporte, o sistema
assume que ser transportado para QAS e depois para PRD. Mas no mundo real sabemos que no bem assim, pois nem
todos os transportes iro para PRD devido correo de bugs, mudanas de escopo, etc.
Por esta razo foi criado o Transporte de Cpias. Um transporte de cpias vai passar a verso mais recente do objeto de DEV
para QAS, mas no vai assumir que ser transportado para PRD. Portando ele transporta uma cpia do objeto e assume que
seu destino final QAS.
Tambm por esse motivo voc precisar criar apenas uma nica request e fazer quantos transportes de cpias forem
necessrios para testes em QAS. Voc s precisar liberar a request quando quiser realmente transportar para PRD. Dessa
forma reduzimos a quantidade de transportes desnecessrios e a criao de vrias requests para o mesmo objeto. Lembre-se
de que quanto maior o nmero de transportes, mais dependncias voc dever verificar e, portanto, maiores os riscos de
importao de transportes para produo.
Resumindo
No final das contas, o verdadeiro truque ter cuidado desde o incio. Verifique antes de liberar as requests no ambiente de
desenvolvimento. Organize-as corretamente e tente pensar no futuro. Isso pode evitar um monte de problemas. E para fazer
isso, uma ferramenta de verificao de transporte pode vir a calhar. Sempre tenha em mente que a responsabilidade pelos
transportes so dos desenvolvedores que criaram os objetos e que tem uma ideia melhor do que foi alterado e porqu.
E se voc conhece outra ferramenta ou tem algumas dicas para organizar a lista de transporte, compartilha a com a gente!
Valeuuuuuuuuuu galera!

Anda mungkin juga menyukai