Escolar Documentos
Profissional Documentos
Cultura Documentos
No centro de qualquer modelo orientado a objeto esto os objetos, que contm atributos (dados) e
mtodos (funes). Objetos deveriam permitir programadores a mapear um problema real e suas
solues propostas do software em uma base um-por-um. Objetos tpicos no ambiente de negcios
so, por exemplo, consumidor, ordem, ou pedido. Da release 3.1 em diante, o Business Object
Repository (BOR) contm exemplos de tais objetos. O objeto modelo dos objetos ABAP, a
extenso orientada a objeto do ABAP, compatvel com o objeto modelo do BOR.
Antes do R/3 Release 4.0, o equivalente mais prximo de objetos no ABAP eram mdulos de
funes e grupos de funes. Suponha que tenhamos um grupo de funes para processar
ordens. Os atributos de uma ordem correspondem ao dados globais do grupo de funo, enquanto
os mdulos funes individuais representam aes que manipulam aqueles dados (mtodos). Isto
significa que a verdadeira ordem dos dados encapsulada no grupo de funes. Deste modo, os
mdulos de funes podem garantir que os dados so consistentes.
Quando voc executa um programa ABAP, o sistema inicia uma nova sesso interna. A sesso
interna tem uma area de memria que contm o programa ABAP e os dados associados. Quando
voc chama um mdulo de funo, uma instance desse grupo de funes mais seus dados,
carregado na memria da sesso interna. Um programa ABAP pode carregar vrias instncias
atravs da chamda de mdulos de funes de diferentes grupos de funes.
A instncia de um grupo de funes na area de memria de uma sesso interna quase representa
um objeto no senso de orientao a objeto. Quando voc chama um modulo de funo, o
programa chamador usa a instncia de um grupo de funes, baseada na descrio usada no
Function Builder. O programa no pode acessar os dados no grupo de funes diretamente, mas
Ao invs de carregar uma nica instance de um grupo de funes dentro de uma memria implcita
quando um modulo chamado, o programa ABAP pode agora gerar as instances de classes
explicitamente usando o novo comando ABAP CREATE OBJECT. As instances individuais
represnetam objetos nicos. Voc enderea estes usando referencias a objetos. As referncias
aos objetos permitem que o programa ABAP acesse as interfaces das instances.
Exemplo
O exemplo a seguir demonstra o aspecto orientado a objeto de grupo de funes no simples caso
de um contador.
Local Interface
FUNCTION SET_COUNTER.
IMPORTING VALUE(SET_VALUE)
COUNT = SET_VALUE.
ENDFUNCTION.
FUNCTION INCREMENT_COUNTER.
ADD 1 TO COUNT.
ENDFUNCTION.
Local Interface
FUNCTION GET_COUNTER.
EXPORTING VALUE(GET_VALUE)
GET_VALUE = COUNT.
ENDFUNCTION.
O grupo de funes tem um campo inteiro global COUNT, e trs mdulos de
funes, SET_COUNTER, INCREMENT_COUNTER, e GET_COUNTER, que
trabalham com o campo. Dois dos mdulos de funes tm parmetros de sida e
de entrada. Estes formam a interface de dados do grupo de funes.
Qualquer programa ABAP pode ento trabalhar com este grupo de funes.
Exemplo:
DATA NUMBER TYPE I VALUE 5.
CALL FUNCTION 'SET_COUNTER' EXPORTING SET_VALUE = NUMBER.
DO 3 TIMES.
CALL FUNCTION 'INCREMENT_COUNTER'.
ENDDO.
CALL FUNCTION 'GET_COUNTER' IMPORTING GET_VALUE = NUMBER.
Aps esta seo do programa tiver sido processada, a varivel do programa
NUMBER ter valor 8. O programa ele prprio no pode acessar o campo COUNT