Cerca nel blog

lunedì 14 settembre 2015

QUERY IN ABAP

Definizione di Query ABAP

Le Query Abap sono utilizzate per creare report non predefiniti, e possono essere usate da utenti con poca o nessuna conoscenza del linguaggio di programmazione ABAP SAP.
L'intero processo comprende tre fasi:
1.    Creazione di User Group
2.    Creazione di Infoset
3.    Creazione di Query

I componenti delle Query Abap possono essere creati sia nell'AREA STANDARD che nella AREA GLOBALE:

AREA STANDARD: Consente la creazione di oggetti dipendenti dal CLIENT e che devono essere esportati in un trasporto  e poi importati in ogni CLIENT richiesto.

AREA STANDARD: Consente la creazione di oggetti indipendentemente dal CLIENT. Essi vengono trasportati attraverso il processo normale di trasporto. Un trasporto è richiesto al salvataggio di un oggetto.

Per poter scegliere una delle 2 tipologie di aree, andare in una delle 3 transazioni, SQ01, SQ02 o SQ03 e selezionare dal menu Environment-> Query areas. Successivamente verrà visualizzata una Pop-up in cui si potrà scegliere una delle 2 aree.


1. CREAZIONE USER GROUP 
La definizione tecnica di "Gruppi di utenti" è una raccolta di utenti SAP che sono raggruppati insieme. L'assegnazione di un utente a un gruppo di utenti determina quale Query può eseguire o manutenere.
  • Richiamare la transazione SQ03
  • Inserire il nome dello USER GROUP che si deve creare, ad esempio ZUSER, e premere il pulsante CREATE.
  • Inserire la descrizione di questo USER GROUP.
  • Eventulamente, specificare gli utenti SAP (ID) che devono far parte del gruppo creato. Per fare ciò, selezionare il pulsante Assign User and Infosets.



2. CREAZIONE INFOSET
Un InfoSet descrive quali campi delle tabelle possono essere riportati nelle query.
Successivamente alla creazione dell'Infoset, lo si deve associare allo USER GROUP creato in precedenza.
  • Richiamare la transazione SQ02
  • Inserire il nome dell' INFOSET che si deve creare, ad esempio ZMYINFOSET, e premere il pulsante CREATE

  • Inserire la descrizione del INFOSET, ad esempio Test For Infoset.

  • Scegliere la tabella su cui fare le query, ad esempio CRMD_ORDERADM_H (che metteremo in join con la CRMD_ORDERADM_I) e premere il pulsante OK
 

  • Premere il pulsante Insert Table, per inserire la seconda tabella CRMD_ORDERADM_I, e collegare i campi da mettere in join tra le 2 tabelle.



  • In questo esempio, collegheremo il campo GUID della tabella CRMD_ORDERADM_H con il campo HEADER della tabella CRMD_ORDERADM_I, e poi premiamo il pulsante in alto INFOSET


  • Dopo aver premuto il pulsante in alto INFOSET, si apre una popup chiedendo quali campi devono essere selezionati. In questo esempio selezionamo l'opzione Create Empty Field Group e premere Ok.

  • Nel riquadro di destra, verranno creati 2 Field Group vuoti in cui inseriremo i campi che troviamo nel riquadro a sinistra, contenente i campi delle 2 tabelle messe in join.

  • Trascinare i campi che vogliamo inserire nella query, dal pannello di sinistra nei 2 Field Group.
  • Successivamente, è necessario generare il InfoSet selezionando il pulsante Generate dalla barra degli strumenti dell'applicazione. Viene visualizzato un messaggio nella barra di stato dicendo che il InfoSet ZMYINFOSET generato.
    Ritornare alla schermata principale di SQ02 cliccando sul pulsante BACK della Tool Bar. Premere il pulsante Role/User Group Assignment per assegnare l’Infoset ad uno specifico User Group, nel nostro caso ZUSER, e premere il pulsante SALVA.




    3. CREAZIONE QUERY

  • Richiamare la transazione SQ01
  • Inserire il nome della QUERY che si deve creare, ad esempio ZTEST_QUERY, e premere il pulsante CREATE
  • Viene visualizzato un elenco di Infoset assegnati al gruppo di utenti (ZUSER). Selezionare ZMYINFOSET e fare clic su Ok
  • Nella  prima schermata di creazione di query,  digitare il titolo (obbligatorio) ad esempio TEST FOR QUERY , note e specificare il numero di righe da visualizzare in una pagina. Premere il pulsante SALVA  e poi il pulsante NEXT SCREEN, per passare alla schermata successiva
  
  • Selezionare i Field Group che devono essere usati nella nostra query, poi premere l pulsante NEXT SCREEN, per passare alla schermata successiva.



  • Selezionare l'elenco dei campi richiesti nella query, poi premere il pulsante NEXT SCREEN, per passare alla schermata successiva. 

  • Determinare quale di questi campi devono essere utilizzati nella schermata di selezione e specificare la sequenza di apparire nella schermata di selezione, poi premere il pulsante  Basic List, per passare alla schermata successiva.



  • Premere il pulsante SALVA.

  • Ritornare nella schermata principale della transazione SQ01: selezionare dal menu Query->More functions->Adjust e poi selezionare dal menu Query->More functions->Generate Program

4. PROCEDURA TRASPORTO QUERY - (EXPORT)
I passi da seguire per creare un Trasport Request sono i seguenti:
  • Richiamare la transazione SQ02
  • Selezionare l'Infoset da trasportare, ad esempio ZSOLMAN_PZF.
  • Dal menu selzionare Environment->Transports
  • Settare i parametri come nell'immagine
 

  •  Premere F8, e verrà chiesto di creare il TR.



5. PROCEDURA TRASPORTO QUERY - (IMPORT)
Successivamente, quando la TR viene rilasciata e trasportata, nell'ambiente di destinazione, eseguire le stesse operazioni precedenti, ma questa volta selezionare l'opzione IMPORT:
  • Richiamare la transazione SQ02
  • Selezionare l'Infoset da trasportare, ad esempio ZSOLMAN_PZF.
  • Dal menu selzionare Environment->Transports
  • Settare i parametri come nell'immagine
  • E ricordarsi di inserire nel campo DATASET WITH IMPORTS, il numero della TR
 
 

6. CREAZIONE TRANSAZIONE PER RICHIAMARE LA QUERY
  • Richiamare la transazione SE93 ed inserire il nome della transazione, nella pop-up successiva selezionare il check "Parameter Transaction".




  • Nella schermata successiva inserire tutti i valori come nella schermata successiva tranne per il nome della query e dello user group (Inserire la propria query e il proprio user group)



7. SCARICARE INFOSET PER CONTROLLO VERSIONI
Non esiste un modo per fare il controllo versioni dell’infoset, però esiste un programma 
che scarica in un file tutti gli oggetti dell’infoset. Si effettua la stessa operazioni negli altri 
ambienti, e poi si confronta i file scaricati nei vari ambienti.
Il programma è RSAQSHSG, eseguirlo inserendo il nome dell’Infoset e il parametro A

L'output del report, lo esportate in un file in formato html
 

5 commenti:

  1. Vorrei eseguire un join fra i campi SRGBTBREL-INSTID_B e SOOD-OBJNO, però il secondo contiene solo una parte del primo campo, gli ultimi 12 caratteri.
    Per esempio:
    SRGBTBREL-INSTID_B 'FOL44000000000004RAW46000015109115'
    SOOD-OBJNO '000015109115'
    Come è possibile fare questo parse sul join in SQ02?

    RispondiElimina
  2. salve
    è possibile eliminare un infoset ?

    RispondiElimina
    Risposte
    1. Salve,
      si può eliminare l'infoset dalla transazione SQ02. C'è il pulsante elimina.

      Elimina