当ブログに掲載しているサンプルは、すべて利用者の自己責任という形でお願いします。
ただし、明らかな不具合がある場合、ご連絡いただければ、訂正記事を出します。
また、こちらのサンプルは、別のサイト等への公開、転載は一切禁止しています。
どうしてもと言う場合は、筆者にあらかじめご連絡ください。
記事そのもののリンクについてはご自由に行っていただいてよいです。

テクてく Lotus 技術者 Slack に参加しよう!

2018年10月14日日曜日

IBM Notes/Domino V10評価報告(2)

皆さん、こんばんは。
今日中にお届けできるかどうかわからない中、記事を書いています。

今回は、V10で追加された新機能のLotusScriptによるHTTPリクエストの処理についてです。
ベータ版での記事を多くの方が書いているので、それらとほぼ変わりませんが、少しだけ変更がありましたので、そこにフォーカスして書きます。

まず、前提条件としてDominoにDASを設定してあります。
HTTPリクエストの先は、DominoのDASということです。

それを踏まえて、こんな画面を作成してみました。
HTTPリクエストを処理する画面

endpointにURLを入力して、[実行]ボタンをクリックすると、そこのURLからデータを取得してきて、Resultに書き出すというだけのものです。
Jsonデータを返してくるようなURLであれば、REST サービスを処理していることになります。
また、単なるサイトのURLを入力した場合、そのサイトのHTML情報を取得してくることになります。


[実行]ボタンで呼ばれる関数にはこんなものを用意しました。
Function GetRequest( urlPath As String ) As Variant
    On Error GoTo ErrProc
    
    Dim session     As New NotesSession
    Dim httpRequest As     NotesHttpRequest
    Dim ret         As     Variant
    
    Set httpRequest = session.CreateHTTPRequest()
    httpRequest.Timeoutsec = 5
    httpRequest.Maxredirects = 1
    httpRequest.Preferstrings = True
    ret = httpRequest.Get( urlPath )
    
    GetRequest = ret
    Exit Function
    
ErrProc:
    MsgBox _
    "エラー行数:" & CStr(Erl) & Chr$(10) & _
    "エラー番号:" & CStr(Err) & Chr$(10) & _
    "エラー内容:" & Error, 0 + 16, "RESTサービステスト"
    
    Exit Function
End Function

直接呼んでいるわけではないので悪しからず。
このソースで注目してほしいのは、
httpRequest.Preferstrings = True
の部分です。
これはベータ版にはなかったプロパティです(設定しようとするとコンパイルエラーになります)。
Trueにすると、テキストで戻ってきます。
なので、
画面の状態で[実行]をクリックすると、以下のようになります。
DASの結果が返ってくる


ちなみにこのプロパティのデフォルト値はFalseなんですが、
この場合、Getの戻り値は、BYTEストリームの配列になる模様です。
なので、そのままGetの戻り値を利用することができません。

まだ評価中なので、どのように処理するのか方法がわかっていません。
ですが、BYTEストリームで返ってくるとなれば、大きいサイズのJsonやHTML情報でも捌くことができそうですね。
これなら、LotusScriptでRESTサービスを使った処理が現実的になりそうです。

ますます、IBM Notes/Dominoによる外部連携が簡単になりそうで、ワクワクしますね。


ちなみに、ベータ版では、httpsで始まるURL(SSLサイト)が取得できないという話があったようですが、製品版では解消されているようです。

ベータ版でHTTPリクエストのテストをしていた方は是非チャレンジしてみてください。
私も、詳細がわかって時間が作れれば、また記事を書きたいと思います。

とにかく、ようやくリリースされたIBM Notes/Domino V10!
みんなが待ち望んでいた機能がたくさん盛り込まれています。
どんどん使って、より便利にしていきましょう!






それでは今日はこの辺で・・・






Notes/Dominoで困ったことがあれば、弊社にお問い合わせください。
IBM Championの私が承ります!
お問い合わせはこちらから→Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

0 件のコメント: