Avaya CMS で 3 秒ごとに CSV を生成するために使用される VBScript があります。この CSV は、ノード サーバーによって変更されるたびに読み取られます。
ときどきエラー (エラー 52) がスローされ、誰かがプロンプトで [OK] を手動でクリックする必要があり、その後続行します。
私は最初のスクリプトを書きませんでしたが、このエラーがスローされないように修正しようとしています。
私が理解している限り、ノードサーバーがファイルを読み取ろうとしているときにスクリプトがファイルに書き込もうとすると、問題が発生します。
これまでのところ、ファイルを読み取り専用にすることでこれを修正しようとしましたが、スクリプトで書き込み可能にし、書き込み、再度読み取り専用にします。
これで問題は解決したと思っていましたが、エラー 52 のポップアップが再び表示され、今はよくわかりません。
VB/Avaya にエラーを無視させる方法があるかどうかは誰にもわかりませんか? On Error Resume Next
ファイルを書き込む行の前に置くようなことを考えていましたか?
エラーを無視するのは良い方法ではないことはわかっていますが、この場合、無視すると、このループでファイルが更新されないことを意味しますが、3 秒後に再びループするため、問題ないはずです。
脚本:
On Error Resume Next
cvsSrv.Reports.ACD = 1
Set Info = cvsSrv.Reports.Reports("Real-Time\Designer\Skill Status")
If Info Is Nothing Then
Else
b = cvsSrv.Reports.CreateReport(Info,Rep)
If b Then
Rep.RefreshInterval = 3
Rep.SetProperty "Split/Skill","5"
Set WshShell = CreateObject("WScript.Shell")
theHTMLLocation = "C:\wamp\www\wallboards\agent_status.csv"
theSleepFile = "C:\wamp\www\wallboards\sleep.vbs"
theTemplateLocation = ""
Set fso = CreateObject("Scripting.FileSystemObject")
Set gfile = fso.GetFile("C:\wamp\www\wallboards\agent_status.csv")
Do While Rep.Window.Caption <> ""
gfile.Attributes = 0
d = Rep.ExportData("C:\wamp\www\wallboards\agent_status.csv", 44, 0, False, True, True)
gfile.Attributes = 1
WshShell.Run "wscript.exe """ & theSleepFile & """", , True
Loop
If Not cvsSrv.Interactive Then cvsSrv.ActiveTasks.Remove Rep.TaskID
Set Rep = Nothing
End If
End If
Set Info = Nothing
PS - ファイルの先頭に関連性がないと思われるいくつかのパラメーターを残しました。