Dans le modèle de programmation d'applications ABAP RESTful, un objet de gestion définit une entité particulière, telle qu'une agence de voyages. Sa définition comporte deux parties : une ou plusieurs vues CDS, qui définissent la structure de l'objet ou, en d'autres termes, les zones qu'elle contient, et une définition de comportement, qui décrit ce que vous pouvez faire avec l'objet de gestion.

La définition du comportement indique les opérations standard, la création, la mise à jour et la suppression autorisées. Il peut également contenir la définition des validations, des déterminations et des actions. Les validations vérifient que les données sont correctes lorsque vous créez ou mettez à jour un enregistrement. Les déterminations modifient les instances des objets de gestion en fonction des conditions de déclenchement. Les actions sont des opérations non standard que vous utilisez pour fournir un comportement personnalisé spécifique à la logique métier. L'approbation d'une commande d'achat ou l'annulation d'un vol sont des activités que vous implémenteriez en tant qu'action.
L'implémentation de comportement se compose d'une ou de plusieurs classes ABAP. Les validations, déterminations et actions sont implémentées ici. En ce qui concerne les opérations standard, le modèle distingue deux scénarios d'implémentation : dans le scénario d'implémentation non géré, la création, la mise à jour et la suppression sont implémentées dans l'implémentation de comportement. Dans le scénario d'implémentation géré, la durée d'exécution s'en charge.
Les objets de gestion sont couramment utilisés pour fournir la logique transactionnelle pour les applications d'éléments Fiori ou les API Web. Cependant, vous pouvez également y accéder à partir du codage ABAP à l'aide du Entity Manipulation Language (EML). Il s'agit d'un ensemble d'instructions ABAP qui vous permet de créer, lire, mettre à jour et supprimer des données à l'aide d'objets de gestion.
Remarque
EML peut également accéder aux données d'application à partir de l'implémentation de comportement d'un objet de gestion.

Dans ce chapitre, vous allez créer une classe qui utilise un objet de gestion pour modifier les données de l'agence de voyages. L'entité de vue contient la zone clé AgencyID et diverses autres zones contenant des informations sur l'agence de voyages.
Définition et implémentation de comportement

Il existe deux parties au comportement d'un objet de gestion : la définition du comportement et l'implémentation du comportement. La définition de comportement contient des informations sur ce que l'objet de gestion peut faire, tandis que l'implémentation de comportement contient le codage réel que le système exécute.
L'implémentation de comportement est une classe ABAP. Vous déclarez la classe dans la définition de comportement dans l'instruction managed implementation in class <class> unique. Le codage réel de l'implémentation de comportement est contenu dans une classe locale dans la classe globale que vous indiquez.

Une définition de comportement est un composant essentiel d'un objet de gestion. Il décrit les opérations standard autorisées, par exemple la création, la mise à jour, la suppression. Il définit également les contrôles (validations) qui sont effectués lorsque vous créez ou modifiez des données.
L'exemple ici est la définition de comportement pour l'agence de voyages. Au début de la définition, vous pouvez voir le nom de la vue CDS que nous venons d'examiner et qu'un alias est défini pour celle-ci. Cela est important car il s'agit du nom d'alias utilisé pour adresser l'entité avec EML.
La définition de comportement lie également l'entité CDS à la table de base de données dans laquelle les données sont stockées. Dans ce cas, l'objet de gestion utilise deux tables : une pour les données actives et une pour les versions préliminaires (les données sont incomplètes et n'ont pas été contrôlées). Il existe également des informations pertinentes pour le blocage des données, les contrôles des autorisations et le contrôle d'accès simultané. Nous n'allons pas examiner ces informations en profondeur - il vous suffit de savoir que la durée d'exécution peut s'occuper de ces problèmes. Vous pouvez également générer des entités CDS et des définitions de comportement basées sur la définition d'une table de base de données et, dans ce cas, le blocage, les contrôles des autorisations et les contrôles d'exécution simultanée sont traités automatiquement.

La classe globale de l'implémentation de comportement (également appelée pool de comportements) n'est qu'une définition de classe vide avec l'option spéciale FOR BEHAVIOR OF suivie du nom de la définition de comportement. L'implémentation réelle de la définition de comportement est une classe locale dans la définition de classe globale. Vous accédez à la classe en cliquant sur l'onglet Types locaux.
L'implémentation de comportement contient du code spécifique à l'objet de gestion, par exemple, l'implémentation pour les validations, les déterminations et les actions. Le fait qu'il contienne également du code pour les opérations standard (créer, mettre à jour, supprimer et bloquer) dépend des détails de la définition du comportement. L'implémentation de comportement pour notre objet de gestion ne contient pas de code pour les opérations standard. En effet, l'objet de gestion utilise le type d'implémentation géré dans lequel la durée d'exécution traite les opérations standard.

Une validation est un contrôle que la durée d'exécution effectue lorsque des données sont modifiées. Ici, la validation est toujours effectuée lorsqu'un nouvel enregistrement est créé (déclencheur create;). Si un enregistrement existant est modifié, la validation est effectuée uniquement si la zone Nom a été modifiée (déclencheur field Name;).
Les validations sont définies dans la définition du comportement. Pour chaque validation, il existe une méthode correspondante dans l'implémentation du comportement.

