No modelo de programação de aplicação ABAP RESTful, um business object define uma determinada entidade, como uma agência de viagens. Sua definição tem duas partes; uma ou mais visões CDS, que definem a estrutura do objeto ou, em outras palavras, os campos que ele contém, e uma definição de comportamento, que descreve o que você pode fazer com o business object.

A definição de comportamento indica quais das operações padrão, criar, atualizar, eliminar são permitidas. Ele também pode conter a definição de validações, determinações e ações. As validações verificam se os dados estão corretos quando você cria ou atualiza um registro. As determinações modificam instâncias de business objects com base em condições de acionamento. As ações são operações não padrão que você usa para fornecer comportamento personalizado, específico da lógica empresarial. Aprovar um pedido ou cancelar um voo são atividades que você implementaria como uma ação.
A implementação de comportamento é composta por uma ou mais classes ABAP. Aqui, as validações, determinações e ações são implementadas. Quando se trata de operações padrão, o modelo distingue dois cenários de implementação: no cenário de implementação não administrada, criar, atualizar e excluir são implementados na implementação de comportamento. No cenário de implementação administrado, o tempo de execução cuida deles.
Os business objects são normalmente utilizados para fornecer a lógica transacional para apps de elementos Fiori ou APIs da Web. No entanto, você também pode acessá-los a partir da codificação ABAP usando a Entity Manipulation Language (EML). Este é um conjunto de instruções ABAP que permite a você criar, ler, atualizar e excluir dados usando business objects.
Nota
O EML também pode acessar os dados da aplicação a partir da implementação de comportamento de um business object.

Neste capítulo, você criará uma classe que utiliza um business object para modificar dados da agência de viagens. A entidade de visão contém o campo-chave AgencyID e vários outros campos que contêm informações sobre a agência de viagens.
Definição e implementação de comportamento

Existem duas partes do comportamento de um business object: a definição de comportamento e a implementação de comportamento. A definição de comportamento contém informações sobre o que o business object pode efetuar, enquanto a implementação de comportamento contém a codificação real que o sistema executa.
A implementação de comportamento é uma classe ABAP. Você declara a classe na definição de comportamento na instrução managed implementation in class <class> unique. A codificação real da implementação de comportamento está contida em uma classe local dentro da classe global que você indica.

Uma definição de comportamento é um componente essencial de um business object. Ele descreve quais das operações padrão são permitidas, por exemplo, criar, atualizar, excluir. Ele também define verificações (validações) que são executadas quando você cria ou modifica dados.
O exemplo aqui é a definição de comportamento para a agência de viagens. No início da definição, você pode ver o nome da visão CDS que acabamos de ver e que há um alias definido para ela. Isso é importante, uma vez que é o nome do alias que é usado para abordar a entidade com EML.
A definição de comportamento também liga a entidade CDS à tabela de banco de dados na qual os dados são armazenados. Neste caso, o business object utiliza duas tabelas: uma para dados ativos e uma para esboços (dados que estão incompletos e não foram verificados). Também existem informações relevantes para bloquear os dados, verificações de autorização e controle de processamento paralelo. Não vamos analisar essas informações em profundidade - você só precisa saber que o tempo de execução pode cuidar desses problemas. Você também pode gerar entidades CDS e definições de comportamento com base na definição de uma tabela de banco de dados e, neste caso, o bloqueio, as verificações de autorização e os controles simultâneos são tratados automaticamente.

A classe global da implementação de comportamento (também conhecida como pool de comportamento) é somente uma definição de classe vazia com o suplemento especial FOR BEHAVIOR OF seguido pelo nome da definição de comportamento. A implementação real da definição de comportamento é uma classe local dentro da definição de classe global. Você acessa a classe clicando na guia Tipos locais.
A implementação de comportamento contém um código específico do business object, por exemplo, a implementação para validações, determinações e ações. Se ele também contém código para as operações padrão (criar, atualizar, excluir e bloquear) depende dos detalhes da definição de comportamento. A implementação de comportamento para o nosso business object não contém o código para as operações padrão. Isso ocorre porque o business object usa o tipo de implementação administrada no qual o tempo de execução lida com as operações padrão.

Uma validação é uma verificação que o tempo de execução executa quando os dados são modificados. Aqui, a validação é sempre executada quando um novo registro é criado (acionador create;) Se um registro existente for modificado, a validação só é executada se o campo Nome tiver sido modificado (acionador field Name;).
As validações são definidas na definição de comportamento. Para cada validação, existe um método correspondente na implementação de comportamento.

