Las herramientas de desarrollo ABAP (ADT) le proporcionan varias comprobaciones para sus modelos CDS.
Algunas de estas comprobaciones se realizan automáticamente al abrir un modelo CDS para fines de visualización en el editor de CDS, al mantener y activar un modelo CDS o a pedido cuando se activan explícitamente.
Comprobaciones de sintaxis de la TAD Las comprobaciones del editor se ejecutan en el modelo más actual, es decir, tienen en cuenta la información más reciente que acaba de introducir. Sin embargo, la mayoría de las comprobaciones se realizan únicamente en el estado persistente o activado de los modelos CDS. Por lo tanto, debe tener en cuenta que los resultados de la comprobación que se muestran pueden estar relacionados con un estado desactualizado.
En general, los hallazgos identificados por las comprobaciones pueden tener diferentes efectos. Los resultados de las comprobaciones pueden indicar problemas graves que provoquen problemas funcionales en tiempo de ejecución o incluso problemas que impidan la activación correcta de sus modelos CDS. Sin embargo, los resultados de las comprobaciones también pueden indicar únicamente problemas potenciales y servir únicamente con fines informativos.
En las siguientes secciones, le mostraremos algunos hallazgos informados por el analizador CDS con los que puede encontrarse y también presentaremos algunas verificaciones específicas del marco.
Primero, creemos una nueva vista CDS llamada Z_ViewWithProblemsAIntroduzca los datos tal como se indican aquí.
@EndUserText.label: 'View with Problems - Very Long Label Text'
define view entity Z_ViewWithProblemsA
as select distinct from t000
{
key mandt as KeyField,
'A' as FieldA
}
Inmediatamente después de ingresar los datos, verá una advertencia de sintaxis, como se muestra en esta figura.

La advertencia de sintaxis se muestra en varios lugares del entorno de ADT. En el editor CDS, encontrará el área problemática resaltada por diferentes medios: los íconos y se muestran en el lado izquierdo y derecho más externo del editor ADT indicando la ubicación del problema dentro del código fuente. Además, el elemento de sintaxis al que pertenece el hallazgo está subrayado. Se muestra una descripción textual si coloca el cursor sobre esta sección resaltada o sobre uno de los íconos. Además, el Problemas La pestaña también muestra el hallazgo. Recurso La columna le proporciona información sobre el objeto al que se refiere el mensaje. En nuestro ejemplo, se trata de nuestra vista CDS Z_ViewWithProblemsA.
El mensaje de advertencia le indica que ha introducido un texto de etiqueta que supera el límite predefinido de 40 caracteres. Esto puede provocar problemas de traducción, para los que se debe reservar espacio adicional. Tenga en cuenta que la longitud técnica máxima de la anotación de texto de etiqueta @EndUserText. label especificada en la definición de la anotación es de 60 caracteres. Por lo tanto, puede ignorar esta advertencia porque no tiene ningún impacto directo en la activación y la funcionalidad de la vista CDS en sí. Sin embargo, acortaremos el texto de la etiqueta a Vista con problemas. Una vez que se haya cambiado la definición de la vista CDS, la advertencia desaparece.
Ahora, agregue las tres anotaciones @ObjectModel.dataCategory:#CUBE, @Object- Model.representativeKey:’KeyField’ y @MyAnnotation.mySubAnnotation: true a la vista CDS Z_ViewWithProblemsA de acuerdo con las líneas 2, 6 y 7 que se muestran en esta figura.

Inmediatamente después de ingresar los datos, el editor CDS le indica que las anotaciones recién agregadas son incorrectas coloreándolas en rojo. Al igual que en el ejemplo anterior, la verificación aplicada se realiza en función de los metadatos especificados en las definiciones de anotaciones.
El primer error que se señala resulta del uso del valor de enumeración CUBE, que no está especificado para la anotación @ObjectModel.dataCategory. El segundo problema se debe al uso de la anotación @ObjectModel.representativeKey en el nivel de campo; es decir, la anotación se utiliza fuera de su ámbito de aplicación permitido. Por último, el tercer error resulta del uso de la anotación @MyAnnotation. mySubAnnotation, que se considera incorrecta porque no está especificada en ninguna definición de anotación.
Utilice la función de completado de código del editor CDS: La función de finalización de código del editor CDS, que se puede activar presionando Ctrl + Espacio, evalúa las definiciones de anotaciones CDS. Debe utilizar esta función para evitar errores resultantes del uso de nombres y valores de anotaciones no definidos y no compatibles.
Ignore estos mensajes de error e intente activar la vista CDS. Aparecerá una ventana modal que le informará que la activación se canceló con errores. Como puede ver en la siguiente figura, la Problemas La pestaña también muestra el mensaje de error correspondiente: DDLS… no se activóUn mensaje similar Activación fallida … se muestra en la línea de estado del entorno ADT.

La causa raíz de un problema de activación a menudo no es tan obvia como en el ejemplo presentado. En cambio, puede que se necesite más información para localizar y solucionar finalmente los problemas correspondientes. En tales casos, debe evaluar la registro de activaciónPuede abrir este registro haciendo clic en Abrir registro ABAP en la ventana emergente que se muestra en esta figura.

La figura anterior ofrece una descripción general del resultado del intento de activación.
Coloque el cursor en el Ver registro Enlace para acceder a los detalles del registro de activación. Ahora presione la tecla Ctrl y haga clic simultáneamente en el enlace con el mouse. Se mostrará una vista detallada del registro de activación.

En este registro de activación, busque entradas que estén marcadas como errorPara ello, seleccione el Mostrar barra de herramientas de búsqueda icono para visualizar la fila de búsqueda. En el Encontrar En el campo, introduzca “error”, como se muestra en la figura anterior. En el ejemplo ilustrado, encontrará los mismos mensajes de error que ya se mostraban en el Problemas pestaña mostrada anteriormente.
Ahora, elimine las tres anotaciones erróneas de la vista CDS Z_ViewWith- ProblemasA.
Ahora que hemos visto algunas comprobaciones genéricas implementadas por la infraestructura de CDS, analicemos más de cerca las comprobaciones específicas del marco. Para activar estas comprobaciones, active la vista Z_ViewWithProblems de CDSALos resultados de este hallazgo se presentan en esta figura.

El mensaje de información que se muestra es generado por el Gestión de control de acceso componente, como se ve en el texto del mensaje. Tenga en cuenta que este mensaje no afecta la activación del modelo CDS. Sin embargo, si se informa un hallazgo de este tipo para su modelo CDS, debe verificar si falta un control de acceso CDS para evitar problemas de seguridad. Si realmente no se requiere ningún control de autorización en el nivel de instancia, debe anotar su vista CDS con @AccessControl.authorizationCheck: #NOT_REQUIRED para documentar su decisión de manera explícita.
Activación de modelos CDS: La activación de los modelos CDS solo se puede anular mediante comprobaciones implementadas por el diccionario de datos ABAP. Las comprobaciones implementadas por los marcos no pueden impedir la activación de los modelos CDS. Como resultado, al activar un modelo CDS, pueden surgir inconsistencias en la funcionalidad proporcionada por los diversos marcos y sus artefactos secundarios derivados. Por lo tanto, siempre debe verificar los mensajes de problemas que se generan durante la activación de los modelos CDS y corregir sus causas raíz si es necesario.
En nuestro caso, anotamos la vista CDS Z_ViewWithProblemsA según este listado.
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'View with Problems'
define view entity Z_ViewWithProblemsA
as select distinct from t000
{
key mandt as KeyField,
'A' as FieldA
}
Tras la reactivación, el hallazgo anterior desaparece.
Reemplace el valor #NOT_REQUIRED de la anotación @AccessControl.authorization-Check por #CHECK. Al activar la vista CDS, aparece una advertencia como la que se muestra a continuación.

La advertencia que se muestra le informa que, a diferencia de lo documentado, no existe Ejemplo de análisis Control de acceso de CDS para la vista de CDS. Como resultado, la versión actual de CDS Ver Z_ViewWithProblemsA se comporta de la misma manera que las versiones anteriores; es decir, los accesos en tiempo de ejecución no están sujetos a ninguna restricción de instancia.
Establezca el valor de la anotación @AccessControl.authorizationCheck en #MANDATORY. Después de la activación, verá la advertencia que se muestra en esta figura.

Como se describe en el texto del mensaje, cualquier selección de datos de la vista CDS actualizada Z_ViewWithProblemsA provocará errores de ejecución. Puede validar este comportamiento iniciando el Vista previa de datos Visualizar mediante el menú contextual o pulsando F8. Después aparecerá el error de esta figura.

Ahora, restaure el estado consistente. Anote la vista CDS Z_ViewWithProblemsA con @Analytics.query:true. De acuerdo con su especificación formal, la anotación se utiliza correctamente. Por lo tanto, no hay ninguna indicación de un error de modelado justo después de que se ingresó la anotación en el editor CDS. Sin embargo, si ahora activa la vista CDS, recibirá mensajes de error en el Problemas pestaña, como se muestra en esta figura.

Los mensajes de error ilustrados se generan cuando el motor analítico analiza el modelo CDS anotado. Esto se indica mediante su adición [Analytics]A pesar de estos problemas, el modelo CDS se ha activado correctamente. En consecuencia, la vista CDS todavía se puede utilizar como fuente de datos en ABAP y en la creación de vistas. Sin embargo, no se puede utilizar como una consulta analítica. Por lo tanto, debe eliminar la anotación @Analytics.query:true de la vista CDS Z_ViewWithProblemsA.
Corregir errores de anotación: A menudo, las anotaciones incorrectas son ignoradas por el ABAP Infraestructura y marcos de trabajo. Por lo tanto, puede activar correctamente la vista CDS comentada y utilizarla para accesos en tiempo de ejecución. Sin embargo, le recomendamos encarecidamente que investigue y corrija estos errores de anotación. En este contexto, debe verificar si las anotaciones correspondientes se pueden omitir o deben reemplazarse por otras anotaciones. A veces, incluso puede ser necesario cambiar la lógica de la vista CDS implementada para implementar la funcionalidad deseada.
Además de las comprobaciones de anotaciones que hemos comentado anteriormente, también existen comprobaciones de coherencia para otros aspectos de los modelos CDS implementados por los distintos marcos. Estas comprobaciones se comportan, en principio, de la misma manera. Por lo tanto, no analizaremos aquí los ejemplos correspondientes.
Si desea activar las comprobaciones del editor ADT de forma explícita, puede hacer clic en Controles de activación sobre el Comprobar objeto de desarrollo ABAP icono debajo del menú principal o presione Ctrl + F2.
Gravedad de los problemas: Los ejemplos analizados ilustran que la gravedad del mensaje (error, advertencia o información) no se corresponde necesariamente con la gravedad del problema y la urgencia de la corrección. Por lo tanto, siempre debe tener en cuenta las advertencias y los mensajes de información al analizar y solucionar problemas. Sin embargo, también hay advertencias y mensajes de información que no se pueden corregir. Estos mensajes suelen indicar posibles problemas sobre los que debe estar informado, pero es posible que no afecten a su aplicación y, por lo tanto, es posible que se ignoren. Para algunos de estos hallazgos, existe un pseudocomentario (como lo indica el mensaje detallado), que puede configurar para suprimir el mensaje correspondiente.
Nota del editor: esta publicación ha sido adaptada de una sección del libro. Servicios de datos básicos para ABAP de Renzo Colle, Ralf Dentzer y Jan Hrastnik.
Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010
Paseo de la Reforma 26
Colonia Juárez, Cuauhtémoc
Ciudad de México 06600
Real Cariari
Autopista General Cañas,
San José, SJ 40104
Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073
