Jak zauważa Pokaż Błąd API

Gdy to zrobisz, jak wiele pracy z API Uwagi jak my, będzie koniec pracy do błędów w jednym punkcie lub innego. Podczas pisania programów w C lub C + +, można tłumaczyć numer błędu na ciąg dość łatwo. Ale robimy coraz więcej z API w LotusScriptand wiele więcej przykładów). W tej sytuacji musimy być w stanie przetłumaczyć numeru błędu na komunikat o błędzie tekstu.


Najbardziej przenośny sposób to wszystko zrobić to poprzez biblioteki skrypt zawierający własnej klasy. Że biblioteka skryptów mogą być dziedziczone do dowolnej bazy danych trzeba i pokażemy jak zrobić klasy połączeń, aby uzyskać ciąg błędu.

Tworzenie biblioteki skrypt o nazwie "Notatki Błąd API". Cały kod trafia do (deklaracje) przestrzeń biblioteki skryptu:

Declare Function W32_OSLoadString Lib "nnotes.dll" Alias ​​"OSLoadString" (ByVal uchwyt As Integer, _
ByVal errNum As Integer, ByVal jako bufor Lmbcs String, ByVal textLen As Integer) As Integer
Const ERR_MASK = & H3FFF

Klasa NotesAPIError
Prywatne errNum As Integer

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

Wiadomość publiczna funkcja As String
Dim Temp As Integer
Dim wynik As String
temp = Me.errNum I ERR_MASK
wynik = String $ (255, 0)
temp = W32_OSLoadString (0, temp, wynik, Len (wynik))
Message = wynik
End Function

End Class

Jeśli nie są zaznajomieni z pomocą API Notatki w LotusScript, to jest to dobre wprowadzenie. Musisz zadeklarować zewnętrznego wywołania funkcji API (można znaleźć w dokumentacji dostarczonej wraz z API Uwagi do nazwy funkcji i typy parametrów). Najwięcej razy przekazywanie zmiennych przez wartość (ByVal słów kluczowych), a nie przez odniesienie jak to ma miejsce w "normalnych" LotusScript. Struny nierzadko potrzebują Lmbcs słów kluczowych, aby określić zestaw znaków.

Niestandardowej klasy będzie miał nowego podprogramu wywoływana, gdy nowa instancja obiektu jest tworzona. W tym przypadku chcemy nowej instancji klasy, aby liczby błędów. Ustawiamy zmienną prywatną "errNum" do wartości przekazanej w. Ponieważ zmienna jest prywatne, może być używane tylko w obrębie klasy. Innymi słowy, jeśli agent tworzy nową zmienną NotesAPIError, nie będzie miał dostępu do. Własności errNum od obiektu. Mamy zwyczaj przy użyciu opcjonalnego Me słowo kluczowe aby wskazać, że mówimy o obiekt klasy zamiast zmiennej lokalnej.

Gdy wszystko jest gotowe, funkcja (właściwości obiektu) Wiadomość zostanie wywołana. Funkcja ta umożliwia regulację numer błędu być coś, co zewnętrzne funkcja C można używać, a następnie tworzy obszar zwrotu 255 znaków 0 w (null znaków). To kolejna rzecz, być świadomy podczas czynienia z połączeń zewnętrznych C w LotusScript (każde wezwanie C; nie tylko dla Notatki API). Jeśli będą powrocie ciąg, masz do ustalenia rozmiaru łańcucha przez metodę tak. LotusScript dynamicznie dostosowuje rozmiar ciąg i chwyta pamięci dla Ciebie, ale C nie działa w ten sposób.

Po rozmiarze return string została utworzona, a następnie wywołanie funkcji zewnętrznej C jest. Należy zapoznać się z dokumentacją API szczegóły, ale ta funkcja ma dostosować liczbę błędów i wypełni łańcuch z wersji tekstowej numer błędu.

Po ciąg błędu została wypełniona, które mogą być zwracane jako właściwość / funkcja wartości.

Aby przetestować agent, utworzy nowego agenta. W (Opcje) części agent, to biblioteki skryptu: Użyj opcji "Notatki API Error". Reszta kodu należy umieścić w sekcji Initialize:

Sub Initialize
Dim errorNum As String
Dim classVar Jak NotesAPIError
Dim wynik As String
errorNum = InputBox ("Wprowadź Uwagi Numer API Error", "Enter Number", "")
Jeśli errorNum = "" Then Exit Sub
Ustaw classVar = New NotesAPIError (Val (errorNum))
wynik = "komunikat o błędzie na numer błędu" i errorNum i "to:" & Chr $ (10) i classVar.Message
Wynik Msgbox, 64, "Wynik"
End Sub

Pojawi się monit o numer błędu. W przypadku anulowania lub nie dostają nic, kod zostanie zamknięty. W przeciwnym wypadku tworzy nowy obiekt klasy, przekazując wartość numeru błędu tekstu. Następnie wynik polecenia jest tworzony za pomocą właściwości Wiadomość obiektu klasy.

Aby go wypróbować, użyj numer błędu 18865. Ten błąd dzieje się, gdy nieautoryzowany użytkownik próbuje wykonać polecenia zdalnego konsoli. Ten numer błędu weryfikacji kodu biblioteki skryptu. Numer błędu 0 oznacza brak błędu, a liczba błędów 1 daje wydaniu ciąg. Jest tak wiele numerów błąd, ten kod jest przydatna podczas pracy z Obligacji API w LotusScript.

Oglądane 4194 razy przez 1074 widzów

  1. Nie ma jeszcze komentarzy.
  1. Brak trackbacków.