Richiesta Odoo
Interroga il vostro Odoo durante la chiamata e mette la risposta in variabili: uno stato d'ordine, un saldo, una data di appuntamento, per instradare di conseguenza.
In breve
| Uscite | OK e Errore |
| Campi | Istanza Odoo, Timeout, Modello, Metodo, Args (JSON), Kwargs (JSON), e un elenco di estrazioni Variabile e Percorso JSON |
| Timeout proposto | 2, 3, 5 o 8 s, 5 s di default |
| Timeout realmente applicato | 8 secondi al massimo |
| Metodo proposto alla creazione | search_read |
| Interruttore | 5 fallimenti consecutivi sullo stesso server aprono il circuito per 30 secondi |
| Prova prima della messa in servizio | pulsante Test, che interroga realmente il vostro Odoo |
Il testo di aiuto mostrato nella finestra è: « Chiama execute_kw(modello, metodo, args, kwargs) su Odoo. args/kwargs = JSON con {{variable}} ({{caller_e164}} = formati E.164 del chiamante). Estrae la risposta JSON in variabili. Uscita « Errore » se Odoo fallisce/va in timeout. »
Come funziona
È il modulo più tecnico del gruppo. Laddove Odoo, risoluzione contatto risponde a una domanda unica e già pronta, questo pone qualsiasi domanda al vostro Odoo. In cambio, occorre sapere dove si trova l'informazione in Odoo.
I quattro campi della domanda
| Campo | Cos'è | Esempio |
|---|---|---|
| Modello | il nome interno della tabella Odoo interrogata | res.partner per i contatti |
| Metodo | ciò che chiedete a questa tabella | search_read per cercare e poi leggere |
| Args (JSON) | gli argomenti, in pratica il filtro di ricerca | [[["phone_sanitized","in","{{caller_e164}}"]]] |
| Kwargs (JSON) | le opzioni nominate: quali campi leggere, quante righe | {"fields":["name","user_id"],"limit":1} |
Il nome del modello si legge in Odoo, attivando la modalità sviluppatore, oppure si chiede alla persona che amministra il vostro Odoo. È l'unico punto di questa pagina che non si può inventare.
JSON, in una frase
Args e Kwargs si scrivono in JSON, un formato in cui le parentesi quadre [ ] delimitano una lista, le parentesi graffe { } un insieme di campi nominati, e dove ogni testo è tra virgolette diritte. Una virgola dimenticata o una parentesi graffa non richiusa bastano a far fallire la richiesta.
Le variabili nella domanda
Scrivete {{mia_variabile}} ovunque in Args o Kwargs. Una sfumatura utile: una variabile racchiusa tra virgolette, come "{{caller_e164}}", viene sostituita dal suo valore in formato JSON, virgolette comprese. Una lista resta quindi una lista, il che permette di scrivere un filtro del tipo « il telefono è tra queste scritture ».
L'estrazione
La tabella in basso associa un Percorso JSON a un nome di Variabile. I livelli si separano con punti; le liste si contano a partire da zero. search_read risponde con una lista, quindi il percorso di un primo risultato inizia con 0.: 0.name indica il nome del primo contatto trovato.
Un percorso lasciato vuoto riporta la risposta intera. È indispensabile per i metodi che rispondono con un numero o una parola senza struttura intorno, come un conteggio: senza questo la variabile resterebbe vuota e la condizione che la verifica sarebbe sempre falsa.
L'interruttore
Come per la Richiesta API, dopo 5 fallimenti consecutivi verso lo stesso server, il modulo smette di chiamarlo per 30 secondi e prende l'uscita Errore immediatamente, senza richiesta. Un primo successo azzera il contatore.
Cosa inserire
| Campo | Cosa è previsto | Se lo lasciate vuoto |
|---|---|---|
| Istanza Odoo | l'Odoo da interrogare, tra quelli dichiarati in Integrazioni, Odoo | Istanza predefinita, l'istanza di risoluzione dichiarata per la vostra installazione |
| Timeout | il tempo di attesa, ridotto a 8 s al massimo in esecuzione | 5 s |
| Modello | il nome del modello Odoo, ad esempio res.partner | l'uscita Errore viene presa senza che parta alcuna richiesta |
| Metodo | il metodo da chiamare, precompilato con search_read | l'uscita Errore viene presa senza che parta alcuna richiesta |
| Args (JSON) | gli argomenti, in JSON valido | lista vuota |
| Kwargs (JSON) | le opzioni nominate, in JSON valido | nessuna opzione |
| Variabile di un'estrazione | il nome sotto cui mettere il valore letto | la riga viene ignorata |
| Percorso JSON di un'estrazione | il percorso verso il valore, ad esempio 0.name | la risposta intera viene messa nella variabile |
I pulsanti della finestra sono Aggiungi un'estrazione, Test, Annulla e Salva.
Procedura
- Verificate che il vostro Odoo sia collegato, in Integrazioni, Odoo, e che l'istanza vi sia attiva.
- Individuate in Odoo il modello e i campi che portano l'informazione voluta. Fatevi aiutare dalla persona che amministra il vostro Odoo se necessario.
- Posizionate il modulo Richiesta Odoo e collegate il nodo precedente al suo ingresso.
- Apritelo, scegliete l'Istanza Odoo e impostate il Timeout al più breve possibile: due o tre secondi, il chiamante attende in linea.
- Inserite il Modello e il Metodo.
- Scrivete gli Args (JSON) e i Kwargs (JSON), limitando il numero di righe lette con
"limit":1quando una sola basta. - Cliccate su Aggiungi un'estrazione e associate un Percorso JSON a un nome di Variabile.
- Cliccate su Test, compilate le variabili di prova, poi cliccate su Avvia. Correggete finché il valore ottenuto è quello giusto.
- Cliccate su Salva, poi collegate OK al seguito e Errore a un ripiego che gestisce la chiamata senza il dato.
- Cliccate su Salva, poi su Applica le modifiche nella barra superiore.
- Chiamate il vostro numero e verificate l'instradamento, aiutandovi con un modulo Debug che scrive le variabili estratte.
Se non funziona
L'uscita Errore viene presa immediatamente, senza che parta alcuna richiesta. Tre cause. Il Modello o il Metodo è vuoto. L'istanza Odoo scelta non esiste più o non è più attiva. Oppure l'interruttore è aperto, dopo cinque fallimenti consecutivi, per trenta secondi.
La richiesta fallisce mentre il JSON mi sembra corretto. Deve restare valido una volta sostituite le variabili, ed è lì che si producono la maggior parte degli errori. Cliccate su Test: lo schermo mostra la richiesta realmente inviata, args e kwargs dopo la sostituzione. Perché una variabile venga sostituita dal suo valore JSON, racchiudetela tra virgolette: "{{caller_e164}}".
La variabile estratta resta vuota mentre la risposta contiene il dato. Il percorso non corrisponde. search_read risponde con una lista: iniziate con 0. per il primo elemento. Un metodo che risponde con un numero singolo, al contrario, richiede un percorso vuoto. La colonna Valore ottenuto della prova segnala le estrazioni vuote.
La prova mi chiede di confermare prima di partire. Il metodo richiesto scrive in Odoo invece di limitarsi a leggere. La prova viene eseguita realmente sul vostro Odoo di produzione: confermate solo se accettate questa scrittura.
La chiamata si interrompe quando Odoo risponde male. L'uscita Errore non è collegata a nulla. Questo modulo non ha il ripiego automatico del modulo di risoluzione contatto: collegate Errore, come minimo verso l'accoglienza abituale.
Come si costruisce il piano di chiamata, spiegato con le immagini
Vedi la pagina Piani di numerazione