Sei sulla pagina 1di 21

query.doc

ABAP Query

28/11/01

ABAP QUERY

Mediante l’utilizzo delle ABAP query è possibile estrarre dei dati dalle tabelle SAP ed ottenere una lista (come report ABAP) Le query generano un report ABAP.

Il percorso per gestire le query è:

Tools ABAP Workbench

Utilities ABAP Query

A questo punto si devono eseguire i seguenti step:

Gruppi di utenti

punto si devono eseguire i seguenti step: Gruppi di utenti La creazione di un gruppo di

La creazione di un gruppo di utenti è il primo passo necessario per potere creare una query.

Il gruppo di utenti ha la funzionalità di aggregare degli utenti in modo da indicare quali query un utente potrà utilizzare.

Pag.: 1/21

query.doc

ABAP Query

28/11/01

Una volta creato un gruppo di utenti mediante la funzionalità di “Attribuire utenti e settori spec.” È possibile indicare quali utenti fanno parte del gruppo.

di “Attribuire utenti e settori spec.” È possibile indicare quali utenti fanno parte del gruppo. Pag.:

Pag.: 2/21

query.doc

ABAP Query

28/11/01

Una volta indicati gli utenti, mediante la funzionalità “Attr. Sett. Spec.” è possibile indicare quali settori specifici questi ultimi sono abilitati ad utilizzare.

Sett. Spec.” è possibile indicare quali settori specifici questi ultimi sono abilitati ad utilizzare. Pag.: 3/21

Pag.: 3/21

query.doc

Settori specifici

ABAP Query

28/11/01

query.doc Settori specifici ABAP Query 28/11/01 Il settore specifico è la base per poter creare una

Il settore specifico è la base per poter creare una query.

A livello di settore specifico si devono definire le tabelle ed i campi che si vogliono utilizzare e si deve stabilire il loro

legame. Un settore specifico può essere la base per diverse queries.

Pag.: 4/21

query.doc

ABAP Query

28/11/01

Nel momento in cui si crea un settore specifico si deve indicare una descrizione e la fonte dei dati:

si deve indicare una descrizione e la fonte dei dati: La fonte dei dati può essere:

La fonte dei dati può essere:

database logico: l’estrazione dei dati avviene da più tabelle, l’utilizzo del database logico permette di avere a disposizione tutte le tabelle definite nel database indicato

join tabelle: l’estrazione dei dati avviene da più tabelle, l’utilizzo delle join permette di utilizzare le tabelle necessarie, indicando le regole di collegamenti fra i record

lettura diretta: l’estrazione dei dati avviene da una singola tabella

approvv dati con il programma

dataset sequenziale: i dati vengono estratti da un file seuqnenziale

Pag.: 5/21

query.doc

Join tabelle

ABAP Query

28/11/01

query.doc Join tabelle ABAP Query 28/11/01 Una volta indicata la tabella principale è possibile indicare le

Una volta indicata la tabella principale è possibile indicare le altre che si vogliono legare a quest’ultima. Per ogni legame si deve indicare il tipo di join:

inner: vengono estratti tutti i record della prima tabella solo se esiste corrispondenza nella seconda left outer: vengono estratti tutti i record della prima tabella anche se non esiste corrispondenza nella seconda right outer: vengono estratti tutti i record della seconda tabella anche se non esiste corrispondenza nella prima (non supportato)

Una volta definito il tipo di join si deve stabilire quali campi collegano una tabella all’altra, mediante la funzionalità di “Definire condizione” è possibile indicare tale legame. Il sistema consente la possibilità di creare una proposta di legame fra le 2 tabelle collegando i campi che hanno lo stesso elemento dati:

di creare una proposta di legame fra le 2 tabelle collegando i campi che hanno lo

Pag.: 6/21

query.doc

ABAP Query

28/11/01

Indicando lo stesso valore sulle 2 colonne viene definito il legame fra i 2 campi corrispondenti:

viene definito il legame fra i 2 campi corrispondenti: Supponiamo di avere legato la tabella KNA1

Supponiamo di avere legato la tabella KNA1 (dati generali clienti) e la tabella KNVV (dati di vendita clienti) mediante il campo KUNNR, che si vogliano estrarre i campi KUNNR, NAME1, VKORG, VTWEG e SPART e che tali tabelle abbiano il seguente contenuto:

Tabella KNA1 (pricipale)

 

Tabella KNVV (secondaria)

KUNNR

NAME1

KUNNR VKORG VTWEG SPART

123

XX

123

0001

01

01

178

YY

345

ZZ

345

0002

02

02

 

528

0009

09

09

Una inner join estrarrebbe:

 

KUNNR

NAME1

VKORG

VTWEG

SPART

123

XX

0001

01

01

345

ZZ

0002

02

02

Una left outer join estrarrebbe:

 

KUNNR

NAME1

VKORG

VTWEG

SPART

123

XX

0001

01

01

178

YY

345

ZZ

0002

02

02

Una right outer join estrarrebbe:

 

KUNNR

NAME1

VKORG

VTWEG

SPART

123

XX

0001

01

01

345

ZZ

0002

02

02

528

0009

09

09

Pag.: 7/21

query.doc

ABAP Query

28/11/01

Una volta definite le tabelle ed il loro legame è possibile scegliere quali campi includere nel settore specifico. Si deve creare almeno un gruppo specifico; il gruppo specifico ha la funzionalità di raggruppare i campi che si vogliono utilizzare. Quanti gruppi specifici creare è una libera scelta: si può creare un unico gruppo per tutti i campi utilizzati, o diversi gruppi logici (nell’esempio potrebbero essere 2: dati generali e dati di vendita):

utilizzati, o diversi gruppi logici (nell’esempio potrebbe ro essere 2: dati generali e dati di vendita):

Pag.: 8/21

query.doc

ABAP Query

28/11/01

Mediante la funzionalità “Opzioni” è possibile creare dei campi supplementari che vengono collegati alla tabella principale e, di conseguenza, visti come campi di tale tabella

e, di conseguenza, visti come campi di tale tabella Una volta indicato il nome del campo
e, di conseguenza, visti come campi di tale tabella Una volta indicato il nome del campo

Una volta indicato il nome del campo supplementare è necessario scrivere una parte di codice ABAP che permetta di valorizzare il campo altrimenti vuoto. Nell’esempio la codifica ABAP dovrebbe selezionare la funzione partner “WE” relativa al cliente dalla tabella KNVP:

SELECT SINGLE * FROM KNVP WHERE KUNNR = KNA1-KUNNR AND VKORG = KNVV-VKORG AND VTWEG = KNVV-VTWEG AND SPART = KNVV-SPART AND PARVW = ‘WE’.

IF SY-SUBRC = 0. DEST_MERCE = KNVP-KUNN2. ENDIF.

La tabella KNVP, non definita nella join, deve essere definita mediante: Passaggio a Codifiche DATA

Pag.: 9/21

query.doc

Queries

ABAP Query

28/11/01

query.doc Queries ABAP Query 28/11/01 Pag.: 10/21

Pag.: 10/21

query.doc

ABAP Query

28/11/01

Selezione dei gruppi specifici (definiti nel settore specifico selezionato) da utilizzare nella query:

Selezione dei gruppi specifici (definiti nel settore specifico selezionato) da utilizzare nella query: Pag.: 11/21

Pag.: 11/21

query.doc

ABAP Query

28/11/01

Selezione dei campi (dei gruppi specifici precedentemente selezionati) da impiegare nella query: campi di output e campi di selezione:

specifi ci precedentemente selezionati) da impiegare nella query: campi di output e campi di selezione: Pag.:

Pag.: 12/21

query.doc

ABAP Query

Impostazione dei campi di selezione della query:

28/11/01

query.doc ABAP Query Impostazione dei campi di selezione della query: 28/11/01 Pag.: 13/21

Pag.: 13/21

query.doc

ABAP Query

Lista di base

Definizione della sequenza dei campi nella lista di output:

28/11/01

della sequenza dei campi nella lista di output: 28/11/01 Oltre alla sequenza dei campi (Riga e

Oltre alla sequenza dei campi (Riga e Sequenza) è possibile stabilire in base a quali campi ordinare la lista (Cl.), se si vuole impostare un contatore degli elementi estratti (Cont.) e, per i campi numerici, è possibile impostare delle totalizzazioni (Tot.). Tenere conto che se si vuole avere la possibilità di esportare la lista di output in EXCEL il layout deve essere impostato su un’unica riga.

Pag.: 14/21

query.doc

ABAP Query

28/11/01

Per i campi indicati come campi di ordinamento della lista è possibile definire se si vuole la totalizzazione parziale dei campi per cui si è impostata la totalizzazione (Tot.), il conteggio parziale degli elementi estratti per i campi per cui si è impostato il conteggio. Il flag Tsto permette di impostare un’intestazione all’inizio di ogni gruppo. Il flag Int. permette di classificare la lista in ordine decrescente. I flag RigaV e N.pag permettono di cambiare pagina o lasciare una riga vuota a rottura di gruppo.

I flag RigaV e N.pag permettono di cambiare pagina o lasciare una riga vuota a rottura

Pag.: 15/21

query.doc

ABAP Query

28/11/01

Nel caso la lista sia stata definita su più righe è possibile condizionare la stampa di una riga solo se ne viene stampata un’altra:

definita su più righe è possibile condizionare la stampa di una riga solo se ne viene

Pag.: 16/21

query.doc

ABAP Query

28/11/01

È possibile modificare la lunghezza (il default è la lunghezza del campo definita a livello di data dictionary) ed il posizionamento di ogni campo che verrà stampato, è possibile modificare il colore in cui verrà stampato il campo, per i campi numerici, stampare il valore solo se diverso da 0:

il colore in cui verrà stampato il campo, per i campi numerici, stampare il valore solo

Pag.: 17/21

query.doc

ABAP Query

28/11/01

È possibile modificare l’intestazione standard delle colonne della lista di output (doppio click sulla definizione da modificare):

l’intestazione standard delle colonne della lista di output (doppio click sulla definizione da modificare): Pag.: 18/21
l’intestazione standard delle colonne della lista di output (doppio click sulla definizione da modificare): Pag.: 18/21

Pag.: 18/21

query.doc

È possibile definire dei grafici:

ABAP Query

28/11/01

query.doc È possibile definire dei grafici: ABAP Query 28/11/01 Pag.: 19/21

Pag.: 19/21

query.doc

ABAP Query

Trasporto di queries e settori specifici

28/11/01

Non è necessario utilizzare la gestione dei trasporti di SAP: è possibile scaricare un file sequenziale dal sistema dove è stata creata la query ed importarlo sul sistema di destinazione.

un file sequenziale dal sistema dove è stata creata la query ed importarlo sul sistema di

Pag.: 20/21

query.doc

ABAP Query

28/11/01

Database logici

L’utilizzo del database logico VAV in una query consente di avere a disposizione tutte le tabelle definite nel database stesso:

logico VAV in una query consente di avere a disposizione tutte le tabelle definite nel database

Pag.: 21/21