SAP Hybris - Modélisation

L'une des principales fonctionnalités d'Hybris est la flexibilité d'ajouter de nouveaux objets au modèle global de données de commerce Hybris. La modélisation des données Hybris aide une organisation à maintenir sa base de données et à gérer les connexions et les requêtes à la base de données. Le système Hybris Type est utilisé pour concevoir la modélisation des données dans Hybris.

Un système de type Hybris a les types suivants pris en charge pour la modélisation des données -

  • Items.xml - Ce fichier est utilisé pour la modélisation des données dans un modèle de données Hybris Commerce.

  • Item types - Ceci est utilisé pour créer des tables.

  • Relation types - Ceci est utilisé pour créer une relation entre les tables.

  • Atomic types - Utilisé pour créer divers types atomiques.

  • Collection types - Utilisé pour créer des collections.

  • Map Types - Pour définir des cartes.

  • Enum types - Pour définir les Enums.

Parlons maintenant de tout cela en détail.

Types atomiques

Ceux-ci sont définis comme des types de base dans Hybris, qui incluent des objets Java number et string - java.lang.integer, java.lang.boolean ou java.lang.string.

<atomictypes>
   <atomictype class = "java.lang.Object" autocreate = "true" generate = "false" />
   <atomictype class = "java.lang.Boolean" extends = "java.lang.Object" autocreate = "true" generate = "false" />
   <atomictype class = "java.lang.Double" extends = "java.lang.Number" autocreate = "true" generate = "false" />
   <atomictype class = "java.lang.String" extends = "java.lang.Object" autocreate = "true" generate = "false" />
</atomictypes>

Types d'articles

Les types d'élément sont utilisés pour créer de nouvelles tables ou pour mettre à jour des tables existantes. Ceci est considéré comme une base pour un système de type Hybris. Toutes les nouvelles structures de table sont configurées sur ce type en utilisant différents attributs comme indiqué ci-dessous -

<itemtype code = "Customer" extends = "User" 
   jaloclass = "de.hybris/platform.jalo.user.Customer" autocreate = "true" generate = "true">
   <attributes>
      <attribute autocreate = "true" qualifier = "customerID" type = "java.lang.String">
         <modifiers read = "true" write = "true" search = "true" optional = "true"/>
         <persistence type = "property"/>
      </attribute>   
   </attributes>
</itemtype>

Types de relation

Ce type est utilisé pour créer un lien entre les tables. Par exemple - Vous pouvez lier un pays et une région.

<relation code = "Country2RegionRelation" generate = "true" localized = "false" 
   autocreate = "true">
   
   <sourceElement type = "Country" qualifier = "country" cardinality = "one">
      <modifiers read = "true" write = "true" search = "true" optional = "false" unique = "true"/>
   </sourceElement>
   
   <targetElement type = "Region" qualifier = "regions" cardinality = "many">
      <modifiers read = "true" write = "true" search = "true" partof = "true"/>
   </targetElement>
</relation>

Types d'énumération

Ils sont utilisés pour créer une énumération en Java pour préparer un ensemble particulier de valeurs. Par exemple - Mois dans un an.

<enumtype code = "CreditCardType" autocreate = "true" generate = "true">
   <value code = "amex"/>
   <value code = "visa"/>
   <value code = "master"/>
   <value code = "diners"/>
</enumtype>

Types de collection

Ceux-ci sont utilisés pour construire une collection / un groupe de types d'éléments - groupe de produits, etc.

<collectiontype code = "ProductCollection" elementtype = "Product" autocreate = "true" generate = "true"/>
<collectiontype code = "LanguageList" elementtype = "Langauage" autocreate = "true" generate = "true"/>
<collectiontype code = "LanguageSet" elementtype = "Langauage" autocreate = "true" generate = "true"/>

Types de carte

Les types de mappe sont utilisés pour stocker des paires de valeurs clés dans la modélisation de données Hybris. Chaque touche représente son propre code.

<maptype code = "localized:java.lang.String" argumenttype = "Language" 
   returntype = "java.lang.String" autocreate = "true" generate = "false"/>