SAP ABAP CDS

SAP ABAP CDS

I nuovi sistemi SAP S/4 HANA ed il nuovo database proprietario HANA hanno portano novità nella programmazione SAP ABAP. Tra queste novità troviamo SAP ABAP CDS (Core Data Services).

Le viste SAP ABAP Core Data Services (CDS) sono una potente funzionalità di SAP che consente di definire e utilizzare modelli di dati direttamente nel livello del database. Queste viste sono definite utilizzando una sintassi simile a SQL e sono altamente ottimizzate per le prestazioni. Le viste CDS possono essere arricchite con annotazioni, che forniscono metadati per migliorare la loro funzionalità, comportamento e interfaccia utente. Questo articolo spiega cosa sono le viste CDS, i diversi tipi di viste CDS, il ruolo chiave delle annotazioni e fornisce una panoramica dettagliata di vari tipi di annotazioni con esempi.

Che cos’è una vista CDS?

Una vista CDS (Core Data Services) è una vista di database definita e gestita direttamente all’interno del layer ABAP di SAP. A differenza delle viste di database tradizionali, le viste CDS forniscono un modo più robusto e flessibile per modellare i dati consentendo l’uso di sintassi di tipo SQL, componenti riutilizzabili e un ricco set di funzionalità tra cui associazioni, calcoli e aggregazioni. Le viste CDS sono parte integrante della strategia SAP per la modellazione dei dati moderna e svolgono un ruolo fondamentale in SAP S/4 HANA e in altre applicazioni di nuova generazione.

Tipi di visualizzazioni CDS

Le visualizzazioni CDS possono essere ampiamente classificate in diversi tipi in base al loro scopo e utilizzo:

  • Viste di base : sono gli elementi costitutivi della modellazione dei dati, che si collegano direttamente alle tabelle del database e ad altre viste.
  • Viste composite : uniscono più viste di base e possono includere operazioni più complesse come unioni o join.
  • Visualizzazioni di consumo : progettate per scenari di utilizzo specifici come analisi o reporting, spesso ottimizzate per una gestione efficiente dei dati.
  • Viste dell’interfaccia : fungono da ponte tra diverse viste o sistemi esterni, semplificando la complessità di base.

L’importanza delle annotazioni nelle viste CDS

Le annotazioni nelle viste CDS sono tag di metadati che forniscono informazioni aggiuntive sulla struttura e sul comportamento della vista. Sono fondamentali per:

  • La definizione dei metadati : le annotazioni forniscono informazioni essenziali sulla vista, come il nome della vista SQL e le etichette.
  • Il miglioramento delle interfacce utente : le annotazioni controllano il modo in cui i dati vengono presentati nelle applicazioni UI5, inclusi i campi di selezione, le voci di riga e i gruppi di campi.
  • La gestione delle autorizzazioni : le annotazioni specificano i controlli delle autorizzazioni e l’accesso sicuro ai dati.
  • L’ ottimizzazione delle prestazioni : le annotazioni relative alle prestazioni aiutano a perfezionare il recupero e l’elaborazione dei dati.
  • L’ abilitazione di analisi ed estrazione dati : le annotazioni facilitano l’uso delle viste nelle applicazioni analitiche e consentono un’estrazione efficiente dei dati a fini di reporting.

Di seguito, troverete i vari tipi di annotazioni attualmente disponibili in SAP S/4 HANA. Queste costituiscono la maggior parte delle annotazioni più comunemente utilizzate nei progetti.

1. Annotazioni generali

Queste annotazioni forniscono proprietà generali per la vista CDS.

  • @AbapCatalog.sqlViewName : specifica il nome della vista SQL. Esempio: @AbapCatalog.sqlViewName: ‘ZV_SALES_ORDER’
  • @AbapCatalog.compiler.compareFilter : assicura che i criteri di filtro siano considerati durante il confronto delle viste. Esempio: @AbapCatalog.compiler.compareFilter: true
  • @AccessControl.authorizationCheck : Definisce il livello di controllo delle autorizzazioni richiesto. Esempio: @AccessControl.authorizationCheck: #NOT_REQUIRED
  • @EndUserText.label : Fornisce un’etichetta per la vista CDS. Esempio: @EndUserText.label: ‘Vista ordine di vendita’
  • @VDM.viewType : specifica il tipo di vista nel Virtual Data Model (VDM). Esempio: @VDM.viewType: #BASIC

2. Annotazioni dell’interfaccia utente

Queste annotazioni controllano il comportamento e l’aspetto delle viste CDS nelle applicazioni UI5.

  • @UI.selectionField : contrassegna un campo come campo di selezione. Esempio: @UI.selectionField: [{position: 10}] <br> CustomerID
  • @UI.lineItem : contrassegna un campo da visualizzare in un elenco di voci di riga. Esempio: @UI.lineItem: [{position: 20}] <br> OrderAmount
  • @UI.fieldGroup : raggruppa i campi insieme. Esempio: @UI.fieldGroup: [{qualifier: ‘General’, position: 10}] <br> OrderDate
  • @UI.identification : contrassegna un campo da utilizzare come campo di identificazione. Esempio: @UI.identification: [{position: 1}] <br> SalesOrderID

3. Annotazioni analitiche

Queste annotazioni definiscono le proprietà analitiche della vista CDS.

  • @Analytics.dataCategory : Specifica il tipo di dati analitici. Esempio: @Analytics.dataCategory: #CUBE
  • @Analytics.dataExtraction.enabled : Abilita l’estrazione dei dati per l’analisi. Esempio: @Analytics.dataExtraction.enabled: true
  • @Analytics.query : Definisce la vista come query per scopi analitici. Esempio: @Analytics.query: true
  • @AnalyticsDetails.query.axis : specifica l’asse (righe o colonne) per un campo in una query analitica. Esempio: @AnalyticsDetails.query.axis: #ROWS

4. Annotazioni di estrazione dati

Queste annotazioni definiscono il modo in cui i dati possono essere estratti dalla vista CDS.

  • @ Analytics.dataExtraction.delta.byElement : Abilita la gestione delta da parte di elementi specifici. Esempio: @Analytics.dataExtraction.delta.byElement: true
  • @Analytics.dataExtraction.delta.changeDataCapture : specifica i campi per la cattura dei dati di modifica nella gestione delta. Esempio: @Analytics.dataExtraction.delta.changeDataCapture: { creationDateElement: ‘CreatedAt’,changeDateElement: ‘ChangedAt’ }

5. Annotazioni di Fiori

Queste annotazioni semplificano l’uso delle viste CDS nelle applicazioni Fiori.

  • @OData.publish : Pubblica la vista CDS come servizio OData. Esempio: @OData.publish: true
  • @OData.action.name:  questa annotazione è utilizzata per definire azioni o funzioni personalizzate che possono essere eseguite su entità esposte dal servizio OData. Specifica il nome dell’azione o della funzione e la associa a un tipo di entità specifico. Esempio: @OData.Action.name: ‘CancelOrder’

6. Annotazioni di associazione

Queste annotazioni definiscono le relazioni tra le viste CDS.

  • @ObjectModel.association.type : Definisce il tipo di associazione. Esempio: @ObjectModel.association.type: #TO_COMPOSITION_CHILD
  • @ObjectModel.association.usage : specifica come viene utilizzata l’associazione. Esempio: @ObjectModel.association.usage: #TO_COMPOSITION_ROOT

7. Annotazioni di autorizzazione

Queste annotazioni gestiscono l’autorizzazione e il controllo degli accessi.

  • @AccessControl.authorizationCheck : Definisce il livello di controllo delle autorizzazioni richiesto. Esempio: @AccessControl.authorizationCheck: #NOT_REQUIRED
  • @ObjectModel.securedBy : Specifica i campi utilizzati per i controlli di autorizzazione. Esempio: @ObjectModel.securedBy: { element: ‘AuthorizationField’ }

8. Annotazioni sulle prestazioni

Queste annotazioni ottimizzano le prestazioni della vista CDS.

  • @ObjectModel.usageType : Definisce come la vista CDS viene utilizzata per ottimizzare le prestazioni. Esempio: @ObjectModel.usageType: { analytics.query: true, dataClass: #ANALYTICAL }
  • @ObjectModel.transactionalProcessingEnabled : Abilita l’elaborazione transazionale. Esempio: @ObjectModel.transactionalProcessingEnabled: true
  • @ObjectModel.usageType.serviceQuality:  questa annotazione descrive la qualità delle prestazioni prevista della vista CDS, che è fondamentale per sviluppatori e utenti per comprendere come si comporta la vista in diverse condizioni. Esempio: @ObjectModel.usageType.serviceQuality: “High”
  • @ObjectModel.usageType.dataClass: Questa annotazione specifica il tipo o la categoria di dati contenuti nella vista CDS, aiutando gli sviluppatori a comprendere la natura dei dati a cui si accede o che vengono manipolati. Esempio: @ObjectModel.usageType.dataClass: “Dati master”
  • @ObjectModel.usageType.sizeCategory: Questa annotazione categorizza la dimensione o il volume dei dati rappresentati dalla vista CDS, aiutando gli sviluppatori a comprendere la scala in cui opera la vista. Esempio:@ObjectModel.usageType.sizeCategory: “Large”

9. Annotazioni di campo

Queste annotazioni definiscono le proprietà e i comportamenti dei singoli campi in una vista CDS.

  • @ObjectModel.foreignKey.association : specifica l’associazione utilizzata per le relazioni di chiave esterna. Esempio: @ObjectModel.foreignKey.association: ‘AssociationName’
  • @Semantics.amount.currencyCode : specifica il codice valuta associato a un campo importo. Esempio: @Semantics.amount.currencyCode: ‘CurrencyField’
  • @Semantics.quantity.unitOfMeasure : specifica l’unità di misura associata a un campo quantità. Esempio: @Semantics.quantity.unitOfMeasure: ‘UnitField’

Ecco un esempio di visualizzazione CDS che include diverse annotazioni per mostrare come vengono utilizzate:

@AbapCatalog.sqlViewName: ‘ZV_SALES_ORDER’

@AccessControl.authorizationCheck: #NON_OBBLIGATORIO

@EndUserText.label: ‘Visualizzazione ordine di vendita’

@ObjectModel.usageType.dataClass: “Transazionale”

@ObjectModel.usageType.sizeCategory: “Medio”

@ObjectModel.usageType.serviceQuality: “Alto”

@VDM.viewType: #BASIC

@Analytics.dataCategory: #CUBE

@Analytics.dataExtraction.enabled: vero

@OData.publish: vero

definire la vista ZC_SalesOrder come

seleziona da sales_order

{

@UI.selectionField: [{posizione: 10}] chiave sales_order_id,

@UI.lineItem: [{posizione: 20}] customer_id,

@UI.fieldGroup: [{qualificatore: ‘Generale’, posizione: 10}] order_date,

@UI.identification: [{posizione: 1}] importo_ordine,

@AnalyticsDetails.query.axis: #RIGHE sales_order_id,

@AnalyticsDetails.query.axis: #ROWS customer_id,

@ObjectModel.association.type: associazione #TO_COMPOSITION_CHILD [0..*] a ZC_Customer come Cliente su $projection.customer id = Customer.customer id,

@ObjectModel.foreignKey.association: ‘_Cliente’ id_cliente,

@Semantics.amount.currencyCode: ‘Valuta’ order_amount,

creato_a,

cambiato_a

}

dove changed_at > 20230101 e changed_at <= 20231231

Conclusione

Le viste SAP ABAP CDS, con annotazioni, offrono un modo potente per creare e gestire modelli di dati complessi direttamente nel database. Le annotazioni migliorano la funzionalità, il comportamento e l’interfaccia utente delle viste CDS. Comprendendo e utilizzando diversi tipi di annotazioni, gli sviluppatori possono creare modelli di dati altamente ottimizzati, sicuri e intuitivi che soddisfano varie esigenze aziendali. Le annotazioni nelle viste CDS forniscono un approccio completo e flessibile alla modellazione dei dati in SAP, che copre proprietà generali, integrazione dell’interfaccia utente, analisi, estrazione dei dati, associazioni, autorizzazione e ottimizzazione delle prestazioni.

(fonte)

Innovaformazione, scuola informatica specialistica promuove la cultura dell’utilizzo dei sistemi ERP e SAP fra le aziende ed i privati. I nuovi sistemi con database HANA contengono novità nella programmazione ABAP. Gli sviluppatori SAP ABAP devono quindi aggiornarsi ed apprendere tutte i nuovi strumenti per essere efficienti sul lavoro.

Nell’offerta formativa trovate il Corso SAP ABAP su HANA rivolto alle aziende.

INFO: info@innovaformazione.net – tel. 3471012275 (Dario Carrassi)

Vuoi essere ricontattato? Lasciaci il tuo numero telefonico e la tua email, ti richiameremo nelle 24h:

    Ti potrebbe interessare

    Articoli correlati