Cerca nel blog

giovedì 14 dicembre 2023

SAP FIORI: Nascondi i pulsanti nell'app My Inbox di FIORI

 Nascondi i pulsanti nell'app My Inbox di FIORI

In S4 HANA quando implementiamo l'app Fiori "My Inbox". Per impostazione predefinita mostra alcuni pulsanti delle attività di azione come "Sospendi", "Richiedi", "Mostra registro" ecc. Come segue:

Ora vi spiego come nascondere questi pulsanti

Usiamo la BADI standard “WF_TASK_SUPPORT”.

Richiamare la transazione SE18 e inserire il nome BADI WF_TASK_SUPPORT. Selezionare dal menu: Implementazione dell'ampliamento-> Creare


Inserire il nome dell'implementazione "ZINBOX_WF_TASK_SUPPORT1" una descrizione "Nascondi Pulsanti"


Inserire il nome della classe "ZCL_WF_TASK_SUPPORT1" e la badi di riferimento "WF_TASK_SUPPORT"


Implementare il metodo: 
IF_WF_TASK_SUPPORT~GET_MULTIPLE_TASK_SUPPORT

Inseriamo il seguente codice.

  METHOD if_wf_task_support~get_multiple_task_support.
    LOOP AT ch_tasks_supports ASSIGNING FIELD-SYMBOL(<fs_task_supports>)
    WHERE task 'TS00800531' OR task 'ts00800531'
       OR task 'ts00800578'  OR task 'TS00800578'
       or task 'TS02000714' or task 'Ts02000714'.

      <fs_task_supports>-forward abap_false.
      <fs_task_supports>-claim abap_false.
      <fs_task_supports>-uiexecutionlink abap_true.
      <fs_task_supports>-resubmit abap_false"Suspend
      <fs_task_supports>-processinglogs abap_true.
      <fs_task_supports>-workflowlog abap_true.
      <fs_task_supports>-release abap_true.

    ENDLOOP.
  ENDMETHOD.

Attiva la BADI ed esegui l'app my inbox fiori. L'output sarà il seguente:



venerdì 27 ottobre 2023

Aggiunta campi NON scorrevoli nella view di manutenzione SM30

Aggiunta campi NON scorrevoli nella view di manutenzione  SM30


Se oltre ai campi chiave bisogna bloccare nello scorrimento anche qualche altro campo, bisogna modificare il control panel.

Esempio: Richiamare la transazione SE11 e inserire il nome della tabella e premere modifica. Generare la view di aggiornamento dal menu Utilities->Generatore agg. tabella. Come si vede la tabella a 5 campi chiave, vogliamoche anche il campo NETWR sia bloccata quando si scrollano i campi verso sinistra.

Fare doppio click sulla videata di riepilogo

Selezionare il tab. "Lista elem." e premere il pulsante "Attibuti"


Modificare il valore del campo "N. colonne fisse", ho modificato da 5 a 6 colonne, e premere il pulsante "Rilevare", ed infine attivare il tutto


Richiamare la SM30 e vedere se durante lo scrolling, le sei colonne rimangono bloccate durante lo scrolling. 




martedì 26 settembre 2023

Creazione Servizio Odata mediante FUNCTION IMPORT

Creazione Servizio Odata mediante FUNCTION IMPORT

Le Function Import vengono usate per operazioni personalizzate che non possono essere richiamate utilizzando un’operazione standard (CRUD)

Richiamare la transazione SEGW, creare un nuovo Progetto, premendo il pulsante NEW:

Sulla cartella Data model, tasto dx, selezionare Import ->RFC/BOR Interface


Inserire un nome per il Function Import Name

In questo caso, sotto la cartella Function Import viene creato il nostro GetUser

Ora alla nostra GetUser dobbiamo associare la nostra Entity, quindi adesso ci creiamo la nostra Entity partendo dalla Bapi BAPI_USER_GET_DETAIL che useremo successivamente.

Sulla cartella Data model, tasto dx, selezionare Import ->RFC/BOR Interface


Inserire il nome della Entity, se il gateway è presente sulla stessa macchina, selezionare LOCAL, altrimenti Remote.

Selezionare il type “Remote Funcion Call”, ed inserire il nome della BAPI da usare. In questo caso non selezionare l’Entity Set che non useremo.

Selezioniamo i campi che vogliamo restituire al servizio in questo campo quelli che ho evidenziato:

Indichiamo il campo chiave.

Adesso alla nostra Function Import, GetUser, associamo la Entity Type creata precedentemente, indichiamo come “Return Type Kind” l’Entity Type, come “Return Type” la nostra Function Import, come “Return Cardinality” 0..1 ed infine come “HTTP Method Type” il metodo GET, e SALVIAMO

Poi facciamo doppio click sulla cartella Function Import Parameters, evidenziato in rosa, per inserire dei parameti di input, salviamo e attiviamo e si creano come al solito le classi associate al servizio.

Registriamo il servizio richiamando il servizio /n/IWFND/MAINT_SERVICE

Premiamo il pulsante Aggiungere servizio

Inserire l’Alias e il nome del nostro servizio, battere invio, selezionarlo e premere “Aggiungere servizio selezionati”

Ritornare nella lista dei servizi e vedere se vediamo il servizio creato

A questo punto eseguiamo la transazione /n/IWFND/GW_CLIENT per usufruire del servizio creato

Richiamando la seguente URL

/sap/opu/odata/sap/ZFUNC_IMPORT_SRV/GetUser?User_Id='SLANZETTA'

Vediamo che ci restituisce il seguente messaggio di errore “Non è stato implementato il metodo EXECUTE_ACTION”


Quindi adesso ridefiniamo il metodo EXECUTE_ACTION, e per far ciò, facciamo doppio click sulla classe ZCL_ZFUNC_IMPORT_DPC_EXT

Aprire la cartella /IWBEP/IF_MGW_APPL_SRV_RUNTIME, selezionare il metodo EXECUTE_ACTION, tasto dx e scegliere Ridefinire


Scriviamo il seguente codice:

 METHOD /iwbep/if_mgw_appl_srv_runtime~execute_action.


    
DATAlv_function_name TYPE /iwbep/mgw_tech_name,
          Lt_bapiret2      
TYPE STANDARD TABLE OF bapiret2,
          Ls_entity        
TYPE ZCL_ZFUNC_IMPORT_MPC_EXT=>ts_user,
          Ls_bapiaddr3     
TYPE bapiaddr3,
          Lv_uname         
TYPE sy-uname,
          Ls_parameter     
LIKE LINE OF it_parameter.

    lv_function_name 
io_tech_request_context->get_function_import_name( ).

    
IF lv_function_name 'GetUser'.

      
READ TABLE it_parameter INDEX INTO ls_parameter.
      
IF sy-subrc 0.
        Lv_uname 
ls_parameter-value.
        
TRANSLATE lv_uname TO UPPER CASE.
        
CALL FUNCTION 'BAPI_USER_GET_DETAIL'
          
EXPORTING
            Username 
lv_uname
          
IMPORTING
            Address  
ls_bapiaddr3
          
TABLES
            
Return   lt_bapiret2.

        
MOVE-CORRESPONDING ls_bapiaddr3 TO ls_entity.

        copy_data_to_ref
(
        
EXPORTING
        is_data 
ls_entity
        
CHANGING
        cr_data 
er_data
        
).

      
ENDIF.
    
ENDIF.

  
ENDMETHOD.

A questo punto, rieseguiamo la transazione /n/IWFND/GW_CLIENT per usufruire del servizio creato

Richiamando la seguente URL

/sap/opu/odata/sap/ZFUNC_IMPORT_SRV/GetUser?User_Id='SLANZETTA'

Otteniamo il seguente risultato: