Condizioni di notifica
Questo evento viene notificato dal documento durante la gestione di una chiamata a WebAPI. I possibili tipi di chiamate sono i seguenti:
- caricamento di una risorsa; in questo caso il metodo HTTP è GET e i valori della PK sono specificati nell'URL (ad esempio http://dominio/app/classe/val1/val2);
- ricerca di una collezione di un tipo di risorsa; in questo caso il metodo HTTP è GET e i criteri di ricerca sono specificati nell'URL (ad esempio http://dominio/app/classe/?prop1=val&prop2=val);
- inserimento di una nuova risorsa; in questo caso il metodo HTTP è POST e i dati del documento sono specificati nel contenuto in formato JSON o XML;
- eliminazione di una risorsa; in questo caso il metodo HTTP è DELETE e i valori della PK sono specificati nell'URL (ad esempio http://dominio/app/classe/val1/val2);
- aggiornamento di una risorsa; in questo caso il metodo HTTP è PUT; i valori modificati possono essere specificati nella query string dell'URL (ad esempio http://dominio/app/classe/?prop1=val&prop2=val) oppure nel contenuto in formato JSON o XML;
- chiamata ad un metodo del documento; in questo caso il metodo HTTP è il nome del metodo e gli eventuali parametri del metodo sono specificati nell'URL o nel contenuto.
Utilizzo consigliato
Questo evento può essere usato per ottenere comportamenti personalizzati (ad esempio aggiungere criteri di filtro ad una ricerca o caricare in modo diverso il documento) prima che il framework esegua l'operazione richiesta dalla chiamata a WebAPI oppure per indicare al framework di non eseguire l'operazione richiesta.
Argomenti
Cancel | Parametro booleano di output. Se impostato a true interrompe la chiamata a WebAPI. |
Esempio di codice (Deep Linking)
event Order.OnWebAPI(
inout boolean Cancel // A boolean output parameter. If set to true it st...
)
{
if (WebApiService.getMethod() == "GET")
{
// Ser userRole to bypass login page
CRM.userRole = Administrator
//
// Show the desired form
Orders.show(...)
}
}
inout boolean Cancel // A boolean output parameter. If set to true it st...
)
{
if (WebApiService.getMethod() == "GET")
{
// Ser userRole to bypass login page
CRM.userRole = Administrator
//
// Show the desired form
Orders.show(...)
}
}
Esempio di codice (Ricerca personalizzata)
event Order.OnWebAPI(
inout boolean Cancel // A boolean output parameter. If set to true it st...
)
{
IDMap parameters = WebApiService.getParameters()
//
// Only for request of search
if (WebApiService.getMethod() == "GET" && parameters.length() > 0)
{
// Return an empty collection
IDCollection empty of Order = new()
empty.loaded = true
WebApiService.outputCollection = empty
}
}
inout boolean Cancel // A boolean output parameter. If set to true it st...
)
{
IDMap parameters = WebApiService.getParameters()
//
// Only for request of search
if (WebApiService.getMethod() == "GET" && parameters.length() > 0)
{
// Return an empty collection
IDCollection empty of Order = new()
empty.loaded = true
WebApiService.outputCollection = empty
}
}
- Se l'evento viene annullato per fornire una risposta personalizzata occorre usare il metodo SetResponse.
- È possibile gestire questo evento per ottenere funzionalità di Deep Linking. In questo caso occorre annullare l'evento in modo che la richiesta venga gestita dal framework RD3, che risponderà con l'interfaccia utente.
- Per gestire in modo personalizzato il risultato di una ricerca, occorre valorizzare la proprietà OutputCollection.
- Per cambiare il livello dei figli da coinvolgere, occorre valorizzare la proprietà ChildLevel.
- Per conoscere il tipo, i parametri e gli header della richiesta occorre usare i metodi GetMethod, GetParameters e GetHeaders.
- È possibile globalizzare questo evento per generalizzare ad esempio un'autenticazione tramite header.
- Per maggiori dettagli su come e quando usare questo evento, fare riferimento alla guida all'uso delle Web API.
Ultima modifica: 23/03/2021 / Validità: da 13.0.5600