Probleme bei CRM-Integration

kfz-innung-schwaben

Free User
Mitglied seit
4. August 2022
Beiträge
9
Hallo zusammen,

ich versuche gerade, die Kontaktdaten aus unserem Odoo-Testsystem abzufragen, um daraus einen Link für ein Pop-up bei einem Anruf zu generieren. Die Abfrage eines Datensatzes bei einem Anruf sowie die Zuordnung der entsprechenden Rufnummer habe ich aktuell so vereinfacht, so dass in jedem Fall ein Datensatz zurückgeliefert wird. Versuche ich jedoch, den Kontakt in der Datenbank anlegen zu lassen (Enable Contact Creation), dann versucht die Funktion, in die externe Odoo-DB zu schreiben und nicht in der 3CX-DB einen Kontakt einzufügen? weiss hier jemand, wo hier mein Denkfehler liegt? Nachfolgend die Fehlermeldung, die beim Testen der Funktion auftritt:


------------------------------------------------------------------------------
Started scenario with empty id
Request text: ConnectionString: Server=odoo.kfz-innung.local;Port=5432;Database=odooDB;User Id=postgres;Password=xxxxxxxxxxxxxxxx
Statement: Select id As contactid, display_name As firstname, '' As lastname, email As email, phone As phonebusiness, mobile As phonemobile, '' As faxbusiness From res_partner Where id = 71

Response text: [{"contactid":71,"first_name":"Kfz-Meisterei mit vielen Einzelpersonen","last_name":"","email":null,"phonebusiness":"0821 778899","phonemobile":"0176 45 75 79 50","faxbusiness":""}]
Response finished
Variable ContactID set to 71
Variable FirstName set to
Variable LastName set to
Variable CompanyName set to
Variable Email set to
Variable PhoneMobile set to 0176 45 75 79 50
Variable PhoneMobile2 set to
Variable PhoneHome set to
Variable PhoneHome2 set to
Variable PhoneBusiness set to 0821 778899
Variable PhoneBusiness2 set to
Variable PhoneOther set to
Variable FaxBusiness set to
Variable FaxHome set to
Variable Pager set to
Variable PhotoUrl set to
Finished scenario with empty id
Started CreateContactRecord
Request text: ConnectionString: Server=odoo.kfz-innung.local;Port=5432;Database=odooDB;User Id=postgres;Password=xxxxxxxxxxxxxxx
Statement: INSERT INTO contacts (first_name, last_name, phone) VALUES ('New', '3CX Contact', '555-1234');SELECT id as contactid, first_name as firstname, last_name as lastname, phone as phonebusiness FROM contacts WHERE phone = '555-1234'

Npgsql.PostgresException (0x80004005): 42P01: Relation »contacts« existiert nicht
at Npgsql.NpgsqlConnector.<ReadMessage>g__ReadMessageLong|194_0(NpgsqlConnector connector, Boolean async, DataRowLoadingMode dataRowLoadingMode, Boolean readingNotifications, Boolean isReadingPrependedMessage)
at Npgsql.NpgsqlDataReader.NextResult(Boolean async, Boolean isConsuming, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteReader(CommandBehavior behavior, Boolean async, CancellationToken cancellationToken)
at Npgsql.NpgsqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
at CrmIntegration.SqlDatabaseClient.Execute(String statement, CancellationToken token)
at CrmIntegration.ScenarioProcessorBase.ProcessSQLDatabaseQuery(ISQLClientFactory sqlClientFactory, ScenarioQuery query, IValueManager customManager, CancellationToken token)
at CrmIntegration.ScenarioProcessorBase.ProcessScenario(ProtocolScenario scenario, IValueManager customManager, CancellationToken token)
at CrmIntegration.ScenarioProcessorBase.Execute(ProtocolScenario scenario, CancellationToken token)
at CrmIntegration.CrmProcessor.CreateContactRecord(IValueManager customManager, String scenarioId, Func`2 filterResultsFunctor, CancellationToken token)
Exception data:
Severity: FEHLER
SqlState: 42P01
MessageText: Relation »contacts« existiert nicht
Position: 13
File: parse_relation.c
Line: 1180
Routine: parserOpenTable

------------------------------------------------------------------------------

Viele Grüße

Peter Ulrich
Kfz-innung-schwaben
 
Ich habe mal einen Kontakt gefragt der Odoo vermarktet. Mal gucken ob er eine Idee dazu hat.
 
wie weiter oben geschrieben, hatte ich da offensichtlich einen grundlegenden Denkfehler. Ich bin davon ausgegangen, dass mit der Insert-Anweisung der Kontakt innerhalb der 3CX-Datenbank angelegt wird.

Wie ich mittlerweile festgestellt habe, versucht die Insert-Anweisung einen Datensatz in unserem CRM-System hinzuzufügen, was in unserem Fall nicht gewünscht wird.

Um die Funktionalität zu erreichen habe ich nun einfach die Selektion für den Lookup nach der Telefonnummer auch an die Stelle für "Enable Contact Creation" kopiert - ohne eine Insert-Anweisung zu verwenden - und siehe da, ich erhalte den Button für den Aufruf des Kontaktes innerhalb der Odoo-Umgebung. In die Selektion habe ich lediglich noch eine PostgreSQL-Funktion eingearbeitet, die aus den zu suchenden Telefonnummern alle Zeichen ausser Zahlen entfernt.

Nun ist alles wie gewünscht - vielen Dank und noch ein schönes Wochenende :)
 

Statistik des Forums

Themen
44.749
Beiträge
233.638
Mitglieder
78.492
Neuestes Mitglied
dirk.kuttler