Axivox Benutzerhandbuch
Zurück zur Website

Odoo-Anfrage

Fragt während des Anrufs Ihr Odoo ab und legt die Antwort in Variablen ab: einen Bestellstatus, einen Kontostand, ein Termindatum, um anschließend zu routen.

Kurzübersicht

AusgängeOK und Fehler
FelderOdoo-Instanz, Timeout, Modell, Methode, Args (JSON), Kwargs (JSON), und eine Extraktionstabelle Variable und JSON-Pfad
Angebotener Timeout2, 3, 5 oder 8 s, standardmäßig 5 s
Tatsächlich angewendeter Timeouthöchstens 8 Sekunden
Bei der Erstellung vorgeschlagene Methodesearch_read
Sicherung5 aufeinanderfolgende Fehlschläge an demselben Server öffnen den Stromkreis für 30 Sekunden
Test vor der InbetriebnahmeSchaltfläche Testen, die tatsächlich Ihr Odoo abfragt

Der im Fenster angezeigte Hilfetext lautet: „Ruft execute_kw(Modell, Methode, args, kwargs) auf Odoo auf. args/kwargs = JSON mit {{variablen}} ({{caller_e164}} = E.164-Formate des Anrufers). Extrahiert die JSON-Antwort in Variablen. Ausgang ‚Fehler', wenn Odoo fehlschlägt/den Timeout überschreitet."

So funktioniert es

Das ist das technischste Modul der Reihe. Wo Odoo, Kontaktauflösung eine einzige, vorgefertigte Frage beantwortet, stellt dieses hier jede beliebige Frage an Ihr Odoo. Im Gegenzug müssen Sie wissen, wo sich die Information in Odoo befindet.

Die vier Felder der Frage

FeldWas es istBeispiel
Modellder interne Name der abgefragten Odoo-Tabelleres.partner für Kontakte
Methodewas Sie von dieser Tabelle verlangensearch_read zum Suchen und anschließenden Lesen
Args (JSON)die Argumente, in der Praxis der Suchfilter[[["phone_sanitized","in","{{caller_e164}}"]]]
Kwargs (JSON)die benannten Optionen: welche Felder zu lesen sind, wie viele Zeilen{"fields":["name","user_id"],"limit":1}

Der Name des Modells wird in Odoo gelesen, durch Aktivieren des Entwicklermodus, oder bei der Person erfragt, die Ihr Odoo verwaltet. Das ist der einzige Punkt dieser Seite, der sich nicht erraten lässt.

JSON, in einem Satz

Args und Kwargs werden in JSON geschrieben, einem Format, in dem eckige Klammern [ ] eine Liste abgrenzen, geschweifte Klammern { } eine Menge benannter Felder, und in dem jeder Text zwischen geraden Anführungszeichen steht. Ein vergessenes Komma oder eine nicht geschlossene geschweifte Klammer genügt, um die Anfrage scheitern zu lassen.

Die Variablen in der Frage

Schreiben Sie {{meine_variable}} an beliebiger Stelle in Args oder Kwargs. Eine nützliche Feinheit: eine in Anführungszeichen eingeschlossene Variable, wie "{{caller_e164}}", wird durch ihren Wert im JSON-Format ersetzt, Anführungszeichen inbegriffen. Eine Liste bleibt also eine Liste, was es erlaubt, einen Filter der Art „das Telefon befindet sich unter diesen Schreibweisen" zu schreiben.

Die Extraktion

Die untere Tabelle verknüpft einen JSON-Pfad mit einem Variablen-Namen. Die Ebenen werden durch Punkte getrennt; Listen werden ab null gezählt. search_read antwortet mit einer Liste, der Pfad eines ersten Ergebnisses beginnt also mit 0.: 0.name bezeichnet den Namen des ersten gefundenen Kontakts.

Ein leer gelassener Pfad liefert die gesamte Antwort. Das ist unverzichtbar für Methoden, die eine Zahl oder ein Wort ohne umgebende Struktur antworten, wie eine Zählung: ohne das bliebe die Variable leer und die sie prüfende Bedingung wäre immer falsch.

Die Sicherung

Wie bei der API-Anfrage ruft das Modul nach 5 aufeinanderfolgenden Fehlschlägen an demselben Server diesen 30 Sekunden lang nicht mehr auf und nimmt sofort den Ausgang Fehler, ohne Anfrage. Ein erster Erfolg setzt den Zähler auf null zurück.

Was einzugeben ist

FeldWas erwartet wirdWenn Sie es leer lassen
Odoo-Instanzdas abzufragende Odoo, unter den in Integrationen, Odoo deklariertenStandardinstanz, die für Ihre Installation deklarierte Auflösungsinstanz
Timeoutdie Wartefrist, zur Laufzeit auf höchstens 8 s begrenzt5 s
Modellder Name des Odoo-Modells, zum Beispiel res.partnerder Ausgang Fehler wird genommen, ohne dass eine Anfrage abgeht
Methodedie aufzurufende Methode, vorausgefüllt mit search_readder Ausgang Fehler wird genommen, ohne dass eine Anfrage abgeht
Args (JSON)die Argumente, in gültigem JSONleere Liste
Kwargs (JSON)die benannten Optionen, in gültigem JSONkeine Option
Variable einer Extraktionder Name, unter dem der gelesene Wert abgelegt wirddie Zeile wird ignoriert
JSON-Pfad einer Extraktionder Pfad zum Wert, zum Beispiel 0.namedie gesamte Antwort wird in der Variable abgelegt

Die Schaltflächen des Fensters sind Extraktion hinzufügen, Testen, Abbrechen und Speichern.

Schritt für Schritt

  1. Prüfen Sie, dass Ihr Odoo unter Integrationen, Odoo angebunden ist und die Instanz dort aktiv ist.
  2. Bestimmen Sie in Odoo das Modell und die Felder, die die gewünschte Information tragen. Lassen Sie sich bei Bedarf von der Person helfen, die Ihr Odoo verwaltet.
  3. Setzen Sie das Modul Odoo-Anfrage und verbinden Sie den vorherigen Knoten mit seinem Eingang.
  4. Öffnen Sie es, wählen Sie die Odoo-Instanz und stellen Sie den Timeout so kurz wie möglich ein: zwei bis drei Sekunden, der Anrufer wartet in der Leitung.
  5. Geben Sie das Modell und die Methode ein.
  6. Schreiben Sie die Args (JSON) und die Kwargs (JSON), indem Sie die Anzahl der gelesenen Zeilen mit "limit":1 begrenzen, wenn eine genügt.
  7. Klicken Sie auf Extraktion hinzufügen und verknüpfen Sie einen JSON-Pfad mit einem Variablen-Namen.
  8. Klicken Sie auf Testen, füllen Sie die Testvariablen aus, dann auf Starten. Korrigieren Sie, bis der erhaltene Wert der richtige ist.
  9. Klicken Sie auf Speichern, verbinden Sie dann OK mit dem weiteren Verlauf und Fehler mit einem Rückfall, der den Anruf ohne die Daten behandelt.
  10. Klicken Sie auf Speichern, dann auf Änderungen übernehmen im oberen Banner.
  11. Rufen Sie Ihre Nummer an und prüfen Sie die Weiterleitung, mithilfe eines Moduls Debugging, das die extrahierten Variablen schreibt.

Wenn es nicht funktioniert

Der Ausgang Fehler wird sofort genommen, ohne dass eine Anfrage abgeht. Drei Ursachen. Das Modell oder die Methode ist leer. Die gewählte Odoo-Instanz existiert nicht mehr oder ist nicht mehr aktiv. Oder die Sicherung ist nach fünf aufeinanderfolgenden Fehlschlägen für dreißig Sekunden ausgelöst.

Die Anfrage schlägt fehl, obwohl mir das JSON korrekt erscheint. Es muss nach dem Ersetzen der Variablen gültig bleiben, und dort passieren die meisten Fehler. Klicken Sie auf Testen: der Bildschirm zeigt die tatsächlich gesendete Anfrage, args und kwargs nach der Ersetzung. Damit eine Variable durch ihren JSON-Wert ersetzt wird, schließen Sie sie in Anführungszeichen ein: "{{caller_e164}}".

Die extrahierte Variable bleibt leer, obwohl die Antwort die Daten enthält. Der Pfad stimmt nicht. search_read antwortet mit einer Liste: beginnen Sie mit 0. für das erste Element. Eine Methode, die eine einzelne Zahl antwortet, verlangt dagegen einen leeren Pfad. Die Spalte Erhaltener Wert des Tests kennzeichnet leere Extraktionen.

Der Test verlangt eine Bestätigung, bevor er startet. Die verlangte Methode schreibt in Odoo, statt nur zu lesen. Der Test läuft tatsächlich gegen Ihr Produktions-Odoo: bestätigen Sie nur, wenn Sie dieses Schreiben akzeptieren.

Der Anruf wird unterbrochen, wenn Odoo schlecht antwortet. Der Ausgang Fehler ist mit nichts verbunden. Dieses Modul hat nicht den automatischen Rückfall des Moduls der Kontaktauflösung: verbinden Sie Fehler, mindestens mit dem üblichen Empfang.

Wie der Anrufplan aufgebaut wird, in Bildern erklärt

Zur Seite Rufpläne