首先: avaya cms的编程语言是用什么写的?
第二:我保存的cms脚本需要扩展(.ACS),我想了解这个脚本开始开发它。所以请检查下面的脚本,这个脚本从实时导出数据,我想每1秒导出一次,但当我执行此代码时,它需要大约20秒,因为在每次执行代码时,它开始连接到服务器并获得报告。那么,我如何保持与服务器的连接并每隔1秒自动获取数据,而不是每次都执行脚本?
代码:
Public Sub Main()
'## cvs_cmd_begin
'## ID = 2001
'## Description = "Report: Real-Time: Designer: Split/Skill Report (All Queues Reports): Export Data"
'## Parameters.Add "Report: Real-Time: Designer: Split/Skill Report (All Queues Reports): Export Data","_Desc"
'## Parameters.Add "Reports","_Catalog"
'## Parameters.Add "2","_Action"
'## Parameters.Add "1","_Quit"
'## Parameters.Add "Real-Time\Designer\Split/Skill Report (All Queues Reports)","_Report"
'## Parameters.Add "1","_ACD"
'## Parameters.Add "-120","_Top"
'## Parameters.Add "525","_Left"
'## Parameters.Add "19440","_Width"
'## Parameters.Add "11760","_Height"
'## Parameters.Add "default","_TimeZone"
'## Parameters.Add "The report Real-Time\Designer\Split/Skill Report (All Queues Reports) was not found on ACD 1.","_ReportNotFound"
'## Parameters.Add "*","_BeginProperties"
'## Parameters.Add "3035;3099;3031;3033;3059;3089;3090","Splits/Skills"
'## Parameters.Add "3035;3099;3031;3033;3059;3089;3090","Split/Skill"
'## Parameters.Add "3035;3099;3031;3033;3059;3089;3090","Split/Skill(Agent)"
'## Parameters.Add "*","_EndProperties"
'## Parameters.Add "*","_BeginViews"
'## Parameters.Add "*","_EndViews"
'## Parameters.Add "D:\xampp\htdocs\cms\real_time.txt","_Output"
'## Parameters.Add "59","_FldSep"
'## Parameters.Add "0","_TextDelim"
'## Parameters.Add "True","_NullToZero"
'## Parameters.Add "True","_Labels"
'## Parameters.Add "True","_DurSecs"
On Error Resume Next
cvsSrv.Reports.ACD = 1
Set Info = cvsSrv.Reports.Reports("Real-Time\Designer\Split/Skill Report (All Queues Reports)")
If Info Is Nothing Then
If cvsSrv.Interactive Then
MsgBox "The report Real-Time\Designer\Split/Skill Report (All Queues Reports) was not found on ACD 1.", vbCritical Or vbOKOnly, "Avaya CMS Supervisor"
Else
Set Log = CreateObject("ACSERR.cvsLog")
Log.AutoLogWrite "The report Real-Time\Designer\Split/Skill Report (All Queues Reports) was not found on ACD 1."
Set Log = Nothing
End If
Else
b = cvsSrv.Reports.CreateReport(Info,Rep)
If b Then
Rep.Window.Top = -120
Rep.Window.Left = 525
Rep.Window.Width = 19440
Rep.Window.Height = 11760
Rep.TimeZone = "default"
Rep.SetProperty "Splits/Skills","3035;3099;3031;3033;3059;3089;3090"
Rep.SetProperty "Split/Skill","3035;3099;3031;3033;3059;3089;3090"
Rep.SetProperty "Split/Skill(Agent)","3035;3099;3031;3033;3059;3089;3090"
b = Rep.ExportData("D:\xampp\htdocs\cms\real_time.txt", 59, 0, True, True, True)
Rep.Quit
If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Rep.TaskID
Set Rep = Nothing
End If
End If
Set Info = Nothing
'## cvs_cmd_end
End Sub
发布于 2020-12-17 23:56:44
Avaya脚本是用VBScript编写的。如果您熟悉Office中的VBA,则代码非常相似。不幸的是,它们速度很慢,而且有点糟糕。使用Avaya脚本每隔1秒连接到服务器是不可行的。你可以,也许,使用一个Do...Loop,但是我为CMS脚本编写自定义VBS的经验告诉我,即使是一个很小的错误也会导致100%的CPU使用率,而你的非工作代码将永远运行,直到你手动使其崩溃。
我可以说的一件事是,以‘##’开头的每一行或多或少都是关于脚本正在做什么的文档。vbscript中的‘符号用于注释。实际代码在下面的部分中。
Avaya确实有数据库连接器,这可能更适合您的需求。他们的速度要快得多,通常与软件的配合也要好得多。我想说,这是一个更富有成效的查询行轮询数据库,而不是杂乱无章的脚本。
https://stackoverflow.com/questions/60118841
复制相似问题