Startseite > Lotus Notes-Lösung , Lotus Notes-Tutorial , LotusScript > Wie um zu zeigen Notes-API-Fehler

Wie um zu zeigen Notes-API-Fehler

Wenn Sie so viel Arbeit zu tun mit dem Notes-API wie wir es tun, werden Sie am Ende läuft in Fehlern an einen oder anderen Punkt. Beim Schreiben von Programmen in C oder C + +, können Sie den Fehler Zahl in einen String recht einfach übersetzen. Aber wir machen mehr und mehr mit der API in LotusScriptand haben noch viel mehr Beispiele). In dieser Situation mussten wir in der Lage sein, um einen Fehler in einen Text-Nummer Fehlermeldung übersetzen.


Die meisten tragbaren Weg, um all das tun, ist durch ein Script-Bibliothek enthält eine benutzerdefinierte Klasse. Das Skript-Bibliothek kann auf jede Datenbank, die Sie benötigen vererbt werden, und wir zeigen, wie man die Klasse aufruft, um den Fehler-String zu erhalten.

Erstellen Sie ein Skript-Bibliothek namens "Notes-API-Fehler". Der gesamte Code geht in die (Deklarationen) Bereich des Skript-Bibliothek:

Declare Function W32_OSLoadString Lib "nnotes.dll" Alias ​​"OSLoadString" (ByVal Handle As Integer, _
Errnum ByVal As Integer, ByVal Buffer als Lmbcs String, ByVal textLen As Integer) As Integer
Const ERR_MASK = & H3FFF

Klasse NotesAPIError
Privat errnum As Integer

Public Sub New (errorNum As Integer)
Me.errNum = errorNum
End Sub

Public Function Nachricht As String
Dim Temp As Integer
Dim Ergebnis As String
temp = Me.errNum Und ERR_MASK
Ergebnis = String $ (255, 0)
temp = W32_OSLoadString (0, Temp., Ergebnis, Len (Ergebnis))
Message = Ergebnis
End Function

End Class

Wenn Sie nicht vertraut mit der Verwendung des Notes-API in LotusScript sind, dann ist dies ein guter Einstieg. Sie müssen die externe API Function Call (siehe Dokumentation, die mit dem Notes-API kommt für den Funktionsnamen und Parameter-Typen) zu erklären. Die meiste Zeit passieren Sie Variablen als Werte (das Schlüsselwort ByVal) statt durch Verweis als in "normalen" LotusScript getan. Streicher oft Zeiten brauchen die Lmbcs Schlüsselwort, um den Zeichensatz anzugeben.

Eine benutzerdefinierte Klasse wird einen neuen Unterroutine aufgerufen, wenn eine neue Instanz des Objekts erstellt wird, haben. In diesem Fall wollen wir die neue Instanz der Klasse, die in der Fehlernummer übergeben. Wir setzen die private Variable "errnum" an den übergebenen Wert. Da die Variable ist privat, kann es nur innerhalb der Klasse verwendet werden. Mit anderen Worten, wenn Ihr Agent erstellt eine neue Variable NotesAPIError, werden Sie nicht in der Lage sein, um die. Errnum Eigenschaft des Objekts zugreifen. Wir haben die Angewohnheit, mit dem optionalen Schlüsselwort Me, um anzuzeigen, dass wir über die Klasse-Objekt anstelle eines lokalen Variablen sprechen.

Wenn Sie fertig sind, wird die Funktion (Objekt-Eigenschaft) Message aufgerufen werden. Diese Funktion stellt die Fehlernummer, etwas, dass die externe C-Funktion verwenden können, zu sein und stellt dann eine Rendite von 255 Zeichen 0 's (null Zeichen). Das ist eine andere Sache bewusst zu sein im Umgang mit externen C-Aufrufe in LotusScript (alle C-Aufruf, nicht nur für die Notes-API). Wenn Sie vorhaben, einen String zurückkehren, haben Sie zur Ermittlung der Größe der Zeichenfolge durch ein Verfahren wie dieses. LotusScript passt sich dynamisch den String Größe und schnappt sich den Speicher für Sie, aber C funktioniert nicht so.

Nach der Rückgabe-String Größe eingerichtet worden ist, dann ein Aufruf der externen C-Funktion gemacht wird. Sie sollten auf die API-Dokumentation für Details verweisen, aber diese Funktion wird das bereinigte Fehlernummer und füllt den String mit Text-Version der Fehlernummer.

Sobald der Fehler-String gefüllt wurde, kann das als Eigenschaft / Wert-Funktion zurückgegeben werden.

Um zu testen, aus dem Agenten, erstellen Sie einen neuen Agenten. In der (Optionen) Abschnitt des Mittels, gehören die Skript-Bibliothek: Mit "Notes API-Fehler". Der Rest des Codes geht in die Initialize Abschnitt:

Sub Initialize
Dim errorNum As String
Dim classVar Als NotesAPIError
Dim Ergebnis As String
errorNum = InputBox ("Geben Sie den Notes-API-Fehler-Nr", "Nummer eingeben", "")
Wenn errorNum = "" Then Exit Sub
Stellen Sie classVar = New NotesAPIError (Val (errorNum))
Ergebnis = "Die Fehlermeldung für Fehler Nummer" & errorNum & "ist:" & Chr $ (10) & classVar.Message
MsgBox Result, 64, "Ergebnis"
End Sub

Sie suchen den Fehler Nummer aufgefordert. Wenn Sie abbrechen oder nichts eingeben, beendet das Code. Andernfalls stellt sie eine neue Klasse Objekt, und übergeben Sie den Wert der Text Fehlernummer. Dann wird ein Ergebnis Prompt wird mit dem Message-Eigenschaft der Klasse Objekt.

Um es auszuprobieren, verwenden Sie Fehler Nummer 18865. Dieser Fehler tritt auf, wenn ein nicht autorisierter Benutzer versucht, eine Remote Console Command tun. Dieser Fehler Nummer prüft die Skript-Bibliothek Code. Fehler Nummer 0 bedeutet keine Fehler, und Fehler Nummer 1 gibt Ihnen die Notes-Version-String. Es gibt so viele Fehler-Nummern, kommt dieser Code praktisch beim Arbeiten mit dem Notes-API in LotusScript.

Gesehen 4280 mal von 1103 Zuschauern

  1. Noch keine Kommentare.
  1. Bisher keine Trackbacks.