ページビューの合計

2019年5月22日水曜日

ほんとに困った #traveler のはなし・・・

This time, I am talking about the setting of the Traveler who really got in trouble with us.

みなさま、こんにちは!!
早速ですが、今回は弊社で発生しました、ほんとうに困ったTravelerの設定に関しての話題になります。

弊社ではiPhoneにプロファイルを取り込んで、Travelerを利用できるよう設定しています。
具体的にはiPhoneのブラウザ・・・基本的にはSafari・・・からTravelerサーバーにアクセスし、認証を介することでiPhone内にプロファイルが取り込まれ、iPhoneのデフォルトメールアプリでDominoサーバーのメールと同期できるようになります。

さてそれでは困った背景です。
ご存知の通り、iOSはさまざまな設定がOSのアップデートに含まれております。
以前にも一部のSSLを一方的に遮断され、大騒ぎしたことがありました。


今回は証明書に関する設定変更になります。
iOS10以降、自己証明書を使ってhttps通信が接続できなくなったことに起因していました。

そのため、SafariでTravelerサーバーのURLを表示させると、以下のような画面が表示されます。



この画面については従来から表示されていたため、何の違和感もなく「詳細を表示」をタップします。すると・・・


こちらの画面が開きます。この画面が以前と違っていました。
以前はこの文面に「詳しくは、証明書を見ることができます。それに伴う危険性を理解している場合には、このWebサイトを閲覧できます。」のようなリンクがあり、こちらをタップすることでTravelerサーバーにアクセスすることができました。
ところが!!
現在はそのリンクがなくなっており、アクセスする手段が絶たれてしまったのです。

さらにこの中の「詳細を表示」をタップしますと、以下証明書が表示されました。


期限は2024年までのため、少なくとも期限切れでないことはわかりますが、さらに「詳細」を見ても、


証明書の内容が表示されるだけで、何のアクションも行うことができませんでした。

その後いろいろと調査しました。
キャリアへはこのままだとAndroidに切り替えるかもというプレッシャーを与えたり、MDMのメーカーともバージョンアップ等の作業。もちろんApple社にも相談し、iPhone構成ユーティリティ・・・現在はApple Configuratorという製品に切り替わっているそうです・・・を試してみたり。

そうこうしているところ、弊社の窓口会社より以下連絡が入りました。

 「Windows 環境で OpenSSL KYRTool を利用して自己署名証明書を作成する」

ただし、この前提として

ただiOS9以降、暗号化通信を行う場合、TLS1.2のサポートとSHA256の証明書は必要となる様です。
DominoTravelerモジュール共、TLSに対応したバージョンが必要です。
 ※TLS1.2のサポートのために必要なDominoバージョン:Domino 9.0.1 FP3 IF2 以降

 ※iOS9対応TravelerTraveler 9.0.1.7 以降

ということでした。

現在、Verse移行も含めたハイブリット化+V10マイグレーションを予定しているため、TLSだけの作業を先行するか、ハイブリット化を早めるかを検討することになりました。

また進展しましたら、改めて報告させて頂きます。

2019年5月20日月曜日

2019年 第一回 #大阪研究会 & #テクてく 大阪

Last week Osaka was a hot week.
Notes / Domino Day, Notes Consortium Osaka Study Group, Tek Tek Osaka.
I can not write everything, but I will report briefly.

みなさま、こんにちは!!
先週の大阪は暑い一週間となりました。

まずは5月14日(火)

グランフロント大阪内 コングレコンベンションセンターにて IBM Notes/Domino Day 2019 Spring が開催されました。

まだ今週開催の地区がありますので、ネタばれしてしまうのもどうかと思いますので、ここで内容は書きませんが、単なる情報公開に留まらず、技術的な手法などもあり、たいへん参考になりました。

とにかく驚いたのがその参加率。
会場は満席どころか、椅子を追加する騒ぎに・・・
後から聞いたのですが、申し込みされた方の参加率がとんでもないことだったそうです。

きっと今後のNotes/Dominoの今後に対する期待の現われであったものと思われます。


さて続いて5月17日(金)

こちらはIBM様大阪事業所にてノーツコンソーシアム 第一回大阪研究会が開催されました。
昨年までは4月に開催していたのですが、今年はテクてく大阪との連携ということで、今月開催となりました。

今年の大阪研究会は新たに3社の加入を頂き、熱い研究会になりました。

内容としては、
●自己紹介+自社のノーツ活用と困りごと(あらかじめ準備するよう指示)
●IBM様からの情報(Notes/Domino Dayで言えなかったことも・・・)
●今後の研究会内容

研究会の資料は基本的に研究会内にのみ共有されるものではありますが、私の資料については差しさわりのない範囲で公開致しておりますので、他愛のない内容ではありますが、よかったらご覧ください。



続いて18時からはテクてくLotus技術者夜会
今回は年1回の大阪主催、いわゆるテクてく大阪でした。

毎年ながらライトトークニング大会ということで、計7名が登壇し、さまざまな情報を発信させて頂く機会となりました。
こちらも可能な資料は事務局側で配信されるものと思いますが、取り急ぎ私の資料を公開致します。



次回、大阪研究会は7月19日の予定です。
アジェンダ等は後日、コンソーシアムより公開頂きますが、今年の大阪研究会は見学者も募集する予定ですので、会員でない方やコンソーシアムで何やってるの?と疑問をお持ちの方にもぜひ見学して頂ければと考えておりますので、ご検討ください。


2019年4月26日金曜日

当サイトをhttps化しました

おはようございます。

以前より気になっていたのですか、先ほど当サイトをhttps化致しました。
とは言っても、このブログサービスの場合、コンソールで2箇所プルダウンを変更して10分ほど待つだけだったので・・・。

なぜもっと早くやらなかったんだろうって程でした(汗

httpでアクセスされてもリダイレクトしておりますので、直接的に影響はないかと思いますが、念のため報告させて頂きます。

2019年3月25日月曜日

ノーツでサーバーの #サービス監視

This time, I applied the logon management app that was created the other day, and tried to finish it as a service monitoring app for the server.

みなさま、こんにちは!!

curl にはまった筆者です。

今回は先日の「ログオン管理」を応用して、サーバーのサービス死活監視を開始致しましたので、その方法を紹介致します。

実は弊社で使用しているとあるサーバーなのですが、かなり負荷が大きいようで、時折サービスが落ちてしまうというものがあるのです。
仮想サーバーですので、リソースが潤沢にあればそちらを割り当ててやればいいのですが、導入から4年半を経過したオンプレのサーバーですので、そうもいかず・・・
ということで、根本解決には至らないのですが、サービスの死活監視を行うというものを作ってみたというのが背景になります。

取り急ぎ監視するサーバーのCドライブにcurlをインストールします。
手順はお手数ですが、先の「ログオン管理」をご確認ください。

次に監視するバッチファイルです。
対象サーバーに以下の記述を行ったバッチファイルを作成します。

その前に対象となるサービスの名前を確認しなければなりません。
対象サーバーのコマンドプロンプトで以下を実行し、名前を確認します。


 sc getkeyname **名前**


例えば"DHCP Client"ならば、


 sc getkeyname "DHCP Client"


と実行します。
すると以下のような画面が表示され、名前が"Dhcp"であることがわかります。


その名前を利用し、以下内容のバッチファイルを作成します。
申し訳ありません、コマンド内容についてはここでは触れませんので、ご了承ください。


 @ECHO OFF
 set dt=""
FOR /F "USEBACKQ" %%i IN (`sc query ^| findstr /i "名前"`) DO @SET DT=%%i
 IF %DT%=="" GOTO error
 GOTO end
 :error
 cd c:\curl\bin
 curl -i -H "Content-type: application/json" -X POST -d  "{\"creator\":\"名前\",\"stamp\":\"サーバー名\",\"time\":\"%date% %time%\"}" -u "ノーツユーザー名":ノーツパスワード
http://サーバー名/ノーツファイル名.nsf/api/data/documents?form=log
 :end


curl部分は、前回作成したバッチファイルをそのまま転用しています。
ノーツアプリケーションもコピーして少し修正して済まそうという魂胆です。
タスクスケジューラーに「名前」のタスクが実行してなければ、error処理が発生し、curl以降が実行されるというものです。

ちなみにノーツアプリケーションのフィールドには、以下内容がセットされることになります。

 creator : サービスの名前
 stamp : サーバーの名前
 time : 日時

あとはタスクスケジューラーに毎日実行するタスクとしてこのバッチファイルを登録しておきます。

続いてノーツアプリケーションです。
先の通り、「ログオン管理」をコピーして使用します。
とは言っても、先のバッチファイル側で制御していますので、コピーするだけで既にerror処理が発生すれば、文書が追加されてきますので、テストしてみてください。

あとはビューやフォームを少しさわるだけで完成しました!!

まずはビューから


すいません、サーバー名とサービス名をぼかしたので、わかりにくいですね(汗

続いてフォームです。


結構、いい感じに仕上がっているかと思います。

それでは文書が新規作成された際に、メールを飛ばすエージェントを追加します。
新規エージェント作成にて、シンプルアクションを使用します。


シンプルアクションでは、「メールメッセージの送信」を選択し、宛先・件名・文面を記述します。
また「メッセージに文書リンクを含む」にチェックしておきます。



最後にトリガーですが、シンプルアクションではイベントでの検知ができない(?)・・・詳しい方、フォローお願いします。
また今回は1日1回9時にバッチファイルを実行するイベントとして設定したため、「一日一回以上」のスケジュールとして、登録しました。


エージェントの実行間隔を23時間とし、有効時間帯を9:30~9:50としましたので、おそらくは、

 9:00 タスク実行・・・サービスが起動していない場合、ノーツデータベースに文書が追加される
 9:30 エージェント実行・・・文書が追加されていた場合、文書リンクのついたメールが送信される⇒次回起動予定は翌8:30ですが、有効時間帯の9:30を待ってエージェントが実行される

というイメージになります。

今回届いたメールは以下のような感じになります。



以上で組み込みは完了となります。

テストは9時前に意図的にタスクを落としてノーツに文書が追加され、メールが発信されるかどうかを2日続けて実施する必要があります。

なお実際の運用では、サービスダウンを検知した際に、該当のサービスを起動する記述をバッチファイルに組み込めば、検知後にサーバーにログインしてサービスを起動するという必要もなくなります。
ただ自動で再起動してしまうと、落ちていたことを知る機会がログを見なければなりませんので、このようなノーツアプリケーションへの連携は効果があると考えます。

また今回は1日1回としましたが、さらに細かく監視したいという場合もあるかと思います。
その場合はタスクスケジューラーに必要間隔で登録し、エージェントの間隔も考慮すれば、ある程度は細かく対応できるようになります。

以上、あまりにも簡単なのですが、まだまだ使い方は増えそうですよね。
また何か思いついたら紹介させて頂きます。


2019年3月11日月曜日

#LIVENESS #AccessView データ活用

I would like to develop the data acquired by LIVENESS AccessView introduced in the previous article in BI and evaluate the degree of utilization.

みなさま、こんにちは!!

先週末にLIVENESS AccessView の製品概略とインストール手順を記載致しましたが、せっかくですので今回は得られたデータをBIに展開してみようと思います。

早速ですが、2月27日よりログ取得開始した弊社の「取得済ログの参照」画面です。


設定では2Mごとにファイルを作成するようにしておりましたが、現在は3つ目のログファイルが作成され、書き込まれ続けている状態のようです。

監視しているアプリケーションは途中で増やしながら、現在6個です。


なお出来上がったログファイルを直接エクスプローラーで確認したものが下記になります。


今回はノーツアプリケーションを使わず、BIサーバーへログファイルをコピーして使ってみます。

弊社で使用しているBIツールはQlikSenseになりますが、こちらを紹介する記事ではございませんので、詳細は割愛させて頂きます。

まずは一覧です。
以下のように設定したフィールド、アプリケーションタイトルのほか、ユーザー名やレベル(Create、Open、Update、Delete)、UNIDも取得されていました。


アプリケーションごとに[Field_1][Field_2]・・・に設定したものが異なりますので、ちょっとこのままではわかりにくい状態かと思います。

【掲示板(業務)】だけに絞ってみました。


見やすくなりましたね。
これならいろいろと使えそうです。

続いていくつかチャートにしてみました。


左の棒グラフはアプリケーション別のアクセス推移です。
さすがに日報がダントツに多いことがわかりますね。

右上の円グラフはユーザー別アクセス数(トップ10のみの表示)
右下がユーザー別アプリケーション別の分布図になります。

続いて日報に限定した担当者/レベルのピボットテーブルです。


この画面では全員が[Open]を行っていますが、半数ほどが[Create]していない・・・つまり日報を書いていないということが判明します。
もっとも全社員が対象になっているため、内勤者が半数いるとするとそれなりに活用されていると判断できるかと思います。

たとえばフィールドにカテゴリなどを設定すると、さらにおもしろいチャートが得られそうです。

実際に使用してみて感じたことです。

  • アプリケーションを指定できる点は大きなメリットと感じました
  • フィールドが指定できる点もメリットではありますが、できればログファイルがアプリケーションごとに分割されているとエクセルでも簡単に分析できていいかもしれません。
  • サーバーの負荷も気になりますが、この程度の量でしたらまったく影響ありませんでした。但しアプリケーション数を増やすことにより、どうなるのかは検証してみる必要があるかと思います。
  • 弊社では全ユーザーが削除権限を与えられていないため、今回検証はできませんでしたが、こちらも有効な機能かと思います。
  • アクセス数だけでなく、作成数、編集数でユーザーのレベル監視もできそうです。(閲覧のみのユーザーにも、作成等作業を促す)
  • 日報についても他人の日報を見ないユーザーが特定できたため、活用方法などを教えるヒントになりました。
  • 10個のフィールドの選択をしっかり選定することで、質のいいログが得られます。

以上、使い始めて1週間程度ではありますが、当初考えた以上の効果が得られたと感じています。
単なるログですと、なかなか活用までには至らないのですが、本製品はログファイルの活用を前提とした設定を行うことができ、今まで見えなかった考察を得ることができるツールです。

先にも書きましたが、ご興味ございましたら、株式会社ライブネス様へお問い合わせください。
本製品以外にも魅力的な製品がありますので、きっとノーツの価値を上げて頂けるはずです。

2019年3月8日金曜日

#LIVENESS #AccessView 試用レポート

This time I am reporting from Liviness, famous for the portal, I could try out the new product called "LIVENESS AccessView", so I will report it.

みなさま、こんにちは!
本来ですとそろそろ三寒四温と、季節の移り変わりを楽しむような時期になのですが、神戸はしばらく暖かい日が続いております。
花粉症の皆様にはたいへんお辛い時期ですね。早くピークが過ぎますように。

さてこの度はポータルで有名な株式会社ライブネス様より、新製品【LIVENESS AccessView】という製品を試用させて頂くことができましたので、レポート致します。

まず製品の概要ですが、

「LIVENESS AccessView」は、Notesアプリケーションの操作ログを文書単位に取得することができる

というものになります。
但し、"Names.nsf"、"Mail.box"、"log.nsf" 等のシステム提供のファイルはサポート対象ではありません。

製品には以下のファイルが含まれております。

①ls_accessview.ntf・・・設定アプリケーションのテンプレート
②setup-AccessView-64bit-release-1.1.2.exe・・・フックドライバなるツールだそうです。
③LIVENESS AccessView_V102_ユーザーズガイド.pdf

早速ですが、インストール手順です。

①LIVENESS AccessView設定アプリケーションの準備
1. "ls_accessview.ntf"をサーバーのDominoのDataディレクトリへコピーします。
    (管理者のクライアントでも可)
2. "ls_accessview.ntf"を管理者IDで署名
3. テンプレートから設定アプリケーションを新規作成(ファイル名は任意)
4. アクセス制御リスト(ACL)を以下のように設定
  -Default-:なし
  Anonymous:なし
  管理者ユーザー(グループ):管理者(文書の削除にもチェック)
5. 以下ふたつのエージェントを有効化
  13.Logファイル添付(私はスケジュールを1時間間隔としました)
  21.アクセス集中アラート(私はスケジュールを28分間隔としました)
  ※エージェントの実行場所を自社サーバーに変更する必要があります。
※13.Logファイル添付については、アプリケーションにログ添付をしない場合、有効化は不要

以上で設定アプリケーションの作成が完了しました。
続いてフックドライバをノーツサーバーにインストールします。

②setup-AccessView-64bit-release-1.1.2.exeをノーツサーバーにインストールします
※32bit OSの場合は別のモジュールになります。
1. Domino Serverを停止・・・※1
2. インストーラーを実行
3. Dominoのプログラムディレクトリを指定
4. 設定アプリケーションのファイル名を指定
5. インストール ⇒ 数秒でインストールが完了します。・・・※2
6. Domino Serverの起動

とスムーズにいけば何の問題もないのですが、私はふたつひっかかりました。

※1 Domino Serverの停止なのですが、コンソールでQ+Enterで停止してからインストーラーを動かしたのですが、エラーになりました。
タスクマネージャーで確認すると、複数のDomino関連タスクが存在していましたので、こちらですべて停止し、インストールすることで解決しました。

※2 必要なdllがありませんでした。
以下のように、api-ms-win-crt-stdio-l1-1-0.dllがないというエラーが発生しました。


ということで調べたところ、以下サイトでダウンロードできることが判明しました。

http://www.microsoft.com/ja-JP/download/details.aspx?id=48145


こちらをインストールした上で、再実行することで無事インストールが完了しました。

正しくインストールが完了した場合、Dominoサーバーのnotes.iniに以下の2行が追加されることで確認できます。


 NSF_HOOKS=avhdrv
 LIVENESS_AccessView_LogSettingsDbPath=設定ファイル名.nsf


7. Dominoサーバーのセキュリティ設定
  「LIVENESS AccessView」アプリケーションを署名するユーザーが、Dominoサーバー文書の「制限付きLotusScript/Javaエージェントの実行」欄に指定されている必要があります。


③アプリケーションの設定
 ①で作成しました「LIVENESS AccessView設定アプリケーション」に設定を行います。
1. メニュー > アプリケーションの設定を選択し、[作成]をクリック
2. ログの保存先、ログファイル名、ログファイルの拡張子、ログの最大サイズを指定します。
 私は、
 ログの保存先:D:\LOG
 ログファイル名:AccessViewLog(デフォルト値)
 ログファイルの拡張子:csv
 ログの最大サイズ:2048 KB
 としました。



3. アラートメールの設定
 こちらについては送信先として管理者である私を選択しました。
 その他の項目については今回省略させて頂きます。

④監視対象アプリケーションの登録
1. メニュー > 監視アプリケーションを選択し、[作成]をクリック
2. 対象とするアプリケーションを選択し、条件式でフォームを指定するとフィールドが選択できるようになります。
3. ログ出力したいフィールドを最大10個まで選択します。
4. 監視イベント[読込][変更][作成][削除]をチェックして[保存・終了]をクリックします。



※削除イベントは必ず削除の前に[読込]のログが出力されます。
※データベースプロパティで、「一時的削除を許可」しておく必要があります。


正しく設定されますと、監視対象アプリケーションに、選択したアクションが生じるごとに指定したフォルダにログが追加されていきます。


また先の"13.Logファイル添付"エージェントを有効にしていると、アプリケーションの
メニュー > 取得済ログの参照 を選択すると、ログファイルが添付ファイルとなっている文書が蓄積されはじめます。



実際に出力されたファイルをエクセルで開くと、以下のようになっています。


小さくで見にくいのですが、
[Server][Database Path][Database Title][Data/Time][Username][Note ID][Universal Note ID][Level][Form][Field_1][Field_2]・・・
という項目が収集されています。
フィールドは指定された内容が記録されるため、編集履歴としても利用できそうです。

以上、今回は LIVENESS AccessView のご紹介とインストールまでを書かせて頂きました。
せっかくですので、収集されたログファイルの活用について、次回記載させて頂こうと予定しています。

なお製品に関するお問い合わせや、デモのご依頼などについては、直接株式会社ライブネス様へお問い合わせください。

2019年2月24日日曜日

【参加レポ】IBM Notes/Domino Day 2019 Spring


I participated in IBM Notes / Domino Day 2019 Spring which was held the other day.
With a simple report, I wrote the expectations for HCL Inc. and V 11.

みなさま、こんにちは!!
早速ですが、金曜に開催されました複数のイベントに参加させて頂きましたので、この場で報告させて頂きます。

具体的には、以下のイベントが開催されました。

9:45 - 11:15 ノーツコンソーシアム ◆2019年第 1 回 ユーザー情報交換会
11:30 - 12:30 ノーツコンソーシアム 第25回通常総会
13:30 - 15:00 ノーツコンソーシアム FESTA 2019
15:30 - 17:00 IBM Notes/Domino Day 2019 Spring
17:15 - 18:00 大感謝祭(パーティー)


それではまずはユーザー情報交換会からです。

今回のテーマは「バージョン10への移行について

事前アンケートを元に、様々な意見が取り交わされました。
つい先日に日本語パックがリリースされたにも関わらず、すでに年内にバージョンアップ予定の会社が数社あることには驚かされました。
V10に対する期待の現れですね。

またその数社に含まれない会社様でも、今年V11がリリースされるということから、V10ではなく、V11で進めたいという先読みされた会社様もにいらっしゃいました!

ここでV11についてここで書くことは避けますが、少し聞くだけでもワクワクするような内容が含まれているとだけ申し上げておきます。

もちろんHCL社への売却についても議論され、様々な不安や疑問が挙げられました。
結論としては、製品を売却しただけではなく、人員やサービス、その他関連するものを包含した事業譲渡であるという点が強調されておりますので、そう心配する必要はないのではと感じました。
それよりもHCL社はそもそもV10の開発主体であり、その開発スピードに加え、組織的なメリットが出てくるのではないかと期待しております。

何れにせよ、これから発表される内容に注視しつつ、時には1ユーザーとして両者へアプローチすることも私の仕事かと実感致しました。


続いて通常総会です。

こちらは会員向けのイベントですので、この場では詳細については触れませんが、先にブログにて公開されました以下記事をご覧いただければと思います。

ノーツコンソーシアムから ~新年のご挨拶と現状の考察について~

まだ確定ではありませんが、コンソーシアムへの参加希望が数社届いているようです。
今年はV11 Jamの始まっておりますが、引き続き製品やHCL社へ意見を届けるための機会として、コンソーシアムの立場がさらに重要になってきている現れかと思います。


次にノーツコンソーシアム FESTA 2019です。

田中会長に挨拶に始まり、



こちらでは会長賞を受賞されました、浜松ホトニクス様のDAC(IBM Domino Application on Cloud)の導入事例発表がございました。


DACに興味にある会社様はたくさんあるかと思いますが、実際に現場で利用をスタートされている事例はかなり後押しになる素晴らしい発表ではなかったかと感じました。

その後は私も参加させていただいておりました「ザ・ノーツ研究会」


XPages研究会


クラウド研究会


日本を元気にするNotes研究会


と、活動報告および今年度の予定が発表されました。

近日、各研究会への参加申し込みが開始されるものと思われますので、今まで参加されたことがない方も、ぜひ思い切ってエントリーされることをお勧め致します。

私のようにリモートしか参加できなくても、得られるものは多くございますので、まずは参加してみる事が最善策です。


次はメインイベント、【IBM Notes/Domino Day 2019 Spring】

まずはオープニングイベント Ayasa さんによるバイオリン演奏でスタートしました。


演奏ではなく、パフォーマンスと言った方が正しいのかもしれません。
素晴らしい、迫力あるオープニングにみなさん引き込まれたのではないかと思います。

セッションでは、中島事業部長の挨拶に始まり、



●Notes/Domino V11 ロードマップ – Think 2019フィードバック


●Notes/Domino V10最新情報およびデモ

●クラウド&モバイル活用アップデート

と続きました。

とりわけV11ロードマップについては、V10では実装できなかったUIの改善ローコード開発環境が含まれているとの事。
このふたつは、エンドユーザーの満足度を上げる重要な課題ですので期待せずにはいられません。
また弊社のような小規模ユーザーにとってローコード開発で得られる効果は計り知れない結果をもたらすはずです。

私の役割・・・中小企業でノーツを使う魅力を広める・・・について、追い風でしかありません。

最後に先のAyasaさんの演奏に合わせ、とても印象的なスライドショーが映されました。
動画で撮っていればと公開した限りなのですが、こちらはどこかで一般公開されることを期待しております。

せっかくですので、撮った写真をつなげましたので、お時間ありましたらご覧ください。



最後に大感謝祭(パーティー)

会場にはたくさんの参加者様が集まり、移動するのも難しいほど。
熱気溢れたパーティとなました。

スマホを利用したクイズ大会では大人気なくもなんと1位!!
素晴らしい景品を頂いてしまいました。


さて大変長くなってしまいましたが、総じて感じたことは、

・HCL社様も大きな出資を行って事業を獲る訳ですから、その力の入れ具合はハンパない
・不安はゼロではありませんが、結果的に無駄になりそう
・V11が待ち遠しい
・コンソーシアムの立ち位置がさらに重要になってくる
・IBMチャンピオンも頑張らねば

以上、今回は私自身のノーツ贔屓という感覚を取り除き、出来るだけ1ユーザーという立ち位置で感じた内容を書かせて頂いたつもりです。
まだまだ思うところはたくさんあるのですが、今日のところはこの辺で・・・。

来週28日(木)はNotes Festa 2019 - Osakaに参加致します。
今回参加できなかった皆さまにも、その場で色々お話しできることもあるかと思いますので、ぜひお声がけください!!

2019年2月13日水曜日

ノーツでログオン管理

This time I created an application to record the logon and logoff records in Notes, so I will introduce it.

みなさま、こんにちは!!
USではThink2019が盛り上がっているようですね。
参加されている皆様、ぜひ満喫してきてください。
また戻られましたら、いろいろと情報発信もお願いしますね!!
来週のIBM Notes/Domino Day 2019 Springでのフィードバックも期待してます!

さて今回はログオン・ログオフ時間をノーツアプリに収集することに成功しましたので、記事とさせて頂きます。
※弊社ではクライアントは全員VDIを使用しておりますが、こちらの環境でも使用できることは確認済です。

そもそも弊社では事務所入り口に置いた共有パソコンのブラウザでXPagesで作成したノーツアプリを使ってタイムレコーダー

【第1回】タイムレコーダーアプリ作成~アプリケーションの準備~
以降でご紹介

を打刻していたのですが、労働基準法改正に伴い、さらに管理を強化する必要があることから、何かしらシステムで受けこむよう指示が出ておりました。
もちろんクライアント管理サービスなども考慮したのですが、性能が良すぎて価格的には安価ではないというところがあり、それならばノーツで何かできないかと考えた次第です。

早速ですが、アプリのイメージです。
ノーツアプリそのものは至って簡単です。
フィールドとして、creator,stamp,timeの3項目のみのアプリになります。
timeのみ「作成時の計算結果」として@createdとしています。
残り2項目は「編集可能」になっています。


ビューは単純に日時順と氏名別を作成しています。
以下は日時順のイメージです。



今回のノーツアプリは単純にデータを受けこむだけのものを想定してあります。
文書の作成は curl コマンドから REST を利用してアプリに書き込むこととしてあります。
従いまして、ノーツアプリ側でRESTからアクセスを受け付ける設定が必要です。
こちらについては、御代チャンピオンのブログがたいへん参考になりますので、ご覧ください。

Notes/Domino でREST APIを使ってみよう-前半

curlについては、以下サイトが参考になりました。

IBM Domino REST API 利用ガイド

まずはwindowsでcurlを使えるように設定を行います。

こちらのサイトからcurlがダウンロード可能です。
筆者はWindows 32bit 版をダウンロードして使っています。

ダウンロードしたzipファイルを解凍し、フォルダを【curl】にリネームします。
このフォルダをどこでもいいのですが、今回はCドライブ直下に移動させました。

curlを利用するには、コマンドプロンプトからcurl.exeのあるディレクトリに移動させるだけで使用できます。

今回の場合ですと、


  cd C:¥curl¥bin


となります。


正しく稼動するかは、以下コマンドでHelpが表示されればOKです。


  cd C:¥curl¥help


それではバッチファイルを作成します。
私は以下[logon.bat]と[logoff.bat]を作成し、対象クライアントのC:¥BATCHフォルダに保存しました。

logon.bat

  ECOH OFF
  cd c:¥curl¥bin
  curl -i -H "Content-type: application/json" -X POST -d "{¥"creator¥":¥"%USERNAME%¥",¥"stamp¥":¥"ログオン¥"}" -u "管理者名":パスワード http://サーバーパス/アプリ名.nsf/api/data/documents?form=フォーム別名


curlのオプションについては、私自身理解しきれておりませんので、割愛させて頂きます。
要はcreatorフィールドに %USERNAME% を用いて、ログオンユーザーの名前をセット。stampフィールドに固定値としてログオンをセットするようなイメージです。
timeフィールドは作成時の計算結果フィールドですので、こちらでは操作していません。

logoff.batについては、先の「ログオン」を「ログオフ」にしただけのものを準備します。

バッチファイルの準備ができましたら、弊社ではADのグループポリシーに設定を行いました。
ログオンする全社員を対象にデータを取得することが目的であり、且つログオフ時にバッチを実行させるにはポリシーを使う必要があるためです。

新規でグループポリシーオブジェクトを作成(場所は各企業様で必要な場所へ作成してください)し、グループポリシー管理エディターにてスクリプトを割り当てます。
割り当てる場所は
[ユーザーの構成] - [ポリシー] - [Windowsの設定] - [スクリプト(ログオン/ログオフ)]です。


こちらのログオンにlogon.bat、ログオフにlogoff.batを割り当てます。


続いて、グループポリシーを即時有効にするため、コマンドプロンプトにて以下を実行します。


  geupdate /force


それでは試しにログオンしてみましょう。
ノーツアプリで日時順ビューを開いた画面です。



うーん、ふたつ問題がありますね。
ひとつはスタンプ。「ログオン」と表示して欲しかったのですが、やはり2バイト文字は制限があるようです。
さらに問題は日時。
単純にアプリから新規作成時には作成時の計算結果としてtimeの値が保存、表示されたのですが、RESTから送り込んだため計算が行われず、以下のように文書にtimeの値すらありません。


ということで、まずは簡単なstampフィールドからです。
先のバッチファイルの「ログオン」「ログオフ」を半角で「LogON」「LogOFF」にしてみました。
先のログインした端末をログオフすると、


当たり前ですが、うまく取得できました。

次に日時です。
エージェントでとも考えたのですが、もっと簡単にtimeフィールドもバッチ側から送り込む方法に変更することにしてみました。

先のバッチファイルを以下のように変更します。


  ECOH OFF
  cd c:¥curl¥bin
  curl -i -H "Content-type: application/json" -X POST -d "{¥"creator¥":¥"%USERNAME%¥",¥"stamp¥":¥"ログオン¥",¥"time¥":¥"%date% %time%¥"}" -u "管理者名":パスワード http://サーバーパス/アプリ名.nsf/api/data/documents?form=フォーム別名


念のため、ノーツアプリのtimeフィールドも作成時の計算結果から「編集可能」に変更し、ログオン/ログオフしてみました。


値が取得できました。

使わないですが、フォームです。


こちらもOKですね。
念のため、編集して保存してみたとろ、少しだけ違和感のある動きが・・・


そう、ノーツアプリ側の時刻の表示設定がフォームでは「時分」、ビューでは「一般」になっていたため、保存することで秒が切り捨てられたようです。
ですので、「時分秒」に設定しなおし、正しく得られるようになりました。

ちなみにノーツビューで「表形式でコピー」してエクセルに貼り付けたものがこちらになります。


日時の書式設定は「ユーザー定義 yyyy/m/d h:mm」と認識されているため、集計にも利用できるはずです。



いかがですか?
ログオン/ログオフスクリプトとノーツアプリだけで、ユーザーのログオン/ログオフが記録できるようになりました。

まずは今回の案件がパソコン使用時間の収集という目的であるため、弊社では本アプリを使うこととします。
弊社のような1人SEや専任者がいない会社様などですと、それなりに使えるのではないかと思います。

※¥マークは"/"に変換されるため、全角文字を使用しておりますので、ご注意ください。