Object Services – Parte 1

Olá abapeiros!

Como o próprio nome se refere, o ABAP101 tem por objetivo ajudar aqueles que estão se iniciando no mundo SAP/ABAP.

Apesar desta futura sequência de posts esperar que você possui conhecimentos em orientação a objetos, não quer dizer de forma alguma que ele trata de um assunto avançado.

ABAP Services nada mais são do que classes standard que disponibilizam serviços  que o ABAP Objects não é capaz de realizar sozinho. Estes serviços são três:

  • Serviço de Consulta: serve para consultar dados do banco.
  • Serviço de Persistência: serve para atualizar dados do banco.
  • Serviço de Transação (ou transacional): serve para manter o BD consistente (dentro das propriedades ACID).

Relembrando os tempos de Telecurso 2000,

“Vamos pensar um pouco…”


Sem o conhecimento ou uso de Object Services e utilizando ABAP procedural, como faríamos para:

1A) Consultar dados do banco?

Resposta: Ora, essa é bem fácil… Simplemente com o uso do comando SELECT.

2A) Atualizar dados do banco de dados

Resposta: Usando comandos como UPDATE, INSERT, DELETE MODIFY.

3A) Gerenciar transações (aqui me refiro a transações de banco de dados)

Resposta: Comandos COMMIT WORKROLLBACK WORK.


Ainda sem o conhecimento ou uso de Object Services e mas utilizando ABAP Objects, como poderiamos fazer para:

1B) Consultar dados do banco?

Resposta: Criar uma classe Z com métodos para buscar dados. Basicamente seria o comando SELECT encapsulado no método e sofisticando um pouco um tratamento de exceção caso a consulta não tenha sucesso.

2B) Atualizar dados do banco de dados

Resposta: Criar uma nova classe Z ou utilizar a mesma, agora com métodos que encapsulam os comandos UPDATE, INSERT, DELETE e MODIFY.

3B) Gerenciar transações (aqui me refiro a transações de banco de dados)

Reposta: Essa creio que seja mais difícil de encontrar e ainda mais de gerar valor no código: encapsular os comandos COMMIT WORK e ROLLBACK.


Parando um pouco, pense por 1 minuto quais seriam as diferenças entre essas duas abordagens. Depois, de ler o post inteiro, comente com suas opiniões.

Agora sim, com o conhecimento de ABAP ObjectsABAP Services e deste post, como faríamos para:

1C) Consultar dados do banco?

Resposta: Utilizando as classes CL_OS_QUERY* e as interfaces IF_OS_QUERY*.

2C) Atualizar dados do banco de dados

Resposta: Utilizando classes persistentes e seus agentes.

3C) Gerenciar transações (aqui me refiro a transações de banco de dados)

Resposta: Utilizando as classes CL_OS_TRANSACTION* e as interfaces IF_OS_TRANSACTION*.


Claro, como o blog ABAP101 ajuda iniciantes em ABAP, lhe daremos a oportunidade de pesquisar, estudar, fuçar, programar por conta própria antes de começar a efetivamente colocar a mão na massa.

Veja as classes e interfaces citadas na transação SE24. Use o where-used na sua empresa ou no mini sap recentemente instalado no seu computador para saber quais objetos sap usam tais classes e interfaces. Consulte a documentação oficial, a SDN, aquele tal de google ou bing e se você quiser dar um passo além leia o livro próprio do assunto da SAP Press.

Um abraço, boa semana e aguardem pelo próximo post do assunto!

Fábio Pagoti

Formado em Sistemas de Informação pela Universidade de São Paulo. Comecei no mundo da programação com Java mas logo caí no mundo ABAP. Estagiei na Nestlé por 2 anos e foi lá onde conheci o Furlan. Depois de efetivado fui morar no Canadá por 1 ano onde pude aprender a área de testes em desenvolvimento de software. Hoje sou consultor e instrutor ABAP, amante de projetos Open Source, Wordpress, Data Mining e da esfera SAP. Siga-me no twitter: @fabiopagoti

Você pode gostar...