Undo com abapGit
Sabias que podes finalmente fazer alterações radicais num desenvolvimento sem medos porque há uma forma simples de desfazer todas essas alterações?
Até há pouco tempo não havia nenhuma forma decente de automatizar alterações em múltiplos objectos SAP. Todas as alterações tinham de ser feitas à mão ou de forma semi-automática, quanto muito recorrendo ao SAPlink que só suportava alguns tipos de objecto.
Como tal, se eu quisesse fazer uma experiência mais violenta no código que envolvesse modificar múltiplos objectos, pensava muito bem antes de a fazer pois, caso optasse por voltar para trás, teria de reverter tudo à mão. Era trabalhoso, desagradável e perigoso.
O abapGit veio mudar isso. Obrigado Lars Hvam! O git é um gestor de versões distribuído. E o abapGit é um projecto que tenta implementá-lo (dentro do possível) na realidade SAP.
O abapGit serve para muito mais do que o que vou ensinar aqui. Serve para gerir e distribuir versões de projectos, tanto internamente como na Internet. Mas lembrei-me de partilhar que também pode ser usado para esta tarefa específica: desfazer várias alterações num pacote.
Usei-o recentemente para isso mesmo porque estou a dar formação de ABAP e esta foi a melhor forma que encontrei para poder fazer e desfazer repetidamente uma série de alterações a um conjunto de objectos.
Para o conseguir pode recorrer-se a uma funcionalidade excelente do abapGit: repositórios offline. Funciona assim:
- No abapGit crias um repositório offline de um pacote que queiras alterar;
- Exportas o pacote para um ficheiro ZIP no teu computador local. Este será o teu código original, aquele para o qual poderás querer regressar;
- Fazes todas as alterações necessárias nos vários objectos desse pacote : cria, apaga e modifica objectos, sejam eles programas, objectos do DDIC ou outros;
- Arrepende-te e deseja voltar para trás;
- Volta ao abapGit, ao repositório que criaste. Importa o ZIP que guardaste anteriormente;
- Agora o abapGit deverá salientar todos os objectos que foram alterados e poderás analisar as diferenças entre o que tens no sistema (local) e o que importaste do ficheiro ZIP (remote);
- Faz Pull e diz que sim a tudo. O abapGit vai reverter todas as alterações. Todos os objectos do pacote voltaram a estar exactamente como estavam no momento em que criaste o ZIP. O que entretanto criaste será apagado, o que modificaste será revertido e o que apagaste será recriado.
Nota: claro que o mesmo pode ser conseguido utilizando repositórios online que são, aliás, a forma melhor de trabalhar com o abapGit. Mas para isso precisas de um servidor git que podes não ter à mão ou então podes estar impedido de usar por políticas de privacidade da empresa. E é aí que os repositórios offline te podem ajudar.
O Abapinho saúda-vos.