Zapytanie Odoo
Odpytuje twoje Odoo w trakcie połączenia i zapisuje odpowiedź w zmiennych: status zamówienia, saldo, datę spotkania, aby następnie kierować połączenie.
W skrócie
| Wyjścia | OK i Błąd |
| Pola | Instancja Odoo, Timeout, Model, Metoda, Args (JSON), Kwargs (JSON), oraz tabela ekstrakcji Zmienna i Ścieżka JSON |
| Proponowany timeout | 2, 3, 5 albo 8 s, domyślnie 5 s |
| Rzeczywiście stosowany timeout | maksymalnie 8 sekund |
| Metoda proponowana przy tworzeniu | search_read |
| Bezpiecznik | 5 kolejnych niepowodzeń na tym samym serwerze otwiera obwód na 30 sekund |
| Próba przed wdrożeniem | przycisk Testuj, który rzeczywiście odpytuje twoje Odoo |
Tekst pomocy wyświetlany w oknie to: „Wywołuje execute_kw(model, metoda, args, kwargs) na Odoo. args/kwargs = JSON ze zmiennymi {{zmienna}} ({{caller_e164}} = formaty E.164 dzwoniącego). Wyodrębnia odpowiedź JSON do zmiennych. Wyjście „Błąd”, jeśli Odoo zawiedzie albo przekroczy timeout.”
Jak to działa
To najbardziej techniczny moduł z całego zestawu. Tam gdzie Odoo, rozpoznanie kontaktu odpowiada na jedno, gotowe pytanie, ten moduł zadaje dowolne pytanie twojemu Odoo. W zamian trzeba wiedzieć, gdzie w Odoo znajduje się informacja.
Cztery pola pytania
| Pole | Co to jest | Przykład |
|---|---|---|
| Model | wewnętrzna nazwa tabeli Odoo, którą się odpytuje | res.partner dla kontaktów |
| Metoda | to, o co pytasz tę tabelę | search_read, aby wyszukać, a potem odczytać |
| Args (JSON) | argumenty, w praktyce filtr wyszukiwania | [[["phone_sanitized","in","{{caller_e164}}"]]] |
| Kwargs (JSON) | opcje nazwane: jakie pola odczytać, ile wierszy | {"fields":["name","user_id"],"limit":1} |
Nazwę modelu można odczytać w Odoo, włączając tryb deweloperski, albo zapytać osobę, która administruje twoim Odoo. To jedyny punkt tej strony, którego nie da się wymyślić samemu.
JSON w jednym zdaniu
Args i Kwargs zapisuje się w formacie JSON, w którym nawiasy kwadratowe [ ] wyznaczają listę, nawiasy klamrowe { } zbiór nazwanych pól, a każdy tekst jest ujęty w cudzysłów prosty. Zapomniany przecinek albo niedomknięty nawias klamrowy wystarczą, aby zapytanie się nie powiodło.
Zmienne w pytaniu
Wpisz {{moja_zmienna}} w dowolnym miejscu Args albo Kwargs. Przydatny niuans: zmienna ujęta w cudzysłów, jak "{{caller_e164}}", jest zastępowana swoją wartością w formacie JSON, razem z cudzysłowem. Lista pozostaje więc listą, co pozwala napisać filtr typu „telefon jest wśród tych zapisów”.
Ekstrakcja
Dolna tabela wiąże Ścieżkę JSON z nazwą Zmiennej. Poziomy oddziela się kropkami; listy liczy się od zera. search_read odpowiada listą, więc ścieżka pierwszego wyniku zaczyna się od 0.: 0.name oznacza nazwę pierwszego znalezionego kontaktu.
Ścieżka pozostawiona pusta zwraca całą odpowiedź. To niezbędne dla metod, które odpowiadają liczbą albo słowem bez struktury dookoła, jak liczenie: bez tego zmienna pozostałaby pusta, a warunek, który ją sprawdza, byłby zawsze fałszywy.
Bezpiecznik
Podobnie jak w Zapytaniu API, po 5 kolejnych niepowodzeniach wobec tego samego serwera, moduł przestaje go odpytywać przez 30 sekund i natychmiast bierze wyjście Błąd, bez zapytania. Pierwszy sukces zeruje licznik.
Co należy uzupełnić
| Pole | Czego się oczekuje | Jeśli zostawisz puste |
|---|---|---|
| Instancja Odoo | Odoo do odpytania, spośród zadeklarowanych w Integracje, Odoo | Instancja domyślna, instancja rozpoznawania zadeklarowana dla twojej instalacji |
| Timeout | czas oczekiwania, ograniczony do 8 s maksymalnie przy wykonaniu | 5 s |
| Model | nazwa modelu Odoo, na przykład res.partner | wyjście Błąd zostaje użyte, bez wysłania jakiegokolwiek zapytania |
| Metoda | metoda do wywołania, wstępnie uzupełniona search_read | wyjście Błąd zostaje użyte, bez wysłania jakiegokolwiek zapytania |
| Args (JSON) | argumenty, w poprawnym JSON | pusta lista |
| Kwargs (JSON) | opcje nazwane, w poprawnym JSON | brak opcji |
| Zmienna ekstrakcji | nazwa, pod którą zapisać odczytaną wartość | linia zostaje zignorowana |
| Ścieżka JSON ekstrakcji | ścieżka do wartości, na przykład 0.name | cała odpowiedź zostaje zapisana w zmiennej |
Przyciski okna to Dodaj ekstrakcję, Testuj, Anuluj i Zapisz.
Jak to zrobić krok po kroku
- Sprawdź, czy twoje Odoo jest podłączone, w Integracje, Odoo, i czy instancja jest tam aktywna.
- Zidentyfikuj w Odoo model i pola, które niosą poszukiwaną informację. Poproś o pomoc osobę administrującą twoim Odoo, jeśli to konieczne.
- Umieść moduł Zapytanie Odoo i połącz poprzedni węzeł z jego wejściem.
- Otwórz go, wybierz Instancję Odoo i ustaw Timeout na najkrótszy czas: dwie do trzech sekund, dzwoniący czeka na linii.
- Wpisz Model i Metodę.
- Napisz Args (JSON) i Kwargs (JSON), ograniczając liczbę odczytywanych wierszy przez
"limit":1, gdy jeden wystarcza. - Kliknij Dodaj ekstrakcję i powiąż Ścieżkę JSON z nazwą Zmiennej.
- Kliknij Testuj, uzupełnij zmienne próbne, a następnie Uruchom. Popraw, aż uzyskana wartość będzie prawidłowa.
- Kliknij Zapisz, a następnie połącz OK z dalszym ciągiem, a Błąd z rozwiązaniem zapasowym, które obsługuje połączenie bez tej danej.
- Kliknij Zapisz, a następnie Zastosuj zmiany w górnym pasku.
- Zadzwoń pod swój numer i sprawdź trasę połączenia, pomagając sobie modułem Debugowanie, który zapisuje wyodrębnione zmienne.
Jeśli coś nie działa
Wyjście Błąd zostaje użyte natychmiast, bez wysłania jakiegokolwiek zapytania. Trzy przyczyny. Model albo Metoda jest pusta. Wybrana instancja Odoo już nie istnieje albo nie jest już aktywna. Albo bezpiecznik jest otwarty, po pięciu kolejnych niepowodzeniach, na trzydzieści sekund.
Zapytanie się nie powodzi, mimo że JSON wydaje mi się poprawny. Musi pozostać poprawny po podstawieniu zmiennych, i to właśnie tam powstaje większość błędów. Kliknij Testuj: ekran wyświetla rzeczywiście wysłane zapytanie, args i kwargs po podstawieniu. Aby zmienna została zastąpiona swoją wartością JSON, ujmij ją w cudzysłów: "{{caller_e164}}".
Wyodrębniona zmienna pozostaje pusta, mimo że odpowiedź zawiera daną. Ścieżka nie pasuje. search_read odpowiada listą: zacznij od 0. dla pierwszego elementu. Metoda, która odpowiada samą liczbą, wymaga za to ścieżki pustej. Kolumna Uzyskana wartość próby sygnalizuje puste ekstrakcje.
Próba prosi mnie o potwierdzenie przed wysłaniem. Żądana metoda zapisuje w Odoo, zamiast tylko odczytywać. Próba wykonuje się naprawdę na twoim produkcyjnym Odoo: potwierdź tylko, jeśli akceptujesz ten zapis.
Połączenie kończy się, gdy Odoo odpowiada źle. Wyjście Błąd nie jest z niczym połączone. Ten moduł nie ma automatycznego rozwiązania zapasowego modułu rozpoznawania kontaktu: połącz Błąd, przynajmniej ze zwyczajowym powitaniem.
Jak powstaje plan połączeń, wyjaśnione na obrazach
Zobacz stronę Plany numeracji