elVitas Posted August 1, 2019 #1 Share Posted August 1, 2019 Liebe community, ich bin neu im Forum, weil ich schon viele Beiträge gelesen habe, aber dennoch nicht weiterkomme. Ich hoffe ihr könnt mir helfen 👏 Ich möchte eine Variable, die ich mit dem Modul DTM-Zeichen empfangen abfrage, in einer Tabelle suchen lassen. Es handelt sich um eine SQLite3 DB, wie hier erklärt: Für mein Sript habe ich mich dabei an diesem Beispiel orientiert. Hier das Script: ' CursorTypeEnum Values Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ' LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 ' CommandTypeEnum Values Const adCmdUnknown = &H0008 Const adCmdText = &H0001 Const adCmdTable = &H0002 Const adCmdStoredProc = &H0004 Function KnownCallerId ( KndNr ) Dim bReturn bReturn = false Dim sDsn sDsn = "dsn=c:\sqlite\kd.db" ' open connection to database Dim db Set db = CreateObject("ADODB.Connection") db.Open sDsn ' open recordset Dim sSQL Dim rs sSQL = "SELECT * FROM Kunden WHERE knd_nr1 = KndNr" Set rs = CreateObject("ADODB.Recordset") rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, _ adCmdText ' if there are records in recordset, ' this caller seems to be known bReturn = not rs.EOF rs.Close Set rs = Nothing db.Close Set db = Nothing KnownCallerId = bReturn End Function Soweit so gut, aber nach Eingabe der Variable bricht das Telefonat ab. Könnt ihr mir sagen warum? Zu erwähen wäre noch, es handelt sich um eine CallRouting-Regel am Client, nicht am Server. Daher liegt die kd.db auf meinem Computer Laufwerk c:\sqlite\. Link to comment Share on other sites More sharing options...
Most Valued User SvenS Posted August 1, 2019 Most Valued User #2 Share Posted August 1, 2019 1 hour ago, elVitas said: Zu erwähen wäre noch, es handelt sich um eine CallRouting-Regel am Client, nicht am Server. Daher liegt die kd.db auf meinem Computer Laufwerk c:\sqlite\. Callroutings werden immer auf dem Server ausgeführt. Einfach mal das Verzeichnis auf den Server legen. Link to comment Share on other sites More sharing options...
elVitas Posted November 13, 2019 Author #3 Share Posted November 13, 2019 On 8/1/2019 at 1:12 PM, SvenS said: Callroutings werden immer auf dem Server ausgeführt. Einfach mal das Verzeichnis auf den Server legen. Danke für den Tipp. Das habe ich nun gemacht, leider bricht mir der Vorgang im CallRouting immer noch im Modul "Variable auswerten" ab. Hat noch jemand eine Idee, wo der Fehler liegen könnte? Link to comment Share on other sites More sharing options...
Most Valued User SvenS Posted November 13, 2019 Most Valued User #4 Share Posted November 13, 2019 Hast du mal im IpPbxSrv.log nachgeschaut, welche Fehlermeldung erscheint ? Vielleicht hilft dir das weiter Link to comment Share on other sites More sharing options...
elVitas Posted November 21, 2019 Author #5 Share Posted November 21, 2019 On 11/13/2019 at 8:53 AM, SvenS said: Hast du mal im IpPbxSrv.log nachgeschaut, welche Fehlermeldung erscheint ? Vielleicht hilft dir das weiter Ja habe mal reingeschaut, aber ich erkenne dort nicht viel. Anbei mal die Logdatei mit meinem Anruf auf die Nebenstelle -336, für diese habe ich eine CallRouting-Regel stellt, vielleicht kannst du etwas erkennen? 🤔 Log SWYX.txt Link to comment Share on other sites More sharing options...
Tom Wellige Posted November 21, 2019 #6 Share Posted November 21, 2019 Das ist nicht das komplette Trace für den Call. Das Trace geht bis zum Start der Ansage "Neu_Wilkommen.wav" und endet 2ms später. Um helfen zu können, benötige ich die exportierte .RSE Datei des Call Routing Skripts und das komplette Trace eines Testanrufes. Link to comment Share on other sites More sharing options...
elVitas Posted November 28, 2019 Author #7 Share Posted November 28, 2019 On 11/21/2019 at 5:05 PM, Tom Wellige said: Das ist nicht das komplette Trace für den Call. Das Trace geht bis zum Start der Ansage "Neu_Wilkommen.wav" und endet 2ms später. Um helfen zu können, benötige ich die exportierte .RSE Datei des Call Routing Skripts und das komplette Trace eines Testanrufes. Hallo Tom, hab dir eine PM geschickt mit den Dateien. Link to comment Share on other sites More sharing options...
Tom Wellige Posted November 28, 2019 #8 Share Posted November 28, 2019 Hallo Vitali, im Server Trace finden man sehr schnell den Hauptverdächtigen 28 06:50:48.366 002a48 *Err SrvScrAPI 0AA46AD0 00009edc SPBXScriptSite::OnScriptError () ~Code: 0 ~Src: Microsoft OLE DB Provider for ODBC Drivers ~Desc: [Microsoft][ODBC Driver Manager] Der Datenquellenname wurde nicht gefunden, und es wurde kein Standardtreiber angegeben ~RetVal: 80004005 ~Line: 15215 ~Column: 8 ~Source code: ~ Set db = CreateObject("ADODB.Connection") ~ ^ error position Da scheint etwas mit dem Connection String zu Deiner mySQL Datenbank nicht zu stimmen. Ein Blick in Dein Skript zeigt mir, dass Du versuchst per ODBC auf eine lokale mySQL Datei zuzugreifen. sDsn = "dsn=c:\sqlite\kd.db" Wenn Du ODBC verwenden willst, dann musst Du erst eine ODBC Datenquelle im Windows einrichten und dort setzt Du die Verknüpfung auf Deine Datenbank. Im Skript verwendest Du dann nur noch den Namen den Du der Datenquelle gegeben hast. Statt ODBC kannst Du auch OLEDB verwenden. Da musst Du vorher nichts mehr in Windows konfigurieren. Hier ist eine Seite mit etlichen Connection String Beispielen für mySQL Datenbank. Schau mal, ob Du da fündig wirst, und Deinen Connection String angepasst bekommst. https://www.connectionstrings.com/mysql/ Du musst während Du probierst hier nicht jedes Mal das Server Trace posten. Du kannst Du auch selbst schnell nachschauen. Wenn Du von unten hoch liest, findest Du relativ schnell eine Stelle wie oben, wo Dir eine Datenbank Fehlermeldung angezeigt wird. Link to comment Share on other sites More sharing options...
Otto Posted September 28, 2021 #9 Share Posted September 28, 2021 Guten Tag, ich sitze ebenfalls an einer Kundenummer Abfrage und komme leider nicht weiter. Ich bekomme aber auch eine andere Fehlermeldung im Trace. Ich habe schon einiges ausprobiert doch leider hat es nicht geholfen. 28 12:24:55.572 001040 Info SrvScript 07978B80 0000012c SPBXScript::OutputTrace () case [SetVariable17] 28 12:24:55.572 001040 Info SrvScript 07978B80 0000012c SPBXScript::OutputTrace () exp: KndNr = Kundennummer 28 12:24:55.572 001040 Info SrvScript 07978B80 0000012c SPBXScript::OutputTrace () res: KndNr = 00084 28 12:24:55.572 001040 Info SrvPBXCtl 0681DD70 0000012c SScrServer::CallIsOriginatorDiscd () returning no 28 12:24:55.572 001040 Info SrvScript 07978B80 0000012c SPBXScript::OutputTrace () case [Evaluate11] 28 12:24:55.573 001040 Info SrvScript 07978B80 0000012c SPBXScript::OutputTrace () KnownCallerId(KndNr()) 28 12:24:55.575 001040 *Err SrvScrAPI 0797ED20 0000012c SPBXScriptSite::OnScriptError () ~Code: 0 ~Src: Laufzeitfehler in Microsoft VBScript ~Desc: Typenkonflikt: 'KndNr' ~RetVal: 800a000d ~Line: 15731 ~Column: 8 ~Source code: ~ PBXScriptOutputTrace "KnownCallerId(KndNr())" ~ ^ error position 28 12:24:55.576 001040 Inf3 SrvPBXCtl 0681DD70 0000012c SPBXCallHub::SetDisconnectReason (CallRoutingFailed, ext cause 0, U:0, T:0, '','',Unknown) stored 28 12:24:55.577 001040 Info SrvPBXCtl 0681DD70 0000012c SScrServer::OnScriptFinished () 28 12:24:55.577 001040 Inf2 SrvPBXCtl 0681DD70 0000012c SScrServer::EventScriptFinished () 28 12:24:55.577 000b44 Inf2 SrvPBXCtl 07A322A8 0000012c SScriptFsm::ActionOnScriptFinished () 28 12:24:55.578 000b44 Info MSRtp 0794DE98 0000012c SRtpUdp::~SRtpUdp - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Hier einmal die Trace Fehlermeldung. Link to comment Share on other sites More sharing options...
Otto Posted September 29, 2021 #10 Share Posted September 29, 2021 Ich konnte den Fehler beheben. Die sSQL Abfrage im Script wahr Fehlerhaft. Ebenfalls hatte ich eine () in der Variablen Auswertung stehen der mich auch Probleme verursacht hat. Weiter unten findet ihr auch die Einträge/Einstellungen die in den einzelnen Feldern vorgenommen werden müssen. Drunter findet ihr einen angepassten Code: ' CursorTypeEnum Values Const adOpenForwardOnly = 0 Const adOpenKeyset = 1 Const adOpenDynamic = 2 Const adOpenStatic = 3 ' LockTypeEnum Values Const adLockReadOnly = 1 Const adLockPessimistic = 2 Const adLockOptimistic = 3 Const adLockBatchOptimistic = 4 ' CommandTypeEnum Values Const adCmdUnknown = &H0008 Const adCmdText = &H0001 Const adCmdTable = &H0002 Const adCmdStoredProc = &H0004 function KnownCallerId ( KndNr ) Dim bReturn bReturn = false Dim sDsn sDsn = "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=c:\SwyxCallRoutings\Kundennummer\KD.mdb" ' open connection to database Dim db Set db = CreateObject("ADODB.Connection") db.Open sDsn ' open recordset Dim sSQL Dim rs sSQL = "select knd_nr1 from Kunden where knd_nr1 = '" & KndNr & "'" Set rs = CreateObject("ADODB.Recordset") rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText ' if there are records in recordset, this caller seems to be known bReturn = not rs.EOF rs.Close Set rs = Nothing db.Close Set db = Nothing KnownCallerId = bReturn end function Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now