Criando uma página de lista analítica com CAP OData V4

Introdução

Neste post do blog, vou mostrar como anotar o serviço CAP para permitir a exibição de uma página de lista analítica (ALP). Encontrei essa solução em deepak_singh99 (atualmente indisponível), então quero dar crédito.

Cenário

Para criar um aplicativo ALP básico no serviço CAP OData V4 como mostrado abaixo. O código está disponível no GitHub.

Página Lista analítica

Passos

    1. Crie um modelo de dados
    2. Adicione anotações
    3. Crie ALP

1. Crie um modelo de dados

Criei um modelo de dados muito simples baseado em uma entidade Livros gerada pelo comando `CDs adicionam amostras`.


namespace my.bookshop;

entity Books {
key ID : Integer @title: 'ID';
title : String @title: 'Title';
stock : Integer @title: 'Stock';
category1: String @title: 'Category1';
category2: String @title: 'Category2';
publishedAt: Date @title: 'Published At';
}

O modelo de dados é exposto ao serviço como está.


using my.bookshop as my from '../db/data-model';

service CatalogService {
@readonly entity BooksAnalytics as projection on my.Books;
}

2. Adicione anotações

Vou explicar as anotações adicionadas dividindo-as em quatro blocos para maior clareza.
O primeiro bloco concentra-se na habilitação de funções agregadas. Essas anotações são essenciais para que as ferramentas Fiori reconheçam e suportem corretamente a página de lista analítica (ALP). Sem essas anotações, as ferramentas Fiori podem gerar erros indicando a ausência de uma entidade adequada para ALP.


annotate CatalogService.BooksAnalytics with @(

Aggregation.ApplySupported: {
Transformations: [
'aggregate',
'topcount',
'bottomcount',
'identity',
'concat',
'groupby',
'filter',
'expand',
'search'
],

GroupableProperties: [
ID,
category1,
category2,
title,
publishedAt
],

AggregatableProperties: [{
$Type : 'Aggregation.AggregatablePropertyType',
Property: stock
}]
},

Analytics.AggregatedProperty #totalStock: {
$Type : 'Analytics.AggregatedPropertyType',
AggregatableProperty : stock,
AggregationMethod : 'sum',
Name : 'totalStock',
![@Common.Label]: 'Total stock'
},
);

O segundo bloco é usado para exibir um gráfico no centro do ALP. Um ponto novo para mim foi o uso de Medição dinâmica. Com o OData V2, você pode estar familiarizado com o «normal» Medir anotações. No entanto, no contexto do OData V4, a medição normal de alguma forma não funciona, então você precisa usar DynamicMeasure, que se refere a @analytics.AggregatedProparety definido no primeiro bloco.


annotate CatalogService.BooksAnalytics with @(
UI.Chart: {
$Type : 'UI.ChartDefinitionType',
Title: 'Stock',
ChartType : #Column,
Dimensions: [
category1,
category2
],
DimensionAttributes: [{
$Type : 'UI.ChartDimensionAttributeType',
Dimension: category1,
Role: #Category
},{
$Type : 'UI.ChartDimensionAttributeType',
Dimension: category2,
Role: #Category2
}],
DynamicMeasures: [
![@Analytics.AggregatedProperty#totalStock]
],
MeasureAttributes: [{
$Type: 'UI.ChartMeasureAttributeType',
DynamicMeasure: ![@Analytics.AggregatedProperty#totalStock],
Role: #Axis1
}]
},
UI.PresentationVariant: {
$Type : 'UI.PresentationVariantType',
Visualizations : [
'@UI.Chart',
],
}
);

O terceiro bloco concentra-se na exibição de filtros visuais. Para conseguir isso, você precisará de três blocos de anotação: gráfico, variante de apresentação e lista de valores. O bloco de anotação gráfica é semelhante ao do segundo bloco.

No entanto, observe que o OData V4 atualmente oferece suporte apenas a tipos de gráficos de barras e linhas para filtros visuais, enquanto o OData V2 também oferece suporte a gráficos de rosca.

Você também pode adicionar essas anotações com o recurso de desenvolvimento guiado das ferramentas Fiori, o que será muito mais fácil.

O quarto bloco consiste nas anotações SelectionFields e LineItem com as quais você já deve estar familiarizado.

3. Crie ALP

Vamos prosseguir com a criação de um ALP usando o modelo.

Seleção da planta baixa

Seleção de entidade

Para configurar o ALP, você precisa fazer algumas configurações na seção “opções” do arquivo manifest.json. A seção «visualizações» é usada para exibir o gráfico e a tabela principais. Esta seção é incluída por padrão quando você cria seu aplicativo usando o modelo «Página de lista analítica». Se quiser usar anotações diferentes das padrão (sem qualificador), você precisará fazer as alterações necessárias aqui.

A seção «@com.sap.vocabularies.UI.v1.SelectionFields» em «controlConfiguration» é usada para mostrar filtros visuais.

FONTE

Por Staff

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *