ノーツAPIのエラーを表示する方法
我々がやっているように、ノーツAPIを使用して多くの作業を実行するときは、一点または別のエラーに実行しているなってしまいます。 C言語でプログラムを書くとき、またはC + +、あなたはかなり簡単に文字列にエラー番号を変換することができます。 しかし、我々は)より多くの例を持っているLotusScriptandでAPIを使用してより多くのをやっている。 このような状況で、我々は、テキストのエラーメッセージにエラー番号を変換できるようにするために必要な。
このすべてを行うには、最もポータブルな方法は、カスタムクラスを含むスクリプトライブラリを使用することです。 そのスクリプトライブラリは、必要な任意のデータベースに継承することができると我々は、クラスがエラー文字列を取得する呼び出しを行う方法を説明します。
"ノーツAPIのエラー"と呼ばれるスクリプトライブラリを作成します。 すべてのコードは、スクリプトライブラリの(Declarations)地区に入ります。
ファンクションW32_OSLoadStringのlib"nnotes.dllが"エイリアス"OSLoadString"(整数としてByValハンドルを、宣言_
整数としてLMBCS文字列、整数としてByVal textLenにInteger、ByValをバッファとしてByVal errnumの)
constのERR_MASK =&H3FFF
クラスNotesAPIError
整数としてプライベートerrnumに
公共のSub New(整数としてERRORNUM)
Me.errNum = ERRORNUM
End Subの
文字列としてパブリック関数のメッセージ
整数として暗い温度
文字列として暗い結果
TEMP = Me.errNumとERR_MASK
結果=文字列$(255、0)
TEMP = W32_OSLoadString(0、温度、結果は、Len(結果))
メッセージ=結果
エンド機能
エンドクラス
は、LotusScriptでノーツのAPIを使用して慣れていない場合、これは良い入門書です。 あなたは、外部APIの関数呼び出し(関数名とパラメータ型のNotes APIに付属のマニュアルを参照して)宣言する必要があります。 "普通の"LotusScriptで行われているようにほとんどの時間は、参照によって値(ByValキーワード)の代わりにして変数を渡す。 文字列は、しばしば回は文字セットを指定するには、LMBCSキーワードが必要です。
カスタムクラスは、オブジェクトの新しいインスタンスが作成されるときに呼び出される新しいサブルーチンを持っているとしている。 このケースでは、我々はクラスの新しいインスタンスは、エラー番号を渡すようにしたい。 我々は、渡された値にプライベート変数"errnumを"設定する。 変数はプライベートなので、それは、クラス内で使用できます。 言い換えれば、あなたのエージェントは新しいNotesAPIErrorの変数を作成する場合は、オブジェクトから。errnumのプロパティにアクセスすることができなくなります。 我々はローカル変数ではなくクラスのオブジェクトについて話していることを示すために省略可能なキーワード、Meキーワードを使用しての習慣を持っている。
準備ができたら、ファンクション(オブジェクトプロパティ)メッセージが呼び出されます。 この関数は、外部C関数が255文字の0(ヌル文字)のリターンの領域を設定して使用するとできる何かがあるとエラーの数を調整します。 それは、LotusScriptでの外部C呼び出し(;だけでなく、ノートAPIの任意のCの呼び出し)を扱う際に注意するために別のことだ。 あなたが文字列を返すことを予定している場合は、以下のようなメソッドを介してサイズの文字列を確立する必要があります。 LotusScriptは、動的に文字列のサイズを調整し、あなたのためのメモリを取得し、しかし、Cはそのように動作しません。
返される文字列のサイズが設定された後、次に外部C関数への呼び出しが行われます。 あなたは、詳細はAPIドキュメントを参照する必要がありますが、この関数は、調整後のエラー番号を取得し、エラー番号のテキストバージョンを文字列に移入します。
エラー文字列が移入されると、そのは、プロパティ/関数値として返すことができます。
エージェントをテストするには、新しいエージェントを作成します。 エージェントの(Options)セクションで、スクリプトのライブラリが含まれています:使用すると、"APIエラーノート"。 残りのコードは、Initializeセクションに入ります。
サブの初期化
文字列として暗いERRORNUM
NotesAPIErrorとして暗いclassVar
文字列として暗い結果
ERRORNUM = InputBox関数("数値を入力してください"、"""NotesのAPIのエラー番号を入力してください")
ERRORNUMは=""その後、サブ終了した場合
セットclassVar =新NotesAPIError(ヴァル(ERRORNUM))
結果は=&ERRORNUM&"エラー番号に対するエラーメッセージは""です:"&CHR $(10)&classVar.Message
MsgBoxの結果、64、"結果"
End Subの
あなたは、エラー番号の入力を求められます。 あなたがキャンセルまたは何も入力しない場合、コードが終了します。 それ以外の場合は、テキストのエラー番号の値を渡して、新しいクラスのオブジェクトを設定します。 その後、結果のプロンプトは、クラスオブジェクトのMessageプロパティを使用して作成されます。
それを試して、エラー番号18865を使用してください。 権限のないユーザがリモートコンソールのコマンドを実行しようとすると、このエラーが発生します。 このエラー番号は、スクリプトライブラリのコードを検証します。 エラー番号0はエラーなしを意味し、エラーの番号1を使用すると、Notesのリリース文字列を与えます。 LotusScriptのノートAPIを扱うとき非常に多くのエラー番号がある、このコードが便利です。
1070視聴者が4172回閲覧













