ページビューの合計

2019年5月30日木曜日

#カレンダー から #ics ファイルを添付した新規メールを作成する

This time I tried to create an action button with the following content.
1 Export ics file from Notes schedule
2 Display the new mail creation screen with the ics file attached

みなさま、こんにちは!!
IBM Notes/Domino Day 2019 Springツアー、各地盛り上がったようですね。
某会場では、なぜか申し込み人数より多くの参加者があったとか(笑

国内の注目、活況が証明されたようですね。

さて今回は、以前よりicsファイルのやり取りによるスケジュール追加が便利だと感じておりました。そもそもNotesのカレンダーからicsファイルが生成できるのかすら知りませんでしたのですが、「書き出し」機能のデフォルトに存在していました。


ただしこのicsファイル。基本的に自分のカレンダーには存在しているものであり、メール添付して送付することが主な利用用途になるかと思います。
ということで、自分のスケジュールからicsファイルを作成し、新規メール作成画面を表示させ、あらかじめ添付ファイルとして登録されていれば簡単に送信できるのでは!!?ということで、社内実装してみましたので、その手順をご紹介致します。

やり方は単純で、

①Notesがもっているエクスポート機能を使用して、指定したディレクトリにicsを保存。

②新規メールを作成し、①で保存したicsファイルを添付

となります。

ということで、まずは①のicsファイルのエクスポートです。
今回はメールテンプレートに共有アクションとして追加しました。


式として、以下を記述します(保存先はそれぞれの環境に合わせてください。もちろんファイル名は自由ですが、拡張子は[.ics]にします)
※半角"¥"は本ブログでは "\" になってしまいますので、便宜上全角"¥"を使用してあります。


 @Command([FileExport]; "Calendar File"; "(保存先ディレクトリ)¥¥ical.ics")



エクスポートのテストを行うため、作成した共有アクションを【($Calendar)|Calendar】ビューに追加します。


それではご自身のメールを再設計して、テストしてみます。
※再設計
  手順:メールアプリケーションを右クリックして、[再設計]をクリック
     テンプレートの場所(サーバー)を選択し、[OK]
  注意:メールアプリケーションがテンプレートから設計を引き継ぐにチェック


再設計が完了しましたら、カレンダーを開きます。以下のように[ics export]のボタンが表示されていることを確認します。



早速ですが、登録されたスケジュールのひとつを選択し、[ics export]をクリックします。

以下のように[iCal エクスポート]ダイアログが表示されますので、[選択文書]のまま[OK]します。(すべてをエクスポートする場合は、[すべての文書]を選択してください。)


指定したディレクトリに、ical.icsファイルができていればOKです。



続いての②新規メールを作成し、①で保存したicsファイルを添付の設計です。

新規のエージェント(LotusScript)を作成します。
名前/別名は自由ですが、私は両方に[ics_mail]としました。


こちらに記述する内容は以下となります。
件名や文面は自由に設定ください。


Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem
Dim maildb As New NotesDatabase("","")
Dim afile As NotesEmbeddedObject 
Call maildb.OpenMail
Set uidoc=ws.CurrentDocument

Set doc = maildb.CreateDocument
Call doc.ReplaceItemValue("Form","Memo")
Call doc.ReplaceItemValue("Subject","icsファイル送信")

Set rtitem = New NotesRichTextItem(doc,"Body")
Call rtitem.AppendText("スケジュールのicsファイルを添付致します。")
Call rtitem.AddNewline(2)
Set afile = rtitem.EmbedObject( EMBED_ATTACHMENT, "", "(保存先ディレクトリ)¥¥ical.ics")
Call doc.Save( False, False)
Call ws.EditDocument(True,doc)
End Sub


次に、①で作成した共有アクションに、②のエージェントを実行する行を追加します。


 @Command([FileExport]; "Calendar File"; "(保存先ディレクトリ)¥¥ical.ics");
@Command([ToolsRunMacro];"ics_mail")

以上で保存し、再度メールアプリケーションを再設計します。

以下、動きをご覧ください。
※gifファイルを表示していますので、連続再生されています。


宛先を指定し、送信した結果は以下となります。


添付されたicsファイルの中身は、以下のようになっており、問題なくカレンダーに取り込むことが可能です。


以上、今回は少しLotusScriptを使いましたが、思うような動作を得ることができました。
これで社外の方ともスケジュールの共有が少し楽にできそうです。


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 のご紹介とインストールまでを書かせて頂きました。
せっかくですので、収集されたログファイルの活用について、次回記載させて頂こうと予定しています。

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