Programas Include permitem que você gerencie programas complexos de uma forma ordenada. Os grupos funcionais e módulo usam programas Include para armazenar as partes do programa que pertencem um ao outro. O ABAP Workbench o apoia extensivamente ao criar tais programas complexos, criando os programas Includes automaticamente, atribuindo-lhes nomes exclusivos.
Os Includes permitem que você use o mesmo código fonte em diferentes programas. Por exemplo, isso pode ser útil se você tiver declarações de dados longas que você deseja usar em programas diferentes. Você pode por exemplo utilizar programas Includes para criar uma biblioteca de classes locais, eventos PBO, eventos PAI, procedimentos Forms entre outros, ou quando você queira organizar melhor seu código fonte.
Entretanto os programas Includes possuem duas restrições: programas Includes não podem chamar a si mesmo e devem conter declarações completas, deste modo não é possível separar em programas Includes a definição de uma classe de sua implementação em arquivos de código fonte diferentes, assim como é de boa pratica em C++, já que ABAP OO foi baseado nesta linguagem, principalmente explicitando deste modo a separação da sintaxe entre a definição de uma classe e a implementação. Mas deveria, certo?
Os Includes são programas do tipo I – são um meio de dividir o código do programa em unidades menores e mais manejáveis. É possível inserir a codificação de um programa Include, em qualquer ponto de outro programa ABAP usando a instrução Include. Não há nenhuma relação técnica entre programas Includes e blocos de processamento. Includes são mais adequados para as unidades de programação lógicas, tais como declarações de dados ou conjuntos de blocos de processamento similares.
Exemplo:
Neste exemplo criamos um programa ABAP comum chamado ZMEUINCLUDE e um programa do tipo I, chamado ZINC_DEF, onde o programa include contem uma classe e o programa principal chama seu método estaticamente.
Abap
Programa – Principal
*&---------------------------------------------------------------------* *& Report ZMEUINCLUDE *& *&---------------------------------------------------------------------* *& Desenvolvimento Aberto *& Include - Modularization Techniques *&---------------------------------------------------------------------* REPORT ZMEUINCLUDE. * Chama o programa include INCLUDE ZINC_DEF. START-OF-SELECTION. * Instancia estatica do objeto HELLO=>OLA( ).
Programa – Include
*&---------------------------------------------------------------------* *& Desenvolvimento Aberto *&---------------------------------------------------------------------* *& Include: ZINC_DEF *&---------------------------------------------------------------------* * Definição da classe CLASS hello DEFINITION. PUBLIC SECTION. CLASS-METHODS Ola. ENDCLASS. * Implementação da classe CLASS hello IMPLEMENTATION. METHOD ola. Write 'Hello World Include'. ENDMETHOD. ENDCLASS.