Condividi tramite


Sintassi per un'istruzione EXECQUERY in SAP

È possibile usare l'interfaccia utente grafica sap per creare query selezionando graficamente le tabelle di cui si vuole eseguire una query, le colonne e l'ordinamento desiderati nel set di risultati e così via. Il provider di dati per SAP consente agli utenti di eseguire tali query da un'applicazione ADO.NET fornendo un'operazione EXECQUERY che gli utenti possono usare per eseguire una query definita nel sistema SAP.

Il provider di dati per SAP usa un Z_EXECUTE_SAP_QUERY RFC personalizzato per eseguire le query predefinite nel sistema SAP. La RFC personalizzata esegue a sua volta il RSAQ_REMOTE_QUERY_CALL, ovvero un RFC standard definito nel sistema SAP. Di conseguenza, prima di poter usare l'operazione EXECQUERY, è necessario installare la RFC personalizzata nel sistema SAP in cui verranno eseguite le query. Per istruzioni su come installare la RFC personalizzata, vedere Installare RFC personalizzati per il provider di dati per SAP.

In questo argomento vengono fornite informazioni sulla sintassi dell'operazione EXECQUERY e altre informazioni utili relative all'operazione EXECQUERY.

Sintassi per un'istruzione EXECQUERY

La sezione seguente descrive le specifiche grammaticali per l'uso dell'operazione EXECQUERY sul provider di dati per SAP.

EXECQUERY <QueryName> @USERGROUP='usergroup' [, @WORKSPACE='X'] [, @VARIANT='variant']   
[, @P1='<value 1>’] [, @P2='<value 2>'] ... [, @Pn = '<value n>'] [, @P1!='<value 3>'] [, @P1 > '<value 4>'] [, @P1 <= '<value 2>']   
[, NOT @P1 = '<value 2>'] [, NOT @P1 != '<value 2>'] [, NOT @P1 > '<value 2>']   
[, @P1 BETWEEN '<value 1>' AND '<value 2>'] [, NOT @P1 BETWEEN '<value 1>' AND '<value2>’]  
[OPTION 'USEORIGINALCOLUMNNAMES']  
  

dove:

  • <QueryName> è il nome della query definita nel sistema SAP.

  • USERGROUP fa riferimento al gruppo di utenti in cui è definita la query. Si tratta di un parametro obbligatorio.

  • WORKSPACE fa riferimento all'area di lavoro in cui è definita la query. In SAP sono disponibili due aree di lavoro: Standard e Globale. Specificare uno spazio vuoto per specificare l'area di lavoro Standard. Specificare X per specificare l'area di lavoro globale. Il valore predefinito è uno spazio vuoto.

  • VARIANT fa riferimento a un set salvato di criteri di selezione che è possibile specificare durante l'esecuzione di una query SAP. Ad esempio, è possibile usare varianti per specificare i valori predefiniti per le query.

  • @Pn fa riferimentoal n campo di selezione nella definizione della query SAP.

  • USEORIGINALCOLUMNNAMES specifica se il provider usa i nomi di colonna originali nel DataSet, perché esistono nel sistema SAP. Per impostazione predefinita, il provider usa i nomi descrittivi definiti nella query SAP. Tuttavia, se i nomi descrittivi all'interno della query non sono univoci, il client ADO.NET genererà un errore durante la lettura dei dati dal set di dati. In questi scenari, è necessario specificare l'opzione USEORIGINALCOLUMNNAMES, a indicare che il provider utilizza i nomi di colonna originali nel DataSet.

    Importante

    È sempre necessario specificare il valore per la parola chiave OPTION all'interno di virgolette singole, ad esempio 'USEORIGINALCOLUMNNAMES'.

Nota

Per informazioni sul modo in cui i parametri di una query SAP si traducono in una sintassi EXECQUERY, vedere Tradurre i parametri di query SAP nel comando EXECQUERY.

Definizione di una sintassi EXECQUERY

La sintassi di frame per un'operazione EXECQUERY per eseguire una query SAP dipende dalla modalità di definizione della query nel sistema SAP, incluso ogni valore di parametro definito in SAP. Per informazioni su come incorniciare la sintassi EXECQUERY per eseguire una query SAP, vedere Tradurre i parametri di query SAP nel comando EXECQUERY.

Considerazioni aggiuntive sull'uso dell'operazione EXECQUERY

Questa sezione elenca i punti da tenere presenti quando si usa l'istruzione EXECQUERY con il provider di dati per SAP.

  • I valori specificati per USERGROUP, WORKSPACE e VARIANT vengono passati così come sono allo standard SAP RFC, RSAQ_REMOTE_QUERY_CALL. Il provider di dati per SAP non convalida i valori specificati per questi parametri.

  • Tutti i valori restituiti dall'operazione EXECQUERY sono di tipo stringa.

  • Le parole chiave per nomi di query, gruppo di utenti, area di lavoro e varianti non fanno distinzione tra maiuscole e minuscole. Tuttavia, i nomi dei parametri devono essere sempre in maiuscolo, ad esempio @P1, @P2e così via. Per esempio:

    EXECQUERY xyz USERGROUP=’mygrp’, NOT @P1= 'somevalue'  
    

    è uguale a

    EXECQUERY xyz uSERgROUP=’mygrp’, NOT @P1= 'somevalue'  
    
  • Gli operatori supportati da EXECQUERY sono >, , <>=, =, <!=, NOT e BETWEEN.

  • I caratteri jolly non sono supportati dall'operazione EXECQUERY. Ad esempio, l'istruzione seguente restituisce l'output previsto:

    EXECQUERY ZTEST3 @USERGROUP='SYSTQV000024',  @P1 = '0000003262',@P2 = 'La Quinta Hotel & Towers'  
    

    Tuttavia, la stessa query eseguita con un carattere jolly restituisce un errore. Si noti l'uso di caratteri jolly per @P2.

    EXECQUERY ZTEST3 @USERGROUP='SYSTQV000024',  @P1 = '0000003262',@P2 = '*&*'  
    

    In questo esempio è possibile che venga visualizzato un errore che informa che non sono stati trovati dati. Ciò è dovuto al fatto che la query cerca '*&*' come stringa e non considera l'asterisco (*) come carattere jolly.

  • È sempre necessario specificare valori di data in formato AAAAMMGG.

  • Se si esegue una query con una variante definita nel sistema SAP, è possibile specificare il nome della variante come parte del comando. Ad esempio:

    EXECQUERY myquery @usergroup='mygroup',@variant = 'variant1'  
    

    Nota

    Non è necessario specificare un nome di variante se per la query nel sistema SAP è definita una variante predefinita.

Vedere anche

Usare il provider di dati .NET Framework per mySAP Business Suite