2017年5月14日日曜日

Excelで作成したグラフをリッチテキストへ貼りつける

Excel を使いグラフを作成して Notes のリッチテキストへ貼りつけるエージェントを作ってみた。

Excel データは次のような単純なもので、保存されているファイルを使う。
リッチテキストへ貼りつけるグラフは、次のような折れ線。タイトルを追加する

グラフのサイズを指定したいので、既存のシートに埋め込みグラフを追加する。
※新規にグラフシートを追加する場合、サイズの指定がよくわからない(常に最大?)

クリップボードへコピーした埋め込みグラフを新規文書のリッチテキストエリアへ貼りつける。

"Main" フォームには "Body"という名前のリッチテキストフィールドがある。

コードは以下のとおり。
Set xlApp = CreateObject("Excel.Application")
Set xlbook = xlApp.Workbooks.Open( "D:\kakaku.xlsx" ) 'Excelファイルを開く
Set xlsheet = xlbook.Worksheets(1)
xlApp.Visible = False 'Excelを非表示にする

'グラフを追加
Set xlchart = xlsheet.ChartObjects().Add( 10, 20, 500, 300 ) '追加する位置(左, 上, 幅, 高さ)
With xlchart.chart '追加したグラフ
 .SetSourceData xlsheet.UsedRange '範囲はシート内の全て
 .HasTitle = True 'タイトルを追加
 .ChartTitle.Text = "レギュラーガソリン価格"
 .ChartType = 4 'xlLine (折れ線)
 .ChartArea.Copy 'クリップボードへコピー
End With

'新規文書をUIで開き本文へ貼り付け
Set uidoc = ws.Composedocument("", "", "Main",,, True) '新規文書をMainフォームで開く
With uidoc
 .Gotofield "Body" 'Bodyフィールドへ移動
 .Paste 'グラフを貼り付け
 .Save '保存
 .Close True 'フォームを閉じる
End With

'Excelを終了
xlApp.DisplayAlerts = False
xlApp.quit
確認した環境:Notes 9.0.1 + Windows 10 + Excel 2016

2017年3月8日水曜日

Connections "Pink" ってなんだろう

サンフランシスコで開催された Connect 2017 で発表された "Pink" って何だろうと思っていたら、日本時間の今朝(というか昨日の深夜)に開催された Open Mic Webcast で "Pink" がテーマだったようで、早速公開されたプレゼンテーションを見てみました。

資料はこちらからダウンロードできます。

Open Mic Webcast: Think Pink - The Future of IBM Connections - 07 March 2017 [presentation attached]


これを読む前は

"Pink" って Connections の次期バージョンのコードネームなの?

と思っていたのですが、どうやら特定のバージョンを指した名称ではないようで、この先の展望というかロードマップ的なものを指して "Pink" と呼んでいる、という印象を持ちました。

結局のところよくわかりません。

とまあ、"Pink" についてはこれ以上深読みせずに、今後 Connections がどう変わっていくのかを見てみました。

まず非常に興味深かったのは、これまでの WebSphere + DBMS 等で構成していた Connections ですが、"Pink" では node.js や MongoDB といったオープン技術を採用し、なおかつ既存のコードをあらたに書き起こしたコードで完全に置き換えるらしいこと。

めっちゃ大胆ですね。

我々が利用している Connections Cloud もそのうち Pink に染まっていくのでしょうけど、データの移行作業も発生するだろうからシステムが長時間止まらないか、パフォーマンスは悪くならないか、オープン技術ってセキュリティホールの情報もオープンじゃないの?大丈夫??などと心配になってしまいます。

システム構成は大きく変わりそうですが、エンドユーザーの見た目や使い勝手も大きく変わりそうです。

今回の資料で個人的に気になったのは、

  • IBM Verse の「Important to Me」が Connections にも現れ、人の他にコミュニティーが追加できる
  • ファイル「同期」が拡張され、同期の対象にフォルダーが加わる
  • コミュニティー・デザインの拡張
  • そのデザインを新たなコミュニティーにコピーできる

の3点です。改善を要望していたものや、こうなればいいなと感じていた部分が実装されそうなのです。

Conncetions の「Important to Me」って「フォロー」とどう違うのでしょうか...やはりよくわかりません。

ところで、クラウド・サービスを使っていて思うことは、リリースされた新機能を使い始めるタイミングが皆同じため、エンドユーザーからの質問に管理者もサポートメンバーも回答できずに時間がかかったり、エンドユーザー向けのマニュアルをあらかじめ作ることができないことが辛いのです。

その点「ガイドツアー」には期待していて、くまなく新機能についてもガイドしてくれると助かるなあと。

それから "Pink" については今回の資料や Connect2017 に参加された IBM Champion やベンダー企業から発信される情報だけしか私はまだ見ることができていませんが、来週(2017年3月17日)開催のテクてく Lotus 技術者夜会では "Pink" のお話(特に開発者向けの内容)も聞けるようです。

動くデモが早く見たいですね。

2016年12月17日土曜日

テクてく技術者夜会のLTでお話したこと

昨日(2016年12月16日)のテクてくLotus技術者夜会に参加しました。


東京/大阪から沢山の講師の皆さんがライトニングトークされる中、僭越ながらお話させていただきました。

事前に資料を用意できなかったため、発表前にバタバタさせてしまい、申し訳ありませんでした。


お話した内容を整理して、少しわかりやすくするために例を追加したスライドを共有させていただきましたので、そのご連絡まで。

 


さて、このブログの更新も塩漬け状態が続いていますが、来年はもうちょっと更新したいと思っています。

これからもよろしくお願いいたします!

2015年4月17日金曜日

アプリのお引越しに Notes Redirect File (NRF) を使おう!

長い間使ってきたDominoサーバーも、「そろそろハードウェアの更新だなあ」とか「OSのサポート切れだよ...」といった後ろ向きな理由や、BCP対応としてクラウドの「SoftLayer」で稼働するDominoサーバーへ移行するといった前向きな理由で、サーバー間でアプリケーションを引越しすることがあります。


アプリケーション・サーバー間で引っ越しする場合、これまで、ユーザーには、ワークスペースに追加されているアイコンから「面倒な操作」をして、引っ越し先のサーバー上にあるアイコンを追加する、といったようなアナウンスを流して、ユーザー側で対応してもらっていました。


こうすると古いアイコンが削除されずに、ゴミとして残りがちなんですよね。


ところが、これからはユーザーへ「面倒な操作」のアナウンスをしなくても、ワークスペースからアイコンをダブルクリックしてもらうだけで、古いサーバー上のアイコンが削除され、新しいサーバー上のアイコンに置き換わってくれます!

しかも、アイコンの参照先が変わったことを、ユーザーがほとんど気づかないような工夫がされているのです。


それが Notes Redirect File (以下:NRF) です。
※NRF はNotes 8 で追加された機能です


ここからは、NRF を作成する、一つの例を示します。


Domino Administrator から、サーバー上の .nsf ファイルを削除しようとすると、表示される確認画面に
「マーカーを作成して、クライアントがこのデータベースへの参照情報を更新できるようにする」
というチェックボックスがあります。これにチェックを付けます。


この「マーカー」というのが.nrf という拡張子のファイルを指しているようです。

「クライアントを以下のサーバーにリダイレクト」にチェックを付けて、レプリカを置いているサーバーの名前を指定します。これで[OK]ボタンを押すと .nsf ファイルが削除され、かわりに .nrf ファイルが作成されます。

このとき、削除前のファイル名が "TestNRF.nsf" の場合、"TestNRF.nrf" のように、ファイル名が同じで拡張子が .nrf になります。


.nrf ファイルはメモ帳で開くことができます。
開くと次のような感じです。※RepID=やRef=の値は書き換えています

[NotesRedirectFile]
Type=Move
RepID=00000000:00000000
Title=NRFファイルのテスト
Ref=CN=hogehoge/O=org/C=jp!!TestNRF.nsf

では、サーバー上にnrfファイルが作成されたところで、Notesクライアントから開いてみます。


ワークスペースにあるアイコンをダブルクリックすると、いつもより開くのに時間がかかる感じがしますが、このときステータスバーには

「アプリケーション ≪DBTitle≫ (≪nrfファイル名≫) の新しいレプリカを検索中です。以前はサーバー ≪移動元サーバー名≫ 上にありましたが、古いレプリカが移動されたためです。」

と表示されていました。


そのうちアプリケーションが開きます。ワークスペースに戻ってアイコンに書かれたサーバー名を見ると、リダイレクト先サーバー名に置き換わっていました。レプリカが積み重なったりしておらず、古いサーバー名のアイコンは自動で削除されていました。


今回は、あらかじめ他のサーバーにレプリカを作成してあったので「データベースの削除」をしていますが、ヘルプによると、「データベースの移動」でもNRFを作成できるようです。


なお、httpタスクを稼働しているDominoサーバーの場合、ブラウザから削除前の .nsf ファイルを目指してくると 404 エラーになるようです。NRFは Notesクライアント専用のようです。

確認したバージョン: Notes 9.0.1 Standard, Domino 8.5.3

2015年4月14日火曜日

$KeepPrivateの挙動が変わった?!

今回は私が最近知った、Notesの印刷不可の制御についての話題です。

Notesのアプリケーションへ登録した文書について、その内容を印刷ができないよう制御することができます。

フォームのプロパティでその設定を行うことができますが、そのフォームを使って保存した文書には $KeepPrivate というアイテムにテキスト値の"1"がセットされています。

こうなった文書は権限にかかわらず印刷できなくなります。

さて、この値を"0"(または"")にすると、どうなるかご存知でしょうか?

そうです、印刷できるのです。

何を当たり前のことを…と思ったそこのあなた!
話はこれからですよ!

この印刷させない設定は、ACL(アクセス制御リスト)のエントリでもできます。

ACLエントリで「文書を複製またはコピー」にチェックを付けると、そのエントリに該当する人は印刷できますが、チェックを外したエントリに該当する人は印刷できません。

ところが、ACLで「文書を複製またはコピー」のチェックを外したエントリに該当する人が、$KeepPrivate に"0"(または"") をセットした文書を印刷できる事を最近知りました。注)転送はできませんでした

実はこれ、8.5.1で修正され、仕様が変わってしまったとのこと。

では、ACLで「文書を複製またはコピー」のチェックを外している人が、文書を印刷できなくするにはどうするか。

$KeepPrivate アイテムを削除します。

こうして当方のアプリケーションは想定した挙動をしてくれるようになったのでした。

※Notes 9.0.1 Standard版で確認

2015年3月13日金曜日

フォルダ問題をタグで解決

前回の投稿に書きましたとおり IBM Connections Cloud を使い始めています。

試用期間を含めると1年ほどになりますが、数ある機能の中でも私が好んで使っているモノをご紹介したいと思います。


本日のお題は「タグ」です。


Windowsのアプリケーションでファイルを作成すると、ローカルやサーバーにある「フォルダ」に保存しますよね。

フォルダに「Notes」と「Domino」の2つがあったとして、保存したいファイルが「Notes/Domino 9.0.2新機能について.ppt」の場合、どうしますか?

後で探す時には、どちらのフォルダにも入っていて欲しいところ。


けれど、ファイルをコピーして複数のフォルダに入れてしまうと、編集する度に同じようにコピーを入れなければならないのが面倒ですし、容量を無駄にしたくない。私なら「IBM」という親フォルダを作り、そこへ入れてしまうかも。

これがファイル共有サーバーの場合、他人にもファイルが探せるようフォルダの名付けや保存先といったルールがあるかもしれませんが、保存先のフォルダがさらに深い階層になってしまいがちで、こうなると分類はできていても探し出すまでの操作の数が増えてしまいます。

じゃあ全文検索すればいいじゃない?

と普通は考えますが、ファイル中の全てのワードをインデックス化する全文索引では、検索結果が多くなりがちで、結果の山に埋もれてしまい、ピンポイントでたどり着くことができない可能性があります。


そんな時「タグ」を使います。


ファイルに書かれている内容を表す、かつ人が検索することを前提に厳選した言葉を「タグ」として付けておくのです。

先のファイルを例にとれば、"ibm" "notes" "domino" "9.0.2" "新機能" "プレゼン資料"といった具合です。内容から抜き出すならば "bootstrap3.2.0" "jquery" "rfc2231" "nif分離" などと特徴的なワードもタグ付けしておきます。

すると、タグのリストが自動生成されますが、タグ・クラウド形式のリストで表示した時、多くのファイルに付けられたタグが大きなサイズの文字になります。

タグ・クラウド上にあるひとつひとつのタグはリンクになっていて、クリックしたタグが付いているファイルのリストを表示してくれます。


タグの良いところは、あたかも一つのファイルが複数のフォルダに入っているかのように見えるところです。(こう書くとNotesメールの「フォルダ」はタグと似ています)

また、ファイルを探す時、フォルダの場合「マイ・ドキュメント」-「資料集」-「標準ソフトウェア」- 「パソコン」-「IBM」といった上位の階層からたどって絞り込んでいきますが、タグの場合はタグ・クラウドから "notes " といった特徴的なタグを選ぶことで、より近い所から絞り込み始める事が出来ますので、比較的効率よく目的のファイルを探せます。


そうは言っても「フォルダ文化」に染まった人が、急に「タグ文化」の世界へ放り込まれたら大いに戸惑います。しかし IBM Connections Cloud にはフォルダはあるものの、階層を作ることができません。ここで拒絶反応を示すユーザーは多いようです。

せめてローカルのフォルダ階層をクラウドへひとまとめにドラッグ&ドロップすると、フォルダ名をタグに置き換えてくれるようなツールでもあればなあ…などと思いながら、私は自主トレの甲斐あってようやく「タグ文化」にも馴染んできました。

ファイルが増えてきてタグ・クラウドから探す事に慣れてくると「rfc2231ってどのバージョンから対応してたっけ?」というような場合に、ファイルを開かなくても、それに付いたタグを見るだけで答えが出てしまうことに感動することでしょう。


今回はファイルを例に「タグ」を紹介しましたが、IBM Connections Cloud では他にもプロフィールやブックマークやつぶやきといったヒト・モノ・コトにも付けて、それらを串刺しで検索できる事も気に入っている理由です。

2015年3月10日火曜日

IBM Connections Cloud のユーザーになりました

前回の投稿からおよそ3年半ぶり、ずいぶんとご無沙汰しています。


ここのところ、私のNotesの環境はずいぶん変化しました。

一昨年から検討していた IBM Connections Cloud (導入当初のIBM SmartCloud for Social Businessという名称が導入後に変わった)を昨年に本格的に導入し、オンプレミスにあったユーザーのNotesメール・データベースは現在、クラウドで稼働しています。

昨年からですが、テクてくLotus技術者夜会に参加させていただくようになり、IBM Championやベンダーやユーザーの方々とも会話させていただく機会が増えたことを実感しています。



さて、これまで私の勤務先には、いわゆる「ソーシャル・ウェア」というものが存在しませんでした。
そこへ、メールをクラウドへ移行したら「おまけ」的に付いてきた(と言うのは冗談ですが)「IBM Connections Social Cloud」が突然、やってきました。

これを社内へどのようにアピールすると興味を持ってくれるのか、使ってもらえるのか、最初の一歩をどう手助けできるのかが悩みどころです。



私自身は個人のスマートフォンなどでFacebookやTwitterを使って情報収集・発信をしていて、情報が人づてに伝わり、瞬く間に拡散していく様子を目の当たりにしたとき、ソーシャル・ウェアの凄さを感じます。


けれど興味のある人やコンテンツを「フォロー」して「いいね」すると伝わる、と社内で言ってみても、それが業務と紐付き、改善できるイメージを描けなければ、ユーザーは使おうとは思わないかな.....と。



そんな訳で、最近はNotesで「情報共有したい」とか「アンケートしたい」といった相談があるたび

「Notesじゃなきゃいけませんか?」

と切りだし、ソーシャル・ウェアを使ったイメージを見てもらい、触ってもらうよう促したりしています。

また、既にあるNotesデータベースにもソーシャル・ウェアのほうが向いているようなモノがありそうなので、

「ソーシャル・ウェアで共有すると、こんな風になりますよ!」

などと言って、作っておいたサンプルの説明を始める、といった活動をこれから始めようとしています。


ただ、イメージを見せたところで、「あー!パスワード・ルールがややこしいやつ!!」などとログイン画面のことしか言われないなど、まだまだ社内広報が足りていないことを実感する日々。


ですが、単なる共有ツールで終わらせるのではなく、将来は従業員が自発的に情報発信するようになり、そこからコミュニケーションが生まれ、コラボレーションして継続的に何かを生み出す基盤に発展させたい!

と野望を抱いていますが、Notes屋の私がなんだか違う方向へ向かっていますね....



このブログはこれまで Notes の、とりわけ開発の話題が中心でした。

今後も Notes/Domino の話題が中心になると思いますが、ときどきソーシャル・ウェア( IBM Connections Cloud )にも触れたいと思っています。