Cerca nel blog

mercoledì 13 maggio 2026

Aggiunta Campo Custom in App Standard Fiori

 Aggiunta Campo Custom in App Standard Fiori

REQUISITO

Supponiamo di volere estendere l'App Standard Fiori: Manage Sales Orders - Version 2 ( F3893 ) aggiungendo il campo standard VBAP-BWTAR (tipo di valutazione) in modalità transazionale in modo che possa essere modificabile.

ANALISI

Attualmente è possibile aggiungere i campi standard all’applicazione attraverso una Data Source Extension. Questo tipo di estensione consente di aggiungere campi standard in modalità read onlyNon è attualmente possibile aggiungere campi standard modificabili. E’ pertanto necessaria la seguente soluzione: 

  • Aggiunta di un campo custom tramite applicazione Custom Field and Logic
  • Esposizione del campo custom via Adapt UI ( o metadata extension dove possibile ) 
  • Apertura di apposita User Exit per il ribaltamento del valore del campo custom sul campo standard. 

SOLUZIONE

Per la creazione dei campi custom richiamare l'app Custom Field and Logic , e premere il pulsante "+"

Inserire il Busines Context, che in questo esempio, il campo lo dobbiamo inserire nelle posizioni dell'ordine di vendita, quindi selezioniamo Sales Document Item

Poi inseriamo l'etichetta del campo, il nome del campo che verrà creato sulla VBAP e in questo caso si chiamerà ZZ1_TP_VALORIZZAZIONE, e poi definiamo il tipo del campo. Infine premiamo il pulsante Create and Edit


Abilitiamo i 3 Data Source evidenziati

Adesso per esporre il nuovo campo entriamo nella nostra app che dobbiamo modificare e premiamo su Adapt UI 

Selezionare il gruppo dove voler inserire il nostro campo, premere su più, e selezionare il campo custom creato ZZ1_TP_VALORIZZAZIONE

Premere il pulsante di Attivazione in Alto a SX, e inserire una versione e premere Conferma


Infine per valorizzare il campo standard con il nuovo valore del campo custom, usare la user exit MV45AFZZ  FORM userexit_save_document_prepare.

Questo quando vogliamo salvare il dato modificato da fiori nel campo standard

 DATA: lv_mode TYPE sd_document_processing_mode.

  CLEAR: lv_mode.
  lv_mode = go_sls_mapper->get_processingmode( ). " 'CREATE', 'CHANGE', 'DISPLAY'

* Se passiamo da app Fiori = sy-tocde = ''
  IF sy-tcode IS INITIAL AND
     ( lv_mode = 'CREATE' OR lv_mode = 'CHANGE' ).

    LOOP AT xvbap ASSIGNING FIELD-SYMBOL(<lfs_xvbap>).
      <lfs_xvbap>-bwtar = <lfs_xvbap>-zz1_tp_valorizzazione_sdi.

    ENDLOOP.


Se invece modifichiamo il campo standard dalla tcode VA01 o VA02 dobbiamo valorizzare il campo custom che viene visualizzato nell'app fiori. Usare la user exit MV45AFZZ  FORM userexit_move_field_to_vbap.

******In questa exit non passa quando stiamo salvando da fiori
  IF sy-tcode = 'VA01' OR sy-tcode = 'VA02' OR ( sy-tcode = 'VA03' AND t180-trtyp = 'V' ).
    vbap-zz1_tp_valorizzazione_sdi = vbap-bwtar.
  ENDIF.

martedì 12 maggio 2026

Come trasportare i Custom Field in una CR

Come trasportare i Custom Field in una CR

Dopo avere creato i custom field in un'app fiori, bisogna trasportarli nei vari ambienti.

ll principio fondamentale di tutti gli strumenti di estensione basati sul web è che non è necessario specificare pacchetti o richieste di trasporto in queste applicazioni. Tutti i miglioramenti vengono inizialmente creati come oggetti locali che non sono ancora stati assegnati a una richiesta di trasporto.

Per vedere quale pacchetto locale vengono salvati gli oggetti custom creati (tipo i campi custom aggiunti alle app) richiamare dalla gui  la tcode S_ATO_SETUP, per vedere il nome del pacchetto local dove vengono salvati gli oggetti


ll trasporto delle estensioni utente chiave viene gestito tramite l'organizzatore del trasporto di adattamento (ATO). L'ATO deve quindi essere configurato per abilitare, tra le altre, le seguenti applicazioni SAP Fiori per gli utenti chiave:

  • Custom Fields and Logic
  • Custom Business Objects
  • Export Software Collection (cloud edition only)
  • Configure Software Packages (on-premise edition only)
  • Register Extensions for Transport (on-premise edition only)


Richiamare l'app Configure Software Packages

Con l'app Configura pacchetti software, è possibile configurare i package per il trasporto di elementi di estensione.

È necessaria una richiesta di trasporto e un'attività aperte ogni volta che un elemento di estensione in un pacchetto viene modificato o quando un nuovo elemento di estensione viene assegnato a un pacchetto nell'app Registra estensioni per il trasporto. Per questo motivo, è necessario assegnare al pacchetto software una richiesta di trasporto e un'attività. A tale scopo, è possibile scegliere tra le seguenti opzioni:

  • Assegnare una richiesta di trasporto specifica al pacchetto registrato e attivare la gestione automatica delle attività.
  • Attivare la gestione automatica delle richieste. Questa opzione attiva anche la gestione automatica delle attività.

Premere il pulsante Add Registration


Nella popup successiva selezionare il packages dove inseriremo i nostri oggetti custom creati nell’App Fiori e successivamente attivare la colonna “Automatic Task Handling



Richiamare l’app Register Extensions for Transport

L'applicazione SAP Fiori "Registra estensioni per il trasporto" è disponibile nell'edizione on-premise di SAP S/4HANA per il trasporto delle estensioni. Con questa applicazione, è possibile assegnare elementi di estensione a pacchetti software e richieste di trasporto. Se l'elemento di estensione che si desidera trasportare non è trasportabile, è necessario assegnarlo a un pacchetto trasportabile e configurato nell'applicazione "Configura pacchetti software". Se l'elemento di estensione che si desidera trasportare non è modificabile, non verrà assegnato a una richiesta di trasporto aperta. Di conseguenza, non sarà possibile registrare e trasportare alcuna modifica all'elemento di estensione. Per rendere modificabile un elemento di estensione, è possibile scegliere tra le seguenti opzioni:

  • Assegnare manualmente l'elemento di estensione a una richiesta di trasporto.
  • Attivare la gestione automatica delle attività nell'applicazione "Configura pacchetti software".

Selezionare il campo custom, premere il pulsante Assign to transport Request -> For Change Recording (default)

Selezioniamo la CR a cui associare il Campo e poi premere il pulsante “Reassing to Package” per assegnare il nostro package che possiamo trasportare e quindi togliere il package locale


Trasporto di estensioni in SAP S/4HANA Cloud

Le seguenti due applicazioni SAP Fiori sono disponibili in SAP S/4HANA Cloud per il trasporto delle estensioni:

  • Export Software Collection

Questa applicazione viene utilizzata nell'ambiente di test per raggruppare le estensioni in raccolte software ed esportarle insieme.

  •  Import Software Collection

Questa applicazione viene utilizzata nell'ambiente di produzione per importare le estensioni.



venerdì 8 maggio 2026

Creare Help di ricerca per campo custom in App Fiori Standard

Creare Help di ricerca per campo custom in App Fiori Standard

Per associare un help di ricerca ad un campo custom (editabile) inserito in un App Fiori standard bisogna prima creare 2 CDS view. Supponiamo di avere la seguente tabella custom:


Nell'app Fiori standard creeremo il campo custom Sede Base a cui vogliamo associare l'help di ricerca che legge i dati da questa tabella.

Creiamo la prima CDS View che legge la tabella custom, con le seguenti annotazioni, i campi evidenziati sono quelle da modificare , come i campi da selezionare


@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'Headquarters'

@ObjectModel.representativeKey: 'Headquarters'

@Analytics.technicalName: 'IHEADQUARTERS'

@ObjectModel.usageType.dataClass: #CUSTOMIZING

@ObjectModel.usageType.serviceQuality: #A

@ObjectModel.usageType.sizeCategory: #S

@ObjectModel.supportedCapabilities: [#CDS_MODELING_ASSOCIATION_TARGET, #CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE]

@VDM.viewType: #BASIC


define view entity ZI_SedeBase

as select from zsede_base

{

@ObjectModel.text.element: ['Headquarters']

key oia_baselo as Head_Quarters,

text1 as Descripition

}

where

zsede_base.spras = $session.system_language

Creiamo la seconda CDS View che sarà quella associata al campo custom nell'App. Questa CDS legge quella precedente, ed ha le seguenti annotazioni, i campi evidenziati sono quelle da modificare.


@AccessControl.authorizationCheck: #NOT_REQUIRED

@EndUserText.label: 'Headquarters'

@ObjectModel.dataCategory: #VALUE_HELP

@ObjectModel.usageType.dataClass: #CUSTOMIZING

@ObjectModel.usageType.serviceQuality: #A

@ObjectModel.usageType.sizeCategory: #S

@ObjectModel.supportedCapabilities: [#CDS_MODELING_ASSOCIATION_TARGET, #CDS_MODELING_DATA_SOURCE, #SQL_DATA_SOURCE, #VALUE_HELP_PROVIDER, #SEARCHABLE_ENTITY]

@Search.searchable: true

@VDM.viewType: #BASIC


define view entity ZI_SedeBaseServiceTypeVH as select from ZI_SedeBase

{

@ObjectModel.text.element: ['Headquarters']

@Search.defaultSearchElement: true

key Head_Quarters,

@Search.defaultSearchElement: true

Descripition

}


Alla seconda CDS View dobbiamo settare le proprietà, quindi dal menu di sx,

selezioniamo la nostra CDS, tsto dx, Show IN->Properties




Selezionare API State e settare i valori evidenziati salvare e attivare, in questo modo

questa cds può essere selezionata come help di ricerca



A questo punto creiamo il campo custom, quindi entriamo nell'app standard dove vogliamo inserire il campo, in alto a dx dove c'è la nostra sigla, premere il pulsante sx del mouse e dal menu selezionare "Adatta UI"




Posizionarsi sul blocco di campi dove si vuole aggiungere il proprio, tasto dx del mouse e selezionare "+ Aggiungi Campo"

Nella popup successiva, inserire l'etichetta Sede Base, il nome del campo custom da creare

ZZ1_Sede_Base, in type selezionare Code List based on CDS View, nel Value Help View, selezionare la seconda Cds view che abbiamo creato


Eseguendo l'app e premendo il pulsante dell'help di ricerca viene mostrata la popup con i dati presenti in tabella.