Cerca nel blog

venerdì 21 dicembre 2018

ABAP: Errore WBE DYNPRO " this page can’t be displayed "

Errore WBE DYNPRO " this page can’t be displayed "


Quando si prova a testare una Web Dynpro e nel browser che si apre compare l'errore: this page can’t be displayed, è necessario eseguire i seguenti settaggi:
Vedere se è stato settato  il servizio HTTP
Transazione: SMICM  (per vedere la configurazione HTTP  e HTTPS)
Premere sul pulsante evidenziato in giallo

Se sono settati i servizi, vengono visualizzati con il check verde.


Per vedere il dominio che stiamo usando, richiamare la transazione SE38, selezionare Utilities->Parametrizzazione e poi selezionare il tab "Internet Transaction Server" :
 
Inserire il dominio e il relativo indirizzo IP nel file host presente nella cartella C:\Windows\System32\drivers\etc. 
Verificare che la porta associata al servizio HTTP (nel nostro caso 8080) funzioni:
Aprire Internet Explorer e inserire alternativamnente i seguenti URL  e vedere la risposta:
http://<il vostro dominio>:8080/sap/bc/ping

http://<il vostro dominio>:8080/sap/public/ping
Ed infine, richiamare la transazione SICF e attivare tutti i servizi indicati in questo post della SAP:

Ed infine, richiamare la transazione SICF e attivare tutti i servizi indicati in questo post della SAP:

https://help.sap.com/saphelp_nw70ehp1/helpdata/en/46/d28dfa34bb12bee10000000a1553f7/content.htm?no_cache=true


giovedì 15 novembre 2018

ABAP: Aggiornamento view V_T800M (Trasferimenti fissi campo)

Aggiornamento view V_T800M


Questa view V_T800M per essere aggiornata tramite la transazione SM30 si fa in questo modo:

Richiamare la transazione SM30, nel campo Tabella/view inserire il nome della view V_T800M e premere il pulsante Aggiornare.
I campi saranno tutti disabilitati e come si vede non si può modificare la tabella.


Per abiltare l'inserimento/aggiornamento dei record, scrivere MAST e premere invio


E i campi diventano editabili:




domenica 7 ottobre 2018

ABAP: Creare Campo custom in Tabella FMBL e visualizzarlo nella FMBB

Creare Campo custom in Tabella FMBL e visualizzarlo nella FMBB

Per Aggiungere un campo custom non editabile da poter visualizzare sulla transazione SAP FMBB  (Budgeting Workbench) bisogna modificare la Customer Include  CI_FMBL  contenuta all’interno della tabella FMBL : Gestione fondi: righe doc. budget (documenti di acq.)
Dalla transazione SE11, nel campo tipo dati inserite CI_FMBL e premete il pulsante Modifica:


Nella struttura che stiamo modificando inseriamo il nostro campo custom, salviamo e attiviamo, in questo modo avremo il nuovo campo anche sulla tabella FMBL:


Dopo l’aggiunta del campo e  lanciando la transazione FMBB, il campo che è stato aggiunto verrà visualizzato sulle posizioni:


Per rendere tale campo non editabile e per far si che in fase di parcheggio tale campo sia sempre visualizzabile alla  fine della tabella degli item (usando il campo col_pos della fieldcat)bisogna creare un enhancment implicito  all’interno dell’include LFMBWBF05 alla fine della form update_structure.
Creato l’Enhancment bisogna agire sulla tabella della fiedlcat dal nome c_t_field_catalog andando a modificare la proprità edit del campo custom nel seguente modo:

ENHANCEMENT 1  ZHEN_FM_FIELDCAT_CORRISPETTIVO.    "active version
  if sy-tcode eq 'FMBB'.
     if not c_t_field_catalog[] is INITIAL.
        READ TABLE c_t_field_catalog ASSIGNING FIELD-SYMBOL(<fs_fieldcatalog>)
                    WITH KEY fieldname = 'ZPERC_CORRISPETTIVO'.
                if <fs_fieldcatalog> is ASSIGNED.
                     CLEAR : <fs_fieldcatalog>-edit.
                   <fs_fieldcatalog>-outputlen = '15'.
                   <fs_fieldcatalog>-col_pos = '33'.
                endif.
     endif.
  endif.
ENDENHANCEMENT.
ENDFORM.


I dati presenti all’interno del DB vengono riportati all’interno della tabella c_t_doc_lines e per essere mostrati a video bisogna riportarli all’interno della tabella c_t_alv. Le due tabelle possono essere messe in relazione con il campo docln.
Di seguito il codice relativo dell’enhancment:

ENHANCEMENT 1  ZHEN_FM_POP_CORRISPETTIVO.    "active version
if sy-tcode eq 'FMBB' and not c_t_doc_lines[] is INITIAL and not c_t_alv[] is INITIAL.
    loop at c_t_doc_lines ASSIGNING FIELD-SYMBOL(<fs_doc_line>).
      READ TABLE c_t_alv ASSIGNING FIELD-SYMBOL(<fs_c_t_alv>)
                                       WITH KEY docln = <fs_doc_line>-docln.
      if <fs_c_t_alv> is ASSIGNED.
      <fs_c_t_alv>-zperc_corr = <fs_doc_line>-zperc_corr.
      endif.
    ENDLOOP.
    UNASSIGN : <fs_doc_line>,
               <fs_c_t_alv>.
  endif.
ENDENHANCEMENT.

Nella BAPI STANDARD per la creazione del documento che simula la FMBB BAPI_0050_CREATE bisogna valorizza la struttura EXTENSION_IN nel seguente modo, 1 record per i campi custom di testata se ci sono, e tanti record quanti sono le posizione per i campi custom di posizione:


In particolare i campi obbligatori da inserire per i campi cusotmo di posizione oltre al campo creato bisogna valorizzare l'item e RPMAX =016. Esempio:

Nel caso si dovessero effettuare dei controlli sui campi custom bisogna creare un enhancement della BADI BAPI_0050 nel metodo CRATE_IN

METHOD if_ex_bapi_0050~create_in.

  DATArec_fmbh TYPE fmbh.
  DATArec_head TYPE bapi_0050_header.
  DATArec_mes TYPE bapiret2.
  DATArec_ext TYPE bapiparex.

******Sivestri.
Data t_ritem TYPE BAPI_0050_ITEM,
       t_sitem TYPE BAPI_0050_ITEM.

  IF headerdata-doctype 'Z002'.
    EXIT.
  ENDIF.
  READ TABLE extension_in INTO rec_ext WITH KEY  structure  'BAPI_TE_FMBH'.

****** Vietri
  IF headerdata-PROCESS <> 'ENTR'.
    IF sy-subrc 0.
      SELECT SINGLE FROM  fmbh INTO rec_fmbh WHERE
      zid_impegno rec_ext-valuepart1+52(16).
      IF sy-subrc 0.

        rec_mes-type 'E'.
        rec_mes-id 'DB'.
        rec_mes-number '000'.
        rec_mes-message 'Id impegno già utilizzato.'.
        APPEND rec_mes TO return.
     ENDIF.
    ENDIF.
  ENDIF.
ENDMETHOD.


Ringrazio il collega Marco Savastano per questa documentazione.