Sei sulla pagina 1di 46

Stima budgettaria

Implementazione ERP
SE38 - ABAP
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
SE38 – Creazione report

SE38 è una transazione standard SAP, disponibile sui sistemi R/3, che consente la
creazione, modifica ed esecuzione di un report custom o standard.

I report custom si distinguono da quelli standard dalla lettera iniziale ‘Z’ o ‘Y’.
SE38 – Creazione report

Una volta scritto il nome del report che si vuole creare, in questo caso
«ZTEST_CORSO» e cliccato il tasto creare, apparirà la seguente pop-up.

Le informazioni essenziali da inserire per la creazione di un report sono:


- TITOLO
- TIPO (solitamente viene creato un report eseguibile).
SE38 – Creazione report

Cliccando su «Salvare» nella schermata precedente, si aprirà il report.

Importante non rimuovere mai la prima istruzione REPORT $Nome_Report$.

Al momento della creazione il report nello stato sarà «non attivo».


Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
SE38 – Lista pulsanti

120 CLIENTI
su varie Industries

Permette la navigazione indietro e avanti Fornisce una lista di oggetti dove viene
delle azioni del report richiamato il report

Permette il passaggio da Apre una panoramica del report, indicando


modifica -> visualizza e viceversa tutti gli oggetti divisi per tipologia

Controlla la sintassi del codice; evidenzia Inserisce un punto di interruzione per


eventuali errori e suggerisce una possibile entrare nella modalità «Debug».
soluzione

In caso di assenza di errori attiva il report, Esegue una formattazione automatica del
altrimenti fornisce la lista degli errori e codice
suggerimenti

Esegue il report Richiama modelli di codice predefiniti


Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Dichiarazioni di dati e tipi

TIPO DI DATI
Dichiarazioni di dati e tipi

Istruzione TABLES

Questa istruzione consente di far riferimento nel


programma a tutti gli elementi contenuti all’interno
della tabella del database.

TABLES: bkpf.
Dichiarazioni di dati e tipi

Esistono 4 tipi di dichiarazioni fondamentali:

1) TYPES
2) DATA
3) CONSTANTS
4) FIELD-SYMBOLS
Dichiarazioni di dati e tipi

TYPES
Questa istruzione definisce un data type indipendente oppure una
struttura

TYPES: lt_parola(10) TYPE c.
TYPES: BEGIN OF lt_persona,
        nome(20) TYPE c,
        cognome(20) TYPE c,
       END OF lt_persona.
Dichiarazioni di dati e tipi

DATA
Questa istruzione serve per dichiarare una variabile di qualsiasi TIPO

DATA: lv_parola(20)TYPE C
 VALUE 'CORSO SAP'.
DATA: lv_data TYPE d.
DATA: lv_documento LIKE bkpf-belnr.
Dichiarazioni di dati e tipi

CONSTANTS
Questa istruzione definisce un oggetto con valore non modificabile

CONSTANTS: c_numero TYPE i
 VALUE '14'.
CONSTANTS: c_documento 
LIKE bkpf-belnr VALUE '1000050000'.
Dichiarazioni di dati e tipi

FIELD_SYMBOLS

questa istruzione crea una variabile che fa riferimento ad un’altra variabile.


Questo tipo di oggetto si definisce un ‘puntamento’.
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Work Area e Tabelle Interne

WORK AREA
Si definisce come WORK AREA : un’intera riga che fa riferimento ad una
struttura standard oppure ad una struttura definita nel programma
TYPES: BEGIN OF ls_classifica ,
        squadra(20) TYPE c,
        punti TYPE i,
        vittorie TYPE i,
        pareggi TYPE i,
        sconfitte TYPE i,
      END OF ls_classifica .

DATA: wa_classifica LIKE ls_classifica.

DATA: wa_documento LIKE bkpf.
Work Area e Tabelle Interne

TABELLA INTERNA
Si definisce come TABELLA INTERNA : un insieme di righe che fanno
riferimento ad una struttura standard oppure ad una struttura definita nel
programma
TYPES: BEGIN OF ls_classifica ,
        squadra(20) TYPE c,
        punti TYPE i,
        vittorie TYPE i,
        pareggi TYPE i,
        sconfitte TYPE i,
      END OF ls_classifica .
DATA: it_classifica LIKE ls_classifica OCCURS 0.
DATA: it_documento LIKE bkpf OCCURS 0.
Con l’aggiunta della parola chiave ‘HEADER LINE’ si definisce una tabella
che possiede una work area interna.
Work Area e Tabelle Interne

TABELLA INTERNA

WORK AREA

LOOP AT it_out2 INTO wa_out2.
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Parametri di Input

SELECTION-SCREEN
Questa parola chiave introduce un blocco di istruzioni utilizzate per
definire la schermata con cui interagisce l’utente
SELECTION-SCREEN : BEGIN OF BLOCK b1.
<istruzioni>
SELECTION-SCREEN : END OF BLOCK b1.
Parametri di Input

PARAMETERS
p_nome like tabella-campo
Campo di input: specifica un solo input. Deve essere dichiarato il tipo di
campo; dato che quasi sempre deve servire per fare operazioni su tabelle
si usa sempre dichiararlo simile ad un campo esistente (ma può essere
anche dichiarato come type …), così automaticamente prende tutte le
proprietà del campo, compresi eventuali match code.
Per convenzione, si usano sempre nomi delle variabili che cominciano con
“p_”.
PARAMETERS : p_comp LIKE bkpf-bukrs.
Parametri di Input

SELECT OPTIONS
s_nome for tabella-campo
Campo di input: specifica un intervallo di valori da… a…. Automaticamente
si riempie una tabellina che contiene gli estremi dell’intervallo (ce ne
possono essere vari, con elementi isolati sia di selezione che di esclusione).
Per convenzione, si usano sempre nomi delle variabili che cominciano con
“s_” . SELECT-OPTIONS: s_anno FOR bkpf-budat.
Parametri di Input

CHECK BOX
p_nome as checkbox
Check box (casella di spunta). Il parametro p_nome è una variabile di tipo
Char, lunghezza 1 carattere che può assumere valore ‘X’ se è selezionato o
‘BLANK’ se non è selezionata.

PARAMETERS: p_flag AS checkbox
Parametri di Input

RADIOBUTTON
p_nome as radiobutton group a1.
Radiobutton (serie di pulsanti tra cui se ne può selezionare uno solo).
Tutti i parametri che fanno parte dello stesso gruppo di selezione hanno in
comune lo stesso group, ma hanno nomi diversi.
Il parametro p_nome è una variabile di tipo Char, lunghezza 1 carattere che
può assumere valore ‘X’ se è selezionato o è vuota se non è selezionata.
PARAMETERS:  r_crea AS radiobutton group a1,
r_mod  AS radiobutton group a1,
r_canc AS radiobutton group a1.
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Istruzioni base
Istruzioni base
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Richiamo Subroutines Interne
Per dichiarare una subroutine interna, le parole chiave da utilizzare sono:
 
PERFORM .....
 
FORM..... ENDFORM

La prima è utilizzata dalla linea di programma CHIAMANTE seguito dal nome della
subroutine.

Le altre servono per individuare l’inizio e la fine della subroutine.


Le linee di codice all’interno di queste parole chiave sono la parte elaborativa.

Il nome della subroutines non può superare i 30 caratteri.


I richiami delle subroutines possono essere anche nidificati.
Per motivi di chiarezza e di manutenibilità si consiglia di scrivere tutte le subroutines
in coda al programma.
Richiamo Subroutines Interne

I dati che possono essere utilizzati all’interno di una subroutine sono:


 
dati globali: sono le tabelle, che vanno comunque definite in testa al
programma chiamante;
 
parametri di passaggio (formal parameters): rappresentano la modalità di
colloquio con la parte chiamante, e sono di input e di output; di questi si
parlerà più diffusamente nelle slide successive; qui si rammenti solo che i
parametri nel chiamante si definiscono actual parameters, nella subroutine si
definiscono formal parameters;
Richiamo Subroutines Interne

dati locali : sono variabili dichiarate all’interno della subroutine che occupano
memoria solo quando si richiama la subroutine e spariscono quando se ne esce; esse
possono avere anche lo stesso nome delle variabili dichiarate a programma, ed ivi
utilizzate, senza che, al variare del dato nella subroutine corrisponda un
cambiamento nell’omonima variabile a programma; è fortemente consigliabile
operare con dati locali poiché si garantisce l’integrità degli altri dati di programma e
si limitano le interferenze con la main line.

Nel passaggio dei parametri il chiamante utilizza gli actual parameters, che devono
coincidere almeno quantitativamente con i formal parameters della subroutine.
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Eventi

start-of-selection  evento di inizio programma

eventi vari  ad esempio:


get è l’istruzione per la lettura dei DB logici;
top‑of‑page l’evento che gestisce l’intestazione nella lista da stampare;
at‑selection‑screen le istruzioni da eseguire appena si avvia il programma

end-of-selection  evento di fine programma


Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Eventi

VARIANTI

Servono per salvare i dati inseriti in una schermata di


input in modo da non doverli reinserire ogni volta che
si lancia il programma.
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Istruzioni su tabelle Interne
Istruzioni su tabelle Interne
Istruzioni su tabelle Interne
Istruzioni su tabelle Interne
Istruzioni su tabelle Interne
Agenda

SE38 – Creazione di un report

SE38 – Lista pulsanti

ABAP Declaration:
Dichiarazioni di dati e tipi
Work Area e Tabelle Interne
Parametri di Input
ABAP Instruction:
Istruzioni Base
Richiamo Subroutines Interne
Eventi
Varianti
Istruzioni su Tabelle:
Interne
Dictionary
Istruzioni su tabelle Dictionary
Istruzioni su tabelle Dictionary
Istruzioni su tabelle Dictionary

Potrebbero piacerti anche