Gadgets para Blogger

Core Data Services en SAP HANA

Un modelo de datos representa el marco de lo que las relaciones están en una base de datos. Los modelos de datos son la base del desarrollo de software. Proporcionan un método estandarizado para definir y formatear los contenidos de la base de datos de forma coherente en los sistemas, permitiendo que diferentes aplicaciones compartan los mismos datos.
Las herramientas de modelado de datos profesionales proporcionan una forma de generar SQL a partir de un diagrama ER modelado, aunque algunos desarrolladores prefieren escribir SQL directamente. A continuación se muestra un modelo de datos.

Virtual Data Model (VDM)


El concepto de Virtual Data Model (VDM) fue introducido con HANA Live hace tres años. SAP HANA Live es un modelo de datos virtual en la parte superior de las tablas de suite que utiliza vistas nativas de SAP HANA SQL llamadas vistas de cálculo para informes operativos en tiempo real. Esto vino con ciertas cuestiones:

Este modelo no soporta correctamente las jerarquías. Las jerarquías ayudan a las empresas a analizar sus datos en una estructura de árbol a través de diferentes capas con capacidad de desglose. Por ejemplo, una jerarquía de tiempo consiste en niveles tales como año fiscal, trimestre fiscal, mes fiscal y así sucesivamente.
Dado que los modelos de datos virtuales HANA Live se definieron en la capa de base de datos HANA como cálculos de cálculo HANA, llevó a la duplicación de funciones de seguridad entre Business Suite para el procesamiento transaccional y la base de datos HANA para informes operativos.

Con S / 4HANA, SAP lanzó S / 4HANA Analytics como una actualización a HANA Live. S / 4HANA soporta un nuevo modelo de datos al proporcionar un contenido listo para usar usando la vista CDS. El modelo de datos CDS utilizado por SAP S / 4HANA puede considerarse un sucesor del modelo de datos virtual utilizado por SAP HANA Live, ya que el nuevo CDS ofrece ciertas ventajas sobre VDM que se analizarán más adelante en este blog.

 En cuanto a nuestros clientes, que son los usuarios actuales de HANA Live nada cambia a menos que emigren a S / 4 HANA. Los modelos de datos virtuales existentes seguirán siendo soportados por SAP. Una vez que los clientes migren a S / 4HANA, las nuevas vistas basadas en CDS pueden usarse y actualizarse con el modelo de datos simplificado en S / 4HANA.

Core Data Services (CDS)


Con la disponibilidad de la plataforma SAP HANA ha habido un cambio de paradigma en la forma en que las aplicaciones de negocio se desarrollan en SAP. La regla es: Haz todo lo que puedas en la base de datos para obtener el mejor rendimiento.
Para aprovechar SAP HANA para el desarrollo de aplicaciones, SAP introdujo una nueva infraestructura de modelado de datos conocida como servicios de datos básicos. Con CDS, los modelos de datos se definen y consumen en la base de datos y no en el servidor de aplicaciones. CDS también ofrece capacidades más allá de las herramientas tradicionales de modelado de datos, incluyendo soporte para modelado conceptual y definiciones de relación, funciones integradas y extensiones



Técnicamente, CDS es una mejora de SQL que proporciona un lenguaje de definición de datos (DDL) para definir tablas / vistas de base de datos semánticamente ricas (entidades CDS) y tipos definidos por el usuario en la base de datos. Algunas de las mejoras son:


  • Expresiones: utilizadas para cálculos y consultas en el modelo de datos
  • Asociaciones en un nivel conceptual: reemplazando uniones con expresiones de ruta de acceso simples en consultas
  • Anotaciones: para enriquecer los modelos de datos con metadatos adicionales (específicos de dominio)

Propuesta de valor de CDS para los clientes


CDS ofrece una capa basada en SQL que amplía el estándar SQL-92 con funciones que unen y unifican los tradicionales modelos OLTP y OLAP de definición de datos, consulta de datos y manipulación de datos. Soportados nativamente en ABAP y SAP HANA, los modelos de datos se expresan en lenguaje de definición de datos (DDL) y se definen como vistas CDS, que se pueden utilizar en programas ABAP mediante sentencias Open SQL para permitir el acceso a la base de datos. CDS ofrece una gama de ventajas para las empresas y desarrolladores, incluyendo:

  • Modelos de datos semánticamente ricos: CDS se basa en el modelo de relación de entidad bien conocido y es declarativo en la naturaleza, muy cerca del pensamiento conceptual.
  • Compatibilidad en cualquier plataforma de base de datos: El CDS se genera en vistas gestionadas de Open SQL y se integra nativamente en la capa SAP HANA. Estas vistas basadas en Open SQL son soportadas por todos los principales proveedores de bases de datos
  • Eficiencia: CDS ofrece una variedad de funciones integradas altamente eficaces, como operadores de SQL, agregaciones y expresiones, para crear vistas.
  • Soporte para anotaciones: La sintaxis de CDS admite anotaciones específicas de dominio que pueden ser fácilmente evaluadas por otros componentes, como la interfaz de usuario, el análisis y los servicios OData.
  • Apoyo a asociaciones conceptuales: CDS le ayuda a definir asociaciones que sirven como relaciones entre diferentes vistas. Las expresiones de ruta se pueden utilizar para navegar a lo largo de las relaciones. Introduciendo una abstracción de relaciones de clave externa y uniones, las asociaciones hacen navegación entre entidades consumibles
  • Extensibilidad:  Los clientes pueden ampliar las vistas CDS definidas por SAP con campos que se agregarán automáticamente a la vista CDS junto con su jerarquía de uso.



Migración de VDM a CDS


Con el fin de garantizar una migración fluida de HANA Live VDM Model a S / 4 HANA VDM CDS Modelo, SAP proporciona una hoja de ruta de migración adaptada a las empresas del cliente. En el pasado se dedicó mucho esfuerzo a definir e implementar el Modelo de Datos Virtuales de HANA Live basado en HANA Calculation Views. Esto se utiliza como punto de partida para la definición e implementación del Modelo de Datos del CDS. Las vistas de CDS se generan para las vistas de cálculo. Tenga en cuenta que, después de la generación, es necesario un esfuerzo adicional para adaptar las vistas generadas al nuevo enfoque (CDS). Las tareas típicas que pueden ser necesarias son:

  • Adición de anotaciones CDS necesarias para escenarios analíticos u otros. Las anotaciones permiten mejorar el modelo Meta de base con vocabularios específicos del consumidor.
  • Reestructuración o cambio de nombre de las vistas para soportar el nivel más alto de reutilización que se alcanzará con el nuevo enfoque (usando la convención de nomenclatura como veo para opinión pública, P para privado y C para vistas de consumo).
  • Adaptar las vistas que como partes de la funcionalidad original no se pudo migrar debido a falta o características diferentes en CDS.
  • Adaptación de las vistas al comportamiento de la vista cambiada (si se ejecuta la vista, se muestra un resultado diferente para las vistas).

Sin embargo, no todas estas tareas manuales son necesarias para cada vista de cálculo migrada. En particular, las vistas "simples" a menudo se pueden dejar sin cambios después de la generación.


CDS: Entorno de desarrollo


Las vistas de CDS se pueden desarrollar y mantener en el estudio SAP HANA y en ABAP en Eclipse. El editor de texto de eclipse ofrece un conjunto de características para un desarrollo rápido como:
  • Finalización del código
  • Vista previa de datos
  • Función de corrección rápida
  • Resaltado de sintaxis

Puntos clave:


CDS proporciona un modelo de datos unificado en todos los dominios de aplicaciones
CDS proporciona una capa semántica para todos los casos de uso: búsqueda, operacional y analítica
CDS extiende SQL para capturar la intención comercial en lugar de la complejidad técnica.

Fuentes: 
http://help.sap.com/hana/SAP_HANA_Core_Data_Services_CDS_Reference_en.pdf

Saltear autorizaciones en SAP - parte IV

Seguimos con la seguidilla de hacks para SAP. Después de haber leído los capítulos I, II y III, llega el momento de que vean este capítulo donde verán   Muchas veces se encontrarán en situaciones en las que necesitan modificar o agregar campos en una tabla y (lógicamente) carecen de autorización para hacerlo. Algunos se preguntarán en qué caso pueden requerir algo así y la respuesta está inclusive en varias notas de SAP, porque allí nos piden que creemos, borremos o modifiquemos una entrada y al no tener los permisos eso se vuelve un trastorno.

Modificando los datos de una tabla SAP

Hasta no hace mucho la manera más simple de modificar una tabla en SAP era ingresando a la transacción SE16N y poner en la zona de ingreso de transacciones &SAP_EDIT y listo tenían disponible la modificación de la tabla. Eso se cumplía en prácticamente cualquier R/3 - ECC. 

También podían poner /h para activar el debugguer de la transacción y cambiar en la variable CODE el valor SHOW por EDIT o INSR y listo.


Esa forma pueden probarla, pero si tienen un sistema nuevo es muy probable que eso no lo pueda hacer.

Ahora se complicó un poco más y no solo extendieron el debug a realizar sino que los valores no son tan intuitivos.

Ahora los pasos son los siguientes:

1- Ingreso a la transacción SE16
2- Selecciono la tabla a modificar y visualizo los datos.
3- Marco el registro que quiero modificar.
4- Activo el modo debug poniendo /H en la caja de diálogo.
5- Presiono el botón Show (símbolo de los anteojos) 
6- Se abre la pantalla de debug.
7- Debemos llegar en el debug hasta la siguiente sentencia:

Buscar sentencia l_okcode = ok_code







8- Por defecto les aparecerá el siguietne valor:


Dependiendo de lo que quieran realizar deberán poner los siguientes valores:

Para insertar/Actualizar = ANVO
Para borrar                  = DEL5

Aclaración importante: 
Desde todoSAP promovemos el aprendizaje pero no nos hacemos responsables por el buen o mal uso que le den los usuarios a estas técnicas.

Saltear autorizaciones en SAP - parte III

Después de mucho tiempo vuelvo a escribir sobre como saltear autorizaciones SAP (skip sap authorization). Hace un tiempo había escrito 2 artículos explicando como saltear de manera básica algunas autorizaciones de SAP, (saltando autorizaciones parte II y saltear autorizaciones parte I) pero obviamente SAP y los administradores van aprendiendo y cada vez van limitando más los accesos para evitar vulnerabilidades, pero siempre por el momento siguen existiendo muchas maneras de saltar autorizaciones.

Accediendo a transacciones SAP sin autorización

En el primer capítulo habíamos menciona utilizar la función RS_HDSYS_CALL_TC_VARIANT, pero como comentaba inicialmente SAP la fue complicando y ya no es siempre útil esta transacción. Esto se debe a que si ustedes debuguean el acceso a la transacción llega un momento donde ingresa a un método que no puede ser debugueado y en el cual no tendrán la posibilidad de cambiar ningún tipo de valor, por lo tanto tendrán un inevitable mensaje de No tiene autorización a la transacción XXXX.

No contento con eso comencé a investigar hasta que di en la tecla con una nueva función llamada CALL_TRANSACTION_AUTH, al menos por ahora no encontré ninguna transacción que no pueda ejecutar con dicha función

Esa transacción sirve para conocer si un usuario tiene autorización o no a una transacción pero esconde una sentencia que permite que puedas saltear dicha autorización.
Si observan el código muestra lo siguiente:

FUNCTION CALL_TRANSACTION_AUTH .
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*"       IMPORTING
*"             VALUE(TCODE) LIKE  SY-TCODE
*"       EXCEPTIONS
*"              NOT_AUTHORIZED
*"----------------------------------------------------------------------
  AUTHORITY-CHECK OBJECT 'S_TCODE'
           ID 'TCD' FIELD TCODE.
  IF SY-SUBRC NE 0.
    MESSAGE I077(S#) WITH TCODE RAISING NOT_AUTHORIZED.
  ENDIF.
  CALL TRANSACTION TCODE.
ENDFUNCTION.

Por lo tanto es tan simple como cambiar sy-subrc a 0 y habrán podido acceder.

Aclaración importante: 
Desde todoSAP promovemos el aprendizaje pero no nos hacemos responsables por el buen o mal uso que le den los usuarios a estas técnicas.
Related Posts Plugin for WordPress, Blogger...