Cómo mostrar notas de error de la API
Al hacer todo el trabajo con la API de Notes como lo hacemos, usted va a terminar corriendo en errores en un momento u otro. Al escribir programas en C o C + +, puede traducir el número de error en una cadena con bastante facilidad. Pero estamos haciendo más y más con el API en LotusScriptand muchos ejemplos más). En esta situación, teníamos que ser capaces de traducir un número de error en un mensaje de error de texto.
La forma más portátil para hacer todo esto es a través de una biblioteca de comandos que contiene una clase personalizada. Que la biblioteca de scripts se puede heredar de cualquier base de datos que necesita y le mostraremos cómo hacer que la clase de llamadas para obtener la cadena de errores.
Crear una biblioteca de script llamado "Notas de error de la API". Todo el código entra en la zona (declaraciones) de la biblioteca de scripts:
Declare Function W32_OSLoadString Lib "nnotes.dll" Alias "OSLoadString" (manejar ByVal As Integer, _
Errnum ByVal As Integer, ByVal buffer Lmbcs cadena, ByVal textLen As Integer) As Integer
Const ERR_MASK = & H3FFF
Clase NotesAPIError
Errnum privado As Integer
Public Sub New (errorNum As Integer)
Me.errNum = errorNum
End Sub
Mensaje de la Función Pública As String
Dim temp As Integer
Dim Resultado As String
temp = Me.errNum Y ERR_MASK
resultado = String $ (255, 0)
temp = W32_OSLoadString (0, temperatura, resultado, Len (resultado))
Mensaje = resultado
End Function
Fin de la clase
Si usted no está familiarizado con el uso de la API de Notes en LotusScript, entonces esta es una buena introducción. Usted tiene que declarar la función externa llamada a la API (consulte la documentación que viene con el API de Notas para los nombres de función y tipos de parámetros). La mayoría de veces que pasa las variables por valor (la palabra clave ByVal) en lugar de por referencia como se hace en "normal" de LotusScript. Cadenas a menudo necesitan la palabra clave Lmbcs para especificar el conjunto de caracteres.
Una clase personalizada va a tener una nueva subrutina llamada cuando una nueva instancia del objeto creado. En este caso, queremos que la nueva instancia de la clase para pasar en el número de error. Hemos establecido la variable privada "errnum" para el valor pasado en. Puesto que la variable es privado, sólo se puede utilizar dentro de la clase. En otras palabras, si el agente crea una variable NotesAPIError nuevo, usted no será capaz de acceder a la propiedad errnum. Del objeto. Tenemos la costumbre de utilizar la opción de palabra clave Me para indicar que estamos hablando de la clase de objeto en lugar de una variable local.
Cuando esté listo, la función (propiedad del objeto) El mensaje se llama. Esta función ajusta el número de error que ser algo que la función externa C puede utilizar y luego establece una zona de retorno de 255 caracteres de 0 (caracteres nulos). Esa es otra cosa que ser conscientes de cuando se trata de llamadas externas en C LotusScript (cualquier llamada C, no sólo para la API de Notes). Si se van a devolver una cadena, hay que establecer el tamaño de la cadena a través de un método como este. LotusScript ajusta dinámicamente el tamaño de la cadena y coge la memoria para usted, pero C no funciona de esa manera.
Después de que el tamaño de la cadena de retorno se ha establecido, a continuación, una llamada a la función externa C se hace. Usted debe referirse a la documentación de la API para más detalles, pero esta función se ajusta el número de error y se rellena la cadena con la versión de texto del número de error.
Una vez que la cadena de error se ha poblado, que se puede devolver el valor de la propiedad / función.
Para probar que el agente, crear un nuevo agente. En la sección (Opciones) del agente, incluye la biblioteca de scripts: Use "Notas de la API de error". El resto del código va en la sección de inicialización:
Sub Inicializar
ErrorNum Dim As String
ClassVar As NotesAPIError
Dim Resultado As String
errorNum = InputBox ("Enter the API Notas Error", "Enter Number", "")
Si errorNum = "" Then Exit Sub
Establecer classVar = Nueva NotesAPIError (Val (errorNum))
resultado = "El mensaje de error para el número de error" y errorNum y "es:" & Chr $ (10) y classVar.Message
Resultado msgbox, 64, "Resultado"
End Sub
Se le pedirá el número de error. Si usted cancela o no ingresar nada, el código se cierra. De lo contrario, se configura un objeto de clase nuevo, pasando el valor del número de error de texto. A continuación, un indicador de resultados se crea utilizando la propiedad Message de la clase de objeto.
Para probarlo, utilice el número de error 18865. Este error se produce cuando un usuario no autorizado intenta hacer un comando de consola remota. Este número de error comprobar el código de la biblioteca de scripts. Número de error 0 significa que no hay error, y el número de error 1 le da la cadena de notas de la versión. Hay un número de error para muchos, este código es muy útil cuando se trabaja con la API de Notes en LotusScript.
Visto 4204 veces por 1075 espectadores













