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

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

2014年2月27日木曜日

文書リンクをurlリンクに変更してみる

やっと暖かくなってきました。
それとともに花粉が飛散し始めているようです。家の中に持ち込まないように注意しましょう。

私も花粉症なので、注意しています。


ということで、今日もボタンをクリックしましょう。
にほんブログ村 IT技術ブログへ


では、本題です。
今日はノーツクライアントを利用していると、よく使う文書リンクについてです。
Web化(XPages化含む)するにあたって、既存の文書リンクをどうやってurlリンクへと変換させるかがポイントになってくるかと思います。

そんな時はこちらのサンプルを利用してみてください。
こちらは、"tstBody"というフィールドにある文書リンクの内容を解析して、urlリンクへと変換して"tstText"フィールドへと書き込むものです。

サンプルなので、文書を編集モードで開いた状態でないと使えません。
また、1文書に1つの文書リンクがあるという前提になっています(複数の文書リンクには対応していません)。
Sub Click( Source As Button )
 Dim uiws    As New NotesUIWorkspace
 Dim uidoc   As     NotesUIDocument
 Dim doc     As     NotesDocument
 Dim ritem   As     NotesRichTextItem
 Dim rnavi   As     NotesRichTextNavigator
 Dim rlink   As     NotesRichTextDoclink
 Dim srvName As     NotesName
 Dim httpUrl As     String
 
 Set uidoc = uiws.CurrentDocument
 Set doc   = uidoc.Document
 Set ritem = doc.GetFirstItem( "tstBody" )
 Set rnavi = ritem.CreateNavigator
 If rnavi.FindFirstElement( RTELEM_TYPE_DOCLINK ) = False Then
  Msgbox "リンクアイテムが見つかりませんでした。"
  Exit Sub
 End If
 Set rlink = rnavi.GetElement
 
 Set rnavi = ritem.CreateNavigator
 
 Msgbox _
 "サーバ名:"     & rlink.ServerHint     & Chr$(10) & _
 "DBレプリカID:" & rlink.DBReplicaID    & Chr$(10) & _
 "ビューUNID:"   & rlink.ViewUnID       & Chr$(10) & _
 "文書UNID:"     & rlink.DocUnID        & Chr$(10) & _
 "コメント:"     & rlink.DisplayComment & Chr$(10) & _
 "テキスト:"     & rlink.HotSpotText, _
 0, "文書リンクの情報"
 
 Set srvName = New NotesName( rlink.ServerHint )
 httpUrl = "http://" & srvName.Common & rlink.DBReplicaID & "/" & rlink.ViewUnID & "/" & rlink.DocUnID
 Call uidoc.FieldSetText( "tstText", httpUrl )
End Sub
最後のあたりは、少々強引ですが、一応urlリンクにはなります。
Web化するにあたって、DBリンクだと使いづらいな・・・という場合に利用してみてください。

もちろん、XPages化する際にも、この手法は利用できると思いますので、さらなるチャレンジをしてみてください。


上記はサンプルなので、そのままでは実用には耐えられませんので、注意してください。
改造は自由にやっていただいて良いですが、どうやったらできるの?とか、動かない!という話は承っておりませんので悪しからず。
(どうしてもというのであれば、お仕事としてお話を承りますよ)


では、今日はこの辺で。



【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2014年2月24日月曜日

XPages(JavaScript)での条件分岐

こんにちは。気が付いたらもうすぐ2月も終わりです。一日一日が早いですね。
このままいくとあっという間に2014年が終わってしまうので、気を引き締めていきましょう。


本題に行く前にこちらをクリック!
にほんブログ村 IT技術ブログへ


さて、今日はXPagesというかJavaScriptについてです。
久しぶりな感じがしますね・・・
以前にLotusScriptでの条件分岐について書きましたが、今回はXPages(というよりはJavaScript)での条件分岐の方法を記述します。


早速、サンプルです。

計算結果フィールドコントロールを配置して、「値」に以下のコードを記述します。
var ret;
switch ( @Month(@Today()) ) {
    case 1: ret="今日は一月です。";break;
    case 2: ret="今日は二月です。";break;
    case 3: ret="今日は三月です。";break;
    case 4: ret="今日は四月です。";break;
    case 5: ret="今日は五月です。";break;
    case 6: ret="今日は六月です。";break;
    case 7: ret="今日は七月です。";break;
    case 8: ret="今日は八月です。";break;
    case 9: ret="今日は九月です。";break;
    case 10: ret="今日は十月です。";break;
    case 11: ret="今日は十一月です。";break;
    case 12: ret="今日は十二月です。";break;
    default: ret="エラーです。";break;
}
ret;
LotusScriptの場合は、Select Case文を使って条件分岐を実現しましたが、JavsScriptの場合は
switch文を使います。
case節を使って、条件に合った式を書くのは同じですが、switch文の場合、break;で終わらせる必要があるところが違います。
break;を記述しないと、その後の命令をすべて実行してしまうので要注意です。
また、設定したcaseに当てはまらない場合は、default節に設定した命令が実行されます。
LotusScriptの場合、Case Elseでしたね。
ここも異なるところです。

それ以外は、各言語のルールに従って記述するだけです。


簡単ですね。
ぜひ、トライしてみましょう!

ノーツでWeb化するならXPages!」 「ノーツアプリケーションの改修はXPagesで!

では、今日はこの辺で。






【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2014年2月19日水曜日

コードのテンプレートも作ってみよう!

こんにちは、今日(2014年2月19日)はテクてくロータス技術者夜会の日です。
とっとと仕事にケリをつけて、渋谷へ向かうようにしましょう!


では、いつものようにボタンをクリックして本題へと行きましょう。
にほんブログ村 IT技術ブログへ


さて、今日は前回の関連トピックです。
前回は、コメントのテンプレートを加工して自分用にしましょう。
ということでしたが、今回は「コード(LotusScript)もテンプレート化しよう!」ということです。

設定方法は以下の通り。
  1. Domino Designerを起動する。
  2. [ファイル][プリファレンス]メニューを実行する。
  3. [Domino Designer][LotusScript エディタ][コードのテンプレート]タブを開く。
  4. 「コード要素」からテンプレートを作成したいコードの要素を選択する。
  5. 「コードのテンプレート」欄にテンプレート化したコードを入力する。
  6. [適用]ボタンをクリックする。
とこれだけです。
コメントのテンプレート化とほぼ変わりませんね。
1点だけ違うのは、コメントのテンプレートの場合、デフォルトである程度用意されていましたが、コードについては何も用意されていないというところです。

そのため、どのように入力して良いのか、ちょっと悩むところですね。
ということで、サンプル画面を。
下図は、Sub関数のコードをテンプレート化したものです。
Sub関数のテンプレート化


コード実行中にエラーが発生したら、ErrProcへ進んで、エラー内容をダイアログ表示するという事をテンプレート化してみました。

そして、実際にLotusScriptを作成したときの画面がこちらです。
サンプルコード


確かに、テンプレートコードの内容が反映されているかと思います。
このように、コードのテンプレートの場合、実際に必要なコードを直接、入力することで実際のコードに反映されます。
実はコードテンプレートの中にコメントを入力することもできます。

関数の説明は関数の外ではなく、中に書きたいという場合は、コードテンプレートの中に書けば良いということですね。

これで毎回、同じようなコードを入力しなくて済みますね。
ちょっとしたことですが、製造コストの削減に役立つのではないでしょうか?


では、今日はこの辺で。






【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2014年2月17日月曜日

コメントのテンプレートを加工しよう!

皆さん、こんにちは。今年の日本は雪が多く大変ですね(まるで他人事・・・)。
今週の水曜日(2014年2月19日)は、テクてくLotus技術者夜会がありますが、その日の天気予報も「曇りのち一時雪」と、雪の予報になっています。
なんとか降らない事を祈るばかりです。


では、本日の話題に行く前に、久しぶりのボタンクリックをしましょう。
にほんブログ村 IT技術ブログへ


IBM Connect 2014のうち、Domino Designerの便利な使い方について紹介していたセッションに参加したのですが、残念ながら当ブログでも紹介していたものが多かったのでした。紹介していた内容が世界にも通じている!という意味では嬉しいのですが、新しいことを知ることができなかった(あったのかもしれませんが、全部は理解できませんでした・・・)のは残念でした。

ということで、Domino Designerのプリファレンスを眺めていて、便利そうだな。という機能について追加で紹介を行います。


さて、それでは本題です。
今回はDomino Designerのうち、「コメントのテンプレート」について紹介します。

LotusScript を記述していると、多くのSub関数やFunction関数を作成することになるかと思います。
その時に、それらの関数の説明を入力しておくこともあるかと思います(書いておかないと、後々メンテナンスする時に大変なことになりますよね)。


Domino Designerは、関数を作成すると、先頭にその関数に関するコメントを自動で付加してくれます(下図)。しかし、コメントが英語になっている事や情報量が少ないという事から自分でその都度、修正しているという方も少なくないのではないでしょうか。
デフォルトのコメント

このコメントはテンプレートとしてDomino Designerの中に組み込まれているものです。
そして、この内容は変更することが可能なのです。

変更する方法は次の通りです。
[ファイル][プリファレンス]メニューを実行して、Domino Designerのプリファレンス画面を開きます。
その中で[Domino Designer][LotusScript エディタ][コメントのテンプレート]を開くと、コメントのテンプレートを設定する画面に切り替わります(下図)。
コメントのテンプレート画面

右側上部にある「コード要素」を選択すると、右側下部にそのコメントのテンプレートが表示されます。
そのコメントのテンプレートを修正して、[適用]ボタンをクリックすれば、良いのです。

下図はFunction関数のコメントテンプレートを修正した後にFunction関数を作成した結果です。
確かにコメントが反映されています。日本語も使えるのは良いですね。
Function関数のコメントテンプレートを加工したもの

どうでしょうか?これで今まで手入力もしくは他のコードからコピー&ペーストしていた作業がなくなるのではないでしょうか?

コメントは書きすぎても分かりにくくなりますが、まったく書いてないと、後で見なおした時に解読不能になってしまいかねません。
この機能を利用して、良いコメントを残すようにしましょう。


では、今日はこの辺で。






【PR】ノーツ/ドミノに関するお問い合わせは下記まで【PR】
単純なDBのカスタマイズから他アプリケーションとの連携までご要望にお応えします!
Lotus Notes/Domino カスタマイズとセキュリティ強化 - 株式会社エフ

2014年2月13日木曜日

DominoでSSLを設定してみよう(2)サーバー認証

皆さん、おはようございます。本日は2014年2月13日(木)です。
私がインフルエンザにかかって、早くも5日目です。やっと熱が下がってきました。
手洗いやうがい、マスクをするなど予防はしていたのですが・・・(諸事情により、予防接種は行っていません)

感染するときは感染するということなのでしょうか。皆さんも十分に注意してください。
周りに咳き込んでいる方がいらっしゃったら、マスクをつけさせる、うがい、手洗いをさせるなども大事かもしれません。




さて、前回はDominoでSSLを設定してみよう!ということでDominoを認証局にするという資料をSlideShareにアップロードしてそれを紹介するということを行いました。

今回はその続きです。
Domino認証局で別のDominoサーバを認証しましょうという手順の資料です。

前回と同じく、SlideShareにアップロードしたので、興味がある方は参照してください。






この資料は、IBM Notes/Domino 9.0.1を利用して作成しています。
Notes/Dominoのバージョンによっては画面が多少違う可能性がありますので、ご了承ください。

2014年2月7日金曜日

DominoでSSLを設定してみよう(1)Domino認証局の作成

IBM Connect 2014も終わって一週間が過ぎました。

そろそろ、関係する話題を書くだろう・・・と期待している方もいらっしゃるかもしれませんが。

「敢えて」書きません(笑)
まぁ、まだ資料がまとまってないというだけなんですが。


ということで今日は別の話題です。


私がSurface Pro 2 を持っているという話は散々書いているので(Windows タブレットは便利ですよ!タブレットなのに、Notesクライアントが使えるなんて素晴らしすぎる!)ご存知かと思いますが、

そのSurface Pro 2でもIBM Notes Travelerを使えます。
と言っても、専用アプリケーションがあるわけではありません。
メトロUIにあるメールアプリを利用します。

その際、IBM TravelerサーバへはSSLでの接続が必須です。

DominoにSSLを設定するのはそんなに難しくはないのですが・・・
やはり手順をきちんと押さえておいた方が良いでしょう。と思い、画面付きの資料を作成しました。
今後、設定してみようかなぁという方がいれば、参考にしてください。





この資料は、IBM Notes/Domino 9.0.1を利用して作成しています。
Notes/Dominoのバージョンによっては画面が多少違う可能性がありますので、ご了承ください。

2014年2月3日月曜日

今年も反省することばかり・・・

皆様、こんにちは。
IBM Connect 2014が閉幕して、翌月曜日となりました。
衝撃度が高かったIBM Mail Nextについては、チームスタジオジャパンの加藤様が簡潔にまとめてくださっています。
今後、日本IBM殿からも発表があると思いますが、まずはこちらを読んでおくと良いでしょう。
IBM Mail Next


さて、今回の今回のIBM Connect 2014についての所感を書きます。
まず、反省点やアドバイスについては、基本的なところは昨年と変わりません。こちらをお読みください。旅を終えて

なので、今回は自身の反省点及び、追加で思ったことを書きます。

英会話力の上達
 昨年で十分わかっていたはずですが、「忙しい」を理由にサボってました。
 現地で恥をかくのは自分なので、今年こそは上達するように頑張ります。
 誰か、一緒に勉強しましょ♪(一人でやるのは寂しい)
 目標としては、一人でLaboに行って話が聞けるようになるということにしておきます。
 (セッションを持つとか、そんな非現実的なことは書きませんからね)

現地での行動はあらかじめ計画しておく
 セッションは4日間(BPは5日間)で、200以上あります。さらには、ShowcaseやLaboもあります。
 せっかく現地に行ったのに、セッションだけでは面白くありません。やはり、ShowcaseやLaboに行き、
 直接話をしてこそのイベントです。
 Agendaは毎年開催前(1月半ばごろ)には発表されるので、事前に本当に聴きたいセッションだけを選択して残りは会場内の散策に充てるべきでしょう。
 日本IBMの方と一緒に散策できるようであればベストですが、彼らもミッションを持っているはずなので参加者同士で行くようにしましょう。
 その時も、あらかじめ質問内容は決めておくことをお勧めします。

参加者コミュニティの形成
 前述したようにセッション数は膨大な数に上ります。これら全部を一人(もしくは一社)で掌握することは不可能です。
 参加者同士でコミュニティを作り、情報交換をすると、入手できる情報量がかなり増えると思います。
 さらには、日本に帰国後も「飲み友達」が増えるという特典が付いてきます(笑)
 
Windows PCも持っていこう
 スマホは必須ですが、+αとしてWindows PCの持参をお勧めします。iPadやAndroid タブレットでも良いのですが、Windows PCであれば、Notesクライアントがインストールできます。となれば、セッション中に動作確認ができます!
 私は今回、そのため(だけ)に、Surface Pro 2を購入して持っていきましたが、すごく便利でしたよ。
 現地でも実際にセッション中にNotesクライアントを開いて、動作確認をしている人が多数いました。


また、現地に行くことができない方へも一言二言。

労りの心を持ちましょう
 確かに現地に行かないと、細かい情報は入手できません。
 しかし、現地に行っている方に、IBM Championだからと言って、「情報よこせー!」と連呼するのはなるべく、やめましょう。
 開催場所はアメリカ合衆国フロリダ州オーランドで、日本とは時差が14時間もあります。
 その上、セッションは朝8:00から夕方18:00まであるので、情報を提供するにも限界があります。
 それでも連呼し続けると、プレッシャーあまりこんな風になってしまいます(笑)
目を閉じながら、英語を聞き取りに集中する某IBM Champion
参加者の方が日本に戻ってから、ゆっくりと聴いてもらっても問題ありません。

ギブ&テイクを忘れずに
 情報をもらったら、必ずフィードバックしましょう。
 現地には高いお金を払って行ってます(会社の出張であっても)。情報だけもらって、ラッキー。で済ませないようにしましょう。
 必ず、「何が良かったのか、不足している情報は何か。」等、フィードバックするようにしてください。
 来年以降に現地に行く場合に、お互いに参考になるはずです。



ちょっと愚痴っぽくなりましたが、このICS最大のイベントに気持ち良く参加するためです。
許してやってください。

その他、細かいセッション内容については、今後、ぼちぼちと書いていきます。

では、今年のIBM Connect 2014についての報告は以上で終わります。