Cerca nel blog

venerdì 12 dicembre 2025

RAP e CDS SAP BAS - SAP Public Cloud - PARTE 2

RAP e CDS SAP BAS - SAP Public Cloud - PARTE 2

ß PARTE 1


3.       Creare l'app Fiori

3.1.      Creare applicazione Fiori

Apriamo il nostro BAS (Business Application Studio)

Creiamo un list report object page

Dal menu di sx selezioniamo  View -> Command Palette…


Cerchiamo Fiori: Open Application Generator e selezioniamolo.


Selezioniamo “List Report Page” e premiamo NEXT

Configuriamo l'origine dati, il sistema e il servizio:

·         Origine dati: Connect to a System

·         Sistema: <tuo_sistema_trial>

·         Servizio: ZDEMO_APP_IF_CDS_SRV_BIND (1) - OData V2

Seleziona l'entità principale "ZDEMO_APP_INTERFACE_CDS", e il tipo Tabella dove mostrare i dati e premere NEXT.

 

Configurare gli attribuiti del progetto:

Modulo Name: zdemo_app

Titolo dell’app: App Gestione Documenti D'acquisto

Descrizione: App Fiori che gestisce una CDS


Configurare il Deployment

Target: ABAP

Destination: <tuo_sistema_trial>

SAP UI5 ABAP Repository: zdemo_app

Package: ZPKG_RAP_CDS (Quello usato per creare la tabella e la CDS View)

Transport Request: <tua_Transport_Request> (Quella creata in Eclipse) 

 

Configurare Fiori Launchpad:

Oggetto semantico: zdemo_app

Azione: visualizza

Titolo: App Gestione Documenti D'acquisto


Esegui l'applicazione SAP Fiori per l'anteprima dei dati

Richiamare Application Information dal menu di sx. Selezioniamo  View -> Command Palette…

Cerchiamo Fiori: Open Application info e selezioniamolo.


Premere il pulsante “Preview Application” e selezionare in alto la prima riga

In questo modo viene visualizzata la nostra app

 

3.2.      Deploy applicazione Fiori

Nella pagina Application Information, seleziona Deploy Application.

Quando richiesto, controllare la configurazione della distribuzione e premere y.


Se il Deploy ha esito positivo, riceverai queste due informazioni: dettagli UIAD e distribuzione riuscita.

 

Controllare la libreria BSP e l'elemento descrittore dell'app SAP Fiori Launchpad in Eclipse.

1.     Apri Eclipse e controlla la libreria BSP e la cartella degli elementi descrittivi dell'app SAP Fiori Launchpad nel tuo package ZPKG_RAP_CDS. Se non riesci a visualizzare le applicazioni BSP e gli elementi descrittivi dell'app SAP Fiori Launchpad, aggiorna il tuo pacchetto ZPKG_RAP_CDS premendo F5.



4.       Crea un'APP IAM (Cloud Identity and Access Management)

Creiamo ora una “ Gestione dell'identità e dell'accesso al cloud”.

In Eclipse fai clic con il pulsante destro del mouse sul pacchetto ZPKG_RAP_CDS e seleziona New -> Other ABAP Repository Object


Ricerchiamo l'app IAM, la selezioniamo e premiamo NEXT.

Crea una nuova app IAM inserendo:

Nome: ZDEMO_IAM_000

Descrizione: App IAM per ZDEMO

Premiamo NEXT e poi FINISH.

Seleziona Services e aggiungere un nuovo servizio


Seleziona quanto segue:

Tipo di servizio: OData V4

Nome del servizio: ZRAP100_UI_ZDEMO_O4_000

 Suggerimento: con CTRL + Spazio puoi cercare il tuo servizio.

Fai clic su OK.

Salva e attiva la tua     

ß PARTE 1







giovedì 11 dicembre 2025

RAP e CDS SAP BAS - SAP Public Cloud - PART1

RAP e CDS SAP BAS - SAP Public Cloud - PARTE 1

PARTE 2 ->

1.       RAP e CDS SAP BAS - SAP Public Cloud

RAP = RESTful Application Programming 

Lo scopo è quello di creare un APP Fiori che consenta di effettuare tutte le operazioni CRUD su una tabella custom creata in ambiente SAP Public Cloud.


2.       Lavoro di backend lato Eclipse

2.1.      Creare package

In Eclipse creiamo un package dove salvare tutti i nostri sviluppi, quindi premere tasto dx e selezionare ABAP Package


Nella schermata successiva inserire il nome del package e una descrizione e premere NEXT

Nella schermata successiva inserire il software component HOME, ed il Transport Layer e premere NEXT


2.2.      Creare tabella custom

Creiamo ora una tabella custom. Tasto dx sul package creato in precedenza, selezionare ABAP Repository Object, successivamente nella popup seelzionare Dictionary-> Database Table e premi il NEXT

Nella popup successiva, inserire il nome della tabella e la descrizione.

 

Inserire i nomi dei campi e la loro tipologia:

@EndUserText.label : 'Demo app Fiori'

@AbapCatalog.enhancement.category : #NOT_EXTENSIBLE

@AbapCatalog.tableCategory : #TRANSPARENT

@AbapCatalog.deliveryClass : #A

@AbapCatalog.dataMaintenance : #RESTRICTED

 

define table zdemo_app {

  key client : abap.clnt not null;

  key ebeln  : ebeln not null;

  key ebelp  : ebelp not null;

  txz01      : txz01;

  matnr      : matnr;

  data       : abap.dats;

  ora        : abap.tims;

}

 

2.3.      Creare la CDS View e la relativa interfaccia

Creiamo una CDS View sulla tabella creata in precedenza.

Selezionare la tabella creata in precedenza, tasto dx, selezionare “New Data Definition


Inseriamo il nome della definizione della CDS view
(ZDEMO_APP_DEFCDS) e la sua descrizione


 

Modifichiamo la definizione della CDS view in questo modo:

@AbapCatalog.sqlViewName: 'ZDEMOAPPCDS'

@AbapCatalog.compiler.compareFilter: true

//@AbapCatalog.preserveKey: true

@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'CDS view della tabella ZDEMO_APP'

@Metadata.ignorePropagatedAnnotations: true

 

define root view ZDEMO_APP_DEFCDS as select from zdemo_app

{

    key ebeln,

    key ebelp,

    txz01

    matnr,

    data,

    ora

}

Creiamo l’interfaccia di Consumo della CDS View creata in precedenza

Selezionare la definizione della CDS view creata in precedenza, tasto dx, selezionare “New Data Definition

Inserire il nome dell’interfaccia (ZDEMO_APP_INTERFACCE_CDS)  e la descrizione


 

Modifichiamo l’interfaccia in questo modo:

@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'Interfaccia di consumo della CDS View'

@Metadata.allowExtensions: true

 

define root view entity ZDEMO_APP_INTERFACE_CDS provider contract transactional_query

as projection on ZDEMO_APP_DEFCDS as DemoAppInterface

{

    @EndUserText.label: 'Documento'

    @Search.defaultSearchElement: true

    key ebeln as Ebeln,

    @EndUserText.label: 'Posizione'   

    key ebelp as Ebelp,

    @EndUserText.label: 'Testo Breve'   

    txz01 as Txz01,   

    @EndUserText.label: 'Materiale'   

    matnr as Matnr,

    @EndUserText.label: 'Data'   

    data as Data,

    @EndUserText.label: 'Ora'   

    ora as Ora

}

 

2.4.      Creare definizione di comportamento per la CDS view creata in precedenza (Behavior Definition)

Selezionare il nome della definizione della CDS view creata in precedenza (ZDEMO_APP_DEFCDS_CDS)  , tasto dx, selezionare “New Behavior Definition

Inseriamo la descrizione e il Tipo di implementazione Managed e premere NEXT


Inserire il seguente codice e poi ATTIVARE:

managed;

//strict ( 2 ); //Uncomment this line in order to enable strict mode 2. The strict mode has two variants (strict(1), //strict(2)) and is prerequisite to be future proof regarding syntax and to be able to release your BO.

define behavior for ZDEMO_APP_DEFCDS alias ZDEMO_APP

persistent table zdemo_app

lock master

//authorization master ( instance )

//etag master <field_name>

{

  field ( mandatory ) ebeln, ebelp, matnr, data, ora, txz01;

  create; // ( authorization : global )

  update;

  delete;

 

  mapping for zdemo_app

  {

   ebeln = ebeln;

   ebelp = ebelp;

   txz01 = txz01;

   matnr = matnr;

   data = data;

   ora = ora;

  }

}


2.5.      Creare definizione di comportamento per l'interfaccia di Consumo della CDS View creata in precedenza (Behavior Definition)

Selezionare il nome dell’interfaccia di Consumo della CDS View creata in precedenza (ZDEMO_APP_INTERFACCE_CDS), tasto dx, selezionare “New Behavior Definition

Inseriamo la descrizione e il Tipo di implementazione Projection e premere NEXT


Inserire il seguente codice e poi ATTIVARE:

projection;

//strict ( 2 ); //Uncomment this line in order to enable strict mode 2. The strict mode has two variants (strict(1), //strict(2)) and is prerequisite to be future proof regarding syntax and to be able to release your BO.

 

define behavior for ZDEMO_APP_INTERFACE_CDS alias ZDEMO_APP

{

  use create;

  use update;

  use delete;

}


Creaimo il Servizio sull’interfaccia di Consumo della CDS View creata in precedenza (ZDEMO_APP_INTERFACCE_CDS), tasto dx, selezionare “New Service Definition

Inserire il nome del servizio (ZDEMO_APP_INTERFACCE_CDS_SRV)   e la sua descrizione e premere NEXT

Inserire il seguente codice e poi ATTIVARE:

@EndUserText.label: 'Servizio Demo App'

define service ZDEMO_APP_INTERFACE_CDS_SRV

{

    expose ZDEMO_APP_INTERFACE_CDS;

}


Creaimo il Service Binding sul servizio creato in precedenza (ZDEMO_APP_INTERFACCE_CDS_SRV) , tasto dx, selezionare “New Service Binding


Inserire il nome dell’associazione (ZDEMO_APP_IF_CDS_SRV_BIND)   , la sua descrizione e il tipo Binding “Odata V2 – UI” e premere NEXT. Alla fine Attivare l’associazione.    


A questo punto pubblichiamo il servizio premendo il pulsante PUBLISH

attendere la fine della pubblicazione


Creaimo l’estensione metadati sull’interfaccia di Consumo della CDS View creato in precedenza (ZDEMO_APP_INTERFACCE_CDS), tasto dx, selezionare “New Metadata Extension



Inserire il nome del Metadata Extension (ZDEMO_APP_METADATA_EXT), la sua descrizione e premere NEXT. Alla fine Attivare l’associazione.



Inserire il seguente codice e poi ATTIVARE:

@Metadata.layer: #CORE

@UI: {

headerInfo: {

typeName: 'Dati Documenti',

title: { type: #STANDARD, label: ‘ZDemo_App’, value: 'ebeln'}

}

}

annotate entity ZDEMO_APP_INTERFACE_CDS

    with

{

@UI.facet: [{ id: 'ZDemo_App',

purpose: #STANDARD,

type: #IDENTIFICATION_REFERENCE,

label: 'Gestione Documenti',

position: 10 }]

@UI: { lineItem:[{

position: 10,

importance: #HIGH,

label:'Documento'}],

identification: [{ position: 10}],

selectionField: [{ position: 10}]

}

Ebeln;

@UI: { lineItem:[{

position: 20,

importance: #HIGH,

label:'Posizione'}],

identification: [{ position: 20}],

selectionField: [{ position: 20}]

}

Ebelp;

@UI: { lineItem:[{

position: 30,

importance: #HIGH,

label:'Testo Breve'}],

identification: [{ position: 30}],

selectionField: [{ position: 30}]

}

Txz01;

@UI: { lineItem:[{

position: 40,

importance: #HIGH,

label:'Materiale'}],

identification: [{ position: 40}],

selectionField: [{ position: 40}]

}

Matnr;

@UI: { lineItem:[{

position: 50,

importance: #HIGH,

label:'Data'}],

identification: [{ position: 50}],

selectionField: [{ position: 50}]

}

Data;

@UI: { lineItem:[{

position: 60,

importance: #HIGH,

label:'Ora'}],

identification: [{ position: 60}],

selectionField: [{ position: 60}]

}

Ora;

}


Facciamo doppio click sul Service Binding del servizio (ZDEMO_APP_INTERFACCE_CDS_SRV), e nella schermata di dx, selezionare l’Entity Set and Association e premere il pulsante “Preview”



Si aprirà il Browser con la preview della nostra APP.


Premendo sul pulsante “Adapt Filters” è possibile modificare i filtri presenti nella schermata.

Premendo il pulsante Create è possibile creare un record in tabella.

Inserire i dati e premere il pulsante Create

Tornando nella schermata principale si potrà vedere il record inserito