En el modelo de programación de aplicaciones ABAP RESTful, un business object define una entidad en particular, como una agencia de viajes. Su definición tiene dos partes: una o más vistas CDS, que definen la estructura del objeto o, en otras palabras, los campos que contiene, y una definición de comportamiento, que describe lo que puede hacer con el business object.

La definición de comportamiento especifica qué operaciones estándar, crear, actualizar y borrar están permitidas. También puede contener la definición de validaciones, determinaciones y acciones. Las validaciones verifican que los datos sean correctos al crear o actualizar un registro. Las determinaciones modifican instancias de business objects basadas en condiciones desencadenantes. Las acciones son operaciones no estándar que se utilizan para proporcionar un comportamiento personalizado y específico de la lógica empresarial. La aprobación de un pedido o la cancelación de un vuelo son actividades que implementaría como acción.
La implementación de comportamiento consta de una o más clases ABAP. Aquí se implementan las validaciones, determinaciones y acciones. Cuando se trata de las operaciones estándar, el modelo distingue dos escenarios de implementación: en el escenario de implementación no gestionado, crear, actualizar y borrar se implementan en la implementación de comportamiento. En el escenario de implementación gestionada, el tiempo de ejecución se encarga de ellas.
Los business objects se suelen utilizar para proporcionar la lógica de transacción para las aplicaciones de elementos Fiori o las API web. Sin embargo, también puede acceder a ellos desde la codificación ABAP utilizando Entity Manipulation Language (EML). Este es un conjunto de sentencias ABAP que le permite crear, leer, actualizar y borrar datos mediante business objects.
Nota
EML también puede acceder a los datos de aplicación desde dentro de la implementación de comportamiento de un business object.

En esta unidad, creará una clase que utiliza un business object para modificar los datos de la agencia de viajes. La entidad de vista contiene el campo clave AgencyID y otros campos que contienen información sobre la agencia de viajes.
Definición e implementación de comportamiento

Hay dos partes en el comportamiento de un business object: la definición de comportamiento y la implementación de comportamiento. La definición de comportamiento contiene información sobre lo que puede hacer el business object, mientras que la implementación de comportamiento contiene la codificación real que ejecuta el sistema.
La implementación de comportamiento es una clase ABAP. La clase se declara en la definición de comportamiento en la sentencia managed implementation in class <class> unique. La codificación real de la implementación de comportamiento se encuentra en una clase local dentro de la clase global que especifique.

Una definición de comportamiento es un componente esencial de un business object. Describe cuáles de las operaciones estándar están permitidas, por ejemplo, crear, actualizar, borrar. También define verificaciones (validaciones) que se realizan al crear o modificar datos.
El ejemplo es la definición de comportamiento para la agencia de viajes. Al principio de la definición, puede ver el nombre de la vista CDS que acabamos de ver y que hay un alias definido para ella. Esto es importante, ya que es el nombre alias que se utiliza para direccionar la entidad con EML.
La definición de comportamiento también vincula la entidad CDS con la tabla de base de datos en la que se almacenan los datos. En este caso, el business object utiliza dos tablas: una para datos activos y otra para borradores (datos incompletos y no verificados). También hay información relevante para bloquear los datos, las verificaciones de autorización y el control de concurrencia. No vamos a analizar esta información en profundidad, solo tiene que saber que el tiempo de ejecución puede ocuparse de estos problemas. También puede generar entidades CDS y definiciones de comportamiento basadas en la definición de una tabla de base de datos y, en este caso, el bloqueo, las verificaciones de autorización y los controles de concurrencia se tratan automáticamente.

La clase global de la implementación de comportamiento (también conocida como pool de comportamientos) es solo una definición de clase vacía con el suplemento especial FOR BEHAVIOR OF seguido del nombre de la definición de comportamiento. La implementación real de la definición de comportamiento es una clase local dentro de la definición de clase global. Puede acceder a la clase haciendo clic en la pestaña Tipos locales.
La implementación de comportamiento contiene un código específico del business object, por ejemplo, la implementación para validaciones, determinaciones y acciones. Si también contiene código para las operaciones estándar (crear, actualizar, borrar y bloquear) depende de los detalles de la definición de comportamiento. La implementación de comportamiento para nuestro business object no contiene código para las operaciones estándar. Esto se debe a que el business object utiliza el tipo de implementación gestionado en el que el tiempo de ejecución se ocupa de las operaciones estándar.

Una validación es una verificación que realiza el tiempo de ejecución cuando se modifican los datos. Aquí, la validación siempre se realiza cuando se crea un nuevo registro (desencadenador create;). Si se modifica un registro existente, la validación solo se realiza si se ha modificado el campo Nombre (desencadenador field Name;).
Las validaciones se definen en la definición de comportamiento. Para cada validación, existe un método correspondiente en la implementación de comportamiento.

