Tutorial sulla programmazione tramite finestre di dialogo: pool di moduli in SAP ABAP

SAP-ABAP supporta due tipi di programmi: Programma report e Programma dialogo.

Se il programma ABAP richiede l'input dell'utente, viene utilizzata la programmazione Dialog.

In questo tutorial imparerai:

Un dialogo utente è qualsiasi forma di interazione tra l'utente e il programma e potrebbe essere una delle seguenti

  • Immissione dei dati
  • Scelta di una voce di menu
  • Facendo clic su un pulsante
  • Facendo clic o facendo doppio clic su una voce

Il programma di dialogo viene utilizzato anche quando dobbiamo navigare avanti e indietro tra le schermate

I programmi di dialogo vengono creati con il tipo 'M' – Module Pool. Non possono essere eseguiti autonomamente e devono essere allegati ad almeno un codice transazione in cui si specifica una schermata iniziale.

Differenza tra i programmi Report e Dialog

Differenza tra i programmi Report e Dialog

Programma di report:

Un report è un programma che in genere legge e analizza i dati nelle tabelle del database senza modificarli banca dati.

Programma di dialogo:

Un programma di dialogo consente di lavorare in modo interattivo con il sistema e di modificare il contenuto delle tabelle del database. Ogni programma di dialogo dispone di una determinata sequenza di schermate che vengono elaborate dal sistema una dopo l'altra.

Un esempio di elaborazione delle transazioni nella programmazione a dialoghi

Un esempio di elaborazione della transazione

Componenti del programma Dialog

a differenza di rapporto che generalmente comporta la creazione di un programma autonomo che può essere eseguito indipendentemente da altri oggetti, lo sviluppo di programmi di dialogo comporta lo sviluppo di più oggetti, nessuno dei quali può essere eseguito da solo. Invece tutti gli oggetti sono collegati gerarchicamente al programma principale e vengono eseguiti in una sequenza dettata dal programma principale di dialogo.

I componenti di un programma di dialogo sono:

Codice transazione

  • Il codice transazione avvia una sequenza di schermate.
  • I codici transazione possono essere creati nel browser del repository in ABAP Workbench o utilizzando Transaction SE93.
  • Un codice di transazione è collegato ad un programma ABAP e ad una schermata iniziale.
  • È possibile avviare una sequenza di schermate da qualsiasi programma ABAP utilizzando l'istruzione CALL SCREEN.

Schermi

  • Ogni dialogo in un SAP il sistema è controllato da uno o più schermi.
  • Puoi creare schermate utilizzando Screen Painter nel Workbench ABAP attraverso la transazione SE51
  • Ogni schermata appartiene a un Programma ABAP.
  • Queste schermate sono costituite da una "maschera di schermata" o "layout" e dalla sua logica di flusso. La schermata ha un layout che determina le posizioni dei campi di input/output e di altri elementi grafici come caselle di controllo e pulsanti di scelta. Una logica di flusso determina l'elaborazione logica all'interno della schermata.

Stato della GUI

  • Ogni schermata ha uno o più stati della GUI che sono componenti indipendenti di un programma.
  • Controlla le barre dei menu, la barra degli strumenti standard, la barra degli strumenti dell'applicazione, con cui l'utente può scegliere le funzioni nell'applicazione.
  • Li crei nell'ABAP Workbench utilizzando il menu Painter.

Programma ABAP

  • Ciascuno schermo e stato della GUI nel sistema R/3 appartiene a un programma ABAP.
  • Il programma ABAP contiene i moduli di dialogo richiamati dalla logica del flusso dello schermo ed elabora anche l'input dell'utente dallo stato della GUI.
  • I programmi ABAP che utilizzano le schermate sono noti anche come programmi di dialogo.
  • In un pool di moduli (programma di tipo M); il primo blocco di elaborazione da richiamare è sempre un modulo di dialogo. È tuttavia possibile utilizzare le schermate anche in altri programmi ABAP, ad esempio programmi eseguibili o moduli funzione. Il primo blocco di elaborazione viene poi richiamato diversamente; ad esempio, dall'ambiente runtime o da una chiamata di procedura. La sequenza delle schermate viene quindi avviata utilizzando l'istruzione CALL SCREEN.

Logica del flusso dello schermo

La logica del flusso dello schermo è principalmente divisa in quattro componenti.

  • Processo prima dell'output (PBO) evento: che viene elaborato prima della visualizzazione della schermata
  • Processo dopo l'input (PAI) evento: che viene elaborato dopo un'azione dell'utente sullo schermo
  • Processo su richiesta di aiuto (P.O.H.): che viene elaborato quando si preme F1
  • Processo su richiesta valore (POV): che viene elaborato quando si preme F4

Dynapro

  • Una schermata insieme alla sua logica di flusso è chiamata Dynpro ("Programma dinamico" poiché la logica di flusso della schermata influenza il flusso del programma)
  • Ogni dynpro controlla esattamente un passo del tuo programma di dialogo.
  • Le schermate appartenenti ad un programma sono numerato. La sequenza del flusso dello schermo può essere lineare o ciclica. Dall'interno di una catena di schermate è anche possibile richiamare un'altra catena di schermate e, dopo averla elaborata, ritornare alla catena originale. È inoltre possibile sovrascrivere la schermata successiva definita staticamente dai moduli di dialogo del programma ABAP.

Pool di moduli ABAP

  • Su un evento PBO o PAI un Dynpro richiama un programma di dialogo ABAP. La raccolta di tali programmi è chiamata pool di moduli ABAP.
  • Ad esempio, i moduli richiamati all'evento PAI vengono utilizzati per verificare l'input dell'utente e per attivare le fasi di dialogo appropriate, come l'attività di aggiornamento.
  • Tutti i dynpro da chiamare dall'interno prima la transazione si riferisce a un pool di moduli comune.

Struttura di un programma di dialogo

Struttura di un programma di dialogo

Flusso del processo per un programma di dialogo

Flusso del processo per un programma di dialogo