Modelado de Dominio en SAP CAP

Introducción

Un modelo de dominio en SAP CAP es un modelo que describe los aspectos estáticos relacionados con los datos de un dominio problemático en términos de modelos de entidad-relación. En este artículo estudiaremos en detalle el Modelado de Dominio en SAP CAP.

Modelado de dominio

En palabras simples, un CDS en SAP CAP produce un modelo de dominio de tal manera que define el problema comercial en términos de claves, campos y anotaciones. El código para generar un modelo de dominio está escrito en un esquema CDS (db/schema.cds). Estos modelos de dominio se pueden usar en definiciones de servicio, modelos de persistencia, bases de datos o incluso reutilizarse dentro de otro modelo de dominio.

Ejemplo de muestra:

Espacio de nombres empInfo; usando {Moneda, administrada} de '@sap/cds/common'; entidad Empleados: administrado { ID de clave: Entero; firstName: cadena localizada (111); lastName: cadena localizada (1111); gerente: Asociación de Gerentes; fecha de incorporación: entero; salario: decimal (9,2); moneda: Moneda; }

 

En este ejemplo, hemos creado un archivo schema.cds donde hemos creado una entidad Empleados que incluye detalles básicos de un Empleado

A todo este esquema se le ha dado un espacio de nombres, es decir, empInfo

Este esquema utiliza un tipo de datos estándar, es decir, moneda. El uso del tipo de datos estándar como este nos ayuda a traer todas las ayudas de valor predefinidas relacionadas con él.

Usamos CDS para crear un modelo. En ese CDS, usamos

  1. Entidades para representar un conjunto de objetos únicos, por ejemplo:
    1. Información básica del empleado
    2. Información de comunicación del empleado
    3. Información de salario del empleado
  2. Asociaciones para definir relaciones
    1. Asociación de Manager a otra entidad Manager que tendrá la lista de todos los Managers

Convención de nomenclatura y recomendaciones

  1. El nombre de la entidad debe comenzar con una letra mayúscula y debe ser legible por humanos y autoexplicativo, por ejemplo, Empleados.
  2. Comience los elementos con una letra minúscula, por ejemplo, firstName
  3. Se recomienda utilizar la forma plural de entidades, por ejemplo, Empleados
  4. Se recomienda utilizar formas singulares de tipos, por ejemplo, Moneda
  5. no repita contextos; por ejemplo, Empleados.nombre en lugar de Empleados.NombreEmpleado
  6. prefiera nombres de una sola palabra, por ejemplo, salario en lugar de cantidad de salario
  7. use ID para claves primarias técnicas, por ejemplo, ID para ID de empleado
  8. Puede usar Namespace para hacer que sus entidades sean únicas. Es como el concepto de cliente en SAP, donde puede tener esquemas duplicados (archivos cds) con un espacio de nombres único para diferenciarlos. Los espacios de nombres son opcionales, use espacios de nombres si sus modelos pueden reutilizarse en otros proyectos. Al final del día, son solo prefijos, que se aplican automáticamente a todos los nombres relevantes en un archivo. - por ejemplo,

espacio de nombres laptop;entidad Dell {}

..… es equivalente a:

entidad portátil.Dell {}

  1. Puede usar contextos para secciones de espacios de nombres anidados. - por ejemplo,

espacio de nombres laptop;entidad Dell {}           //> portátil.Dellcontexto Apple { entidad MacBookPro {}       //> portátil.Apple.MacBookPro     entidad MacBookAir {} }

 

Entidades

Las entidades son como tablas con claves primarias. Podemos realizar operaciones CRUD usando estas Entidades. Manténgalo lo más plano posible. No lo normalice demasiado. No utilice tipos no reutilizables. Esta sección es solo para modelado, solo se deben agregar anotaciones relacionadas con campos individuales y no se deben agregar detalles técnicos (lógica).

Tipo de Indicador

Los tipos son como el dominio en SAP ABAP, se utiliza para definir el tipo de elementos de datos.

técnicos

Los aspectos son las extensiones de los Modelos y se utilizan principalmente para ampliar las definiciones y anotaciones existentes. Una vez que se define un modelo, podemos usar diferentes archivos cds (Aspecto) para agregar anotaciones encima de ellos para una tarea específica.

Por ejemplo-

  • cds– su modelo de dominio central, mantenido limpio, simple y comprensible
  • modelo de auditoría.cds– agrega campos adicionales requeridos para la auditoría en un archivo
  • auth-model.cds– añade anotaciones para la autorización.

Claves primarias

Al igual que las tablas y CDS en SAP ABAP, mantenemos claves primarias para la entidad usando palabras clave clave.

Una clave principal se puede reutilizar en todo el modelo utilizando la metodología de definiciones comunes.

Podemos crear un modelo common.cds donde se pueden almacenar todas las definiciones comunes.

// definiciones comunes

entidad StandardEntity { ID de clave: UUID; } Ahora estas definiciones comunes se pueden reutilizar de la siguiente manera: usando { StandardEntity } from './common'; entidad Empleado : StandardEntity { nombre : String; ... } Administrador de entidades: StandardEntity { nombre : String; ... }

 

El archivo común ya está creado por defecto con una entidad predefinida llamada cuido.

Asignación de UUID a OData

CDS asigna UUID a Edm.Guid, de forma predeterminada, en todos los modelos de OData. Sin embargo, el estándar OData establece reglas restrictivas para los valores de Edm.Guid, por ejemplo, solo se permiten cadenas con guiones, lo que puede entrar en conflicto con los datos existentes. Por lo tanto, permitimos que la asignación predeterminada se anule de la siguiente manera:

entidad Libros {

ID de clave: UUID @odata.Type:'Edm.Cadena';

...

}

Si es necesario, también puede agregar la anotación @odata.MaxLength para anular también la propiedad correspondiente.

Asociación

Se utiliza para definir la relación entre dos entidades. Como ABAP CDS, aquí también usamos la palabra Asociación. Aquí, la palabra clave muchas indica un 0 .. * cardinalidad Las restricciones de cardinalidad se pueden agregar como una restricción (donde condición), por ejemplo, usando no nulo.

Composiciones

A diferencia de Asociación, donde asociamos un campo de entidad con los objetos de una entidad completa, las composiciones solo se refieren a un campo específico de otra entidad. Tiene la ventaja adicional de las operaciones profundas autogestionadas (Insertar/Actualizar) y la eliminación en cascada (eliminación de tablas multidependientes).

// Definir pedidos con artículos de pedido contenidosÓrdenes de entidad { ID de clave: UUID; Artículos: Composición de muchos artículos de pedido en Artículos.parent=$self;}entidad Artículos de pedido { // solo se podrá acceder a través de Pedidos  padre clave: Asociación a Órdenes; libro clave : Asociación a los Libros; cantidad: entero;}

Mejores prácticas

  1. No agregue detalles técnicos en Modelos, usamos técnicospara que
  2. Utilice las nombres cortosmodelos planos simples
  3. No normalice en exceso las entidades en los modelos
  4. Use secuencias enteras locales si realmente maneja cargas y volúmenes elevados. De lo contrario, prefiera los UUID

Hasta ahora lo que hemos aprendido: Creación de Modelo y Aspectos encima.

Modelado de Dominio en SAP CAP

Déjame tu comentario

Este sitio usa Akismet para reducir el correo no deseado. Descubra cómo se procesan los datos de sus comentarios.