Jump to content

ECR Bereitschaft


Stefan Fuchs
 Share


Go to solution Solved by Stefan Fuchs,

Recommended Posts

Hallo,

ich versuche gerade ein Callrouting für einen Kunden zu bauen. Habt ihr da vielleicht schon mal etwas ähnliches gebaut? Es soll eine CSV oder ähnliches eingelesen werden in der dann der Bereitschaftstag am besten mit Uhrzeit und dann das Weiterleitungsziel (Mobilfunkrufnummer) eingetragen wird. Im SQL habe ich eine neue Datenbank erstellt und der Import in diese funktioniert bereits. Leider bekomme das VBScript nicht zusammen 😞 

 

Im Startblock befindet sich (wurde wohl so schon mal bei einem anderen Kunden verwendet - kann dort aber leider nicht mehr nachsehen...)

' FileOpen iomode Values
Const fsoForReading   = 1
Const fsoForWriting   = 2
Const fsoForAppending = 8

' 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

    Dim vTelefon

    Dim name_bb

function KnownCallerId ( callerID )

    Dim bReturn
    bReturn = false


    Dim sDsn
    sDsn = _
        "Provider=sqloledb;" & _
        "Data Source=SWYX\SQLEXPRESS;" & _
        "Initial Catalog=Bereitschaft;" & _
        "User Id=XXX;" & _
        "Password=XXXX"

    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn

    ' open recordset
    Dim sSQL
    Dim rs


        sSQL = "select * from Bereit_Plan where bereit_datum = convert(datetime,convert(char(10),getdate(),104))"
    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
      If bReturn = TRUE Then
            name_bb = rs.fields("bereit_nummer").value
         vTelefon = rs.fields("bereit_nummer").value
      End If

    rs.Close

    Set rs = Nothing

    db.Close
    Set db = Nothing
        'bReturn = FALSE


    KnownCallerId = bReturn

end function
 

Danach werte ich die Variable aus bei Wahr wird si durchgestellt an vTelefon

 

Link to comment
Share on other sites


Hallo Stefan,

 

2 Dinge sind mir aufgefallen:

  • Deine beiden Variablen enthalten immer den gleichen Wert. Ist das gewollt so?
  • Ist in Deiner Tabelle "Bereit_Plan" das Feld "bereit_datum" kein DateTime Feld? Oder warum konvertierst Du dort so umständlich? Wenn es ein DateTime Feld ist, kann Du direkt mit getDate() vergleichen.

 

Darüber hinaus stellt sich die Frage, was Du mit "leider bekomme ich das VBscript nicht zusammen" meinst? Wird ein Ruf sofort beendet? Was steht im Server Trace?

 

Wie Du das Server Trace aus Call Routing Sicht lesen kannst, findest Du hier.

 

Etliche weitere Beispiele (inkl. des originalen Codes Deiner verwendeten Funktion) findest Du hier verlinkt.

 

 

 

Link to comment
Share on other sites


Hallo Tom,

der Testanruf wird nach etwa 20 Sek beendet. In den CDR sehe ich dann ein  CallRoutingFailed.

 

Hatte versucht es (wie ich es bei dir in der Schulung gelernt habe) per OutputTrace zu ergänzen aber dann bricht der Anruf sofort ab und geht an eine Backuprufnummer welche beim Provider hinterlegt ist. Muss mir das ganze nochmal genau ansehen.

Link to comment
Share on other sites


  • 2 weeks later...

Komme hier irgendwie nicht weiter. Bekkomme auch nichts ins Trace. In der Ereignisanzeige finde ich einen Kompilierungsfehler 

 

A callrouting script has been terminated or could not be executed due to a script error.
 
Script: callrouting.vbs (User, Zentrale) 
Error:  Kompilierungsfehler in Microsoft VBScript, Syntaxfehler, 800a03ea
 

Das Gespräch wird dann sofort zum beim Provider definierten Backup geleitet.

 

 


' 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 FindStandbyContact ( sNumber )

    PBXScript.OutputTrace "---------> FindStandbyContact"
    
    On Error Resume Next
    
    Dim nReturn
    nReturn = 1
    
    Dim sDsn
    sDsn = "Provider=sqloledb;" & _
           "Data Source=SERVER\SQLEXPRESS;" & _
           "Initial Catalog=Bereitschaft;" & _
           '"Integrated Security=SSPI"

 

    PBXScript.OutputTrace sDsn
    
    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn
    
    if Err <> 0 then
    
        PBXScript.OutputTrace "Error opening database!"
        PBXScript.OutputTrace Err & ": " & Err.Description
    
        nReturn = 2
        
    else
    
        PBXScript.OutputTrace "Successfully opened database"
        
        ' open recordset
        Dim sSQL
        Dim rs
        sSQL = "SELECT * from Bereit_Plan where bereit_datum = getDate()"
        
        PBXScript.OutputTrace sSQL
        
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText
        
        if Err <> 0 then
            
            PBXScript.OutputTrace "Error checking database!"
            PBXScript.OutputTrace Err & ": " & Err.Description
            
            nReturn = 2
            
        else
        
            PBXScript.OutputTrace "Successfully checked database"
            
            if not rs.EOF then
            
                PBXScript.OutputTrace "rs(number)
            
            else
            
                PBXScript.OutputTrace "No number found"
                
            end if
            
            Set rs nothing
            
            db.Close
            
        end if
        
        Set db = nothing
        
    PBXScript.OutputTrace "nReturn = " & nReturn
    PBXScript.OutputTrace "<--------- FindStandbyContact"


    FindStandbyContact = nReturn

End Function

Link to comment
Share on other sites


Hallo,

ist ein Deutsche Telefon Trunk. Dort ist dann eine Backup-Rufnummer hinterlegt wenn Trunk nicht verfügbar oder Fehler. Der Trunk ist aber verfügbar denn wenn ich die ECR-Regel deaktiviere funktioniert der Ruf. 

 

Der Ruf kommt rein sehe ich auch in den CDRs "CallRoutingFailed"

Link to comment
Share on other sites


Hallo, genaueres finde ich hier leider auch nicht

 

Line 35432: 17 22:40:45.523 002408 Info SrvScrAPI  05DB81F0 00000025 SScriptHost::Initialize                 () loaded 'callrouting.vbs (User, Zentrale)' with 621890 bytes in 0.118s
    Line 35433: 17 22:40:45.533 0033d4 *Err SrvScrAPI  0742FE60 00000025 SPBXScriptSite::OnScriptError           ()
    Line 35443: 17 22:40:45.534 0033d4 *Err SrvScrAPI  05D801E8 00000025 SH::ScriptEngineThread::Main            () failed, errorUnknown error 0x80020101
    Line 35444: 17 22:40:45.534 002408 *Err SrvScrAPI  05DB81F0 00000025 SScriptHost::Initialize                 (Zentrale) failed, error Unknown error 0x80020101
    Line 35445: 17 22:40:45.534 002408 *Err SrvPBXCtl  073A58D0 00000025 SScrServer::InitScript                  () script host init failed with 1 for U:1 Zentrale
    Line 35446: 17 22:40:45.534 0033d4 Info SrvPBXCtl  073A58D0 00000025 SScrServer::OnScriptFinished            ()
    Line 35447: 17 22:40:45.534 0033d4 Inf2 SrvPBXCtl  073A58D0 00000025 SScrServer::EventScriptFinished         ()
    Line 35448: 17 22:40:45.535 0033d4 Info SrvScrAPI  05D801E8 00000025 SH::ScriptEngineThread::Main            () stopped script engine

Link to comment
Share on other sites


On 1/17/2021 at 10:46 PM, Stefan Fuchs said:

Aktuell ist dieses eingetragen:


' 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 FindStandbyContact ( sNumber )

    PBXScript.OutputTrace "---------> FindStandbyContact"
    
    On Error Resume Next
    
    Dim nReturn
    nReturn = 1
    
    Dim sDsn
    sDsn = "Provider=sqloledb;" & _
           "Data Source=SERVER\SQLEXPRESS;" & _
           "Initial Catalog=Bereitschaft;" & _
           '"Integrated Security=SSPI"

 

    PBXScript.OutputTrace sDsn
    
    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn
    
    if Err <> 0 then
    
        PBXScript.OutputTrace "Error opening database!"
        PBXScript.OutputTrace Err & ": " & Err.Description
    
        nReturn = 2
        
    else
    
        PBXScript.OutputTrace "Successfully opened database"
        
        ' open recordset
        Dim sSQL
        Dim rs
        sSQL = "SELECT * from Bereit_Plan where bereit_datum = getDate()"
        
        PBXScript.OutputTrace sSQL
        
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText
        
        if Err <> 0 then
            
            PBXScript.OutputTrace "Error checking database!"
            PBXScript.OutputTrace Err & ": " & Err.Description
            
            nReturn = 2
            
        else
        
            PBXScript.OutputTrace "Successfully checked database"
            
            if not rs.EOF then
            
                PBXScript.OutputTrace "rs(number)
            
            else
            
                PBXScript.OutputTrace "No number found"
                
            end if
            
            Set rs nothing
            
            db.Close
            
        end if
        
        Set db = nothing
        
    PBXScript.OutputTrace "nReturn = " & nReturn
    PBXScript.OutputTrace "<--------- FindStandbyContact"


    FindStandbyContact = nReturn

End Function

 

 

Aber leider funktioniert es nicht.

Link to comment
Share on other sites


if not rs.EOF then
            
	PBXScript.OutputTrace "rs(number)
            
else
            
	PBXScript.OutputTrace "No number found"
                
end if

 

Beim ersten OutputTrace öffnest Du einen String mit einem Anführungszeichen, schliesst ihn aber nicht. Das führt zum Kompilierungsfehler.

 

Link to comment
Share on other sites


Hallo Tom,

theoretisch müsste er doch so auch etwas ins Trace schreiben, oder?

 

Function FindStandbyContact ( sNumber )

    PBXScript.OutputTrace "---------> Hello!!!"


End Function

 

Das passiert auch schon nicht. Befindet sich das Output PBXScript.OutputTrace außerhalb der function geht es.

Link to comment
Share on other sites


Hallo Tom,

habe das CR mal einem anderen User zugewiesen, leider mit dem gleichen Ergebnis. Das richtige CR Skript bringt in der Ereignisanzeige folgende Meldung und der Ruf wird wie oben erwähnt umgeleitet.

 

A callrouting script has been terminated or could not be executed due to a script error.
 
Script: callrouting.vbs (User, Max Muster) 
Error:  Kompilierungsfehler in Microsoft VBScript, '=' erwartet, 800a03f3

 

 

 

Mit einem einfachen

 

PBXScript.OutputTrace "LETS GO !!!--------->"

Function FindStandbyContact ( sNumber )

    PBXScript.OutputTrace "---------> Hello!!!"


End Function

 

finde ich im Trace zwar das LETS GO aber das Hello taucht nicht auf. Der Ruf bricht aber auch nicht ab.

Link to comment
Share on other sites


  • 1 month later...

Hallo zusammen,

ich habe es nun soweit am laufen. Habe aber leider wieder auf ein altes Skript zurückgegriffen. Weil ich das andere irgendwie nicht richtig hinbekommen habe.

Es gibt nun also 2 Tabellen. Handynummer & Name und Name & Datum

 

' FileOpen iomode Values
Const fsoForReading   = 1
Const fsoForWriting   = 2
Const fsoForAppending = 8

 

' 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

 

    Dim vTelefon
    Dim vTelefonFreitag
    Dim name_bereit
    Dim pinName
'    Dim Pin
	
	Set today = getdate

PBXScript.OutputTrace "---------> KnownCallerId"


function KnownCallerId ( callerID )

 

    Dim bReturn
    bReturn = false
'    Dim name_bb    


    Dim sDsn
	sDsn =	"Provider=sqloledb;" & _
		"Data Source=SRVSWYX\SQLEXPRESS;" & _
		"Initial Catalog=Bereitschaft;" & _
		"User Id=XXX;" & _	
		"Password=XXX"

 

    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn

PBXScript.OutputTrace sDsn
 

    ' open recordset
    Dim sSQL
    Dim rs

 

'Bereitschaft

 

        sSQL = "select * from bereit_plan3 where bereit_datum = convert(datetime,convert(char(10),getdate(),104))"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

PBXScript.OutputTrace sSQL
 

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
        If bReturn = TRUE Then
         name_bereit = rs.fields("bereit_name").value

PBXScript.OutputTrace "name_bereit ="  & name_bereit

    End If

     rs.Close
        sSQL = "select * from bereit_nummern where bereit_name = '" & name_bereit & "'"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

PBXScript.OutputTrace sSQL
 

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
        If bReturn = TRUE Then
         vTelefon = rs.fields("bereit_nummer").value

PBXScript.OutputTrace "vTelefon ="  & vTelefon
    End If

PBXScript.OutputTrace "<--------- KnownCallerId"

end function

Da ich hier nur auf Tage prüfe bräuchte ich nochmal eure Hilfe.

 

Wie kann ich abfragen ob der Wert zwischen 2 Werten liegt?

 

Also wenn der Wert für die Bereitschaft auf 18.03.2021 17:30 steht der nächste dann 19.03.2021 17:30 muss geprüft werden ob man sich zwischen diesen Werten befindet.

Link to comment
Share on other sites


Hallo Tom,

vielen Dank. Also in der Datenbank steht dann 18.03.2021 17:30 dann vergleiche ich es mit einem

 

getDate und einem (DateAdd "d" , 1 ,  "getDate") ???

 

select * from bereit_plan3 where bereit_datum between "getDate()" and (DateAdd "d" , 1 ,  "getDate()")

 

bzw. setze mir die erst in eine Variable?

 

select * from bereit_plan3 where bereit_datum between "today" and "tomorrow"

Link to comment
Share on other sites


Ich kenne jetzt Deine Anwendung nicht im Detail, aber würde es nicht mehr Sinn machen, pro Mitarbeiter in der Bereitschaftstabelle einen Start und einen Endzitpunkt zu setzen?

 

Damit würde dann etwas in dieser Art heraus kommen:

 

select * from bereit_plan3 where getDate() between bereit_start and bereit_end

 

Link to comment
Share on other sites


  • 1 year later...

Hallo Tom,

ich müsste das Thema hier mal erweitern. Habe von einem Kunden nun die Anforderung das es 2 Personen gibt welche Rufbereitschaft am gleichen Tag haben.

Somit habe ich nun in meinem bereit_plan 4 Spalten (bereit_start; bereit_ende; bereit_name1; bereit_nummer2)

 

Der erste Schritt funktioniert aber die Auswertung von bereit_name funktioniert nicht. ADODB.Recordset, Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden., 800a0cc1

' FileOpen iomode Values
Const fsoForReading   = 1
Const fsoForWriting   = 2
Const fsoForAppending = 8

 

' 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

 

    Dim vTelefon1
    Dim vTelefon2
    Dim name_bereit1
	Dim name_bereit2
    Dim pinName
'    Dim Pin

PBXScript.OutputTrace "---------> KnownCallerId"


function KnownCallerId ( callerID )

 

    Dim bReturn
    bReturn = false
'    Dim name_bb    


    Dim sDsn
	sDsn =	"Provider=sqloledb;" & _
		"Data Source=XXXX\SQLEXPRESS;" & _
		"Initial Catalog=Bereitschaft;" & _
		"User Id=Bereitschaft;" & _	
		"Password=XXXXX"

 

    ' open connection to database
    Dim db
    Set db = CreateObject("ADODB.Connection")
    db.Open sDsn

PBXScript.OutputTrace sDsn
 

    ' open recordset
    Dim sSQL
    Dim rs
    Dim rs1

 

'Bereitschaft

 

    sSQL = "select * from bereit_plan1 where getDate() between bereit_start and bereit_ende"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

PBXScript.OutputTrace sSQL
 

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
        If bReturn = TRUE Then
	name_bereit1 = rs.fields("bereit_name1").value
	name_bereit2 = rs.fields("bereit_name2").value

PBXScript.OutputTrace "name_bereit1 ="  & name_bereit1
PBXScript.OutputTrace "name_bereit2 ="  & name_bereit2

    End If

     rs.close
        sSQL = "select * from bereit_nummern where bereit_name = '" & name_bereit1 & "'"
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

PBXScript.OutputTrace sSQL
 bReturn=false 
 

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
        If bReturn = TRUE Then
         vTelefon1 = rs.fields("bereit_nummer1").value
		 

PBXScript.OutputTrace "vTelefon1 ="  & vTelefon1
         end if
		 
	rs.close
	
	    sSQL = "select * from bereit_nummern where bereit_name = '" & name_bereit2 & "'"
		
    Set rs = CreateObject("ADODB.Recordset")
    rs.Open sSQL, db, adOpenDynamic, adLockOptimistic, adCmdText

PBXScript.OutputTrace sSQL
 

    ' if there are records in recordset, this caller seems to be known
    bReturn = not rs.EOF
        If bReturn = TRUE Then
         vTelefon2 = rs.fields("bereit_nummer2").value
		 
	
PBXScript.OutputTrace "vTelefon2 ="  & vTelefon2
    End If

	rs.close
PBXScript.OutputTrace "<--------- KnownCallerId"

end function

 

 

image.png.e591700dd83741e6986ac402c1d9ad73.png

image.png.aeca14e8b0606d6d907c77bfb5b59b46.png

 

Quote

04 12:40:46.035 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () ---------> KnownCallerId
04 12:40:46.035 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () CRMVersion: 13.10.0.15
04 12:40:46.035 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::UserGetUTCBiasReq           () returning 120 minutes
04 12:40:46.035 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () Template.vbs version: 10.20.0.7, Functions.vbs version: 8.0.0.3, CRM version: 13.10.0.15
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIEnabledReq         () returning 0
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRISvrnameReq         () returning 
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIUsernameReq        () returning 
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIPasswordReq        () returning ***
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIFolderReq          () returning INBOX
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIUseSSLReq          () returning 0
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIUsePINReq          () returning 1
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIPINReq             () returning ***
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetRIUseFrmAddrRq       () returning 1
04 12:40:46.035 0031b0 Info SrvScrAPI  07C2B5B0 000007b0 SScrServer::UserGetEnablePCallRq        () returning 0
04 12:40:46.035 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::UserGetParallelCallNum      () returning 
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () RI/PL parameters loaded: 0,,,XXX,INBOX,Falsch,Wahr,XXX,Wahr,Falsch,
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::CallGetCalledNumber         () returning 412
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::CallGetDialedNumReq         () returning 412
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::CallGetCallTypeReq          () returning 'Normal'
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::GetCallingNumber            () returning '+XXXX'
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::GetCallingNumber            () returning '+XXXX'
04 12:40:46.036 0031b0 Inf3 SrvPBXCtl  07C2B5B0 000007b0 ScriptInfo::GetPreviousScripts          (Id 1968) no previous scripts available
04 12:40:46.036 0031b0 Inf3 SrvPBXCtl  07C2B5B0 000007b0 SScrServer::GetPreviousScripts          () NO script found
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () rule PreProcessing started...
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () User-defined PreProcessing (dummy)
04 12:40:46.036 0031b0 Inf3 SrvPBXCtl  07C2B5B0 000007b0 SScrServer::UserIsBusy                  (412, 412 ): Free
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::UserGetUncondRedir          () not enabled
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () Begin GSE Script (Rule: ruleBereitschaft0503211)
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () GSEVersion: 13.10.0.23
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              ()   case [Start0]
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () --> gseStart()
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () <-- gseStart, rc = 1 [gseStateStarted]
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              ()   case [Evaluate4]
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () KnownCallerId (IpPbx.CallingNumber())
04 12:40:46.036 0031b0 Info SrvPBXCtl  07C2B5B0 000007b0 SScrServer::GetCallingNumber            () returning '+XXXXX'
04 12:40:46.036 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () Get CallingNumber, rc = +XXXXX
04 12:40:46.047 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () Provider=sqloledb;Data Source=XXX\SQLEXPRESS;Initial Catalog=Bereitschaft;User Id=Bereitschaft;Password=XXXX
04 12:40:46.047 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () select * from bereit_plan1 where getDate() between bereit_start and bereit_ende
04 12:40:46.048 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () name_bereit1 =Stefan              
04 12:40:46.048 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () name_bereit2 =Horst               
04 12:40:46.049 0031b0 Info SrvScript  07D42BB0 000007b0 SPBXScriptVbs::OutputTrace              () select * from bereit_nummern where bereit_name = 'Stefan              '
04 12:40:46.050 0031b0 *Err SrvScrAPI  06957F60 000007b0 SPBXScriptSiteVbs::OnScriptError        ()
~Code:   0
~Src:    ADODB.Recordset
~Desc:   Ein Objekt, das dem angeforderten Namen oder dem Ordinalverweis entspricht, kann nicht gefunden werden.
~RetVal: 800a0cc1
~Line:   15310 
~Column: 9
~Source code:
~        If bReturn = TRUE Then
~         ^ error position

 

Link to comment
Share on other sites


Hallo Stefan,

 

mit den beiden gefundenen Namen aus der "bereit_plan1" Tabelle musst Du in der "bereit_nummern" Tabelle suchen:

 

sSQL = "select * from bereit_nummern where (bereit_name = '" & name_bereit1 & "'") or (bereit_name = '" & name_bereit2 & "'")

 

Denk abe bitte daran, dass diese Abfrage voraussetzt, dass Du immer beide Namen gesetzt hast. Für den Fall, dass nur ein Kollege Bereitschaft macht, würde ich in da sowas wie "xxx" oder irgendeine andere Zeichenkette eintragen. Hauptsache ist, das Feld ist nicht Null.

 

Da Du das "rs" Objekt bereits hast, musst Du es für die 2. Abfrage nicht noch einmal mittels

 

Set rs = CreateObject("ADODB.Recordset")

 

anlegen. Lass diese Zeile einfach weg.

 

Anschliessend musst Du davon ausgehen, dass Du 1 order 2 Datensätze zurück bekommst. Das könnte dann z.B. so aussehen:

 

Dim nFeld
nFeld     = 1
vTelefon1 = ""
vTelefon2 = ""

while not rs.EOF

	select case nFeld
		case 1
			vTelefon1 = rs("bereit_nummer")
		case 2
			vTelefon2 = rs("bereit_nummer")
	end select

	nFeld = nFeld + 1

	rs.MoveNext

wend

 

 

Link to comment
Share on other sites


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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and have taken note of our Privacy Policy.
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.