SlideShare a Scribd company logo
1 of 28
Download to read offline
テクてくLotus 技術者夜会

~Lotus iNotes をカスタマイズしてみよう~
2011/11/18
Yamato Software Development Lab
Lotus Product Development
Masashi Miyazaki (m1miyaza@jp.ibm.com)
Kouichiro Morinaka (morinaka@jp.ibm.com)
1

© 2010 IBM
Corporation
Lotus iNotes をカスタマイズしてみよう






Lotus iNotes は HTML, JavaScript や CSS といった Web
標準技術を採用しフレキシブルなアーキテクチャを実現し
ています。
カスタマイズについても同様に、CSS を使った外観の変更
や、JavaScript を使った動作の変更など様々な方法でカス
タマイズを行うことが可能です。また、8.5.1 以降のリ
リースでカスタマイズが行いやすいように様々な機能拡張
を行ってきました。
本日のハンズオンでは、Lotus iNotes カスタマイズの概要
や方法をご説明し、簡単なカスタマイズを実際に体験して
いただくことができます。
2
© 2011 IBM Corporation
Lotus iNotes アーキテクチャ
参照

Full Mode

iNotes/
Forms85.nsf

mail85.ntf

&ui=inotes (default)

HTML,
JavaScript,
CSS, Images

設
計

Lite Mode
&ui=dwa_lite

ビュー設計

mail/
user.nsf

iNotes Page

データ

Ultralite Mode
3

&ui=dwa_ulite
© 2011 IBM Corporation
Lotus iNotes アーキテクチャ+カスタマイズ
参照

iNotes/
Forms85.nsf

mail85.ntf

HTML,
JavaScript,
CSS, Images

設
計

ビュー設計

mail/
user.nsf

iNotes/
Forms85_x.nsf

カスタム JS
カスタム CSS
カスタムイメージ

iNotes Page

データ

4
© 2011 IBM Corporation
Lotus iNotes カスタマイズの概要


iNotes/Forms85.nsf






Lotus iNotes 本体のコード (HTML, JavaScript, CSS, 画像等) が含まれて
います。
Lotus iNotes は AJAX アプリケーションです。データ・デザイン情報・追
加コード等は必要に応じてバックグラウンドでロードされます。

iNotes/Forms85_x.nsf







8.5.1 から新規導入された Forms85_x.ntf を使って作成します。
Forms85.nsf から Forms85_x.nsf 内のカスタマイズコードが呼び出され
、Lotus iNotes の動作をフック、またはオーバーライドすることが可能で
す。
Hotfix, Fixpack を適用しても Forms85_x.nsf は上書きされないためカス
タマイズ再適用の必要がありません。ただし事前の動作検証を推奨します
。
メンテナンスリリース適用時にも Forms85_x.nsf は上書きされませんが、
事前の動作検証が必要です。製品コードの変更によりカスタマイズが動作
5
しない可能性もあります。
© 2011 IBM Corporation
カスタマイズ用設計要素 (8.5.1)
サブフォーム名

アーキテクチャ

説明

Custom_Banner

Classic

Custom_Banner_Lite

Lite

Custom_common_Utils

Classic/Lite

各サブフォームから呼び出される共通機能を定義可能

Custom_CSS

Classic/Lite

CSS を使用したカスタマイズ

Custom_CSSPortal

Classic/Lite

CSS を使用したカスタマイズ (Portal 用)

Custom_JS

Classic

Custom_JS_Lite

Lite

Custom_JS_Edit

Classic/Lite

リッチテキストエディタにフォントを追加

Custom_Masthead

Classic/Lite

マストヘッド用 HTML のカスタマイズ

Custom_Page_Dictionary

Classic/Lite

ここで定義した変数を Custom_CSS 内で参照可能

Custom_Welcome

Classic/Lite

ウェルカムページに選択肢を追加

「IBM Lotus iNotes」ロゴを置き換える

JavaScript を使用したカスタマイズ

※ Custom_CSS と Custom_JS_Lite についてはハンズオンで取り上げます。
※ 8.5.3 現在、メールフォーム (Full/Lite)、会議招集フォーム (Lite のみ) とすべてのフォル
ダ・ビューが Lite アーキテクチャです。それ以外はすべて Classic アーキテクチャです。
6

© 2011 IBM Corporation
カスタマイズ用設計要素 (8.5.2 で追加)
サブフォーム名

アーキテクチャ

説明

Custom_AppointmentDictionary

Classic

Custom_AppointmentDictionary_Lite

Lite

Appointmentフォーム用のカスタム
変数定義

Custom_ContactDictionary

Classic

Custom_ContactDictionary_Lite

Lite

Custom_Logout

Classic/Lite

Custom_MailMemoDictionary

Classic

Custom_MailmemoDictionary_Lite

Lite

ログアウト時に実行される@関数な
どを定義可能
MailMemoフォーム用のカスタム変
数定義

Custom_TodoDictionary

Classic

Todoフォーム用のカスタム変数定義

Custom_TodoDictionary_Lite

Lite

Contantフォーム用のカスタム変数
定義

※ 8.5.3 現在、メールフォーム (Full/Lite)、会議招集フォーム (Lite のみ) とすべてのフォル
ダ・ビューが Lite アーキテクチャです。それ以外はすべて Classic アーキテクチャです。
7
© 2011 IBM Corporation
ソースコードの Obfuscation (難読化)


Lotus iNotes では高速化のためにソースコードの
Obfuscation を行なっています。


空白や改行を削除



長い関数名、変数名を短いシンボル名に置き換え



DSq ← oScript



ELU ← com_ibm_dwa_ui_invokeAction



ESV ← com_ibm_dwa_ui_actionRefreshContent



EJs




AAA ← com_ibm_dwa_globals

BYp ← buildResourcesUrl

← oContext

変換テーブルが Forms85.nsf 内に ObfuscationList.txt として提
供されており、実際のシンボル名を確認することが可能です。
8

© 2011 IBM Corporation
Lotus iNotes をカスタマイズしてみよう


ハンズオンの環境について


IBM Lotus Domino Server 8.5.3 日本語版



IBM Lotus Domino Designer 8.5.3 日本語版



Web ブラウザ






Internet Explorer
http://windows.microsoft.com/ja-JP/internetexplorer/products/ie/home
IE Developer Toolbar (IE8/9 では不要)
http://www.microsoft.com/download/en/details.aspx?
id=18359
Google Chrome
http://www.google.co.jp/chrome/intl/ja/landing_ie.html
9
© 2011 IBM Corporation
Lotus iNotes をカスタマイズしてみよう


ハンズオンで行うカスタマイズ


A. 文字サイズを大きくしてみよう (Custom_CSS)



B. メール送信前に確認画面を表示してみよう (Custom_JS_Lite)



C. メールファイルを圧縮してみよう (Custom_JS_Lite +
LotusScript)

10
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
1. iNotes/Forms85_x.nsf を作成







Forms85_x.ntf を使って Forms85_x.nsf を作成します。
データベースプロパティを変更します。
(テンプレートからの設計更新)
適切なアクセス権を設定します。
(-Default- が設計者になっています)
ハンズオン環境では作成済みです。

11
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
2. 変更したい文字に適用されている CSS スタイルを確認


Internet Explore または Google Chrome を起動して
iNotes にログインします。



ユーザー名 – Test User





メールファイル – http://localhost/mail/tuser.nsf
パスワード – password

デベロッパーツールを起動します


IE6/7 の場合 – マウスカーソルのアイコン



IE8/9 の場合 – 歯車のアイコン → F12 開発者ツール



Chrome の場合 - スパナのアイコン → ツール → デベロッパー
ツール
12
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
2. 変更したい文字に適用されている
CSS スタイルを確認


デベロッパーツールで「受信ボック
ス」に適用されている CSS スタイル
を確認します






IE の場合 – マウスカーソルのア
イコン → 「受信ボックス」をク
リック
Chrome の場合 – Elements タ
ブ → 左下の虫眼鏡アイコン →
「受信ボックス」 をクリック
→ s-outline-text というスタイ
ルが適用されていることが分かり
ます (右側のタブで変更も可能)
13
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
3. Domino Designer で
Forms85_x.nsf を変更




Domino Designer を起動して
iNotes/Forms85_x.nsf を開きます
。
Custom_CSS サブフォームに以下の
CSS を追加します。
.s-outline-text {
font-size: 95%;
}



Custom_CSS サブフォームを保存し
て閉じます

14
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
4. カスタマイズを反映させる


Domino サーバー上でカスタマイズ
コードを更新します。






tell http quit コマンドを実行し
て HTTP タスクを終了
load http コマンドを実行して
HTTP サーバーを再起動

ブラウザキャッシュをクリアします
。




IE の場合 – Developer Toolbar
の Cache – Always Refresh
from Server
Chrome の場合 – デベロッパー
ツールの右下の歯車アイコン →
Disable cache

15
© 2011 IBM Corporation
A. 文字サイズを大きくしてみよう
5. 動作を確認する


Lotus iNotes に再度ログインします
。
→ 文字サイズが大きくなっていれば
成功



ヒント


s-page-title や s-label-light 等
の文字サイズも変更すると全体の
統一感が出ます

16
© 2011 IBM Corporation
B. メール送信前に確認画面を表示してみよう
1. カスタマイズするアーキテクチャを
確認




Domino Designer を起動して
iNotes/Forms85_x.nsf を開きます
。
Custom_JS サブフォームに以下の
コードを追加します。
function
Custom_Scene_PreSubmit(s_
SceneName, o_Window,
s_SubmitAction) {
alert(“Custom_Scene_PreSub
mit(“ + s_SceneName + “, “ +
o_Window + “, “ +
s_SubmitAction + “)”);
return s_SubmitAction;
}
17
© 2011 IBM Corporation
B. メール送信前に確認画面を表示してみよう
1. カスタマイズするアーキテクチャを確認




Custom_JS_Lite サブフォームに以下のコードを追加します。
function Custom_Scene_PreSubmit_Lite(s_SceneName, bInEditMode) {
alert(“Custom_Scene_PreSubmit_Lite(“ + s_SceneName + “, “ +
bInEditMode + “)”);
return true;
}
ヒント

Custom_Scene_PreSubmit/Custom_Scene_PreSubmit_Lite は文書の
保存または送信時に呼び出されます。

alert(“…”); の代わりに debugger; を追加すると、スクリプトデバッガで
処理を中断することができます。

18
© 2011 IBM Corporation
B. メール送信前に確認画面を表示してみよう
2. カスタマイズを反映させる

Domino サーバー上でカスタマイズコードを更新します。

ブラウザキャッシュをクリアします。

Lotus iNotes に再度ログインします。

自分宛にメールを送信してみます。
→ Custom_Scene_PreSubmit_Lite と表示されたのでメールフォームは Lite
アーキテクチャと分かります
→ メールフォームの s_SceneName が memo であることが分かります

19
© 2011 IBM Corporation
B. メール送信前に確認画面を表示してみよう
3. Custom_JS_Lite をカスタマイズする


Custom_JS サブフォームの変更を元に戻します。



Custom_JS_Lite サブフォームに以下のコードを追加します。
function Custom_Scene_PreSubmit_Lite( s_SceneName, bInEditMode )
{
if (s_SceneName == “memo”) {
if (!confirm(‘送信しますか?’))
return false;
}
return true;
}



ヒント




s_SceneName が memo の時だけ処理することでメール送信時にのみカ
スタマイズを適用しています。
return false; でメール送信をキャンセル、return true; でメール送信を続
20
行しています。
© 2011 IBM Corporation
B. メール送信前に確認画面を表示してみよう
4. カスタマイズを反映させる


Domino サーバー上でカスタマイズコードを更新します。



ブラウザキャッシュをクリアします。



Lotus iNotes に再度ログインします。



自分宛にメールを送信してみます。
→ 送信しますか?」と表示されます
→「キャンセル」を選択してメールが送信されなかったら成功です

21
© 2011 IBM Corporation
C. メールファイルを圧縮してみよう(上級者編)
1. 受信ボックスにボタンを追加


Custom_JS_Liteサブフォームの以
下のコメントを削除します。
<NotesComment> → 削除
// Expose this comment block to
include actions helper routines for
Lite mode
<InsertNotesSubForm
Name=API_ActionsHelper_Subfor
m_Lite>
</NotesComment> → 削除

22
© 2011 IBM Corporation
C. メールファイルを圧縮してみよう(上級者編)
1. 受信ボックスにボタンを追加


Custom_JS_Lite サブフォームの Custom_Scene_Actions_Lite を変更し

ます。

function Custom_Scene_Actions_Lite(s_MenuID) {
if (s_MenuID.indexOf(“mailview”) != -1) {
var bLeftItems = true;
var aAdd1 = [{
title:“圧縮”, find_id: “new”,
id: “compress”, before: true,
action:“actionCompress”,
help_text:“メールファイルを圧縮します“
}];
addActionsLite( s_MenuID, bLeftItems, aAdd1 );
}
}
23
© 2011 IBM Corporation
C. メールファイルを圧縮してみよう(上級者編)
1. 受信ボックスにボタンを追加


Custom_JS_Lite サブフォームに以下のコードを追加します。
function actionCompress() {
var sUrl = location.href.split(‘.nsf’)[0]
+ ‘.nsf/compress?OpenAgent’;
var oHttpRequest = window.XMLHttpRequest ?
new XMLHttpRequest :
new ActiveXObject('Microsoft.XMLHttp');
oHttpRequest.open('GET', sUrl);
oHttpRequest.onreadystatechange = function() {
if (this.readyState == 4)
alert(this.responseText);
}
oHttpRequest.send();
}
24
© 2011 IBM Corporation
C. メールファイルを圧縮してみよう(上級者編)
2. メールファイルを圧縮するエージェントを作成


mail/tuser.nsf 内に compress エージェントを作成します。
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Call db.Compact()
Print "Content-Type:text/plain; charset=Shift_JIS"
Print "メールファイルを圧縮しました"
End Sub



ヒント



実行時トリガーを 「スケジュール」「なし」に変更します
NotesDatabase.Compact を実行するために 「制限付き
LotusScript/Java エージェントの署名または実行」のアクセス権が必要に
なります
25
© 2011 IBM Corporation
C. メールファイルを圧縮してみよう(上級者編)
3. カスタマイズを反映させる


Domino サーバー上でカスタマイズコードを更新します。



ブラウザキャッシュをクリアします。



Lotus iNotes に再度ログインします。



圧縮ボタンを押してみます。
→ 「メールファイルを圧縮しました」と表示されたら成功です。

26
© 2011 IBM Corporation
参照情報














テクてくLotus トピック – iNotesカスタマイズQ&A
https://www.ibm.com/developerworks/mydeveloperworks/groups/service/forum/topicThrea
d?topicUuid=5ed7438a-68f3-4630-ae51-f2b39d6b7ae4&communityUuid=b9fc1613-1e5e4fe7-9a9b-fabd0b5195f1
Lotus iNotes 8.5.1 新カスタマイズ機能解説
http://www.ibm.com/developerworks/jp/lotus/ldd_tech/2010july09_inotes.html
Manipulating data in Domino Web Access(英語)
http://www.ibm.com/developerworks/lotus/library/dwa-data/
Manipulating data in iNotes Lite forms (英語)
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/manipulating-data-in-inotes-lite-forms
iNotes customization changes for 8.5 (英語)
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/inotes-customization-changes-for-8.5
Customization updates for 8.5.1 (英語)
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/customization-updates-for-8.5.1
Customization updates for 8.5.2 (英語)
http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Customization_updates_for_8.5.2

27
© 2011 IBM Corporation
© IBM Corporation 2011. All Rights Reserved.
ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており
、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本プレゼンeーションに含まれている情報につ
いては、完全性と正確性を帰するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本プレゼンテーションまたはその
他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本プレゼンテーションに含まれている内容は、IBMまた
はそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更すること
を意図したものでもなく、またそのような結果を生むものでもありません。
本プレゼンテーションでIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありませ
ん。本プレゼンテーションで言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方
法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高
の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。
パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザー
のジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。し
たがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。
記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよ
びパフォーマンス特性は、お客様ごとに異なる場合があります。
IBM、IBM ロゴ、ibm.com は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。
他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。
現時点でのIBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。
Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。
IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。
Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, Pentium は Intel Corporationまたは子会社の
米国およびその他の国における商標または登録商標です。
Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。
Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。
ITILは英国Office of Government Commerceの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。
UNIXはThe Open Groupの米国およびその他の国における登録商標です。
Cell Broadband Engineは、米国およびその他の国におけるSony Computer Entertainment, Inc.の商標であり、同社の許諾を受けて使用しています。
JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標です。
他の会社名、製品名およびサービス名等はそれぞれ各社の商標。

28
© 2011 IBM Corporation

More Related Content

Similar to Lotus iNotes をカスタマイズしてみよう

テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
Hiroaki Komine
 
dstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモdstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモ
dstn
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
MorioImai
 

Similar to Lotus iNotes をカスタマイズしてみよう (20)

XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!XPagesDay 2014 - What's new in XPages NOW!
XPagesDay 2014 - What's new in XPages NOW!
 
XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ
XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡXPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ
XPagesDay2014 [B-3] XPagesでRESTを使ってみたら、こんなんだったPartⅡ
 
2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料2012 05-19第44回cocoa勉強会発表資料
2012 05-19第44回cocoa勉強会発表資料
 
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とはテクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
テクてく Lotus 技術者夜会 03/16 Lotus Notes/Domino Upgrade Pack とは
 
IBM Notes/Domino and IBM Bluemix
IBM Notes/Domino and IBM BluemixIBM Notes/Domino and IBM Bluemix
IBM Notes/Domino and IBM Bluemix
 
Adobe flash platform update 2010/11/17
Adobe flash platform update 2010/11/17Adobe flash platform update 2010/11/17
Adobe flash platform update 2010/11/17
 
CSS Nite in SAPPORO x a-blog cms
CSS Nite in SAPPORO x a-blog cmsCSS Nite in SAPPORO x a-blog cms
CSS Nite in SAPPORO x a-blog cms
 
Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
 
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
Internet Explorer 9 の新機能「固定サイト」 (Pinned sites)
 
Coldfusion紹介資料2015
Coldfusion紹介資料2015Coldfusion紹介資料2015
Coldfusion紹介資料2015
 
チェックポイント(1)(2)(3) デモンストレーション
チェックポイント(1)(2)(3) デモンストレーション チェックポイント(1)(2)(3) デモンストレーション
チェックポイント(1)(2)(3) デモンストレーション
 
dstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモdstn交流会_data_spider 3.0最新情報とデモ
dstn交流会_data_spider 3.0最新情報とデモ
 
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極めるMagento Meetup Tokyo 14 〜メンテナンス画面を極める
Magento Meetup Tokyo 14 〜メンテナンス画面を極める
 
How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022How to use ADMT on Windows Server 2022
How to use ADMT on Windows Server 2022
 
Notes DB 85
Notes DB 85Notes DB 85
Notes DB 85
 
TF Seminar 20110218
TF Seminar 20110218TF Seminar 20110218
TF Seminar 20110218
 
CMSとIAで変化ヲ抱擁セヨ
CMSとIAで変化ヲ抱擁セヨCMSとIAで変化ヲ抱擁セヨ
CMSとIAで変化ヲ抱擁セヨ
 
これからのサイト構築のお話 ~テーマTwentySeventeenとマーケティング~
これからのサイト構築のお話 ~テーマTwentySeventeenとマーケティング~これからのサイト構築のお話 ~テーマTwentySeventeenとマーケティング~
これからのサイト構築のお話 ~テーマTwentySeventeenとマーケティング~
 
Dotnetlab 20110827
Dotnetlab 20110827Dotnetlab 20110827
Dotnetlab 20110827
 
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組みモバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
モバイルゲームの「大規模な開発」かつ「高頻度の更新」を実現するための開発環境整備の取り組み
 

Recently uploaded

The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
koheioishi1
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
YukiTerazawa
 

Recently uploaded (8)

次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 

Lotus iNotes をカスタマイズしてみよう

  • 1. テクてくLotus 技術者夜会 ~Lotus iNotes をカスタマイズしてみよう~ 2011/11/18 Yamato Software Development Lab Lotus Product Development Masashi Miyazaki (m1miyaza@jp.ibm.com) Kouichiro Morinaka (morinaka@jp.ibm.com) 1 © 2010 IBM Corporation
  • 2. Lotus iNotes をカスタマイズしてみよう    Lotus iNotes は HTML, JavaScript や CSS といった Web 標準技術を採用しフレキシブルなアーキテクチャを実現し ています。 カスタマイズについても同様に、CSS を使った外観の変更 や、JavaScript を使った動作の変更など様々な方法でカス タマイズを行うことが可能です。また、8.5.1 以降のリ リースでカスタマイズが行いやすいように様々な機能拡張 を行ってきました。 本日のハンズオンでは、Lotus iNotes カスタマイズの概要 や方法をご説明し、簡単なカスタマイズを実際に体験して いただくことができます。 2 © 2011 IBM Corporation
  • 3. Lotus iNotes アーキテクチャ 参照 Full Mode iNotes/ Forms85.nsf mail85.ntf &ui=inotes (default) HTML, JavaScript, CSS, Images 設 計 Lite Mode &ui=dwa_lite ビュー設計 mail/ user.nsf iNotes Page データ Ultralite Mode 3 &ui=dwa_ulite © 2011 IBM Corporation
  • 4. Lotus iNotes アーキテクチャ+カスタマイズ 参照 iNotes/ Forms85.nsf mail85.ntf HTML, JavaScript, CSS, Images 設 計 ビュー設計 mail/ user.nsf iNotes/ Forms85_x.nsf カスタム JS カスタム CSS カスタムイメージ iNotes Page データ 4 © 2011 IBM Corporation
  • 5. Lotus iNotes カスタマイズの概要  iNotes/Forms85.nsf    Lotus iNotes 本体のコード (HTML, JavaScript, CSS, 画像等) が含まれて います。 Lotus iNotes は AJAX アプリケーションです。データ・デザイン情報・追 加コード等は必要に応じてバックグラウンドでロードされます。 iNotes/Forms85_x.nsf     8.5.1 から新規導入された Forms85_x.ntf を使って作成します。 Forms85.nsf から Forms85_x.nsf 内のカスタマイズコードが呼び出され 、Lotus iNotes の動作をフック、またはオーバーライドすることが可能で す。 Hotfix, Fixpack を適用しても Forms85_x.nsf は上書きされないためカス タマイズ再適用の必要がありません。ただし事前の動作検証を推奨します 。 メンテナンスリリース適用時にも Forms85_x.nsf は上書きされませんが、 事前の動作検証が必要です。製品コードの変更によりカスタマイズが動作 5 しない可能性もあります。 © 2011 IBM Corporation
  • 6. カスタマイズ用設計要素 (8.5.1) サブフォーム名 アーキテクチャ 説明 Custom_Banner Classic Custom_Banner_Lite Lite Custom_common_Utils Classic/Lite 各サブフォームから呼び出される共通機能を定義可能 Custom_CSS Classic/Lite CSS を使用したカスタマイズ Custom_CSSPortal Classic/Lite CSS を使用したカスタマイズ (Portal 用) Custom_JS Classic Custom_JS_Lite Lite Custom_JS_Edit Classic/Lite リッチテキストエディタにフォントを追加 Custom_Masthead Classic/Lite マストヘッド用 HTML のカスタマイズ Custom_Page_Dictionary Classic/Lite ここで定義した変数を Custom_CSS 内で参照可能 Custom_Welcome Classic/Lite ウェルカムページに選択肢を追加 「IBM Lotus iNotes」ロゴを置き換える JavaScript を使用したカスタマイズ ※ Custom_CSS と Custom_JS_Lite についてはハンズオンで取り上げます。 ※ 8.5.3 現在、メールフォーム (Full/Lite)、会議招集フォーム (Lite のみ) とすべてのフォル ダ・ビューが Lite アーキテクチャです。それ以外はすべて Classic アーキテクチャです。 6 © 2011 IBM Corporation
  • 7. カスタマイズ用設計要素 (8.5.2 で追加) サブフォーム名 アーキテクチャ 説明 Custom_AppointmentDictionary Classic Custom_AppointmentDictionary_Lite Lite Appointmentフォーム用のカスタム 変数定義 Custom_ContactDictionary Classic Custom_ContactDictionary_Lite Lite Custom_Logout Classic/Lite Custom_MailMemoDictionary Classic Custom_MailmemoDictionary_Lite Lite ログアウト時に実行される@関数な どを定義可能 MailMemoフォーム用のカスタム変 数定義 Custom_TodoDictionary Classic Todoフォーム用のカスタム変数定義 Custom_TodoDictionary_Lite Lite Contantフォーム用のカスタム変数 定義 ※ 8.5.3 現在、メールフォーム (Full/Lite)、会議招集フォーム (Lite のみ) とすべてのフォル ダ・ビューが Lite アーキテクチャです。それ以外はすべて Classic アーキテクチャです。 7 © 2011 IBM Corporation
  • 8. ソースコードの Obfuscation (難読化)  Lotus iNotes では高速化のためにソースコードの Obfuscation を行なっています。  空白や改行を削除  長い関数名、変数名を短いシンボル名に置き換え   DSq ← oScript  ELU ← com_ibm_dwa_ui_invokeAction  ESV ← com_ibm_dwa_ui_actionRefreshContent  EJs   AAA ← com_ibm_dwa_globals BYp ← buildResourcesUrl ← oContext 変換テーブルが Forms85.nsf 内に ObfuscationList.txt として提 供されており、実際のシンボル名を確認することが可能です。 8 © 2011 IBM Corporation
  • 9. Lotus iNotes をカスタマイズしてみよう  ハンズオンの環境について  IBM Lotus Domino Server 8.5.3 日本語版  IBM Lotus Domino Designer 8.5.3 日本語版  Web ブラウザ    Internet Explorer http://windows.microsoft.com/ja-JP/internetexplorer/products/ie/home IE Developer Toolbar (IE8/9 では不要) http://www.microsoft.com/download/en/details.aspx? id=18359 Google Chrome http://www.google.co.jp/chrome/intl/ja/landing_ie.html 9 © 2011 IBM Corporation
  • 10. Lotus iNotes をカスタマイズしてみよう  ハンズオンで行うカスタマイズ  A. 文字サイズを大きくしてみよう (Custom_CSS)  B. メール送信前に確認画面を表示してみよう (Custom_JS_Lite)  C. メールファイルを圧縮してみよう (Custom_JS_Lite + LotusScript) 10 © 2011 IBM Corporation
  • 11. A. 文字サイズを大きくしてみよう 1. iNotes/Forms85_x.nsf を作成     Forms85_x.ntf を使って Forms85_x.nsf を作成します。 データベースプロパティを変更します。 (テンプレートからの設計更新) 適切なアクセス権を設定します。 (-Default- が設計者になっています) ハンズオン環境では作成済みです。 11 © 2011 IBM Corporation
  • 12. A. 文字サイズを大きくしてみよう 2. 変更したい文字に適用されている CSS スタイルを確認  Internet Explore または Google Chrome を起動して iNotes にログインします。   ユーザー名 – Test User   メールファイル – http://localhost/mail/tuser.nsf パスワード – password デベロッパーツールを起動します  IE6/7 の場合 – マウスカーソルのアイコン  IE8/9 の場合 – 歯車のアイコン → F12 開発者ツール  Chrome の場合 - スパナのアイコン → ツール → デベロッパー ツール 12 © 2011 IBM Corporation
  • 13. A. 文字サイズを大きくしてみよう 2. 変更したい文字に適用されている CSS スタイルを確認  デベロッパーツールで「受信ボック ス」に適用されている CSS スタイル を確認します    IE の場合 – マウスカーソルのア イコン → 「受信ボックス」をク リック Chrome の場合 – Elements タ ブ → 左下の虫眼鏡アイコン → 「受信ボックス」 をクリック → s-outline-text というスタイ ルが適用されていることが分かり ます (右側のタブで変更も可能) 13 © 2011 IBM Corporation
  • 14. A. 文字サイズを大きくしてみよう 3. Domino Designer で Forms85_x.nsf を変更   Domino Designer を起動して iNotes/Forms85_x.nsf を開きます 。 Custom_CSS サブフォームに以下の CSS を追加します。 .s-outline-text { font-size: 95%; }  Custom_CSS サブフォームを保存し て閉じます 14 © 2011 IBM Corporation
  • 15. A. 文字サイズを大きくしてみよう 4. カスタマイズを反映させる  Domino サーバー上でカスタマイズ コードを更新します。    tell http quit コマンドを実行し て HTTP タスクを終了 load http コマンドを実行して HTTP サーバーを再起動 ブラウザキャッシュをクリアします 。   IE の場合 – Developer Toolbar の Cache – Always Refresh from Server Chrome の場合 – デベロッパー ツールの右下の歯車アイコン → Disable cache 15 © 2011 IBM Corporation
  • 16. A. 文字サイズを大きくしてみよう 5. 動作を確認する  Lotus iNotes に再度ログインします 。 → 文字サイズが大きくなっていれば 成功  ヒント  s-page-title や s-label-light 等 の文字サイズも変更すると全体の 統一感が出ます 16 © 2011 IBM Corporation
  • 17. B. メール送信前に確認画面を表示してみよう 1. カスタマイズするアーキテクチャを 確認   Domino Designer を起動して iNotes/Forms85_x.nsf を開きます 。 Custom_JS サブフォームに以下の コードを追加します。 function Custom_Scene_PreSubmit(s_ SceneName, o_Window, s_SubmitAction) { alert(“Custom_Scene_PreSub mit(“ + s_SceneName + “, “ + o_Window + “, “ + s_SubmitAction + “)”); return s_SubmitAction; } 17 © 2011 IBM Corporation
  • 18. B. メール送信前に確認画面を表示してみよう 1. カスタマイズするアーキテクチャを確認   Custom_JS_Lite サブフォームに以下のコードを追加します。 function Custom_Scene_PreSubmit_Lite(s_SceneName, bInEditMode) { alert(“Custom_Scene_PreSubmit_Lite(“ + s_SceneName + “, “ + bInEditMode + “)”); return true; } ヒント  Custom_Scene_PreSubmit/Custom_Scene_PreSubmit_Lite は文書の 保存または送信時に呼び出されます。  alert(“…”); の代わりに debugger; を追加すると、スクリプトデバッガで 処理を中断することができます。 18 © 2011 IBM Corporation
  • 19. B. メール送信前に確認画面を表示してみよう 2. カスタマイズを反映させる  Domino サーバー上でカスタマイズコードを更新します。  ブラウザキャッシュをクリアします。  Lotus iNotes に再度ログインします。  自分宛にメールを送信してみます。 → Custom_Scene_PreSubmit_Lite と表示されたのでメールフォームは Lite アーキテクチャと分かります → メールフォームの s_SceneName が memo であることが分かります 19 © 2011 IBM Corporation
  • 20. B. メール送信前に確認画面を表示してみよう 3. Custom_JS_Lite をカスタマイズする  Custom_JS サブフォームの変更を元に戻します。  Custom_JS_Lite サブフォームに以下のコードを追加します。 function Custom_Scene_PreSubmit_Lite( s_SceneName, bInEditMode ) { if (s_SceneName == “memo”) { if (!confirm(‘送信しますか?’)) return false; } return true; }  ヒント   s_SceneName が memo の時だけ処理することでメール送信時にのみカ スタマイズを適用しています。 return false; でメール送信をキャンセル、return true; でメール送信を続 20 行しています。 © 2011 IBM Corporation
  • 21. B. メール送信前に確認画面を表示してみよう 4. カスタマイズを反映させる  Domino サーバー上でカスタマイズコードを更新します。  ブラウザキャッシュをクリアします。  Lotus iNotes に再度ログインします。  自分宛にメールを送信してみます。 → 送信しますか?」と表示されます →「キャンセル」を選択してメールが送信されなかったら成功です 21 © 2011 IBM Corporation
  • 22. C. メールファイルを圧縮してみよう(上級者編) 1. 受信ボックスにボタンを追加  Custom_JS_Liteサブフォームの以 下のコメントを削除します。 <NotesComment> → 削除 // Expose this comment block to include actions helper routines for Lite mode <InsertNotesSubForm Name=API_ActionsHelper_Subfor m_Lite> </NotesComment> → 削除 22 © 2011 IBM Corporation
  • 23. C. メールファイルを圧縮してみよう(上級者編) 1. 受信ボックスにボタンを追加  Custom_JS_Lite サブフォームの Custom_Scene_Actions_Lite を変更し ます。 function Custom_Scene_Actions_Lite(s_MenuID) { if (s_MenuID.indexOf(“mailview”) != -1) { var bLeftItems = true; var aAdd1 = [{ title:“圧縮”, find_id: “new”, id: “compress”, before: true, action:“actionCompress”, help_text:“メールファイルを圧縮します“ }]; addActionsLite( s_MenuID, bLeftItems, aAdd1 ); } } 23 © 2011 IBM Corporation
  • 24. C. メールファイルを圧縮してみよう(上級者編) 1. 受信ボックスにボタンを追加  Custom_JS_Lite サブフォームに以下のコードを追加します。 function actionCompress() { var sUrl = location.href.split(‘.nsf’)[0] + ‘.nsf/compress?OpenAgent’; var oHttpRequest = window.XMLHttpRequest ? new XMLHttpRequest : new ActiveXObject('Microsoft.XMLHttp'); oHttpRequest.open('GET', sUrl); oHttpRequest.onreadystatechange = function() { if (this.readyState == 4) alert(this.responseText); } oHttpRequest.send(); } 24 © 2011 IBM Corporation
  • 25. C. メールファイルを圧縮してみよう(上級者編) 2. メールファイルを圧縮するエージェントを作成  mail/tuser.nsf 内に compress エージェントを作成します。 Sub Initialize Dim session As New NotesSession Dim db As NotesDatabase Set db = session.CurrentDatabase Call db.Compact() Print "Content-Type:text/plain; charset=Shift_JIS" Print "メールファイルを圧縮しました" End Sub  ヒント   実行時トリガーを 「スケジュール」「なし」に変更します NotesDatabase.Compact を実行するために 「制限付き LotusScript/Java エージェントの署名または実行」のアクセス権が必要に なります 25 © 2011 IBM Corporation
  • 26. C. メールファイルを圧縮してみよう(上級者編) 3. カスタマイズを反映させる  Domino サーバー上でカスタマイズコードを更新します。  ブラウザキャッシュをクリアします。  Lotus iNotes に再度ログインします。  圧縮ボタンを押してみます。 → 「メールファイルを圧縮しました」と表示されたら成功です。 26 © 2011 IBM Corporation
  • 27. 参照情報        テクてくLotus トピック – iNotesカスタマイズQ&A https://www.ibm.com/developerworks/mydeveloperworks/groups/service/forum/topicThrea d?topicUuid=5ed7438a-68f3-4630-ae51-f2b39d6b7ae4&communityUuid=b9fc1613-1e5e4fe7-9a9b-fabd0b5195f1 Lotus iNotes 8.5.1 新カスタマイズ機能解説 http://www.ibm.com/developerworks/jp/lotus/ldd_tech/2010july09_inotes.html Manipulating data in Domino Web Access(英語) http://www.ibm.com/developerworks/lotus/library/dwa-data/ Manipulating data in iNotes Lite forms (英語) http://www-10.lotus.com/ldd/dominowiki.nsf/dx/manipulating-data-in-inotes-lite-forms iNotes customization changes for 8.5 (英語) http://www-10.lotus.com/ldd/dominowiki.nsf/dx/inotes-customization-changes-for-8.5 Customization updates for 8.5.1 (英語) http://www-10.lotus.com/ldd/dominowiki.nsf/dx/customization-updates-for-8.5.1 Customization updates for 8.5.2 (英語) http://www-10.lotus.com/ldd/dominowiki.nsf/dx/Customization_updates_for_8.5.2 27 © 2011 IBM Corporation
  • 28. © IBM Corporation 2011. All Rights Reserved. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目的のみで提供されており 、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありません。本プレゼンeーションに含まれている情報につ いては、完全性と正確性を帰するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわらずいかなる保証も伴わないものとします。本プレゼンテーションまたはその 他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた場合も、IBMは責任を負わないものとします。 本プレゼンテーションに含まれている内容は、IBMまた はそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更すること を意図したものでもなく、またそのような結果を生むものでもありません。 本プレゼンテーションでIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを暗示するものではありませ ん。本プレゼンテーションで言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決定権をもっていつでも変更できるものとし、いかなる方 法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。本資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高 の向上、またはその他の結果が生じると述べる、または暗示することを意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザー のジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。し たがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたものです。実際の環境コストおよ びパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com は、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。 他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。 現時点でのIBM の商標リストについては、www.ibm.com/legal/copytrade.shtmlをご覧ください。 Adobe, Adobeロゴ, PostScript, PostScriptロゴは、Adobe Systems Incorporatedの米国およびその他の国における登録商標または商標です。 IT Infrastructure Libraryは英国Office of Government Commerceの一部であるthe Central Computer and Telecommunications Agencyの登録商標です。 Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, Pentium は Intel Corporationまたは子会社の 米国およびその他の国における商標または登録商標です。 Linuxは、Linus Torvaldsの米国およびその他の国における登録商標です。 Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標です。 ITILは英国Office of Government Commerceの登録商標および共同体登録商標であって、米国特許商標庁にて登録されています。 UNIXはThe Open Groupの米国およびその他の国における登録商標です。 Cell Broadband Engineは、米国およびその他の国におけるSony Computer Entertainment, Inc.の商標であり、同社の許諾を受けて使用しています。 JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標です。 他の会社名、製品名およびサービス名等はそれぞれ各社の商標。 28 © 2011 IBM Corporation