本文へジャンプ

ソフトウェア > Lotus > Lotus Developer Domain > 製品別技術情報 > Lotus Notes/Domino > 

LDD Today

テンプレートに関するトラブルPart1


Lotus Software
by David Byrd、Timothy Speed
レベル:すべて
対象: Notes/Domino
原文の掲載:2003年8月4日

LDD Todayの原文(US)

インデックス
テンプレート入門
テンプレートの設定
データベース設計の更新
重複テンプレート名ツール
設計要素の継承情報の検索
更新されない設計要素
テンプレートからのACLの設定
テンプレート:開発者の友

あなたはノートPCでこの48時間ずっとLotus Notesデータベースを設計し続けています。設計要素を追加して更新し、グラフィックスを追加し、LotusScriptを使用した開発を行って、最高に素晴らしいアプリケーションを作成しているところです。今は金曜日の夜、時計は11時をまわりました。あなたはとても疲れており、そろそろ帰宅しようと思っています。ノートPC上で加えた変更をDominoサーバーに複製して、コーヒーの最後の一口を飲み干し、外に出る途中、階段で転びそうになります。家へ帰り、すっかり寝入っていましたが、夢の途中で目覚めます。突然、あの素晴らしいデータベースに加えるべき変更がひらめいたのです。すぐにとりかからなくてはなりません。今は午前4時です。ダイヤル・アップしてサーバーに接続し、作業していたデータベースにアクセスします。Domino Designerを開き、直接サーバー上で設計要素を探します。ところが恐ろしいことに、新しく作成したあなたの設計要素はすべて消えていました。この2日間の作業がすべてなくなっているのです。残っているのは、ディスカッション・データベース・テンプレートの標準設計要素だけです。あなたは悪態をつき、作成したデータがないという事実を信じまいとしました。しかし、それでは問題を解決することはできません。しまいには、これはハッカーか宇宙人の仕業に違いないという結論に達しました。いったい何が起こったのでしょうか?

回答:あなたは新しいデータベースをテンプレートに基づいて作成したため、テンプレートの継承名がデータベースのプロパティに残されていました。設計サーバーのタスクは午前1時に実行され、テンプレートの継承名に基づいて設計が置き換えられたのです。幸いなことに、何も壊れてはいません。これはすべて正常な動作です。この場合、ラップトップ上で加えた変更をサーバーに複製していないことを祈りましょう。複製している場合、すべての努力が水の泡となった可能性があるからです。

2つのパートから構成されるこのシリーズでは、Dominoテンプレートによって発生する可能性のある問題について検討します。テンプレートからデータベースを作成した場合、mail.ntfなどのNotes標準テンプレートであるかカスタム設計テンプレートであるかにかかわらず、データベースはテンプレートから設計要素を継承します。データベースが適切に構築された場合、マスター・テンプレートから設計を継承したデータベースは設計サーバーの夜間タスクによって最新状態に更新されます。テンプレートは、次のようなさまざまな目的に使用できます。
  • テンプレートのテーマ(ディスカッション、データベース・ライブラリー、アドレス帳など)に基づく新規データベースの作成
  • アプリケーション設計の更新
  • 複数テンプレートの要素を使用した単一(NSF)アプリケーションの更新
  • 別の開発者へのテンプレート経由による設計の転送
  • ECL(Execution Control Lists:操作制御リスト)のためのアプリケーション設計要素への署名呼び出し
  • 同じ設計を持つ複数アプリケーション(たとえば、メール・ファイルなど)の更新
  • 設計要素の単一コピーを複数のデータベースに活用した、新しいSingle Copy Template機能によるディスク・スペースの削減
この記事ではテンプレートを紹介し、その詳しい動作について解説します。さらに、ツールのビルド方法も紹介して、テンプレートの操作をお手伝いします(このツールの完全なコードは、Sandboxからダウンロードできます)。このシリーズのパート2では、テンプレートの最良実例および使用可能な他のツールについて紹介します。この記事のシリーズは、Notes/Dominoテンプレートを使い始めたばかりのビギナーに対しても有用ですが、Notes/Dominoのプログラミングについてある程度理解されていることを前提としています。また、テンプレートの最新機能に関するLDD Todayの解説記事「Enhancements to Notes/Domino 6.0.1 and 6.0.2」をお読みになることをお勧めします。


テンプレート入門
データベース・テンプレートを使用すると、アプリケーションの管理および展開をかなり厳密に制御できるようになります。各テンプレートでは、さまざまなデータベースの設計を(直接的に、または間接的に)制御できます。データベース自身には全体的なテンプレートの継承設定が備わっていますが、これは多くの継承手法によって改良できます。
  • 単一データベース・テンプレート
    データベースは1つのテンプレートからのみ継承するため、これが最も基本的なセットアップです。テンプレート名は、データベースの設計プロパティで定義されます。
  • 外部設計要素付き単一データベース・テンプレート
    このセットアップは、最初のセットアップとほぼ同じです。異なる点は、追加の設計要素がデータベースに加えられていて、その設計要素がメイン・データベース・レベルのテンプレート以外に別のテンプレートからも継承するところです。このテンプレートの利点は、1つのテンプレートをコード・ライブラリーとして各種アプリケーションで再利用できることです。
  • 別のテンプレートから継承するテンプレート
    このセットアップも最初のテンプレートとほぼ同じですが、テンプレート自身がNotesデータベースであるという点が異なります。テンプレートは、最初のケースのように別のテンプレートから直接継承するか、または2番目のように追加した別の設計要素から継承することができます。メイン・データベースには、これらの継承の組み合わせが持ち込まれます。
  • スクリプト・ライブラリー
    このセットアップは、エージェントの設計を制御するのに有効です。エージェントに変更を加えた場合、エージェントの再有効化および再スケジューリングが必要な場合があります。エージェントが使用中のスクリプト・ライブラリーに変更を加えた場合、そのエージェントの再有効化または再スケジューリングは必要ありません。
継承は、設計要素レベルでも設定することができます。この設定によって、データベースをさらに厳密に制御できます。ほとんどのデータベースの設計要素では、データベースの設計プロパティで定義されたテンプレート名を無効にできます。Domino Designerで設計要素を右クリックすることにより、これらの設定を確認し、変更することができます。[Design Document(設計文書)]ダイアログ・ボックスに表示される設定は、設計要素のタイプによって変わります。たとえば、データベース・アイコンの設計要素で禁止できるのは、設計の更新、置換、または変更のみです。他の設計要素には、エージェント設計要素の[Run Agent as Web user(Webユーザーとしてエージェントを実行する)]など、固有の機能が備わっています。さらに、NotesクライアントまたはWebブラウザーのどちらでも、個々の設計要素を選んで実行時に非表示にすることができます。これは、両クライアント上で稼動するNotesアプリケーションを構築する開発者に非常によく利用されている機能です。[Design Document]ダイアログ・ボックス上にある最後のテンプレート関連機能は、[Prohibit(禁止)]および[Propagate(伝搬)]設定です。これらの設定によって、テンプレートの更新または置換によって設計要素が更新されるのを防げます。[Propagate this prohibition of design change(設計変更の禁止を伝搬する)]設定をオンにすると、設計要素はテンプレートからこの設定を継承します。

次の画面は、ほとんどの設計要素で表示される標準的な[Design Document]ダイアログ・ボックスです。



このダイアログ・ボックスは、ある外部テンプレートからこの設計要素(この場合はフレームセット)のみへの固有の継承を示しています。この設計タイプは、Release 4では存在しなかったため、[Do not show this design element in menus of Notes R4 or later clients(この設計要素をNotes R4以降のクライアントのメニューに表示しない)]設定は不要であり、表示されません。



Release 5では、[Agent(エージェント)]ダイアログ・ボックスに[Run Agent as Web User]設定が追加されています。



しかしNotes/Domino 6では、この[Run Agent as Web User]オプションは[Agent Properties(エージェント・プロパティ)]ボックスの一部として構成されています。



次の[Design Document]ダイアログ・ボックスは、グローバル・データベース要素に固有のものです。これらの要素には、[Using Database(データベースの使用方法)]ドキュメント、[About this Database(このデータベースについて)]ドキュメント、およびデータベース・スクリプトがあります。



同様にIcon(アイコン)設計要素にも、固有の[Design Document]ダイアログ・ボックスがあります。Icon設計要素には、アイコン情報だけでなく、[Inherit from name(名前から継承)]プロパティや[database launch(データベースの起動)]プロパティなど、データベースに関するさまざまな情報が格納されています。NotesPeekのようなツールを使用すると、この追加情報が表示できます。



単一データベースでは、複数のテンプレートから継承することもできます。たとえば、[Design(設計)]タブを選択し、[Inherit from the design template(設計テンプレートから継承する)]フィールドに、そこから設計要素を継承したいテンプレート名を入力します。すると、データベースを更新するたびに、指定したテンプレートから自動的にこれらの設計要素が継承されます。

 
上に戻る
 
テンプレートの設定
では、どうすれば標準テンプレートを使用できるのでしょうか? たとえば、ディスカッション・データベースを作成するとします。Domino Designerで、[File(ファイル)]−[Database(データベース)]−[New(新規作成)]の順に選択します。すると、次のようなダイアログ・ボックスが表示されます。



ほとんどの読者の皆さんは、この簡単で手早い方法でデータベースを作成されたことと思います。では、データベースとテンプレートの設定およびプロパティについていくつか見てみましょう。次の画面には、テンプレートまたはデータベースの継承を制御する設定が表示されています。



ここが、最初からトラブルを起こす可能性のある個所です。新しくアプリケーションを作成した場合、[Inherit design from master template(マスター・テンプレートの設計を継承する)]設定を必ず確認してください。カスタム・アプリケーションの作成にテンプレートを使用する場合、設計プロパティの[Inherit design from master template]の名前をすぐに変更してください(ほとんどのサーバーは、設計タスクを毎日実行して設計を更新します)。カスタム・データベースを作成したら、そのデータベースをテンプレートとして使用して、別のアプリケーションを作成できます。

ひとつ注意が必要な点は、継承マスター・テンプレート名の下に表示されるテンプレートのバージョン情報です。この(Notes/Domino 6.0.1から導入された)新機能では、$TemplateBuildという共有フィールドを保持できるので、より簡単にテンプレートを識別できます。$TemplateBuildフィールドのプロパティは、LotusScriptまたはフォーミュラ言語を使用してバックグラウンドから設定する必要があります(このデータが含まれる2つの主要なフィールドは、$TemplateBuildNameと$TemplateBuildDateです。「Notes/Domino 6 discussion forum」に、Thomas Gumz氏が作成した、このデータを取得するためのLotusScriptサンプル・コードがあります)。

データベースは、設計プロパティによってテンプレートと関連付けられます。次の画面では、このメール・ファイルがiNotes60テンプレートから設計を継承しているのがわかります。



なお、テンプレートおよび個々の設計要素に署名しなければならないことに注意してください。ユーザーがデータベースまたはいずれかの設計要素を開くと、その使用が許可される前に、ワークステーションECLと照合して署名がチェックされます。ワークステーションECLの適切な設計については、この記事の範囲外です。詳細については、Notes Client helpを参照してください。
 
上に戻る
 
データベース設計の更新
既存データベースの設計を更新/置換するには、次の3方法を利用できます。
  • 設計サーバー・タスク
  • 変換サーバー・タスク
  • Notesクライアント
設計タスク
Dominoサーバーの設計タスクは、デフォルトで毎日午前1時に実行されます。このタスクは、いずれかのテンプレートから更新するデータベースすべての設計を更新します。設計タスクは、一致する名前(たとえば、iNotes60.ntf)を探してサーバーのNotesデータ・ディレクトリー内の全テンプレートを検索します。設計タスクは、テンプレートを見つけると、データベース(NSF)とテンプレート(NTFまたはNSF)間の各データベース要素を比較します。より新しい設計要素を発見すると、データベース内の設計要素と入れ替えます。注意を要する重要な点は、これは置換ではなく単なる更新であることです。これは、データベース・レベルまたは設計要素レベルで実行されます。
設計タスクは最初の起動時、使用可能なテンプレート・リストを構築する全データベースをスキャンします。2つのテンプレートに同じ名前が設定されていると、このプロセスによってエラーが発生する場合があります。たとえば、次の場合です。

04/28/2003 01:00:56 AM WARNING:
Both nntpdi50.ntf and nntpdi46.ntf claim
to be Design Template 'StdR5.0NNTPDisc'

このエラーを避けるために、重複したテンプレート名がないようにしてください。重複したテンプレート名がある場合、設計の更新プロセス(手動またはサーバー・ベース)は、テンプレートのファイル名がアルファベット順で最初の設計要素を使用します。
テンプレートのスキャンが終了すると、設計タスクはサーバー上のデータベースを処理して、データベースと関連付けられたテンプレート名を持つ要素を探します。テンプレートが見つからなかった場合、次のエラー・メッセージが表示されます。

04/28/2003 1:01:06 AM Warning:
Cannot locate design note 'servers.gif' in 'DOLS Resource Template' template

テンプレートがサーバー上にある場合、このエラーは心配の種になりかねません。しかしこのメッセージは、特に一部のシステム・データベースによって、非エラー状態時にも表示される場合があります。一致するテンプレートが発見されると、設計要素は名前で比較され、更新する必要があるかどうか確認されます。テンプレートに別のバージョンがある場合、[Prohibit design refresh or replace to modify(設計を更新または置換して修正するのを禁止する)]設定がオンにされていない限り、設計要素は追加、更新、またはデータベースから削除されます。これらの変更の処理中、サーバー・ログには次のようなメッセージが表示されます。

04/28/2003 1:01:46 AM Updating 'DOLS Configuration Settings' into database 'Extended Mail (R6)' from template 'DOLS Resource Template'
04/28/2003 1:01:46 AM Updating 'DOLS Download Control' into database 'Extended Mail (R6)' from template 'DOLS Resource Template'
04/28/2003 1:01:46 AM Updating 'DOLS Download Instructions' into database 'Extended Mail (R6)' from template 'DOLS Resource Template'
04/28/2003 1:01:46 AM Updating 'DOLS Load Download Page' into database 'Extended Mail (R6)' from template 'DOLS Resource Template'
04/28/2003 1:01:46 AM Updating 'DOLS Offline Configuration' into database 'Extended Mail (R6)' from template 'DOLS Resource Template'
04/28/2003 1:01:46 AM Updating 'DOLS Request Offline ID' into database 'Extended Mail (R6)' from template 'DOLS Resource Template

設計要素がデータベースから原因不明で消失した場合、チェックすべき個所はここです。

変換タスク
変換サーバー・タスクは、テンプレートの世界で使用するもう1つのツールです。このサーバー・タスクは、従来メール・データベースの更新に使用されてきましたが、あらゆるデータベースに使用することができます。設計タスクとは異なり、変換タスクでは更新ではなく置換操作が行われます。変換タスクには、置換操作を制御するための複数のコマンド行オプションがあります。次のサンプル・コードでは、変換タスクはユーザーのメール・データベースの設計を、アスタリスク(*)表示のある現在の設定に関係なくLotus Notes 6メール・テンプレートと置換します。

load convert mail\user.nsf * mail6.ntf

他の場所のテンプレートを利用するこのオプションによって、データベース展開の制御力が増します。処理のログ記録はステータス・バーによって実行されますが、Notes 6クライアントではバックグラウンド処理としては実行されません。

Notesクライアント
さらにNotesクライアントにも、更新および置換操作を実行するロジックが含まれています。これによって、テンプレートからのデータベースの更新が可能になり、データベースやテンプレートをあらゆるサーバーに置くことができるため、とても役立ちます(設計および変換サーバー・タスクでは、テンプレートをサーバー上でローカルに置く必要があります)。これは、Notesワークスペースから、またはブックマークを使用して実行できます。更新するデータベースを選択し、アイコンを右クリックします。次に[Database(データベース)]−[Refresh Design(設計の更新)]の順に選択します。これで、変更された設計要素が更新されます。

クライアントから設計を更新すると、たとえば次のようなエラーがステータス・バーに表示されます。

Both bubba.ntf and Joebob.ntf claim to the Design Template ‘Accounting’

またこのエラーは、設計タスクの実行後、log.nsfファイル内でも発生する場合があります。このエラーが発生した場合、アルファベット順で最初にリストアップされているデータベースの設計が更新されます。したがって、この場合、bubba.ntfからの変更はAccounting.nsfの更新に使用され、Joebob.ntfの変更はすべて無視されます。
 
上に戻る
 
重複テンプレート名ツール
更新プロセスを開始する前に重複したテンプレート名を見つけ出すことは、もちろん有用です。これを実行するには、サード・パーティーのツールを使用することもできますし、ユーザー自身がコードを作成することもできます。次の例は、重複テンプレート名を検索するツールのコードを示したものです(このコードは、Sandboxからダウンロードできます)。
最初に、空のテンプレートを使用して、search.nsfという名前の新規データベースを作成します。次に、Domino Designerでこのデータベースに新規エージェントを作成し、Search(検索)という名前を付けます。Searchエージェントのランタイム・タイプを「Action List Selected(アクション・リスト選択時)」と設定し、Searchエージェントが[Actions(アクション)]メニューに表示されるようにします。次に、[Formula(式)]タイプ・リストから「LotusScript」を選択します。Searchエージェントの[Declarations(宣言)]オブジェクトに、次のコードを入力します。

Dim WhatServer As String
Dim dbd As NotesDbDirectory
Dim tmpDb As NotesDatabase
Dim Tdb As NotesDatabase
Dim SelectDBtype As String
Dim CountDb As Long
Dim view As NotesView
Dim ServerError As String
Dim currentdb As NotesDatabase
Dim item1 As NotesItem
Dim item2 As NotesItem
Dim doc As NotesDocument
Dim DefaultValue As String
Dim CheckTemplateValue As String
Dim AllOK As String
Dim NotesDatabase As NotesDatabase
Dim ServerPath As String
Dim dbtype As Variant
Dim DisplayServer As String

Searchエージェントの[Initialize(初期化)]オブジェクトに、次のコードを入力します。

Sub Initialize (This line is shown for reference only)
Dim profSession As New NotesSession
Dim session As New NotesSession
askagain:
WhatServer$ = Inputbox$("Enter Server name - 'exit' -to end program - enter nothing for Local")
' Leave blank for Local
If WhatServer$ = "exit" Then
Exit Sub
End If
If WhatServer$ = "" Then
DisplayServer$ = "Local"
Else
DisplayServer$ = WhatServer$
End If


AllOK$ = Lcase(Inputbox$("You have selected ---- "
& DisplayServer$ & " -- Is this Correct? Yes/No"))
If AllOK$ = "yes" Then
' All Done
Else
Goto askagain
End If

NextStuff:
' The next two lines will get a handle on the Notes data directory
Set dbd = New NotesDbDirectory( WhatServer$)
' Use as a generic counter - how many DBs are processed.
CountDb = 1
DBorTemplate:

' The next lines are used to determine if you want to process
templates or databases.

SelectDbtype$ = Lcase(Inputbox$("Select Database or Template"))
If SelectDbtype$ = "database" Then
dbType = DATABASE
Set tmpDb = dbd.GetFirstDatabase( dbtype)
Elseif SelectDbtype$ = "template" Then
dbType = TEMPLATE
Set tmpDb = dbd.GetFirstDatabase( dbtype)
Else
Goto DborTemplate
End If

' Here's the meat of the code. This gets a handle on each
database in the Notes data directory and extracts the
template information.

Do While Not ( tmpDb Is Nothing )
Serverpath$ = tmpdb.FilePath
Call tmpDb.Open( WhatServer$,ServerPath$)
Serverpath$ = tmpdb.FilePath
Set notesDatabase = New NotesDatabase( WhatServer$, ServerPath$ )

' The next lines are optional, but useful for
troubleshooting your code:

If notesDatabase.IsOpen Then
Print( "Successfully opened " & notesDatabase .Title )
Else
Print( "Unable to open database" )
End If
Print Serverpath$
Set Tdb = session.CurrentDatabase
Set doc = tdb.CreateDocument
doc.Subject = "New Template Entry"
doc.form = "New Template Entry"
doc.ServerName = WhatServer$
doc.RepID=tmpDb.ReplicaID
doc.pathname = Serverpath$
doc.dbtype = SelectDbtype$
doc.templatename = tmpDB.DesignTemplateName
doc.ActualDBtitle = tmpDB.Title
CheckTemplateValue$ = tmpDB.DesignTemplateName

' These lines are used as part of the user interface
to show which settings are enabled for the inheritance:

If tmpDB.DesignTemplateName = "" Then
doc.x= ""
Else
doc.x= "x"
End If
doc.databaseisatemplate = tmpDB.TemplateName
If tmpDB.TemplateName= "" Then
doc.y= ""
Else
doc.y= "x"
End If
Call doc.Save( True, True )
Call tmpDb.Close
nextentry:
Set tmpDb = dbd.GetNextDatabase

' Finally, these optional lines are used for
troubleshooting and/or process counting:

CountDb = CountDb + 1
Print CountDb
Loop

End Sub (This line is show for reference only)

次のステップでは、以下のフィールドを持つフォームをsearch.nsfデータベースに作成します。
  • Subject
    情報フィールドとして機能します。
  • ServerName
    データが抽出されたサーバーの名前。
  • RepID
    検索によって見つけ出された各データベースの複製ID。
  • pathname
    Notesデータのルート・パスで示したデータベースの位置。
  • dbtype
    テンプレートまたはデータベース。
  • templatename
    検索によって見つけ出された各データベースの継承名。
  • databaseisatemplate
    テンプレートの名前。
  • ActualDBtitle
    データベースのタイトル、またはテンプレートの名前。
これでデータが文書に配置されたので、ビューとエージェントを作成してデータをレポートすることができます。

フィールド名などの設計名を見つけ出すもう1つの方法は、Notes C APIです。前述のLotusScriptコードでは、データベースの設計名全体の概要を示しました。しかしこのコードでは、各設計要素は個別の継承名を持つことができるという事実が考慮に入れられていません。これらのテンプレートの参照は、全設計要素をスキャンし、[$Class]フィールドを調べることによってのみ取得できます。データベース内の全設計要素をスキャンすると、[$Class]フィールドには設計要素レベルの継承テンプレート名が含まれます。

[$Class]フィールドが存在しない場合、設計要素は外部ソースから明示的に継承しません。このアプリケーション・タイプのベースとして使用すべき適切なNotes C APIアプリケーションは、notesapi\samples\dbdesign\des_collディレクトリーにあるdes_collサンプル・コードです。このサンプル・コードは、所定のデータベース内にある全設計要素のリストを印刷するもので、[$Class]フィールドの有無をチェックし、その値を印刷するように簡単に拡張できます。
 
上に戻る
 
設計要素の継承情報の検索
この章では、個々の設計要素の継承名を検索する方法について説明します。まず、[Inherit from the design template]設定欄に「My Template」と入力します。



次に、設計要素内に含まれているフィールドをチェックし、[$Class]フィールドの値を確認します。ここには、設計のテンプレート名は含まれていないはずです。



次に、[Inherit name(継承名)]フィールドを消去して、[$Class]フィールドを削除します。


 
上に戻る
 
更新されない設計要素
偶然発見した1つの問題は、通常更新されない要素がどれであるかを、開発者が必ずしも知っているわけではないということです。テンプレートから更新されない設計要素のリストは、次のとおりです。
  • データベース・タイトル
  • データベース・タイプ
  • データベース設定のバックグラウンド・エージェントを無効にする
  • [Info(情報)]タブの設定
  • [Printing(印刷)]タブの設定
  • [List in Database catalog(データベース・カタログに一覧表示する)]設定
  • [Show in 'Open Database' dialog([データベースを開く]ダイアログに表示する)]設定
  • テンプレートの継承名(NSFとNTFの間で値が一致している必要があります)
  • [Include in multi-database indexing(マルチ・データベース索引付けに含める)]設定
  • マルチリンガル・データベース・データ(デフォルト言語、デフォルト領域、デフォルト・ソート順)
  • 全文索引付けオプションと設定
  • [Advanced(詳細)]タブの設定
  • [About This Database(このデータベースについて)]ドキュメント
  • 新規ドキュメント
 
上に戻る
 
テンプレートからのACLの設定
利用可能な素晴らしい機能の1つは、テンプレートのエントリーに基づいてACLエントリーを新規データベースに追加できることです。テンプレート上で、データベースに追加したいACLエントリーを追加します。ACL名をブラケットに入れ、アクセス・レベルおよびユーザー・タイプを設定します。たとえば、次の画面のようにします。



このテンプレートに基づいて新規データベースが作成されると、ACLエントリーが新規NSFファイルに配置されます。ここで留意すべきなのは、Person(ユーザー)またはGroup(グループ)の名前をブラケットに入れることによって(たとえば、[Administrators(アドミニストレーター)])、ACLエントリーを新規データベースに追加できることです。考えられる利用方法の1つとして、Administratorsグループを、mailbox.ntf経由でmail.boxに、およびmail6.ntf経由でユーザーのメール・ファイルに追加することができます。
 
上に戻る
 
テンプレート:開発者の友
この記事では、Notesテンプレートの内部の仕組みについて紹介し、設計変更やACL設定の制御など、テンプレートの仕組みと実行可能な機能について簡単に説明しました。また、設計情報の取得方法についても説明し、その手助けとなるツールを提供しました。パート2でも、引き続きNotesテンプレートについて解説し、最良のツールと手法を提供します。ご期待ください。



著者について
David Byrdは、ジョージア州アトランタのIBM Software Services for Lotus (ISSL)のコンサルティングITアーキテクトです。Byrd氏は、Lotus製品および幅広いテクノロジー(C/C++ API開発から、アプリケーション・アーキテクチャー、セキュリティー・アーキテクチャー、企業レベルのメッセージングとディレクトリーに重きを置くメッセージング・アーキテクチャーまで)のほぼすべての領域において博学多識です。氏はLotus NotesおよびDominoのために過去10年間働いてきており、Lotus、IBM、Redhat、Microsoft、およびNovellからの数多くの資格認定書を所持しています。Byrd氏の電子メール・アドレスは、david_byrd@us.ibm.comです。

Timothy Speedは、IBM Software Services for Lotus(ISSL)のインフラストラクチャーおよびセキュリティー・アーキテクトです。Speed氏は、ここ10年間はインターネットとメッセージング・セキュリティーに関わってきました。氏はさらに、長野オリンピックでのDominoインフラストラクチャー・チームに加わり、シドニー・オリンピックのLotus Notesシステムを支援しました。Speed氏が有する資格認定書には、MCSEc、VCA(VeriSign Certified Administrator)、Lotus Domino CLP Principal Administrator、およびLotus Domino CLP Principal Developerなどがあります。氏は以下の書籍の共著者でもあります。『The Internet Security Guidebook』(ISBN: 0122374711、2001年2月)、『The Personal Internet Security Guidebook』(ISBN: 0126565619、2001年10月)、『Enterprise Directory and Security Implementation Guide: Designing and Implementing Directories in Your Organization』(ISBN: 0121604527)、および『Internet Security: A Jumpstart for Systems Administrators and IT Managers』(ISBN: 1555582982)。Speed氏の電子メール・アドレスは、Tim Speed@us.ibm.comです。
 
上に戻る