Cerca nel blog

venerdì 19 febbraio 2021

ABAP: Come implementare una procedura di database SAP HANA e utilizzarla da un programma ABAP

 Come implementare una procedura di database SAP HANA e utilizzarla da un programma ABAP

Fase 1: creazione e implementazione di una procedura SAP HANA con parametri di input e output 

Nota: è necessario un utente del database per creare e manipolare gli oggetti nel database SAP HANA. Si consiglia di creare gli oggetti di test nel pacchetto system-local.private situato nella cartella Content di SAP HANA Modeler.

  • Avviare SAP HANA Studio e passa alla prospettiva Modeler

  • Facoltativo: prima crea un nuovo pacchetto (ad esempio demo) per i tuoi oggetti demo sotto il pacchetto system-local.private che si trova nella cartella Content.
  • Ora crea una nuova procedura di database facendo clic con il pulsante destro del mouse sul pacchetto system-local.private.demo e selezionando il menu Nuovo -> Procedura… 
  • Inserisci un nome (ad esempio ZDP_OIA_TOPANDFLOP) e una descrizione ("OIA demo: Top e flop Clienti").  
  • Selezionare lo schema richiesto dall'elenco a discesa Default Schema, per un accesso non qualificato in SQL.  

Nota: un server delle applicazioni ABAP è installato nel database in uno schema, il cosiddetto SAP <SID>, quindi è possibile lavorare nel database con più schemi. Ad esempio, lo schema SAPABC appartiene al sistema il cui SID è "ABC". 

Per non specificare il SAP <SID> direttamente nello script della procedura, è necessario specificare uno schema predefinito. Ad esempio:

->    Procedura con SAPABC specificato come schema predefinito: SELECT company_name FROM snwd_bpa

-> Procedura senza schema predefinito specificato: SELECT company_name FROM SAPABC.snwd_bpa

  • Selezionare "Invoker’s Rights" dall'elenco a discesa "Run With".   Premere FINE.

Nota: l'opzione selezionata dall'elenco a discesa "Run With" identifica i diritti da considerare durante l'esecuzione dello scenario:

Invoker’s Rights: se si desidera che l'utente del database standard SAP <SID> utilizzi i diritti dell'utente corrente durante l'esecuzione della vista o della procedura. 

Definer's right: se si desidera che SAP <SID> utilizzi i diritti del definitore durante l'esecuzione della vista o della procedura per qualsiasi utente.

  • Creare il parametro di output ET_TOP. Vai nel pannello di output, fai clic con il pulsante destro del mouse sulla cartella principale "Parametri di output" e seleziona "Nuovo"  dal menu contestuale. Ora inserisci il nome “ET_TOP” e aggiungi due colonne con i seguenti valori e conferma:  

  • Creare il parametro di output ET_FLOP. Ripetere semplicemente i passaggi eseguiti in precedenza per ET_TOP.
  • Creare il parametro di input IV_NUMBER Vai nel pannello di input, fare clic con il tasto destro sulla cartella principale "Input Parameters" e selezionare "New Scalar Parameter" dal menu contestuale. Immettere i seguenti valori e confermare  
 
  • Implementare la procedura. Copia e incolla il codice SQLScript riportato di seguito nell'editor della vista dello script di procedura
  • Salvare e attivare la procedura.

Fase 2: creare un proxy di procedura del database nel dizionario ABAP per esporre la procedura HANA

Esporremo ora la procedura HANA creata DP_OIA_TOPANDFLOP come proxy procedura database nel server delle applicazioni utilizzando le nuove funzionalità del dizionario ABAP.  

Nota: le nuove funzionalità del dizionario ABAP sono disponibili solo negli strumenti di sviluppo ABAP per SAP NetWeaver (noto anche come ABAP in Eclipse) e non in ABAP Workbench (transazione SE80).  

  • Innanzitutto passiamo alla prospettiva ABAP  
  • Seleziona il pacchetto di tua scelta (ad esempio il tuo pacchetto $ TMP in Pacchetti preferiti), fai clic destro su di esso e seleziona Nuovo -> Altro oggetto del repository ABAP dal menu contestuale. Filtra per "Database Procedure Proxy", selezionalo e premi Avanti.

  • Immettere un nome (ad esempio ZDPP_OIA_TOPANDFLOP) e una descrizione (ad esempio "Database Procedure Proxy per ZDP_OIA_TOPANDFLOP") per il nuovo Database Procedure Proxy. Immettere il nome della procedura SAP HANA creata in precedenza nel passaggio 1 (ad esempio, system-local.private.demo.ZDP_OIA_TOPANDFLOP). 
  • Viene proposto un nome per l'interfaccia tipo di parametro che contiene la definizione del tipo di dati dei parametri di input e output definiti nelle procedure HANA. L'interfaccia verrà creata automaticamente insieme al proxy della procedura del database. Ora premi su Avanti e poi su Fine nel passaggio successivo della finestra di dialogo. 

  • Ora puoi dare un'occhiata agli oggetti creati: Database Procedure Proxy e la sua interfaccia. Attivali entrambi (Ctrl + Maiusc + F3).  

Nota: premere il pulsante "Sincronizza" per ricaricare i metadati della Procedura database se la procedura è stata modificata nel repository SAP HANA e non dimenticare di attivare successivamente l'oggetto dizionario aggiornato.  

Fase 3: creare e implementare un report ABAP che richiama la procedura di data base.

Ora chiameremo il proxy della procedura del database da un programma ABAP. Implementeremo un semplice report che produrrà semplicemente il risultato con un'istruzione WRITE.  

I passaggi seguenti vengono eseguiti nella prospettiva ABAP. 

Crea un nuovo programma ABAP nel pacchetto di tua scelta facendo clic con il pulsante destro del mouse su di esso e selezionando "Nuovo -> Programma ABAP" dal menu contestuale. Inserisci un nome (ad es. ZR_OIA_TOPANDFLOP) e una descrizione (ad es. "Display Top e Flop Clienti ").  

Premere su Avanti e quindi su Fine nel passaggio della finestra di dialogo.

Implementa il report Copia e incolla il codice sorgente di seguito nell'editor ABAP.

Nota: la nuova istruzione ABAP "CALL DATABASE PROCEDURE <NAME>" viene utilizzata per leggere i dati dal database SAP HANA. È previsto il nome del proxy di procedura del database definito nel dizionario ABAP. Database Procedure Proxy può essere chiamato allo stesso modo da altri oggetti di sviluppo come classi, moduli funzione e applicazioni Web Dynpro.

Salvare a attivare il report.

Eseguire il report (premi F8) per vedere il risultato.


Nessun commento:

Posta un commento