Good day,
I am using Unidata 8.2 and building a web frontend to a Unidata application. What I'm trying to figure out is a good method for detecting console message such as Unassigned variables or Unopened file variables during the process. Yes, the messages are being displayed in the COMO, however so is a lot of other information, and I don't want to parse the COMO for console messages. I do want to report the messages back up to the user. Is there an EASY way to detect/trap those console messages? Some SYSTEM variable I can check?
Thank you for your time,
Dan Duffek
------------------------------
Daniel Duffek
Software Engineer
Rocket Forum Shared Account
------------------------------
@Daniel Duffek
You can check the LastServerError to get the error messages you mentioned. Here is an example of how I have used it in some of the utiltity programs we supply for UV and UD.
RepMonUoSub = MachineASession.CreateUniSubroutine("REPMON.UO", 2)
RepMonUoSub.SetArg(0, "11")
SubCall2Okay = True
Try
RepMonUoSub.Call()
Catch ex As UniSubroutineException
MsgBox("Subroutine REPMON.UO Call Failed (UniSubroutine Exception)" + vbCrLf + "Error Number : " + ex.ErrorCode.ToString + vbCrLf + "Error Message : " + ex.Message, MsgBoxStyle.Critical)
SubCall2Okay = False
Catch ex As Exception
MsgBox("Subroutine REPMON.UO Call Failed : " + ex.Message, MsgBoxStyle.Critical)
SubCall2Okay = False
End Try
If MachineASession.LastServerError <> "" Then
MsgBox("LastServerError Message was " + MachineASession.LastServerError, MsgBoxStyle.Information)
End If
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
@Daniel Duffek
You can check the LastServerError to get the error messages you mentioned. Here is an example of how I have used it in some of the utiltity programs we supply for UV and UD.
RepMonUoSub = MachineASession.CreateUniSubroutine("REPMON.UO", 2)
RepMonUoSub.SetArg(0, "11")
SubCall2Okay = True
Try
RepMonUoSub.Call()
Catch ex As UniSubroutineException
MsgBox("Subroutine REPMON.UO Call Failed (UniSubroutine Exception)" + vbCrLf + "Error Number : " + ex.ErrorCode.ToString + vbCrLf + "Error Message : " + ex.Message, MsgBoxStyle.Critical)
SubCall2Okay = False
Catch ex As Exception
MsgBox("Subroutine REPMON.UO Call Failed : " + ex.Message, MsgBoxStyle.Critical)
SubCall2Okay = False
End Try
If MachineASession.LastServerError <> "" Then
MsgBox("LastServerError Message was " + MachineASession.LastServerError, MsgBoxStyle.Information)
End If
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
Thank you, I'll look into that.
I also have phantoms that are spawning and running as a result of the UO call. I don't think the LastServerError will pick those console messages up. Any ideas of how to catch those as well?
------------------------------
Daniel Duffek
Software Engineer
Rocket Forum Shared Account
------------------------------
Thank you, I'll look into that.
I also have phantoms that are spawning and running as a result of the UO call. I don't think the LastServerError will pick those console messages up. Any ideas of how to catch those as well?
------------------------------
Daniel Duffek
Software Engineer
Rocket Forum Shared Account
------------------------------
@Daniel Duffek
Given that you stated you do not want to parse a COMO output I don't expect you want to parse a _PH_ file output ,which would be the only way to get at those messages. However even if you wanted to do this, it brings up a lot of other questions, such as what provision (if any) have you made in your UO code to check that any spawned phantoms have completed, so that their output can be parsed.
In short there is no simple answer to what you are looking to do with the phantom output.
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
@Daniel Duffek
Given that you stated you do not want to parse a COMO output I don't expect you want to parse a _PH_ file output ,which would be the only way to get at those messages. However even if you wanted to do this, it brings up a lot of other questions, such as what provision (if any) have you made in your UO code to check that any spawned phantoms have completed, so that their output can be parsed.
In short there is no simple answer to what you are looking to do with the phantom output.
------------------------------
Jonathan Smith
UniData ATS
Rocket Support
------------------------------
That was the conclusion I came to as well, but wanted to check the community at large to see if I was missing something. Thank you for the sanity check.
------------------------------
Daniel Duffek
Software Engineer
Rocket Forum Shared Account
------------------------------
Good day,
I am using Unidata 8.2 and building a web frontend to a Unidata application. What I'm trying to figure out is a good method for detecting console message such as Unassigned variables or Unopened file variables during the process. Yes, the messages are being displayed in the COMO, however so is a lot of other information, and I don't want to parse the COMO for console messages. I do want to report the messages back up to the user. Is there an EASY way to detect/trap those console messages? Some SYSTEM variable I can check?
Thank you for your time,
Dan Duffek
------------------------------
Daniel Duffek
Software Engineer
Rocket Forum Shared Account
------------------------------
Hi Daniel
We do it with UV errlog, which capture all errors from all sessions in a Loop TexxtFile
Line 1 is the 'Last error line entry'
The line know the time stamp/ port /user where the error occurs.
It's a Light text file, you can parse it quickly.
Read file
read line 1,
L= line 1 value
Loop
check time stamp, port user.<L>
If port is the one to check... Return <L>
L-= 1
Repeat until time stamp less timeref
It's a quick way to test if a trouble occurs on a session.
If Yes, you can read _PH_ to enrichi the errors. (echo, crt,...)
You can write a subr to do it.
Have a look to udt.errlog (cf msglevelconfig). As I remember it's l'équivalent.
I hope this help.
Manu
------------------------------
Manu Fernandes
------------------------------