Está en la página 1de 32

Preguntas y respuestas Técnicas de SAP HANA

1. Que es SAP HANA?

HANA se define como un sistema analítico de alto rendimiento, un sistema RDBMS transaccional completo
proporcionado por SAP que consiste en IMCE (In-Memory Computing Engine) que combina arquitectura
basada en filas y en columnas. Es capaz de realizar OLTP y OLAP en una única caja que incluye innovaciones de
hardware y software, y también se conoce como Sistema de base de datos híbrido.

Innovación de hardware

 Reducción de precio en memoria y Chip (CPU)


 Procesadores multi core
 Los sistemas operativos ahora están disponibles con un tamaño de bit alto de 64 bit
 8084 bus de direcciones de 16 bits

Innovación de Software

 Columnas v / s filas
 Particionamiento de tablas
 Alta compresión de datos
 Procesamiento en paralelo

2. ¿Cuál es la diferencia entre el almacenamiento en fila y el almacenamiento en columna?

FILAS COLUMNAS
La elección de la tabla como filas no es tan Si se ve que hay una gran cantidad de datos y
restringida como la columna que no son únicos (por ejemplo, se repite el
grupo de materiales, clase de material .. En
MARA)
Si hay un conjunto de datos donde tiene Se requiere la agregación de datos (tabla de
valores únicos (distintos) ventas)
No se aplica ninguna agregación en la tabla. Siempre seleccionar POCAS columnas en
nuestros programas .

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 1


3. Que es un Schema en HANA?

Un esquema es un área dedicada de la base de datos que se puede usar para almacenar objetos de la base de
datos como tablas, paquetes, carpetas, procedimientos. Proporciona un espacio de nombres para los sistemas
que se conectan a la base de datos.

4. Cuáles son las mejoras en NW 7.5 para aprovechar la fortaleza de HANA?

 Paradigma CODE TO DATA (Pushdown)


 Procesamiento paralelo masivo
 Data Encoding
 Almacenamiento Columnar
 Ejecutar algoritmos complejos
 Optimización transparente (orden en el que se escribirá y ejecutará la consulta , que se realiza
mediante la capa de abstracción de la base de datos: convierte OPEN SQL de ABAP a SQL nativo, lo que
se entiende por DB).
5. Beneficios NW 7.5

 Optimización transparente
a) SELECT QUERY: NetWeaver crea un plan de consulta: Optimizador basado en plan y
Optimizador basado en costo, que decide el orden / secuencia en que se procesará la
consulta.
b) Permite uniones más complejas.
c) Open SQL Enhancement
d) Se extendió la verificación de código estático y el análisis de rendimiento de SQL.
e) Acceso rápido a datos, acceso optimizado a datos
 Reutilizar Componentes, ALV, Fuzzy Search
 Extensión para abrir SQL
 Características específicas de los artifacs relacionados con HANA
 Pautas de programación estándar por SAP
 Aplicaciones ABAP / Fiori
6. ¿Puntos a considerar al migrar a HANA?

1- Las sentencias SQL nativo no funcionarán, se generará un error de tiempo de ejecución: volcados

EXEC SQL.

SELECCIONE ROWNUM, MATNR DESDE SAPECC6.MARA;

ENDSQL.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 2


2- Si se tiene alguna indicación a la base de datos, no showstopper.

Db hits: ‘% _HINTS MSSQLNT’ & prefer_join & ’

3- Seleccionar orderid de la tabla donde la cantidad <300.

Si se está realizando una búsqueda basada en columnas que no son pk en datos y no ha utilizado la
cláusula ORDER BY en la declaración SQL, puede generar problemas.

4- Acceso directo a las tablas o pool de tablas.Usar TX de verificación antes de transportar.

Prio 1, 2, 3

7. Cuáles son las pautas a seguir para el rendimiento de SQL en ABAP en HANA?

8. Cuáles son las diferentes categorías de base de datos?

DDL (lenguaje de definición de datos): se utiliza principalmente para crear / cambiar / eliminar nuevos
objetos de base de datos.

SE11 - Diccionario de datos que produce automáticamente las declaraciones DDL para usted.

CREATE, ALTER, DROP…

DML - Lenguaje de manipulación de datos: declaraciones que se utilizan para manipular datos.

INSERT, UPDATE, DELETE, MODIFY

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 3


DQL - Lenguaje de consulta de datos - Sentencia SELECT, GET

TCL - Declaraciones de control de transacciones (ACID) - COMMIT, Rollback

DCL - Lenguaje de control de DATOS - Seguridad y acceso a datos

GRANT, REVOKE …

9. Qué es la normalización en ABAP sobre HANA?

Concepto de normalización significa reducir la redundancia de datos.

10. Que es ABAP Test Cockpit en ABAP sobre HANA?

Los controles Code Inspector / ATC son hallazgos de código estático en comparación con los
estandares. Estos hallazgos no te ayudarán a priorizar tu lista de mejoras. Se Necesitan datos de
rendimiento en tiempo real para encontrar cuál es el primer programa que se corrige.

11. Cómo hacer pruebas de rendimiento en el sistema PRD? ¿Cuáles son los requisitos previos?

Con SAP Netweaver 7.5 SP05 puede realizar un seguimiento del rendimiento en PRD sin mucha
sobrecarga, en dos pasos: primero ejecutar SQLM (tcode): iniciar y detener el seguimiento. 2º: Datos:
SQLMD (tcode) para detectar declaraciónes potencialmente costosa.

Para encontrar la lista de prioridades de seguimiento de rendimiento: usar tcode: SWLT .

12. Clase para calcular el tiempo de ejecución en ABAP en HANA?

CL_ABAP_RUNTIME

13. Cómo especificar el campo del cliente en Native Query?

Uso de SELECT DISTINCT / CLIENT SPECIFIED / USING CLIENT

14. Tcode para el escenario de EPM?

SEPM_DG – Data Generator

15. Cuáles son las diferentes técnicas Code-pushdown?


 Consultas SQL _ lógica imperativa y declarativa (uso de literales, aritmética, expresión lógica
dentro de las consultas y usando expresiones como CEIL, FLOOR, ABS, TRUNC, FRAC puede ser
parte de las declaraciones de Open SQL),
 Vistas CDS.
 AMDP: Procedimientos de datos gestionados de ABAP,
 Modelos de información y consumo en ABAP utilizando técnicas de objetos proxy
16. Qué son los Entry points?

Las diferentes formas en que se llama una consulta SQL, se llaman puntos de entrada. P.ej. Programa,
JOBS, módulo de funciones, etc.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 4


17. Qué ofrece NW 7.4 / NW 7.5 en ABAP?

Mejoras en ABAP y OPEN SQL: proporciona una abstracción de la base de datos: puede conectarse a
cualquier db, donde la capa de abstracción de la base de datos convierte las sentencias de OPEN SQL
en SQL nativo.

 Escape en las variables HOST: por ejemplo, ":" dos puntos, "@"
 Lista de campos separada por comas: SELECT col1, col2, col3…, SE tiene que usar el símbolo de
escape para la variable host
 Right outer join disponible
 Es Posible proporcionar bracketing para joins
 Nueva funcionalidad en condición ON de uniones.
 El número de tablas que pueden participar en las combinaciones ahora es de 50, antes
podemos incluir solo 9 tablas en una combinación
 El máximo de subconsultas también se ha aumentado a 50 desde 9.
 Podemos usar la palabra clave USING CLIENT en lugar de CLIENT SPECIFIED
18. Qué son las declaraciones en línea en ABAP en HANA?

Las declaraciones en línea son una nueva forma de declarar variables y Field Symbol en la misma línea
donde se accede a los datos.

Antes 7.40

DATA text TYPE string.


text = `…`.

Con 7.40

DATA(text) = `…`.

Declaracion de workareas

Antes de 7.40

DATA wa like LINE OF itab.


LOOP AT itab INTO wa.
...
ENDLOOP.

Con 7.40

LOOP AT itab INTO DATA(wa).


...
ENDLOOP.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 5


Declaracion de un helper

Antes 7.40

DATA cnt TYPE i.


FIND … IN … MATCH COUNT cnt.

Con 7.40

FIND … IN … MATCH COUNT DATA(cnt).

Declaracion de un result

Antes de 7.40

DATA xml TYPE xstring.


CALL TRANSFORMATION … RESULT XML xml.

Con 7.40

CALL TRANSFORMATION … RESULT XML DATA(xml).

Declaracion de parametros

Antes 7.40

DATA a1 TYPE …

DATA a2 TYPE …

oref->meth( IMPORTING p1 = a1

IMPORTING p2 = a2

…)

Con 7.40

oref->meth( IMPORTING p1 = DATA(a1)

IMPORTING p2 = DATA(a2)

… ).

Declaracion de variables de referencias para factory methods

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 6


Antes 7.40

DATA ixml TYPE REF TO if_ixml.


DATA stream_factory TYPE REF TO if_ixml_stream_factory.
DATA document TYPE REF TO if_ixml_document.

ixml = cl_ixml=>create( ).
stream_factory = ixml->create_stream_factory( ).
document = ixml->create_document( ).

Con 7.40

DATA(ixml) = cl_ixml=>create( ).
DATA(stream_factory) = ixml->create_stream_factory( ).
DATA(document) = ixml->create_document( ).

Field Symbols

Para FIELD SYMBOL existe el nuevo operador de declaración FIELD-SYMBOL (...)


que puede utilizar exactamente en tres posiciones de la declaración.

ASSIGN … TO FIELD-SYMBOL(<fs>).

LOOP AT itab ASSIGNING FIELD-SYMBOL(<line>).



ENDLOOP.

READ TABLE itab ASSIGNING FIELD-SYMBOL(<line>) …

TYPES t_itab TYPE TABLE OF i WITH EMPTY KEY.

DATA(itab) = VALUE t_itab( ( 1 ) ( 2 ) ( 3 ) ).

19. Cuándo utiliza la cláusula “GROUPBY” en las declaraciones SQL de HANA

Al utilizar Aggregate en un SELECT, todas las columnas que no pertenecen Al


AGGREGATE deben colocarse en la cláusula GROUP BY.

20. Cuál es el significado de la cláusula “HAVING” en una declaración SQL?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 7


Para aplicar un filtro adicional para la función de agregación, la cláusula HAVING se puede usar en la
instrucción SELECT que se usa con la cláusula GROUPBY que es obligatoria. P.ej. Es como aplicar donde
condición en la columna agregada.

Cuando se utiliza una agregación con la sentencia CASE, debe mencionarse en la cláusula GROUPBY

21. Cuál es el símbolo para realizar la operación de “concatenación” en NW ABAP 7.4?

Pipe - |

22. Cual es la expresión de constructor en NW ABAP 7.4?

Se utiliza para crear una tabla en ABAP especificando el símbolo #


struct2 = CORRESPONDING #( struct1 ).

itab = VALUE #( ( 1 ) ( 2 ) ( 3 ) ).

23. Cuál es el código de transacción para verificar el nombre del esquema?

DBACOCKPIT

24. Pueden varios sistemas ABAP conectarse a la base de datos ABAP?

Sí. HANA 1.0 SP09 en adelante

25. Qué es un catálogo en SAP HANA?

Un catálogo es una colección de esquemas de base de datos en HANA. Esquema: agrupación de todos
los objetos de la base de datos, el esquema es un objeto de base de datos obligatorio que permite a las
empresas utilizar la misma base de datos manteniendo los datos de varios sistemas en los que las
restricciones DCL y DB se puede gestionar a nivel de esquema

26. Cuál es la diferencia entre el usuario de SAP y el usuario de DB?

Usuario de esquema, es decir, el usuario de la base de datos se utiliza para acceder a los datos con
ciertos niveles de autorización.

27. Qué es el modelo de información y por qué se requiere?

Modelo de información: el objetivo principal es ocultar los aspectos técnicos para seleccionar datos y
facilitar a los usuarios comerciales el modelado de sus datos, que pueden obtenerse sin conocimiento
técnico, solo el conocimiento funcional de DB es suficiente.

 Un modelo de información: (el propósito era ocultar la complejidad y superar algunos


contratiempos con las consultas).

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 8


 Se utiliza para convertir la estructura lineal en una estructura multidimensional sin saber el
lenguaje técnico.
 Son procesos de conversión de datos de origen (en tablas) a un formato comprensible para el
negocio.
 También hacen uso de los avances de hardware en HANA.
 Si definimos modelos de información dentro de HANA DB, también podemos reducir la
transferencia de datos b / w DB y la capa de aplicación.
 Lógica compleja, así como la transformación ejecutada en la capa DB.

28. Cuáles son los diferentes tipos de vistas en HANA?

1. Attribute view

2. Analytic view

3. Calculation View

4. Decision Table

29. Cuál es la función del optimizador SQL?

La función del optimizador de SQL es procesar y optimizar las consultas SQL enviadas a HANA y
finalmente ejecutadas por el motor SQL en SAP HANA.

30. Cuáles son los otros tres motores que forman parte de SAP HANA?

Motor de cálculo:

 Arquitectura del INDEX-SERVER: lógica de procedimiento


 Join Engine: SQL regular usando uniones
 Motor OLAP: agregación

31. Procesamiento de los modelos en el engine?

32. Cuáles son las diferentes técnicas de crear una vista de cálculo?

Editor gráfico y editor de scripts SQL

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 9


33. Qué es un esquema en estrella en ABAP en HANA?

Cuando combinamos datos de dimensión (maestro) con medida (transacción), se convierte en un


esquema en estrella. Y para unir dos o más esquemas en estrella, se realiza mediante la vista de
cálculo.

34. Cuál es la limitación de la Analytical view?

Esta vista solo puede tener una medida. No puede tener varias medidas. Básicamente, una Fact table
en una vista analítica. Lo ideal es que solo una Fact Table solo se use con la vista analítica, ya que la
Fact Table requiere un Aggregate.

35. Cuáles son los pasos para crear un Attribute view ?

Pasos para crear un attribute view en HANA Studio, ya que la representación gráfica no está disponible
en ABAP en Eclipse.(textos en Ingles del Menú de HANA STUDIO).

1. Name and description of attribute view

2. Table and Join

3. Hierarchies, Transformation, restricted and calculated columns

4. Save and Activate

5. Data Preview

36. Cuál es la limitación de un attribute view?

Attribute view no puede ser usado con aggregate functions

37. Que es un Content en SAP HANA?

El content es una colección de paquetes de desarrollo en los que agregamos diferentes objetos de
desarrollo, incluidos los Modelos de información, que son tipos de datos específicos de HANA.

38. Que es un Package en SAP HANA?

Proporciona un espacio para nuestro objeto de desarrollo. Una vez que se activa un modelo de
información, crea una vista en la DB de HANA y se almacena dentro del esquema.

Por ejemplo, <nombre_del_paquete> : <view> -> esquema

Permite transportar todos los objetos de desarrollo lógicamente relacionados. Agrupando artifacts de
desarrollo juntos conocidos como DELIVERY UNIT.

39. Por qué no se debe agregar un FACT TABLE en un attribute view?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 10


Se recomienda usar un attribute view solo con tablas de Datos maestros debido a los criterios de
rendimiento. Es recomendable que un FACT TABLE /TRANSACTION TABLE se use Analytical view , ya
que attribute view se procesa en el join Engine de SAP HANA, no se procesa por Motor OLAP que está
equipado para hacer agregación.

NOTA: Para exponer una Vista / Modelo al usuario, crear un QUERY en la parte superior de su vista y
crea un OData en nuestro QUERY, crear una aplicación fiori para exponerla al usuario ... sap.viz O un
ALV.

40. Qué es View Proxy en ABAP?

View Proxy se usa para extraer los datos de una vista en ABAP. Para exponer un modelo de datos a la
capa de aplicación (ABAP Layer), SAP NW7.4 SP02 en adelante, proporciona una función llamada View
Proxy que permite que los modelos de datos SAP HANA comunícandose con la capa ABAP utilizando
ADT en eclipse y bloquear los objetos en una DELIVERY UNIT para transportar los objetos.

41. Que es un Jerarquia?

La jerarquía se utiliza para procesar datos basados en la relación de las características de los datos.

Hacer clic en Semántica -> pestaña Jerarquía ->

Tenemos Dos tipos de jerarquía:

1. Jerarquía basada en niveles - Relación entre datos maestros . Grupos, estos grupos pueden provenir
de múltiples tablas.
2. Jerarca padre-hijo: la relación funciona como auto relación. En esto, la tabla tiene una relación consigo
misma y marca una de las columnas como principal y la otra como secundaria. P.ej. Relación de
Gerente con empleados en HR.

42. Cuáles son los diferentes tipos de JOIN en SAP HANA?

Inner Join Este tipo de unión regresa todas las filas cuando hay al menos una coincidencia en ambas tablas
de la base de datos.
Left Outer Este tipo de combinación regreasa todas las filas de la tabla izquierda y las filas coincidentes de la
tabla derecha.

Este tipo de combinación regresa todas las filas de la tabla derecha y las filas coincidentes de la
izquierda.

Right Outer Une las tablas como una combinación interna, adicionalmente incluirá el registro de la tabla en la
dirección para la cual no hay registros en la tabla transaccional.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 11


Referential Este tipo de unión es similar al INNER, pero asume que la integridad referencial se mantiene para
el JOIN .

Smart inner join. Si tenemos 2 tablas conectadas vía ref. la unión y el Query se escribe en el
Attribute View y no incluye la columna del JOIN en el master check table. Básicamente, solo está
seleccionando datos de la tabla principal. La unión será "eliminada" . Cuando también aplica un
filtro en el modelo de datos, la ref. JOIN también actúa como INNER JOIN.
Text Join Este tipo de combinación se utiliza para obtener datos específicos del idioma de las tablas de
texto utilizando una columna de idioma.
Full Outer Joins Este tipo de combinación muestra los resultados de las combinaciones externas izquierda y
derecha y REGRESA todas las filas (coincidentes o no coincidentes) de las tablas en ambos lados
de la cláusula JOIN.
Temporal Join JOIN para el período de tiempo - también conocido como Equi-join. ENTRE el SELECT QUERY. **
aplicable solo en vistas analíticas
Star join Solo se usa en calculation views, se usa para combinar varias fact table directamente.
Spatial Join Usado para unir tabla de coordenadas

43. Que es un Analytical View?

Cuando una tabla de datos se conecta a varias dimensiones, utilizamos la vista analítica. Las vistas
analíticas están diseñadas para realizar agregaciones complejas (SUM, MIN, MAX, AVG, COUNT) . Estas
vistas son procesadas por el motor OLAP en SAP HANA. Se utilizan para construir el llamado esquema
STAR. También tiene capacidades para definir columnas calculadas, columnas restringidas, filtros,
parámetros de importación, conversiones complejas.

Es importante que en una vista analítica, marquemos los atributos y las medidas al final en semántica,
ya que la agregación se aplicará solo en la medida.

44. Cómo lograr la conversión de moneda en la vista analítica?

Usar columnas calculadas y definir semántica.

45. Qué son los componentes de un escenario de vista?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 12


46. Que es un Calculation View?

Para incluir múltiples fact como parte del modelo de datos, podemos ir a la vista de cálculo, estas
vistas son procesadas por el motor de cálculo en SAP HANA. Son adecuados para cálculos más
complejos. Los CV se pueden crear de dos formas: gráficas y secuencias de comandos SQL (para lograr
la paralelización). Las secuencias de comandos SQL en la vista de cálculo se pueden implementar de
dos maneras: funciones CE (para obtener un mejor rendimiento) o SQL puro.

47. Definir la Arquitectura de Calculation?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 13


48. Que son la CE functions?

SAP HANA Proporciona funciones listas para usar que se implementan dentro del motor de Cálculos y
se ejecutan en el motor con un rendimiento mejorado para tareas comunes como:

1. Proyecciónes (selección de algunas columnas)


2. Uniones (conectar dos objetos de datos)
3. Selección (Clausula WHERE)
4. JOIN con una FACT TABLE
5. Selección de datos de las columnas.
6. Uniones
7. Agregaciones
8. CE_ *

En el caso de las funciones de CE, la llamada / ejecución permanece en el motor de CE, donde, como en el caso
de los scripts de SQL, tiene que salir del motor de Calculo al optimizador de scripts de SQL para ejecutar la
función que conduce a una caída en el rendimiento.

49. Cuáles son los casos en los que puede usar diferentes vistas para diferentes requisitos?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 14


50. Qué es una alternativa para VIEW PROXY?

Alternativo a Proxy View es CDS VIEW con la sincronización de los objetos de transporte.

51. Que es un ADBC?

ADBC ,es el estandard conectividad de base de datos ABAP. Se utiliza para ejecutar consultas relacionadas con
HANA directamente utilizando el código ABAP. Las API de ADBC están disponibles desde NW 7.4 para llamar a
las consultas utilizando una interfaz simplificada.

ADBC se puede utilizar cuando:

 Nuestro sistema no tiene ABAP ADT disponible, no se puede crear un objeto proxy.
 Cuando HANA DB se ejecuta como base de datos secundaria (Side Car Scenario)
52. Que es un Decision Table?

Se utiliza un Decisión table para los escenarios de planificación, que permite a los usuarios empresariales
modelar reglas de negocios con menos o ningún conocimiento técnico y aplicar las reglas para ver los
resultados .

53. Qué es el sistema BRMS?

Business Rule Management gestiona un conjunto de reglas que cambian con frecuencia en el negocio.

54. Sintaxis para llamar a un PROCEDIMIENTO en HANA?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 15


CALL “<procedure_name>”(?)

55. Cuál es la diferencia entre scripting y Lenguaje de de programación?

Los lenguajes de programación son productos independientes, generan sus propios ejecutables. El código se
compila y se convierte en código de máquina / código de sistema operativo.

Los lenguajes de script están incrustados en el lenguaje de programación. Se basan en las API del lenguaje de
programación.

En SAP HANA, tenemos secuencias de comandos SQL, que es un lenguaje procedural(Scripting).

56. Qué es SQL Script en HANA?

El SQL SCRIPT es una colección (DML, DDL, DQL, DCL).

Permite al desarrollador escribir lógica de alto rendimiento dentro de la base de datos. Una de las técnicas
utilizadas en el paradigma code-to-data.

57. Cómo procesa el sistema SQL Script?

58. Cuáles son los diferentes tipos de declaraciones en la lógica de SQL?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 16


59. En qué casos. SAP HANA sale del modo de paralelización?

Los SELECT se ejecutan en SAP HANA en paralelo a menos que:

 Los parámetros y variables escalares locales se utilizan en contenedores (procedimiento).


 Se ejecutan los procedimientos de lectura / escritura o DDL / DML (por ejemplo: CREAR, INSERTAR,
ACTUALIZAR, MODIFICAR).
 Se utiliza la lógica imperativa (IF, CASE, LOOP)
 Sentencias SQL que no están asignadas a variable. (Por ejemplo: Lt_data = select * from snwd_pd
donde precio> 1000;)

60. Cuáles son los diferentes tipos de secuencias de comandos SQL?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 17


61. Cuáles son las ventajas del script SQL?

 SQL SCRIPT se ejecuta y procesa en el motor de cálculo dentro de la base de datos de HANA.
 SQL Script es capaz de realizar cálculos complejos.
 En SQL Script, se puede declarar una variable local para contener el resultado provisional.
 El procedimiento de secuencia de comandos SQL puede devolver más resultados utilizando el
"parámetro de salida", mientras que el procedimiento SQL normal puede devolver solo uno.
 En SQL Script, puede definir tipos de tablas globales o locales que se pueden usar como parámetros.

62. Qué son los contenedores en SAP HANA?

Los contenedores son bloques en los que escribimos la lógica imperativa o declarativa.

63. Cuáles son los diferentes tipos de bloques (contenedores) en SAP HANA?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 18


64. Cuál es la diferencia entre PROCEDIMIENTOS y FUNCIONES DEFINIDAS POR EL USUARIO en HANA?

65. Cómo se declaran las variables SQL SCRIPT?

Cuando declaramos una variable en SAP HANA SQL Script (parámetros escalares), estas variables se inicializan
con un valor NULL. También podemos asignar valor explícitamente durante la creación.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 19


Cuando queremos usar una variable en el SQL SCRIPT, usamos el símbolo de dos puntos (:) para referir la
variable. P.ej.

 Declarar x entero; debe usarse para referir el valor de x.


 Cuando queremos asignar valor a x, no usamos dos puntos (:) x
 El script SQL no distingue entre mayúsculas y minúsculas
 Cada sentencia de SQL SCRIPT debe terminar con un punto y coma (;)

66. Sintaxis para declarar variable escalar?

DECLARE <vname> <vtype> = <default_value>;

67. Sintaxis para declarar un bloque anónimo?


DO (IN pname ptype => ?, out pname ptype => ?)
BEGIN
….
END;

68. Cuál es la ventaja del procedimiento sobre un bloqueo anónimo?


 Los procedimientos son contenedores pre-compilados con nombre.
 Podemos llamar al procedimiento desde otro procedimiento.
69. Sintaxis para crear un procedimiento y llamar a un procedimiento?
CREATE PROCEDURE <proc_name> (IN pname ptype, out pname ptype, inout pname p
type)

LANGUAGE SQLSCRIPT/R

DEFAULT SCHEMA <schema> READS SQL DATA

WITH ENCRYPTION AS

BEGIN

----CODE

END;

CALL <procname>(params);

70. Qué PROCEDURE DROP en SQL?

Cada vez que se crea un nuevo procedimiento, para volver a crear o reemplazar el procedimiento existente,
primero debe eliminarse. Sintaxis para HACER DROP:

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 20


DROP PROCEDURE <proname>.

71. Cuáles son las diferentes sintaxis en script SQL para diferentes funcionalidades?

If condition

IF <cond> THEN

…..

ELSE IF <cond> THEN

….

END IF;
Loops – iteration

1. WHILE LOOP
WHILE <condition> DO

END WHILE;

BREAK;

2. FOR LOOP

FOR I IN startIndex..EndIndex DO

….

END FOR;

72. Que hace “READ SQL DATA” ?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 21


Le dice al sistema que entre en el modo de paralelización.

73. Cómo definir EXCEPCIÓN en SQL?


TRY.

…..codigo…

CATCH ex_class INTO lx_obj.

ENDTRY.

Sintaxis:

DECLARE EXIT HANDLER FOR

1. SQLEXCEPTION –generic exception CASE

2. SQL_ERROR_CODE <codeno>

---CODIGO

END;

74. Cuál es el rango del Código de error de excepciones personalizadas?


10000 ~ 19999

Sintaxis:

SIGNAL SQL_ERROR_CODE 10000 SET message_text = ‘xyz’;

75. Qué son los cursores en la base de datos HANA?

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 22


Cada vez que queremos trabajar con múltiples registros en DB.

Cargar todos los registros de datos en una tabla de parámetros, manipular usando el Cursor - Procesar
registros directamente desde la tabla DB Línea por línea

Los cursores se utilizan para obtener registros de datos fila por fila del resultado de una consulta asignada
al cursor. Siempre enlazamos una consulta al cursor. También es posible parametrizar el cursor.

NOTA !!: si es posible, evitar usar los cursores en HANA DB, ya que HANA no puede optimizar o ejecutar
SQL en modo paralelo.

76. Qué pasos se utilizan para procesar un cursor?


1. Declarar un cursor y asigna a consulta
DECLARE CURSOR(<params>) <Name> FOR <select>
2. Abrir el cursor (enviar la consulta a la base de datos): la consulta se envía a la base de datos y se
cargan los datos.
en el área de contexto (memoria)
OPEN <cursor name>
3. Generar una declaración para procesar / manipular los datos uno por un registro.
FETCH <cursor_name> INTO <record>;
4. Para acceder a los valores de los campos usar:
<record> .column_name
5. Cerrar el cursor.

77. Sintaxis para crear un tipo de tabla?


Los TIPOS DE TABLA se crean para contener varias columnas Con
diferentes tipos.

CREATE TABLE TYPE <tabtypename>( col TYPE, col2 TYPE);

CREATE TYPE <tabtypename> AS TABLE( col TYPE, col2 TYPE);

Pname TABLE(col TYPE, col2 type….);


78. Cuál es la sintaxis para crear una matriz?

Un Array es una tabla de una sola columna, una estructura de una dimensión para albergar múltiples
valores del mismo tipo.
DECLARE <array_name> < va_type> ARRAY = ARRAY(val1, val2,…)

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 23


79. Cual es el uso de la función UNNEST?

La función UNNEST se usa para convertir uno o varios arreglos en una tabla.
Table_variable = UNNEST(:array_var) AS (column_name)
80. Qué son las funciones definidas por el usuario en SAP HANA?

Las funciones definidas por un usuario en SAP HANA son la función de solo lectura que significa que no
podemos realizar ninguna operación DDL y DML (insertar actualización y eliminar) dentro del cuerpo de la
función.

Aquí hay dos tipos :

1. Función de tabla (Tabla UDF)

2. Función escalar (UDF escalar)

Escalares

El objeto de base de datos más simple para el que puede hacer uso de secuencias de comandos SQL
son las funciones (UDF escalares)

Las UDF escalares permiten definir funciones que toman varios parámetros de entrada y devuelven
valores escalares. Solo se permiten expresiones en el cuerpo de la UDF, por lo que no hay operaciones
de tabla, funciones CE u operaciones con Arrays.

Las funciones escalares soportan.

 Pueden tener cualquier número de parámetros de entrada (tipos SQL primitivos). Los
parámetros de entrada del tipo de tabla no son compatibles.
 Pueden devolver múltiples valores escalares.
 Pueden contener expresiones dentro de su cuerpo. Las operaciones de tabla y array no son
compatibles.
 Se pueden usar en la lista de campos o en la cláusula WHERE de las instrucciones SELECT,
como las funciones integradas.
 Se pueden llamar a través de la asignación directa en otras funciones definidas por el usuario o
procedimientos almacenados

(X: = my_scalar_func ()).

 Deben estar libres de efectos secundarios y no admiten ningún tipo de declaración SQL en su
cuerpo.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 24


CREATE FUNCTION AGREGAR_cARGO(im_var1 decimal(15,2), im_var2 decimal(15,2))
RETURNS result decimal(15,2)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN
result := :im_var1 + :im_var2;
END;
CREATE FUNCTION DESCUENTO(im_var1 decimal(15,2), im_var2 decimal(15,2))
RETURNS result decimal(15,2)
LANGUAGE SQLSCRIPT
SQL SECURITY INVOKER AS
BEGIN
result := :im_var1 – ( :im_var1 * :im_var2 );
END;

81. Cosas a tener en cuenta al trabajar con los procedimientos script SQL para CODE Pushdown?
 Considerar el manejo del cliente al aplicar cualquier agregación en los datos
 Dado que no hay una funcionalidad explícita del concepto LUW en HANA, se debe tener
cuidado al usar scripts SQL
 No hay un mecanismo de bloqueo implícito, se debe tener cuidado al trabajar con secuencias
de comandos SQL en la base de datos
82. Cuáles son las desventajas de usar ADBC para LLAMADA DE PROCEDIMIENTOS?
 Codificación compleja utilizando la interfaz SQL
 Sin comprobación de sintaxis en el momento del diseño.
83. Cuál es el bottom-up en HANA DB al crear proxy?

Cada vez que se crea un modelo de información o un procedimiento en HANA DB, se crea un proxy de la vista
o un proxy de procedimiento STACK ABAP respectivamente. Lo que significa que ya existe un objeto en una
base de datos y para poder comunicarse con el objeto de la base de datos DEL STACK ABAP, debe crear un
proxy.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 25


84. Cuál es la desventaja de usar Proxies?
 Gestión del ciclo de vida del objeto HANA vs ABAP.
 Sin control de acceso del procedimiento
 Sin extensibilidad
85. Qué es AMDP (ABAP Managed Data Procedures)?

Este enfoque se denomina enfoque top-down cuando se crea un procedimiento en el STACK ABAP NW 7.4
SP05 que actúa como Maestro para editar, activar y transportar (ciclo de vida) para el objeto del
procedimiento. se solicita por primera vez el procedimiento correspondiente de HANA DB se crea para admitir
el paradigma code-pushdown para HANA DB.

86. Cuáles son los puntos a considerar al utilizar AMDP?


 Una clase ABAP estándar (SE24), método utilizado como contenedor para AMDP.
 El código de script SQL que se realizó anteriormente en HANA DB se agrega a este método
 Cuando llamamos al AMDP por primera vez, creará el procedimiento de DB correspondiente. El
nombre de ese procedimiento será classname => method
 Estos métodos siempre se llaman como método estático.
 Permite manejar el error de ejecución. CX_AMDP_ERROR
 Se creará en su esquema que se utilizó para ABAP.
 Cuando SE llama al AMDP, llama al procedimiento de HANA DB correspondiente.
87. Cuales son los requisitos previos antes de usar un AMDP?
 Debemos agregar una interfaz a una clase en ABAP para que sea potente para que pueda
convertirse en un AMDP, IF_AMDP_MARKER_HDB
 Los parámetros de un método ABAP deben pasarse por valor.
 Todos los parámetros de AMDP deben ser de tipo de tabla o parámetros escalares, No se permiten
objetos o tablas anidadas.
 Los métodos con parámetro de retorno no se pueden utilizar como AMDP.

88. Cuáles son las ventajas y desventajas de usar AMDP?

Ventajas:

 Comprobación de sintaxis
 La gestión del ciclo de vida está completamente controlada por el sistema ABAP.

Desventaja:

 Manejo del cliente


 Bloqueo y LUW

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 26


89. Cuál es la sintaxis para crear AMDP en un método de la clase?
METHOD method_name BY DATABASE PROCEDURE

FOR db_name(HDB) LANGUAGE sqlscript OPTIONS READ-ONLY

USING dbtab1 dbtab2 amdpname.

…..

….

ENDMETHOD.

90. Qué es CDS View?

Una CDS VIEW es básicamente una abstracción de ABAP a la capa de base de datos que le permite modelar
modelos de datos semánticos (como en HANA DB) en ABAP Stack y en la activación conduce a la creación de
la correspondiente vista de base de datos en DB. Es una mejora de SQL que nos proporciona DDL para definir
modelos de datos semánticamente (tabla / vista) y tipos de definición de usuario en la Base de datos. Es una
extensión de SQL: es decir, DDL DQL y DCL.

El objetivo de la creación del modelo de datos CDS es que todos los productos de SAP lo entenderán, a saber,
SAP Fiori, KPI modeler, BO / BI, BOPF, FPM. IDA Native HANA Apps.

91. Cual es la mejora de SQL (CDS)?


 Anotación para enriquecer los modelos de datos con detalles adicionales (todas las anotaciones
comienzan con el símbolo @)
 Las entidades DB se conectan mediante la asociación a nivel conceptual (reemplazo de condiciones
de unión)
 Expresiones - usadas para codificar cálculos en consultas.
92. Cuáles son los diferentes tipos de CDS?

 ABAP CDS
 HANA CDS

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 27


93. Qué son las anotaciones en CDS?

Las anotaciones se utilizan para agregar información de metadatos a la entidad CDS. La anotación especifica
las propiedades y la semántica de la entidad y su comportamiento cuando se consume. Hay anotaciones en la
interfaz de usuario, anotaciones en el modelo de objetos, anotaciones VDM, anotaciones en el entorno, etc.

Parametros CDS Views Views tradicional


Code-push down si No
Complejidad Baja Alta
Outer Join si No
Expresiones complejas si No
Adaptacion analitica si (analytical annotation) No
Soporta OData Directo en NW 7.5 No
Tipos si si
Modelo Metadata si No
Extensiones si No
Built-in UNIONES Si No
Parameters/ Ready to use system variables si No

94. Cuáles son dos categorías de CDS?

CDS con parámetros y CDS sin parámetros

95. Desde el punto de vista semántico de S / 4 HANA, ¿cuáles son las categorías de vistas de CDS?

 Básicas : Usada para acceder a tablas directamente usando estas VIEWS


 Compuestas: Usada para combinar múltiples VIEWS/TABLAS usando el concepto de Asociación.
 Vistas de consumo (Analytical Query) : Se utilizan para Reporteo en BI. Múltiples Vistas compuestas
pueden ser usada para crear este tipo de vistas.

96. Cuál es el concepto de asociación?

Representa la unión donde las dos columnas, donde una de las columnas es una Proyección. Para que esté
disponible en la Vista previa de datos, debe estar expuesta a la base de datos. En S / 4 HANA, la asociación se
indica con un nombre que comienza con un guión bajo. Por ejemplo, _FACTURAS, _PEDIDOS

97. Qué es una proyección en CDS?

Las columnas se indican mediante una Proyección de una tabla. Podemos usar $ proyección en CDS para la
misma condición de combinación de asociación.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 28


98. Técnicas para exponer CDS a OData basadas en la versión NW

 NW 7.4 : A través de la TX SEGW se tiene que manejar cada asociación.


 NW7.5 : Exponer la entidad cuando se crea el servicio con multiples CDS VIEW ,o la segunda opción es
usar la anotación @Odata.expose : TRUE ,un servicio por cada CDS VIEW
99. Cómo crear un ALV en SAP HANA usando la vista CDS?

Ventaja de utilizar ALV con IDA:

Sólo las columnas seleccionadas se recuperarán de la base de datos

es posible que las tablas que contienen cantidades muy grandes de datos se muestren en la interfaz de usuario
que se llama Paginación y Consulta automática (no es necesario escribir una instrucción SELECT, ya que el
marco de IDA prepara la consulta, la envía a la base de datos, extrae los datos y los muestra en el ALV. Solo se
debe proporcionar el nombre de la fuente de datos a la IDA , esta fuente de datos puede ser una Vista CDS,
Los resultados de operaciones como clasificación, agrupación o filtrado también tienen un tiempo de
respuesta muy rápido.

CLASE : CL_SALV_GUI_TABLE_IDA => CREATE_FOR_CDS_VIEW ().

Ejemplo Real un un IDA en NETWEAVER 7.4 ,usando una tabla de paso (sin CDS)
LO_ALV_BOTTOM = CL_SALV_GUI_TABLE_IDA=>CREATE( IV_TABLE_NAME = IM_TABLA
IO_GUI_CONTAINER = WO_CNT_BOTTOM ).
DATA(LO_COND_FACTORY) = LO_ALV_BOTTOM->CONDITION_FACTORY( ).

LO_ALV_BOTTOM->SET_SELECT_OPTIONS( IO_CONDITION = LO_COND_FACTORY-

>EQUALS( NAME = 'UNAME' VALUE = SY-


UNAME ) ).

En este ejemplo tenemos una tabla Z IDA con multiples accesos (por usuario) ,por eso se usa CONDITION
FACTORY.

100. Cuál es el propósito del Cloud Connector?

Para consumir el servicio OData basado en CDS, para crear una aplicación Fiori, utilizamos el concepto de
Cloud Connector. Para comunicarnos de manera segura, a través de Internet, mediante S / 4 HANA en las
instalaciones de SAP Cloud Platform, necesitamos Cloud Connector.

101. Cuáles son los pasos para configurar Cloud Connector?

1. configurar en la versión de prueba del HCP

2. Descargar msi :https://tools.hana.ondemand.com/#cloud

3. Instalar microsoft 2013 VC ++ distribuible en el servidor CAL :

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 29


https://www.microsoft.com/en-us/download/details.aspx?id=40784

3. Iniciar sesión en sap cc -acceso a través de https: // localhost: 8443 /usuario: administrador / gestionar

4. Agregar la subcuenta en la nube, contraseña de usuario hcp exponer recursos

usuario de Linux exernal ip con puerto 50000 protocolo http

5. Crear handshake entre OP y HCC

6. Crear destino:
 Sin autentificación, on-premise.
 Cliente, webineenabled, sistema, uso.

102. Cuáles son las ventajas de las vistas de CDS sobre AMDP?
 Reutilización del Artifact de la base de datos.
 Características avanzadas tales como asociaciones y anotaciones.
 El manejo del cliente se puede lograr en CDS.
103. Qué es una entidad CDS?

Una entidad de CDS está enriquecida por anotaciones que se utilizan para crear una aplicación Fiori de
extremo a extremo que utiliza estas anotaciones. Para consumir una vista de CDS, en lugar de consumirla en el
programa ABAP, es recomendable consumirla utilizando la "entidad CDS", ya que permite el acceso a los
metadatos.

104. Cuál es el propósito de las anotaciones UI en la vista CDS?


 Para desarrollar una vista CDS con herramientas analíticas para BW, VDM - Modelo de datos virtual -
La consulta analítica se puede construir utilizando vistas CDS.
 Se puede crear una aplicación analítica utilizando una vista CDS (vista de consumo) sobre una vista
CDS simple (vista de interfaz) usando anotaciones UI.
 Usando las anotaciones de interfaz de usuario, podemos definir los campos de selección, los
elementos de línea de una tabla, los puntos de datos del gráfico, las medidas y las dimensiones del
gráfico y exponer este CDS como un servicio odata y construir una aplicación Fiori

105. Qué es una función tabla con CDS?

La función tabla con CDS solo se puede implementar con NetWeaver 7.5 que llama a un AMDP ( ABAP
Managed Data Procedure) ,utilizando una vista CDS. Usando el concepto de interfaz CDS, las llamadas
subyacentes a un AMDP.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 30


106. Cómo se puede asegurar el acceso a datos usando una vista CDS?

Hacer clic con el botón derecho -> Carpeta Core Data Services -> Crear control de acceso -> indicar el ROL
obtenido de la TX PFCG.

107. Que son diferentes anotaciones de UI en las vistas CDS?

Abrir VDM anotation: definirlo como Consumption View.

 @ UI.headerInfo: se utiliza para establecer el título de la tabla


 @UI. PresentationVariant: para inicializar la interfaz de usuario (disponible solo en los sistemas S /
4 HANA), definir el orden, agrupar según los campos, definir la visualización predeterminada en el
nivel de visualización
 @UI. SelectionField - parámetros de selección
 @ UI.identification - para definir una etiqueta desde el punto de vista del usuario
 @ UI.lineItem: para definir la posición de una línea
 @ UI.chart - necesita marcar @ UI.dataPoint: {título: xyz}
 @ UI.dataPoint - para especificar una medida en el gráfico
108. Que es Full Text Search en SAP HANA?

Para habilitar Full Text Search, debe haber un índice FULLTEXT que debe estar presente en la tabla, que es una
característica específica de la base de datos.

Sintaxis: CREATE FULLTEXT INDEX <indextextvariable> on <table_name (field)> FAST PREPROCESSOR OFF;

109. Qué indica la palabra clave FAST PREPROCESSOR?

HANA realiza un procesamiento previo para habilitar las búsquedas que distinguen entre mayúsculas y
minúsculas.

Se Logra esto utilizando las siguientes técnicas:

Normalización: convirtiendo cada letra en su cuidado superior e inferior equivalente.

Tokenización: Insertar Token en palabras

También hace un análisis lingüístico de las palabras: encontrar una palabra equivalente con el significado más
cercano.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 31


Ejemplo.

Acelerar el análisis eliminando la detección de idioma al tener explícitamente el código de idioma en una
columna separada.

DROP TABLE LANGUAGE_DETECT;

Create column table language_detect (ID smallint Primary Key, content nvarchar(50), lang
varchar(2));

insert into language_detect values(2,'I LOVE HANA','EN');


insert into language_detect values(3,'Amo HANA','ES');

DROP FULLTEXT INDEX LANG_INDEX;

CREATE FULLTEXT INDEX LANG_INDEX ON language_detect(CONTENT)


LANGUAGE COLUMN LANG --Se Especificó la columna de idioma como LANG (para obtener el código de
idioma de esta columna)
CONFIGURATION 'EXTRACTION_CORE_VOICEOFCUSTOMER'

TEXT ANALYSIS ON;

SELECT TOP 1000 * FROM "$TA_LANG_INDEX";

110. Que es FUZZY search en SAP HANA?

FUZZY SEARCH en SAP HANA es una búsqueda tolerante a fallas que permite un nivel de precisión (que se
puede especificar en la cláusula WHERE como porcentaje) y devuelve el valor con una coincidencia
aproximada.

Sergio Fabian Cannelli Consultor Senior SAP(ABAP-HANA-FIORI) 32

También podría gustarte