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.

Nessun commento:

Posta un commento