• Inicio
  • Novedades
  • Academia SAP
  • FAQ
  • Blog
  • Contacto
S4PCADEMY_Logo
Twitter Linkedin Instagram
S4PCADEMY_Logo
Twitter Linkedin Instagram
FORMACIÓN SAP

Diseño de consultas analíticas con CDS: etiquetas dinámicas

By s4pcademy 


Las consultas analíticas basadas en CDS son una forma poderosa de modelar fuentes de datos analíticos que se pueden usar en una variedad de interfaces de usuario (SAP Analytics Cloud, Analysis for Office, Smart Business KPI, Web Dynpro Grid, etc.). Con solo leer la documentación técnica, no siempre es fácil transformar el caso de uso empresarial en codificación real. Lea esta publicación de blog en caso de que esté interesado en obtener un acceso basado en casos de uso al diseño de consultas analíticas.

(Todas las muestras de codificación se basan en CDS Analytical Projection Views, pero también deberían funcionar para CDS View (Entities) con ligeras adopciones)

  • Descripción del caso de uso
  • Elementos de sintaxis usados
  • Consulta de muestra
  • Vista previa del tiempo de ejecución
  • Enlaces

Durante el tiempo de ejecución de un informe, no siempre es visible qué datos se han seleccionado. Ya sea porque la barra de filtro está oculta, los valores de las variables se establecen a través de una variante, se derivan o se codifican de forma rígida en la consulta.

Para selecciones importantes, puede tener sentido mostrarlas como parte de las etiquetas de los elementos del informe: Dimensiones o Medidas.

Para hacerlo concreto, definamos una consulta que seleccione los siguientes datos financieros:

  • Datos reales frente a datos del plan: para los datos del plan, mostremos la categoría del plan realmente seleccionada en la etiqueta de la medida
  • Centros de costos basados ​​en una fecha clave de consulta dada: mostramos la fecha clave como parte de la etiqueta del Centro de costos
  • Anotación: “@Semantics.businessDate.at: verdadero”
    Marca un parámetro de tipo fecha como la fecha clave de consulta que luego se utiliza para seleccionar jerarquías y datos maestros dependientes del tiempo a partir de esa fecha clave.
  • Anotación: “@Consumo.etiquetadinámica”
    Permite definir etiquetas dinámicas. Puede usar marcadores de posición en la etiqueta que pueden ser reemplazados por valores de parámetros durante el tiempo de ejecución. Al igual que las etiquetas normales, también se traducen las etiquetas dinámicas.
@EndUserText.label: 'Query with Dynamic Labels'
@AccessControl.authorizationCheck: #NOT_ALLOWED
define transient view entity ZJF_C_DynLabels_Q01
  provider contract analytical_query
  with parameters

    @Semantics.businessDate.at: true
    @Environment.systemField: #SYSTEM_DATE    
    P_KeyDate : vdm_v_key_date,

    @EndUserText.label: 'Plan Category'
    @AnalyticsDetails.query.variableSequence: 20
    @AnalyticsDetails.variable: { usageType: #FILTER, referenceElement: 'PlanningCategory', mandatory: true, selectionType: #SINGLE, multipleSelections: false, defaultValue: 'BUDGET03' }    
    P_PlanningCategory : fcom_category    
  
  as projection on I_ActualPlanJrnlEntryItemCube
{

  @AnalyticsDetails.query.axis: #ROWS
  @UI.textArrangement: #TEXT_LAST
  @Consumption.dynamicLabel: { label : 'Cost Center (&1)' ,
                               binding : [ { index : 1 , parameter : 'P_KeyDate'  } ] }
  CostCenter,

  @AnalyticsDetails.query.axis: #FREE
  GlobalCurrency,
  
  @AnalyticsDetails.query.axis: #COLUMNS
  @Semantics.amount.currencyCode: 'GlobalCurrency'
  @Aggregation.default: #SUM
  @EndUserText.label: 'Actual Amount'
  case
    when ( PlanningCategory = 'ACT01') then curr_to_decfloat_amount( AmountInGlobalCurrency )
  end as ActualAmountInGlobCurrency,

  @AnalyticsDetails.query.axis: #COLUMNS
  @Semantics.amount.currencyCode: 'GlobalCurrency'
  @Aggregation.default: #SUM
  @Consumption.dynamicLabel: { label : 'Plan Amount (&1)' ,
                               binding : [ { index : 1 , parameter : 'P_PlanningCategory'  } ] }
  case
    when ( PlanningCategory = $parameters.P_PlanningCategory ) then curr_to_decfloat_amount( AmountInGlobalCurrency )
  end as PlanAmountInGlobCurrency,
  
  @AnalyticsDetails.query.axis: #COLUMNS
  @Semantics.amount.currencyCode: 'GlobalCurrency'
  @Aggregation.default: #FORMULA
  @EndUserText.label: 'Plan Actual Delta'
  $projection.PlanAmountInGlobCurrency - $projection.ActualAmountInGlobCurrency as DeltaAmountInGlobCurrency

} 
  where Ledger="0L" and LedgerFiscalYear="2021"

Esta vista previa se realizó con Web Dynpro Data Grid que comencé a ver la transacción de backend RSRT con el nombre de consulta técnica «2CZJF_C_DynLabels_Q01».

Las etiquetas dinámicas están marcadas en rojo y muestran la Fecha clave y la Categoría del plan dentro ().

Etiquetas dinámicas%20

Etiquetas dinámicas (captura de pantalla tomada del sistema de prueba)

Las siguientes fuentes proporcionan más información:




SAP-EWM/Especificación de embalaje para dividir la tarea de recolección OBD en cantidad de palets y cantidad de cajas
Previo
Nueva automatización robótica de procesos para el rendimiento y formularios de revisión 360
Siguiente

Madrid

Calle Eloy Gonzalo, 27
Madrid, Madrid.
Código Postal 28010

México

Paseo de la Reforma 26
Colonia Juárez,  Cuauhtémoc
Ciudad de México 06600

Costa Rica

Real Cariari
Autopista General Cañas, 
San José, SJ 40104

Perú

Av. Jorge Basadre 349
San Isidro
Lima, LIM 15073

Twitter Linkedin Instagram
Copyright 2022 | All Right Reserved.