Abap Query

21
query.doc ABAP Query 28/11/01 Pag.: 1/21 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 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.

Transcript of Abap Query

Page 1: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 1/21

ABAP QUERY

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

Il percorso per gestire le query è:Tools ABAP WorkbenchUtilities ABAP Query

A questo punto si devono eseguire i seguenti step:

Gruppi di utenti

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.

Page 2: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 2/21

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

Page 3: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 3/21

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

Page 4: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 4/21

Settori specifici

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 lorolegame.Un settore specifico può essere la base per diverse queries.

Page 5: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 5/21

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

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

Page 6: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 6/21

Join tabelle

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 secondaleft outer: vengono estratti tutti i record della prima tabella anche se non esiste corrispondenza nella secondaright outer: vengono estratti tutti i record della seconda tabella anche se non esiste corrispondenza nella prima (nonsupportato)

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 dilegame fra le 2 tabelle collegando i campi che hanno lo stesso elemento dati:

Page 7: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 7/21

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

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

Tabella KNA1 (pricipale) Tabella KNVV (secondaria)KUNNR NAME1 KUNNR VKORG VTWEG SPART123 XX 123 0001 01 01178 YY345 ZZ 345 0002 02 02

528 0009 09 09

Una inner join estrarrebbe:KUNNR NAME1 VKORG VTWEG SPART123 XX 0001 01 01345 ZZ 0002 02 02

Una left outer join estrarrebbe:KUNNR NAME1 VKORG VTWEG SPART123 XX 0001 01 01178 YY345 ZZ 0002 02 02

Una right outer join estrarrebbe:KUNNR NAME1 VKORG VTWEG SPART123 XX 0001 01 01345 ZZ 0002 02 02528 0009 09 09

Page 8: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 8/21

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 voglionoutilizzare. Quanti gruppi specifici creare è una libera scelta: si può creare un unico gruppo per tutti i campi utilizzati, odiversi gruppi logici (nell’esempio potrebbero essere 2: dati generali e dati di vendita):

Page 9: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 9/21

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

Una volta indicato il nome del campo supplementare è necessario scrivere una parte di codice ABAP che permetta divalorizzare 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

Page 10: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 10/21

Queries

Page 11: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 11/21

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

Page 12: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 12/21

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

Page 13: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 13/21

Impostazione dei campi di selezione della query:

Page 14: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 14/21

Lista di baseDefinizione della sequenza dei campi nella lista di output:

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

Page 15: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 15/21

Per i campi indicati come campi di ordinamento della lista è possibile definire se si vuole la totalizzazione parziale deicampi 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 unariga vuota a rottura di gruppo.

Page 16: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 16/21

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

Page 17: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 17/21

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

Page 18: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 18/21

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

Page 19: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 19/21

È possibile definire dei grafici:

Page 20: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 20/21

Trasporto di queries e settori specificiNon è 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.

Page 21: Abap Query

query.doc ABAP Query 28/11/01

Pag.: 21/21

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