Opzioni delle stringhe di query OData
Gli adattatori OData per Salesforce Connect utilizzano un sottoinsieme di funzioni di sistema OData 2.0, 4.0 e 4.01 e costrutti di espressioni filtro per eseguire query sui sistemi esterni.
Versioni (Edition) richieste
| Disponibile in: Salesforce Classic e Lightning Experience (non per oggetti esterni con elevati volumi di dati) |
Disponibile in: Developer Edition Disponibile con un supplemento di prezzo nelle versioni: Enterprise Edition, Performance Edition e Unlimited Edition |
Salesforce crea automaticamente le query OData in modo tale che l'utente, amministratore o sviluppatore possa evitare di farlo. Tuttavia, sapere in che modo vengono generate le query OData o tentare di eseguire manualmente le query OData può essere utile per risolvere eventuali problemi del produttore OData del sistema esterno. Per maggiori informazioni sulle singole opzioni di query di sistema, visitare il sito www.odata.org.
Salesforce Connect supporta solo le seguenti opzioni di query di sistema OData. Tutte le altre opzioni nelle specifiche OData 2.0 e 4.01 sono inutilizzate.
-
$count(OData 4.0 e 4.01) -
$filter -
$inlinecount(solo OData 2.0) -
$orderby -
$search(OData 4.0 e 4.01) -
$select -
$skip -
$top
La stringa di ricerca di una query inviata a un sistema esterno viene ricevuta come singola frase con distinzione tra maiuscole e minuscole, con tutti i caratteri di punteggiatura ASCII rimossi, fatta eccezione per i trattini (-). Ad esempio, se la stringa di ricerca è Sales & Marketing, il sistema esterno riceve Sales Marketing.
$count (OData 4.0 e 4.01)
Specifica che la risposta deve includere il numero di righe identificate dall'URI dopo l'applicazione delle opzioni di query di sistema $filter, ma prima dell'applicazione delle opzioni di query di sistema $top e $skip.
Per OData 4.01, $count=true è codificato e per OData 4.0, $count=true quando Conteggi righe richiesta è abilitato per la fonte di dati esterna. Il numero totale di elementi nell'insieme di risultati corrisponde al valore LIMITE nella query per i valori inferiori a 202. Se il valore LIMITE è maggiore di 202, vengono restituiti 202 elementi per indicare che nel batch successivo è presente un numero maggiore di record. Per OData 4.0, se Conteggi righe richiesta è disabilitato, Salesforce include $count=false in tutte le query OData 4.0 della fonte di dati esterna e in ogni insieme di risultati vengono restituiti 2000 elementi.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Visualizzazione o accesso a un oggetto esterno. |
| Query SOQL | Qualsiasi query SOQL di un oggetto esterno |
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$select=SupplierID&$count=true&$top=26
|
$filter
Filtra l'insieme di risorse cui è indirizzato tramite un URL di richiesta. La risposta contiene i risultati che restituiscono true.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Apertura di una visualizzazione elenco delle città dai record dei fornitori che vengono filtrati in modo che il paese sia USA. |
| Query SOQL |
SELECT City__c FROM Suppliers__x
WHERE Country__c = 'USA' ORDER BY City__c ASC LIMIT
26
|
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$orderby=City&$select=City,SupplierID&$inlinecount=allpages&$filter=Country+eq+'USA'&$top=26
|
$inlinecount (solo OData 2.0)
Specifica che la risposta deve includere un conteggio del numero di righe identificate dall'URI dopo l'applicazione delle opzioni di query del sistema $filter ma prima dell'applicazione delle opzioni di query del sistema $top e $skip.
Quando nella fonte di dati esterna è abilitato Conteggi righe richiesta, Salesforce utilizza $inlinecount in tutte le query OData 2.0 di quella fonte di dati esterna per determinare il numero totale di elementi in ogni insieme di risultati. Se Richiesta conteggi righe è disabilitata, $inlinecount viene esclusa da tutte le query OData 2.0 della fonte di dati esterna.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Visualizzazione o accesso a un oggetto esterno. |
| Query SOQL | Qualsiasi query SOQL di un oggetto esterno. |
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$select=SupplierID&$inlinecount=allpages&$top=26
|
$orderby
Ordina l'insieme dei risultati in ordine crescente o decrescente. I campi della clausola ORDER BY della query SOQL non sempre corrispondono alle proprietà utilizzate dall'opzione $orderby nella query OData risultante. Se si utilizza la clausola OFFSET nella query SOQL, la proprietà chiave entità viene aggiunta nella query OData risultante.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Apertura di una visualizzazione elenco dei record dei fornitori ordinati in base al nome della società. |
| Query SOQL |
SELECT CompanyName__c,ContactName__c
FROM Suppliers__x ORDER BY CompanyName__c ASC LIMIT
26
|
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$orderby=CompanyName&$select=CompanyName,ContactName,SupplierID&$inlinecount=allpages&$top=26
|
$search (OData 4.0 e 4.01)
Richiede entità che corrispondono alla stringa della query di ricerca come espressione di ricerca a testo libero. Per OData 4.0, abilitare questa opzione selezionando Utilizza espressioni di ricerca a testo libero nella fonte di dati esterna. Per impostazione predefinita, Utilizza espressioni di ricerca a testo libero non è abilitata. La stringa della query di ricerca viene utilizzata come valore di contains nell'opzione di query del sistema $filter.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Visualizzazione o accesso a un oggetto esterno. |
| Query SOQL | Qualsiasi query SOQL di un oggetto esterno |
| Query OData risultante |
http://services.example.org/my.svc/Shippers?$select=CompanyName,Phone,ShipperID&$count=true&$search=Acme&$top=25
|
$select
Richiede un insieme limitato di proprietà per ciascuna entità.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Apertura di una visualizzazione elenco dei record dei fornitori in cui il layout di pagina visualizza il nome della società e il nome del referente. |
| Query SOQL |
SELECT
CompanyName__c,ContactName__c FROM Suppliers__x ORDER BY
CompanyName__c ASC LIMIT 26
|
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$orderby=CompanyName&$select=CompanyName,ContactName,SupplierID&$inlinecount=allpages&$top=26
|
$skip
Specifica il numero di elementi dell'insieme su cui viene eseguita la query da ignorare nei risultati.
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Clic per visualizzare la seconda pagina di una visualizzazione elenco dei record dei fornitori ordinati in base alla città. |
| Query SOQL |
SELECT City__c,CompanyName__c FROM
Suppliers__x ORDER BY City__c ASC OFFSET
25
|
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$orderby=City&$select=City,CompanyName,SupplierID&$inlinecount=allpages&$top=25&$skip=25
|
$top
Specifica il numero di elementi dell'insieme su cui viene eseguita la query da includere nei risultati. Il valore nella clausola LIMIT di una query SOQL non sempre corrisponde al valore di $top richiesto, poiché quest'ultimo viene modificato in base alle esigenze per il paging gestito dal client e le chiamate queryMore().
| Esempi | |
|---|---|
| Azione dell'utente in Salesforce | Apertura di una visualizzazione elenco dei primi 25 record dei fornitori. |
| Query SOQL |
SELECT SupplierID__c FROM Suppliers__x
LIMIT 25
|
| Query OData risultante |
http://services.example.org/my.svc/Suppliers?$select=SupplierID&$inlinecount=allpages&$top=25
|
- Opzioni di query OData 2.0
Per impostazione predefinita, la stringa della query di ricerca viene utilizzata come valore disubstringofnell'opzione di query del sistema$filter. - Opzioni di query OData 4.0 e 4.01
Per impostazione predefinita, la stringa della query di ricerca viene utilizzata come valore dicontainsnell'opzione di query del sistema$filter.
