lei ユーザーズガイド

367

Upload: dinhnhu

Post on 11-Jan-2017

295 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: LEI ユーザーズガイド
Page 2: LEI ユーザーズガイド

『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』

『IBM LEI (Lotus Enterprise Integrator) ユーザーズガイド』

Page 3: LEI ユーザーズガイド

『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』

前書き

本書には、IBM LEI (Lotus Enterprise Integrator for Domino) に関する情報が記載されています。LEI Server と LEI Administrator の使用方法について説明します。また、LEI の各アクティビティについての説明もあります。最後の付録は、チュートリアルになっています。

Lotus Connector との接続については、関連マニュアルの『Lotus Connector 接続ガイド』(lccon6.nsf) を参照してください。このドキュメントファイルは、LEI ではなく、Domino に付属しています。http://www.lotus.com/ldd の [Documentation Library] からもダウンロードできます。

Page 4: LEI ユーザーズガイド

『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』

関連ドキュメント関連ドキュメント関連ドキュメント関連ドキュメント

ここでは、LEI を使用するときに参考になるドキュメントを紹介します。

メモメモメモメモ LEI の 4 つのユーザーマニュアルファイルのうち、『Lotus Connector 接続ガイド』 (lccon6.nsf) と『Lotus Connector

LotusScript Extensions ガイド』 (lsxlc6.nsf) の 2 冊は、DECS の関連ドキュメントの一部で、LEI ではなく Domino にのみ

付属しています。これらのドキュメントデータベースを取得するには、DECS をインストールするか、Domino Server のカス

タムインストールを実行して [DECS User Assistance] オプションを選択します。また、これらのファイルを LDD

Documentation Library (http://www.lotus.com/ldd) の Enterprise Integrator 製品タイトルからも入手できます。

LEI のドキュメントセットLEI のドキュメントセットLEI のドキュメントセットLEI のドキュメントセット

LEI に関するドキュメントは、オンラインドキュメントとして製品から、または LDD Documentation Library (http://www.lotus.com/ldd) の Enterprise Integrator 製品タイトルから入手できます。LEI の関連ドキュメントは、次のとおりです。

メモメモメモメモ readme.txt および LEI 関連ドキュメントを含む 4 つのユーザードキュメントは、LDD Documentation Library (

http://www.lotus.com/ldd) の Enterprise Integrator 製品タイトルにあります。ここにはまざまな文書や参照リンクがあり

ます。

『IBM LEI (Lotus Enterprise Integrator) ユーザーズガイド』 - LEI の使用方法とアクティビティについて説明するドキ�

ュメントです (leidoc.nsf)。

『IBM LEI (Lotus Enterprise Integrator) インストールガイド』 - LEI のインストール、設定、および移行方法について�

説明するドキュメントです (leiig.nsf)。

『Lotus Connector 接続ガイド』 - 必要なソフトウェアや接続のテスト方法に関する情報など、提供されている Lotus �

Connector のセットアップ方法と使用方法について説明するドキュメントです (lccon6.nsf)。このドキュメントファイルは、LEI ではなく、Domino に付属しています。

『Lotus Connector LotusScript Extensions ガイド』 - Lotus Connector の LotusScript Extension について説明する�

ドキュメントです。LotusScript Extension は、基幹データにアクセスするためのスクリプト型セッションを記述する場合に使用できます (lsxlc6.nsf)。このドキュメントファイルは、LEI ではなく、Domino に付属しています。

『IBM LEI (Lotus Enterprise Integrator) リリース情報』 - リリース情報 (readme.txt) では、関連ドキュメントに記載さ�

れていない、現行リリースの LEI についての情報が提供されています。

LEI についての最新情報は、 http://www.lotus.com/ei でも入手できます。

その他のドキュメントその他のドキュメントその他のドキュメントその他のドキュメント

関連ツールの詳細については、次のドキュメントを参照してください。

『Lotus Domino Administrator 6 ヘルプ』 - Domino のインストールに関する設定と管理についての情報が記載され�

ています。

『LotusScript ランゲージリファレンス』 - LotusScript によるプログラムの作成方法が記載されています。Domino �

LotusScript Extensions (LSX) を使用してカスタムアクティビティを作成するときに役に立ちます。

Lotus Connector の関連ドキュメント - IBM Software Group Lotus Software では、エンタープライズリソースプラン�

ニング (ERP) やトランザクション処理システムなどの基幹システム向けの Lotus Connector を販売しています。各 Connector の説明は、Connector のソフトウェアとパッケージに含まれています。使用する特定のデータベース、ERP、トランザクション処理システムのドキュメントも必要となる場合があります。

Page 5: LEI ユーザーズガイド

『IBM LEI (LOTUS ENTERPRISE INTEGRATOR) ユーザーズガイド』

サポート情報

IBM Software Group Lotus Software では、製品のサポートを広範囲にわたり行っています。

次の Web サイトの Lotus Developer Domain には、有用な情報やリンクが数多くあります。

http://www.lotus.com/ldd

Enterprise Integrator の Web サイト

LEI と DECS についての最新情報は、以下の Web サイトから取得できます。

http://www.lotus.com/ei

メモ Domino 関連製品を iSeries に対応するよう更新するには、以下の Web サイトにアクセスしてください。

http://www-1.ibm.com/servers/eserver/iseries/domino/support/qmu.htm

テクニカルサポート

使用している Lotus Connector または LEI/DECS アプリケーションに関するご意見やご質問は、以下の Lotus Support Services の Web サイトまでお寄せください。

http://www-3.ibm.com/software/lotus/support/

Page 6: LEI ユーザーズガイド

第1章 はじめに

第1章 はじめに

本章では、本書の構成と IBM LEI (Lotus Enterprise Integrator for Domino) の用語について説明します。また、特徴、機能、アーキテクチャなど LEI の概要についても説明します。

Page 7: LEI ユーザーズガイド

第1章 はじめに第1章 はじめに第1章 はじめに第1章 はじめに

本書の構成本書の構成本書の構成本書の構成

本書は、次表に示す章で構成されています。

章章章章 説明説明説明説明

第1章 はじめに 本書の構成と LEI の用語について説明します。また、アーキテクチャなど LEI の概要についても説明します。Lotus への問い合わせ方法も記載されています。

第2章 LEI Server の起動 LEI Server の起動方法とサーバーコマンドの使用方法を説明します。また、システムの起動時に LEI Server を自動的に起動するための設定方法についても説明します。

第3章 LEI Administrator LEI Administrator の概要と使用方法について説明します。

第4章 Connector について 関連ドキュメントの『Lotus Connector 接続ガイド』が紹介されています。

第5章 LEI アクティビティの概要 LEI アクティビティについて説明します。すべてのアクティビティに共通する項目や、アクティビティ文書を使用するための基本的な情報が記載されています。

第6章Admin Backup アクティビティ

Admin Backup アクティビティについて説明します。

第7章 Admin Purge Log アクティビティ

Admin Purge Log アクティビティについて説明します。

第8章 Archive アクティビティ Archive アクティビティについて説明します。

第9章 Command アクティビティ Command アクティビティについて説明します。

第 10 章 Direct Transfer アクティビティ

Direct Transfer アクティビティについて説明します。

第 11 章 Polling アクティビティ Polling アクティビティについて説明します。

第 12 章 Virtual Fields アクティビティ

Virtual Fields アクティビティについて説明します。これは、3 つの LEI Advanced RealTime アクティビティの 1 つです。

第 13 章 Virtual Documents アクティビティ

Virtual Documents アクティビティについて説明します。これは、3 つの LEI Advanced RealTime アクティビティの 1 つです。

第 14 章 Virtual Agents アクティビティ

Virtual Agents アクティビティについて説明します。これは、3 つの LEI Advanced RealTime アクティビティの 1 つです。

第 15 章 Replication アクティビティ Replication アクティビティについて説明します。

第 16 章 Java アクティビティ Java アクティビティについて説明します。

第 17 章 Scripted アクティビティ Scripted アクティビティについて説明します。

付録 A LEI とデータ 異なるアプリケーション間で LEI がデータ型をどのようにマッピングするかについて説明します。

付録 B エラーメッセージとトラブルシューティング

LEI のトラブルシューティングについて説明します。

付録 C チュートリアル LEI のアクティビティを作成するチュートリアルです。

付録 E Virtual Documents アクティビティでの Virtual Fields アクティビ

Virtual Documents アクティビティとともに Virtual Fields アクティビティを使用する

Page 8: LEI ユーザーズガイド

ティの使用際の状況について説明します。

付録 D Domino クラスタの Virtual アクティビティの使用

Domino クラスタの LEI Advanced RealTime アクティビティを使用する場合の実用的な考慮事項について説明します。

メモメモメモメモ NotesPump (LEI) R3.2 のドキュメントに含まれていた付録「キャラクタセット」は、Domino に付属の『Lotus

Connector LotusScript Extensions ガイド』(lsxlc6.nsf) に掲載されています。このガイドは、http://www.lotus.com/ldd で

も入手できます。

Page 9: LEI ユーザーズガイド

第1章 はじめに

LEI の開始手順

ここでは、LEI を開始するための手順を簡単に説明します。

1 LEI をインストールします。『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

インストールと設定については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。また、本章の「LEI の概要」および本書の「付録 B エラーメッセージとトラブルシューティング」も参照してください。

DECS または NotesPump (LEI) R3.n からアップグレードおよび移行を行う場合は、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』の移行に関する章も参照してください。

2 データベースへの接続を確立し、テストします。『Lotus Connector 接続ガイド』を参照してください。

3 LEI Server を起動します。「第2章 LEI Server の起動」を参照してください。

4 外部データソースごとにコネクションを作成します。『Lotus Connector 接続ガイド』を参照してください。

5 アクティビティを作成します。作成する各アクティビティに対応する章を参照してください。また、「第5章 LEI アクティビ

ティの概要」も参照してください。

6 アクティビティをスケジュールし、実行します。作成する各アクティビティに対応する章を参照してください。また、「第5

章 LEI アクティビティの概要」も参照してください。

7 問題が発生した場合は、「付録 B エラーメッセージとトラブルシューティング」を参照してください。

8 実行例については、「付録 C チュートリアル」を参照してください。

Page 10: LEI ユーザーズガイド

第1章 はじめに

LEI の概要

IBM LEI (Lotus Enterprise Integrator for Domino) は、異なる外部データソース間でデータを転送する基幹システム連携ツールです。

LEI のアーキテクチャ

LEI は、複数のプラットフォーム間で企業規模のデータアクセスを提供するデータ転送アプリケーションです。LEI は次の 2 つの主要コンポーネントで構成されています。

LEI Server!

LEI Administrator!

概要

LEI を構成するコンポーネントと、LEI でのデータの処理方法を下図に示します。LEI Administrator は、LEI システムの設定と運用に必要な要素を管理するために使用されます。これらの要素には、Connector、Metaconnector、アクティビティがあります。LEI Server は、LEI Administrator データベースを定期的にポーリングして、アクティビティを実行します。実行するようにスケジュールされているアクティビティを検出すると、そのアクティビティを実行します。アクティビティは、LEI Server が実行するアクション (たとえば、データ転送、データ複製、ファイルシステムコマンドなど) を定義します。

LEI の各コンポーネントを以下で詳しく説明します。

Page 11: LEI ユーザーズガイド

LEI Server

LEI Server は、LEI Administrator データベース (コントロールストアと呼ぶこともあります) をポーリングし、命令を実行するエンジンです。これらの命令は、LEI アクティビティという形式で提供されます。

アクティビティは、宣言やスクリプトによる作成もできます。宣言によるアクティビティは、LEI Administrator を使用して作成します。Scripted アクティビティは、LotusScript によって作成します。このとき、LEI LotusScript Extensions による Lotus Connector LSX を使用します。

作成されたアクティビティは、Administrator から実行することも、オペレーティングシステムのコマンドラインから実行することも可能です。

LEI Server は、マルチスレッドかつマルチプロセッシングのタスクとしてサーバーオペレーティングシステムで実行されます。LEI Server は、外部データソース間 (たとえば、Oracle と Sybase、SAP と Notes など) でのデータ転送を実際に実行

Page 12: LEI ユーザーズガイド

します。

LEI Server については、「第2章 LEI Server の起動」を参照してください。

メモ アクセス対象の外部システムのクライアントライブラリは、LEI Server と Domino Server にインストールされている必

要があります。アクティビティを実行するときに、アクティビティを実行する LEI Server と、LEI Administrator が置かれてい

る Domino Server が別々のコンピュータにインストールされている場合は、両方のコンピュータにクライアントライブラリを

インストールしてください。

LEI Administrator

LEI Administrator は、ユーザーがコネクションやアクティビティを作成するときに使用する Notes アプリケーションです。LEI Administrator では、以下のようなフォームおよび文書を使用します。

設定!

コネクション!

メタコネクション!

アクティビティ!

詳しくは、以降の項目を参照してください。

LEI Administrator については、「第3章 LEI Administrator」を参照してください。

Page 13: LEI ユーザーズガイド

第1章 はじめに

Lotus Connector

Lotus Connector は、外部データソースへの接続を提供します。コネクション文書で、各ソースの名前とネットワークの場所を指定します。コネクションの種類に応じた LEI Administrator のフォームを使用してください。LEI には、次の各データソース用の Lotus Connector が用意されています。

Notes!

DB2!

File System!

Open Database Connectivity (ODBC)!

Oracle 7!

Oracle 8!

OLE DB!

Sybase!

Text!

さらに、Lotus Connector for SAP R/3 などの Lotus Connector も利用可能で、個別に購入できます。

iSeries では、次の Lotus Connector が利用できます - DB2、Notes、SAP R/3、File、Text、ODBC、および Metaconnectors

コネクションを作成する前に、接続先のデータソースに適した通信ソフトウェアを使用して、そのデータソースに接続できることを確認します。接続の確立とテストの詳細については、『Lotus Connector 接続ガイド』を参照してください。

iSeries ユーザーは、システム管理者に問い合わせ、使用可能な Lotus Connector を確認してください。

コネクションオプションによって、特定のコネクションの動作内容を変更できます。コネクションオプションは、コネクション文書内のフィールドで指定します。コネクションの作成については、『Lotus Connector 接続ガイド』を参照してください。

Metaconnector は、特殊な LEI Connector です。メタコネクションは、基本のコネクションを「包括する」ため、アクティビティにとっては基本のコネクションのように見えますが、追加機能が用意されています。LEI には次の Metaconnector が用意されています。

Order - Order Metaconnector を使用すると、結果を一定のソート順で取得できます。たとえば、EBCDIC と ASCII の!サーバーデータ間で共通する順序を指定することにより、正確な複製とデータの評価を行うことができます。Order Metaconnector は、ユーザーが定義した条件に従って結果セットをソートします。

Collapse/Expand - Collapse/Expand Metaconnector は、同じキー値を持つ複数のレコードを複数値のフィールドを!持つ 1 つのレコードにまとめます。また、複数値のフィールドを複数のレコードに展開します。Collapse/Expand Metaconnector は、ソースの複数のレコードを 1 つのターゲットレコードに転送したり、この逆方向に転送するために使用されます。この Metaconnector は、ユーザーが定義した条件に従って、レコードの取得 (フェッチ) オペレーションのときにレコードをまとめ、レコードの書き込みオペレーションのときにレコードを展開します。

Meter - Meter Metaconnector は、データアクセスのレートとボリュームを測定し、その他の統計情報を提供します。 !

Trace - Trace Metaconnector を使用すると、トレースデータを取り込むことができます。タイムスタンプ、トレースデ!ータを取り込む場所、ログの出力に使用するファイル名を指定するオプションがあります。Trace メタコネクションは、通常、カスタマーサポートがお客様のサイトで使用します。

メモ Metaconnector は、機能レベルを追加します。Metaconnector の機能は、Advanced RealTime アクティビティに組み

込まれています。他の LEI アクティビティは、個別のコネクション文書で定義されます。

Metaconnector の詳細については、関連ドキュメントの『Lotus Connector 接続ガイド』を参照してください。

Page 14: LEI ユーザーズガイド

第1章 はじめに

LEI アクティビティ

アクティビティは LEI の中心となる要素です。LEI アクティビティは、LEI Server に対し、いつ何をすべきかを指示します。アクティビティは、LEI Administrator で定義します。

LEI には、次のアクティビティがあります。

Admin Backup アクティビティ - LEI Administrator データベースを定期的にバックアップするスケジュールの設定と実!行を可能にします。

Admin Purge Logs アクティビティ - LEI ログを定期的に削除するスケジュールの設定と実行を可能にします。 !

Archive アクティビティ - データベースを定期的にアーカイブするスケジュールの設定と実行を可能にします。 !

Command アクティビティ - オペレーティングシステムのコマンドとデータベースコマンドの実行を可能にします。 !

Direct Transfer アクティビティ - SQL クエリー、Notes の式、またはその他のデータソース専用コマンドを指定するこ!とにより、ソースとターゲット間のデータ転送を可能にします。

Java アクティビティ - LEI Server で Java プログラムのスケジュール設定と実行を可能にします。 !

Polling アクティビティ - データソースの特定条件の監視を可能にします。条件に一致すると、指定されたアクティビテ!ィが直ちに実行されます。

Advanced RealTime アクティビティ - 外部システムのデータに対し、Notes のフォームからのリアルタイムかつ対話!的なアクセスを可能にします。Advanced RealTime アクティビティとは、Virtual Fields、Virtual Documents、Virtual Agents の 3 つです。

Replication アクティビティ - 異なる種類のデータベース間でのデータの同期を可能にします。 !

Scripted アクティビティ - LEI では、LEI Administrator を使用して定義できる標準の宣言型アクティビティに加!え、LotusScript Extensions を使用してスクリプト型アクティビティを作成できます。この方法により、データの操作やメッセージングを実行できる、さらに高度なアクティビティを作成できます。詳しくは、『Lotus Connector LotusScript Extensions ガイド』を参照してください。

各 LEI アクティビティについては、本書の対応する章で説明します。

Page 15: LEI ユーザーズガイド

第1章 はじめに

LEI ログ

LEI は、システムのパフォーマンスをトラッキングするシステムログデータベースを保持しています。これらのログは、特定のアクティビティのパフォーマンスの評価やトラブルシューティングに役立ちます。LEI で記録されるログは、次の 3 種類です。

アクティビティログ - 個々のアクティビティを追跡し、パフォーマンスに関する統計情報を提供します。 !

オペレーションログ - アクティビティの実行中に発生したエラーを記録します。 !

サーバーログ - LEI Server の動作とパフォーマンスを記録します。 !

すべての [Activity] ビューでは、[Log] アクションボタンを使用して、そのアクティビティの最新の実行のログを表示できます。

LEI ログの詳細については、「第3章 LEI Administrator」を参照してください。

Page 16: LEI ユーザーズガイド

第1章 はじめに

ヘルプの表示とユーザードキュメントの表示

すべてのアクティビティ文書とコネクション文書には、ポップアップヘルプやフィールドヘルプが用意されています。これらのヘルプは、ユーザーインターフェースに組み込まれています。LEI オンラインマニュアルは、LEI Administrator ナビゲータで利用できます。また、http://www.lotus.com/ldd の Documentation Library からも利用できます。

[User Assistant Help]

User Assistant を有効にすると、Advanced RealTime アクティビティの作成、コネクション文書の作成や編集のサポートが提供されます。User Assistant は、新規 Advanced RealTime アクティビティの作成中に手順を示します。User Assistant を有効にすると、新規や既存のコネクション文書を開いた場合に、文書の上部に解説テキストが表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。

ポップアップヘルプ

LEI のすべてのアクティビティ文書とコネクション文書の各セクションおよび多くのフィールドには、ポップアップヘルプが用意されています。ポップアップヘルプは、関連するフィールドについて説明し、ユーザーの理解を助けます。濃い青色で示されたテキストにはポップアップヘルプがあります。特定のユーザーインターフェースオプションのポップアップヘルプを表示するには、カーソルをそのオプションに合わせ、マウスのいずれかのボタンを押します。ポップアップヘルプが直ちに表示されます。

フィールドレベルのヘルプ

フィールドヘルプは、すべての編集可能フィールドで表示できます。フィールドヘルプは、ユーザーインターフェースの一番下に表示されます。フィールドヘルプを表示するには、編集モードにする必要があります。編集モードにすると、ユーザーの入力が必要なフィールドにカーソルを合わせたときに、フィールドヘルプが表示されます。フィールドヘルプには、アクティビティ文書やコネクション文書の各フィールドに対する操作オプションが記述されています。

ユーザードキュメント

LEI の関連ドキュメントは、本書の「前書き」に記載されている 4 つのマニュアルで構成されています。これらのマニュアルは、nsf 形式で提供されます。マニュアルを開くには、LEI Administrator の [Help] オプションをクリックし、表示された 4 つのマニュアルから 1 つを選択します。マニュアルが開いたら、選択したトピックの目次を使用して、必要な情報に迅速に移動します。LEI のユーザードキュメントは、http://www.lotus.com/ldd の Lotus Developer Domain の Documentation Library で利用できます。

Page 17: LEI ユーザーズガイド

第1章 はじめに第1章 はじめに第1章 はじめに第1章 はじめに

用語用語用語用語

LEI は、他のデータベース製品、ディレクトリ、ERP システム、トランザクション処理システムと連携して使用されます。LEI や他のデータソースで使用されている用語の一覧を次に示します。

用語用語用語用語 説明説明説明説明

列 LEI のフィールドに相当します。電話番号や顧客名などの類似するデータのセットです。通常は Notes のビューにあるような列形式で表示されます。

データベース メタデータとデータの集まりです。Lotus Domino のデータベースは、.nsf 拡張子が付けられて保存されます。一般的に他のシステムでは、データベースはファイルシステムから抽出されます。

文書 LEI のレコードに相当します。Notes 文書は、データを含むデータベースのエントリです。文書は、データベースの行に相当し、Notes のビューでは行形式で表示されます。

フィールド LEI では、レコードの 1 要素のメタデータの記述、またはデータです。各レコードは 1 つまたは複数のフィールドを持ち、フィールドにはデータ型、値、プロパティが設定されます。

フォーム Notes の標準のメタデータオブジェクトです。フォームは、Domino データベース内の文書を作成して表示する際に使用されるフィールドとデータ型を定義します。

索引 キー値の集まりです。迅速な検索を可能にします。Domino では、ビューが索引になります。

メタデータ

データベース内のデータ型、データ名、データの集まりの記述です。

パラメータ プロシージャに対し、データや他の情報の受け渡しを行います。

プロシージャ 外部システムで、パッケージ化された操作のセットです。ストアドプロシージャまたは RPC (Remote Procedure Calls) と呼ばれることもあります。プロシージャは、結果セットの生成、外部データの変更、その他のアクションを実行します。プロシージャは、パラメータを介して入力データを受け取り、出力パラメータまたは結果セットを介してデータを返します。

レコード

1 つまたは複数のフィールドで構成されるデータの要素です。リレーショナルデータベース内の行や Notes の文書はレコードです。

結果セット

選択オペレーションによって得られたデータ (行またはレコード) のセットです。たとえば、Notes の選択ステートメントや SQL クエリーによって選択した後で転送されるデータは結果セットです。

行 リレーショナルデータベースで、レコードに相当します。

ステートメント システムのネイティブ言語で記述した命令です。ステートメントは、結果セットを生成したり (選択ステートメント)、変更、コマンド、プロシージャなどを実行します。Notes の式や SQL クエリーはステートメントです。

テーブル LEI のメタデータに相当します。リレーショナルデータベース内のデータの集まりで、行と列による形式で保存されています。

ビュー Domino のビューでは、選択されたフィールドと文書のリストが照合されて、表示されます。ビューは、これらの文書の索引として機能します。

リレーショナルデータベースでは、ビューは 1 つまたは複数のテーブルから取得したデータをカスタマイズして表現します。

Page 18: LEI ユーザーズガイド

第1章 はじめに

ユーザー補助

ユーザー補助機能は、運動障害または視覚障害など身体に障害を持つユーザーがソフトウェアを快適に使用できるようにサポートします。LEI は、IBM のユーザー補助ガイドラインに従っています。このガイドラインの詳細については、http://www.ibm.com/able を参照してください。「Customizing Notes for Accessibility」という Notes ヘルプパネルのヘルプトピックも参照してください。

LEI では、GUI の代わりに、または GUI を拡張するためにキーボードアクセスを使用できます。

メインの [LEI Navigation] 画面には、フレームセットの一連のフレームがあります。1 つのフレームから別のフレームに移動する場合、[F6] キーを押すと下と右に移動し、[Shift] + [F6] キーを押すと上と左に移動できます。アクションボタンの操作を実行する場合は、フレームに移動してから [Alt] キーを押して、アクションボタンに表示される番号を押します。

メモ LEI Administrator の [Add Connection] および [Add Activity] アクションボタンの代わりに、トップバーの [Create]

オプションを選択して、次のプルダウンメニューを表示できます。

コネクション文書やアクティビティ文書を開き、[Tab] キーまたは [Ctrl] + [E] キーを押すと、編集モードにできます。文書のフィールド間は [Tab] キーで移動できます。また、矢印キーを使用して、カーソルの移動やフォーカスの変更ができます。[Enter] キーを使用すると、文書オプションのオンやオフを切り替えるなどのアクションを選択できます。

メモ 編集モードにすると、フォーカスがあるフィールドには、フィールドヘルプが自動的に表示されます。フィールドヘルプ

は、ユーザーインターフェースの一番下に表示されます。また、すべてのコネクション文書とアクティビティ文書の濃い青

色のオプションのポップアップヘルプは、マウスを使用すると表示できますが、キーボードでは表示できません。

LEI では、ユーザーとアプリケーションの対話を簡単にするために、トップバーの各メニューオプション ([File]、[Edit]、[View] など) の横に表示されているショートカットキーをサポートしています。キーボードを使用してトップバーのメニューを開き、そのメニューに関するヘルプを表示するには、[Alt] キーと下線付きで示されている文字 ([File] の場合は [F] キー、[Edit] の場合は [E] キーなど) を押します。プルダウンメニューのすべての項目の右側に、対応するショートカットキーが表示されます。

スクリーンリーダーソフトウェアやデジタル音声合成装置を使用して、画面に表示されている内容を音声で聞くことができます。また、音声認識ソフトウェアを使用して、データを入力したり、ユーザーインターフェースを操作することもできます。

Page 19: LEI ユーザーズガイド

第1章 はじめに

パフォーマンス

このセクションでは、LEI のパフォーマンスを最適化するために役立つ設定上のヒントを紹介します。LEI Advanced RealTime アクティビティのパフォーマンスに固有の考慮事項については、本書の Virtual Documents、Virtual Fields、Virtual Agents に関する章を参照してください。

処理時間に関する LEI のサンプル設定

このセクションには、付属のサンプルデータベース leiempsamp.nsf を使用した、サンプルの Replication アクティビティおよび Direct Transfer アクティビティのパラメータと処理時間が記載されています。データ転送はネットワークを経由して行われます。このサンプル設定のパラメータは、次のとおりです。

プラットフォームとオペレーティングシステム = Windows NT SP6a!

Domino 6 を実行する Domino Server!

LEI 6 Server!

RAM の総容量 = 163,248KB!

RAM の使用可能容量 = 56,560KB!

ハードディスク容量 = 4GB!

空き容量 = 3GB!

pagefile.sys = 163,840KB (160MB)!

このテストシナリオを使用すると、競合が発生している 10,000 レコードのデータベースに対して [Log Conflicts On] を有効にした Replication アクティビティを実行すると、1 分から 5 分で完了します。この実行時間は、外部システムと指定したコネクションの種類によって異なります。

このテストシナリオを使用すると、10,000 レコードのデータベースに対して Direct Transfer アクティビティを実行すると、0.5 分から 3 分で完了します。この実行時間は、外部システムと指定したコネクションの種類によって異なります。

パフォーマンスに関する一般的な考慮事項

配列の転送 !

配列の転送 (バルク転送ともいいます) は、Connector が一度に多数のレコードを転送できることを表す用語です。一度に多数のレコードを転送できると、複数のレコードを処理するためにネットワークトランザクションを何度も行う必要がありません。配列の転送を使用した場合でも、データの総バイト数は同じですが、転送時間が短くなります。配列の転送は、RDBMS や Connector によっては読み込み (フェッチ) や書き込み (挿入) にも使用できます。

Direct Transfer アクティビティ文書の [Performance] セクションには、配列の転送に関するオプションがあります。Lotus Connector for Notes と Lotus Connector for DB2 は、挿入オペレーションに対して配列の転送をサポートしています。Lotus Connector for Oracle 7 は、フェッチオペレーションと挿入オペレーションに対して配列の転送をサポートしています。その他の Lotus Connector は配列の転送をサポートしていません。

RDBMS の索引の作成!

ライトバック索引 (データベース索引とも呼ばれます) は、ライトバックをサポートする RDBMS に対する LEI のパフォーマンスを向上させます。ライトバック索引は、所定のメタデータオブジェクトのライトバックサポートを可能にします。独自の索引が必要な Connector もありますが、必要ない Connector もあります。

Replication アクティビティ文書の [Create Connection A Metadata] オプションと [Index to create on Metadata Creation] オプションは、索引の作成に関連があります。作成された索引は、複製中にデータの比較を実行する場合に LEI によって使用されます。リレーショナルデータベースなど、一部の Connector は、索引があるとパフォーマンスが大幅に向上します。

ライトバック索引をサポートしている Lotus Connector は、Notes、DB2、ODBC、Oracle 7、Oracle 8、Sybase です。

データベースの更新!

一部の Connector やアクティビティは、自動または要求によるデータベース更新をサポートしています。データベース更新によってデータベースのビューにデータベースの変更が反映されるのは、転送プロセスまたは複製プロセスの最後にターゲットデータベースが閉じられる場合です。変更が多い場合は、ビューの再計算に時間がかかるため、このオプションの有効化は推奨されません。このオプションを有効にすると、トランザクションは、データベースが完全に再生成された後に完了します。また、更新は、ユーザーが次にビューを開いたときに実行されるのではなく、転送プロセスの一部として実行されます。次のタスクは、トランザクションが完了してデータベースが再生成されるまで開始できません。データベース更新を有効にすると、トランザクション時間が大幅に増えるため、処理のパフォーマンスが低下します。

Advanced RealTime アクティビティ:索引によるパフォーマンス向上

Advanced RealTime アクティビティは、数多くのクライアントにサービスを提供するため、高いパフォーマンスが要求されます。外部システムのフィールドに索引を作成すると、パフォーマンスが向上します。この処理は、Virtual Documents アクティビティと Virtual Fields アクティビティに適用できます。

次の 2 つの項目では、パフォーマンスを向上させるためにフィールドに索引を作成するメリットについて説明します。詳細については、「第 13 章 Virtual Documents アクティビティ」を参照してください。

Virtual Documents アクティビティと Virtual Attachments を使用した Virtual Documents のパフォーマンス!

外部システムサーバーでの索引作成は、Virtual Documents アクティビティのパフォーマンス向上に不可欠です。

Page 20: LEI ユーザーズガイド

Virtual Documents アクティビティを使用する場合の索引作成の詳細については、「第 13 章 Virtual Documents アクティビティ」の「Virtual Documents アクティビティで使用する外部システムの必須フィールド」、および Virtual Documents と Virtual Attachments を使用する際の要件に関する説明を参照してください。

Virtual Documents に Virtual Attachments を使用する場合は、Virtual Attachment Table の特定のフィールドに索引を作成する必要があります。Virtual Documents で使用される Virtual Attachments のフィールドに対する索引作成の詳細については、「第 13 章Virtual Documents アクティビティ」の「[Virtual Attachments]」を参照してください。

Virtual Fields のパフォーマンス!

Virtual Fields アクティビティで最適なパフォーマンスが得られるよう、SQL データベースに外部接続する場合は、キーフィールドに SQL 索引を作成してください。詳しくは、「第 12 章 Virtual Fields アクティビティ」の「Virtual Fields アクティビティの使用における要件、パフォーマンス、およびマッピング」を参照してください。

クラスタ化された Domino Server 環境での Advanced RealTime アクティビティの使用

Advanced RealTime アクティビティを使用すると、クラスタ化された Domino Server 環境を有効に活用できます。詳しくは、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』の第1章を参照してください。

Web ベースのアプリケーションに関する考慮事項

Web ベースのアプリケーションを使用しており、同期または非同期のデータ転送をサポートしているデータベース (DB2 や Oracle など) にプログラム的に接続している場合は、データ転送方式を非同期に設定します。

Page 21: LEI ユーザーズガイド

第1章 はじめに

iSeries 上の LEI

このセクションでは、iSeries プラットフォームでの LEI の使用と実装について説明します。

iSeries 上の LEI Server

iSeries では、LEI Server は 64 ビットのアプリケーションであり、iSeries 上の 64 ビットのネイティブ Domino Server に対するアドインサーバータスクとして実行されます。DB2 データベース、Notes データベース、File System オブジェクトへのアクセスは、iSeries 上の LEI Server 経由で行われます。Oracle や Sybase データベースへの直接コネクション (ネイティブ API コネクション) はサポートされていません。DB2 以外のデータソースへのアクセスは、NT IPCS サーバー、周囲の NT、または AIX プラットフォーム上の IBM の DataJoiner 製品を使用して行われ、DRDA 要求が iSeries からターゲットのデータソースに再ルーティングされます。

iSeries における LEI Server 実行ウィンドウ

他の LEI プラットフォームとは異なり、iSeries には LEI Server ウィンドウまたはコンソールはありません。LEI の実行状況は、LEI Administrator データベースまたは iSeries 上の Domino コンソール ([Show Tasks] コマンドを使用) から確認します。LEI Server は iSeries 上の Domino Server のアドインタスクのため、単独の対話式のプロセスやウィンドウでは起動されません。他のサーバープラットフォームのサーバーウィンドウで実行できるコマンド ([Shutdown Server]、[Stop Server]、[Close Activity]、[Kill Activity] など) は、LEI Administrator または Domino コンソールの [Action] メニューから実行できます。[Reconfigure] オプションは自動化されています。LEI Server の設定文書が変更されると、次回のポーリング時または再起動時に (どちらか早い方)、対応するサーバーの設定が変更されます。

Page 22: LEI ユーザーズガイド

第1章 はじめに

iSeries での言語サポート

LEI は管理ツールであるため、現在は英語のみがサポートされています。LEI のユーザーインターフェースは英語のみです。ただし、iSeries には英語言語 (2942) のインストールは不要です。

iSeries でのコードページ変換のサポート

iSeries は EBCDIC キャラクタセットを使用するため、iSeries 上の LEI におけるデータ変換はオプションではなく、自動化されています。これは、Domino で使用されている LMBCS キャラクタセットと互換性がありません。LEI では、さまざまな言語のコードページ間でのデータ変換をサポートしています。

LEI Server で起動された LEI のアクティビティは、デフォルトで Domino Server のジョブ CCSID となります。Domino Server アドインのデフォルトのジョブ CCSID (QNOTES ユーザープロファイルで指定されたロケール情報) を設定する方法については、iSeries Domino Server のドキュメントを参照してください。

すべての LEI アクティビティの機能が iSeries でサポートされます。

iSeries 用には、次の Lotus Connector と Metaconnector がサポートされています。

Connector:DB2、Notes、File、Text、ODBC!

Metaconnector:Collapse/Expand、Meter、Order、Trace!

Page 23: LEI ユーザーズガイド

第1章 はじめに

iSeries における用語の比較

次の表は、本書で使用される重要な用語を比較したものです。

用語 iSeries リレーショナル DB SQL Notes

データベース

WRKRDBDIRE を介して登録された任意の RDB (ローカルの DB2/400 データベースなど)

データベース データベース (.nsf ファイル)

メタデータ ファイル テーブル フォーム

レコード レコード 行 文書

フィールド フィールド 列 フィールド

ステートメント

なし クエリー 選択式

Page 24: LEI ユーザーズガイド

第2章 LEI SERVER の起動

第2章 LEI Server の起動

本章では、サポートされているオペレーティングシステム上で LEI Server を起動する方法について説明します。

Page 25: LEI ユーザーズガイド

第2章 LEI SERVER の起動

LEI Server を起動する

LEI アクティビティを実行するには、LEI Server が動作している必要があります。

LEI Server を起動するには、LEI Server コンピュータで LEI プログラムを実行します。LEI プログラムの名前はプラットフォームによって異なります。

プラットフォーム 名前

Win32 nlei.exe

AIX および Linux lei

Solaris leis

iSeries lei

Windows では、[スタート] メニューのプログラムグループから LEI Server を選択しても起動できます。

LEI コンソールが表示され、LEI Server コマンドが表示されます。

LEI Server は、起動後に LEI Administrator データベースに接続し、実行が保留されているアクティビティを即座に実行します。LEI Server は、サーバー設定文書で設定されている間隔で LEI Administrator をポーリングし、アクティビティをスケジュールに従って実行します。この動作は、LEI Server のシャットダウンまで続行されます。

Page 26: LEI ユーザーズガイド

第2章 LEI SERVER の起動

コンソールからの LEI Server コマンドの実行

次の LEI Server コマンドは、サーバーコンソールウィンドウから実行できます。LEI Server のコンソールコマンドを次の表に示します。

コマンド 説明

Help LEI Server コマンドの簡単な説明を表示します。

List LEI Server によって現在実行されているアクティビティのリストを表示します。各アクティビティ名に関連付けられている番号を、Close コマンドや Kill コマンドとともに使用します。

Status LEI Server の基本設定情報およびサーバーの時間と状態を表示します。

Quit LEI Server およびすべての LEI アクティビティをシャットダウンします。

メモ LEI コンソールでコマンドを入力する場合、コマンドテキストは 255 文字以内にしてください。

追加のアクティビティとサーバーコントロールオプションは、[LEI Server Administration] と [Activity Administration] メニューの [LEI Administrator] でも利用できます。詳しくは、本章の「Administrator から LEI Server コマンドを実行する」を参照してください。

Page 27: LEI ユーザーズガイド

第2章 LEI SERVER の起動

Administrator から LEI Server コマンドを実行する

次に示す LEI Server コマンドは、LEI Administrator 内部からも実行できます。

Close Activity!

Kill Activity!

Shutdown Server!

Stop Server!

アクティビティを閉じる (または強制終了する) には、[Action] - [Activity Administration] を選択し、[Kill Activity] (または [Close Activity]) を選択します。

サーバーをシャットダウン (または停止) するには、[Actions] - [LEI Server Administration] を選択し、[Shutdown Server] (または [Stop Server]) を選択します。

いずれの場合も、アクションの実行時に不適切な文書が選択されていると、エラーメッセージが表示されます。エラーメッセージが表示された場合は、「付録 B エラーメッセージとトラブルシューティング」を参照してください。

Page 28: LEI ユーザーズガイド

第2章 LEI SERVER の起動

Domino のアドインタスクとして LEI を実行する

LEI を Domino Server のアドインタスクとして実行できます。このオプションは、LEI を Win32 および UNIX 上にインストールする際に指定します。iSeries 上では、LEI は Domino アドインタスクとしてインストールされます。

Domino Server の起動時に LEI が自動的に起動され、Domino Server の終了時に終了されます。インストール中にこのオプションを選択しなかった場合は、Domino Server の notes.ini ファイルにある ServerTask リストに 「lei」 タスクを追加すると、LEI をアドインタスクとして実行できます。

LEI はアドインタスクとして直接制御も可能です。

メモ LEI を Domino のアドインとして使用すると、LEI は Domino コンソール上のすべての日付/時刻を米国の形式に変

換します。

メモ Domino Server が Windows NT サービスとして起動する場合、問題の発生を防ぐために LEI を Domino のアドイン

タスクとして追加する必要があります。これにより、必ず Domino が起動されてから LEI が起動されるようになります。

LEI をアドインタスクとして手動で実行するには、Domino Server のコンソールで次のコマンドを入力します。

load lei addin

アドインタスクとして実行されている LEI を手動でシャットダウンするには、Domino Server のコンソールで次のコマンドを入力します。

tell lei quit

LEI をアドインタスクとして実行すると、LEI コンソールは表示されません。LEI コンソールにコマンドを送信するには、Domino Server のコンソールで次のコマンドを入力します。

tell lei <command>

たとえば、標準の LEI Server コンソールでは「I」と入力しますが、Domino Server のコンソールでは次のコマンドを入力します。

tell lei l

パーティショニングされた (または、されていない) サーバーの notes.ini の考慮事項

パーティショニングされたサーバー上で、LEI を Domino Server のアドインとして実行する場合、Domino プログラムディレクトリに notes.ini ファイルが必要です。

パーティショニングされていないサーバー上で、LEI を Domino Server のアドインとして実行する場合、Domino Server のデータディレクトリに notes.ini ファイルが必要です。

メモ パーティショニングされていないサーバー上では、notes.ini は、データディレクトリとプログラムディレクトリに同時に

存在できません。これは旧バージョンからの変更で、プログラムディレクトリにない notes.ini は無視されます。

メモ

パーティショニングされたサーバーにおいて、LEI をスタンドアロンモードで実行する場合、コマンドラインから notes.ini のファイルパスを指定する必要があります。以下は、コマンドラインの例です。

LEI.EXE =c:\lotus\domino\server3\notes.ini

ドライブマップの考慮事項

Notes または Domino Server を Windows NT のサービスとして起動すると、Notes または Domino ユーザーは、ローカルの NT サーバー以外の場所にあるデータベースやディレクトリへのリンクを使用できません。NT サーバーでは、ユーザーがログインを要求される前に、サービスとしてインストールされたアプリケーションが、実行を開始します。したがって、Domino Server がサービスとしてインストールされている場合、Domino Server が起動された時点では、NT サーバー上のマップドライブは再接続されません。Domino Server は、最初に起動された時点で使用可能なドライブのみ認識します。Domino Server が起動された後でマッピングされたドライブは認識されません。その場合、他のコンピュータ上のマップドライブへのディレクトリリンクまたはデータベースリンクは、Domino Server がサービスとして起動されると正しく機能しません。

Domino Server をサービスとしてインストールしない場合は、この問題を回避できます。Notes または Domino をサービスとしてインストールせず、これらを [スタート] メニューまたはデスクトップのショートカットから起動する場合、NT サーバーでログインする必要があります。サーバーでログインする必要があるため、Notes または Domino Server の起動時にすべてのネットワークドライブマップが確立されている必要があります。この方法を使用すると、ディレクトリやデータベースのリンクは、ローカルサーバー以外でも正しく機能します。

Page 29: LEI ユーザーズガイド

第2章 LEI SERVER の起動

UNIX と iSeries の leiclean スクリプトについて

UNIX および iSeries プラットフォームへの LEI のインストールでは、LEI の異常終了後に LEI リソースをクリーンアップするために、leiclean プログラムが用意されています。

UNIX!

leiclean

iSeries!

call Qnotes/leiclean

leiclean プログラムの使用には注意が必要です。このプログラムは、プログラムを実行したユーザーがオーナーであるすべての LEI プロセスを強制終了します。また、そのユーザーが現在使用している共有メモリとセマフォをすべて解放します。共有メモリとセマフォを削除すると、Domino Server やその他の Notes API プログラムを含む、同じユーザー ID で実行されている他のプログラムにも影響を与えます。

LEI Server と Domino Server を同じ UNIX ユーザー ID で実行する場合 (RealTime を使用する必要がある場合など)、いずれか一方のプロセスが異常終了すると、もう一方も終了します(Notes API の制限です)。

Unix のユーザーについては、leiclean 以外にも、Notes/Domino プロセスが異常終了した後でクリーンアップを行うシェルスクリプトがあります。このスクリプトを使用するには、Notes のプログラムディレクトリに切り替え、次のスクリプトを実行します。

nsd -kill

Page 30: LEI ユーザーズガイド

第2章 LEI SERVER の起動

iSeries での LEI Server の起動

LEI Server をインストールした後、LEI Server を起動する方法には、手動と自動の 2 つの方法があります。

LEI Server を自動的に起動

iSeries 上に LEI をインストールすると、Server Task 環境変数を使用して LEI を Domino アドインタスクとして設定するように、notes.ini ファイルが自動的に更新されます。LEI をスタンドアロンとする設定は、iSeries 上でサポートされていません。

LEI Server を手動で起動

コマンド「tell lei quit」を実行して、LEI Server プロセスを Domino コンソールから終了させた場合、Work Domino Console (WRKDOMCSL) コマンドを使用して手動で LEI Server を再起動できます。たとえば、LEISERVER1 という Domino Server のコンソールを使用するときは、AS/400 のコマンドラインで次のコマンドを入力します。

WRKDOMCSL LEISERVER1

コンソールから、次の Notes のコマンドを使用して LEI Server を起動することもできます。

LOAD LEI

メモ いずれの方法でも、LEI Administrator (decsadm.nsf) データベースが別の Domino Server 上にあるときは、LEI を起

動する前にその Domino Server を起動する必要があります。

Page 31: LEI ユーザーズガイド

第2章 LEI SERVER の起動

iSeries 上での LEI Server の終了

LEI Server を終了するには、次の 3 つの方法があります。

Domino コンソールからの終了!

LEI Administrator からの終了!

Domino Server の終了!

Domino コンソールからの終了

Domino コンソールから次のコマンドを入力することで、LEI Server を終了できます。

tell lei quit

実行中の LEI アクティビティは、終了要求が通知されると即座に終了します。完了していない場合でも終了します。

LEI Administrator からの終了

LEI Administrator では、[*RUNNING] ビューから、次の 2 つの方法で終了できます。

[Shutdown] - LEI を通常の方法で終了します。アクティビティは、完了後に終了します。!

[Stop] - LEI を即座に終了します。アクティビティは、完了していない場合でも終了します。!

Domino Server の終了

「ENDDOMSVR Server 名」という形式でコマンドを入力することで、LEI Server を正常に終了できます。

実行中の LEI アクティビティは、終了要求が通知された後で即座に終了されます。アクティビティは、完了するまで実行されません。

*IMMED オプションを使用して Domino Server を終了すると、ジョブは直ちに終了し、実行中の LEI アクティビティも終了します。これにより、転送が不完全になったり、ロールバックに時間がかかるなどの予期せぬ結果が発生する場合があります。*IMMED オプションは、*CNTRLD を含む他の方法が失敗する場合のみ使用してください。

Page 32: LEI ユーザーズガイド

第2章 LEI SERVER の起動

iSeries 上の LEI Server が実行されていることを確認

iSeries 上の LEI Server が実行されているかどうかを判断するには、次の 3 つの方法があります。

Domino コンソールでのタスクの表示!

iSeries 上での WRKACTJOB コマンドの実行!

LEI Administrator データベースからの確認!

Domino コンソールでのタスクの表示

「WRKDOMCSL Domino Server 名」という形式でコマンドを実行します。!

show tasks コマンドを実行します。!

[F5] (更新) キーを押します。!

次のタスクの場合、説明部分にアクティビティ名が表示されます。

LEI server - Administrator is running!

LEI server - Server is running!

LEI server - Activity Transfer Daily Issues is running!

iSeries 上での WRKACTJOB コマンドの実行

WRKACTJOB コマンドを入力すると、Domino Server のサブシステムに次のような LEI ジョブが表示されます。実行されているアクティビティがある場合、実行中の各アクティビティについて LEIACT ジョブが 1 つあります。

DOMINOxx

. . .

. . .

LEICSM

LEI

LEI Administrator データベースからの確認

[*RUNNING] ビューを選択し、アクティブなサーバーの部分を確認します。

Page 33: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

第3章 LEI Administrator

本章では、LEI Administrator とその使用方法について説明します。

Page 34: LEI ユーザーズガイド

第第第第3333章章章章 LEI ADMINISTRATORLEI ADMINISTRATORLEI ADMINISTRATORLEI ADMINISTRATOR

LEI AdministratorLEI AdministratorLEI AdministratorLEI Administrator

LEI Administrator は Notes のアプリケーションです。LEI Administrator データベース (decsadm.nsf) には、すべてのコンフィグレーション、アクティビティ、コネクション、スケジュールに関するコンポーネントが含まれています。LEI Server はこれらを使用してデータの収集、転送、書き込みを行います。LEI Administrator の詳細については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』 (LEI に付属の leiig.nsf と leiig.pdf。www.notes.net からも入手可能) を参照してください。

LEI Administrator のインターフェースを次の図に示します。ナビゲータが左側の領域に表示されています。

LEI Administrator では、コネクションとアクティビティを表示、作成および管理できます。本章では、その特徴と動作について説明します。

Page 35: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI Administrator データベース

LEI Administrator データベース (decsadm.nsf) は、付属のテンプレートファイル leiadm から作成されています。これは、LEI のインストール時にインストールされます。

インストール時に、既存の decsadm.nsf の設計が LEI データベースにアップグレードされ、既存のコネクション文書とアクティビティ文書が保存されます。これにより、ユーザーが同じ Domino Server 上で DECS と LEI の両方を同時に使用できないようになります。既存の NotesPump (LEI) R3.n Administrator から LEI 6 への移行に関しては、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

1 つの LEI Administrator (leiadm.nsf) には複数の LEI Server で使用する情報を保存できますが、各 LEI Server はただ 1 つの LEI Administrator で管理する必要があります。1 つの LEI Administrator で管理する LEI Server のグループを LEI クラスタと呼びます。

LEI Administrator データベースでは、アクティビティの処理内容と結果およびサーバーの動作を記録するログデータベースと接続します。これについては本章の後半で説明します。

メモ LEI Administrator データベースでは Notes の複製は実行できません。LEI Administrator データベースを複製する

と、スケジューリングやステータスチェックなどの LEI Server の動作に支障が生じる場合があります。

メモ [Initialize Keys] 機能を使用して Virtual Fields アクティビティを作成した後、[l fixup decsadm.nsf] コマンドを使用して

LEI Administrator 上で一貫性チェックを実行すると、LEI コンソールにエラーメッセージが表示されます。このエラーから

回復した後、LEI は正常に続行します。このエラーを回避するには、LEI を停止し ([tell lei quit] などを使用)、LEI

Administrator データベース (decsadm.nsf) 上で [fixup] コマンドを実行します。「Fixup」ツールについては、Domino Server

のドキュメントを参照してください。

Administrator のセキュリティの設定

LEI Administrator は、暗号化や ACL での作成者権限など、Lotus Notes の数多くのセキュリティ機能を使用します。LEI はさまざまな種類のユーザーによって使用されるため、どのようなセキュリティを導入するのかを慎重に検討する必要があります。1 人のユーザーまたは 1 つのグループを LEI Administrator として設定することを推奨します。このユーザーまたはグループは、LEI のインストール、設定文書の編集について責任を負います。Lotus Notes のセキュリティ機能 (ACL の作成者レベルのアクセス権など) を使用し、他のユーザーがこれらの文書にアクセスできないように設定します。

メモ 付属の LEI Administrator では、デフォルトで付与されるアクセス権は [管理者] です。権限のないユーザーによる

データベースへのアクセスを防ぐために、LEI を使用する組織のデータベース管理者やシステム管理者は、インストール

中または LEI のインストール直後にこの [管理者] アクセス権を適切な (通常小さい) グループのユーザーのみに付与す

るようにします。LEI のインストール時またはインストール後に管理者を追加する場合は、アクセス制御リスト (ACL) にエ

ントリを追加します。関連情報については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』 を参照してくださ

い。

データベースのパスワードの暗号化も、LEI のセキュリティ機構の一部として重要です。すべてのパスワードフィールドは暗号化できます。サーバー ID、または、暗号化フィールドや暗号化フィールドを含む文書を見たり変更する必要があるユーザーの ID には、各フォームの暗号キーを追加する必要があります。暗号キーを持たないユーザーでも文書は表示できますが、暗号化フィールドのデータは見ることができません。暗号化フィールドは空白のまま表示されます。さらに、暗号キーを持たないユーザーは、文書を編集できません。

LEI パスワードの暗号化の設定については、Domino に付属、または www.notes.net から入手できる『Lotus Connector 接続ガイド』(lccon6.nsf ) を参照してください。また、Virtual Fields、Virtual Documents、Virtual Agents などの Advanced RealTime アクティビティでの暗号化については、本書の各アクティビティに関する章を参照してください。

LEI Administrator は、文書レベルでの作成者権限を提供します。それぞれの LEI 文書は、アクションツールバーにあるアクションボタンによって作成者権限リストにアクセスできます。

セキュリティのもう 1 つの機能として、読者のアクセス権があります。文書内で暗号化ボタンが押されたとき、読者のアクセス権を指定するダイアログボックスが最初に表示されます。[Who can read this document: All readers and above] を無効にし、リストでユーザーを選択すると、そのユーザーのみが文書を表示できます。このリストに含まれていないユーザーは、文書の作成者を含めて、この文書を表示できません。

Lotus Notes のセキュリティの詳細については、『Lotus Domino Administrator 6 ヘルプ』と『Lotus Domino Designer 6 ヘルプ』を参照してください。

Page 36: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI Administrator のアクションバー

LEI Administrator には、コネクションおよびアクティビティの作成に必要なオプションが含まれます。また、アクティビティの開始と終了、および現在のアクティビティログの表示に使用できるボタンも含まれます。

メモ アクティビティ文書およびコネクション文書の作成、編集および削除の際に使用できる User Assistant のヘルプを有

効にする方法については、第1章の「ヘルプの表示とユーザードキュメントの表示」を参照してください。[Add Connection]

アクションボタンおよび [Add Activity] アクションボタンを使用する代わりに、LEI Administrator メニューにある [Create]

ボタンを選択できます。[Stop Activity] アクションボタンの代わりに、LEI Administrator メニューにある [Actions] ボタンを

選択できます。

LEI Administrator のアクションバー上のボタンについて、以下に説明します。

1. [Add Connection] - 外部データソースに対する新規のコネクション文書を作成します。 !

このボタンをクリックすると、可能なコネクションタイプのリストが表示されます。オプションを選択すると、新規のコネクション文書が表示されます。オプションとして User Assistant を有効にし、文書の上部に説明が付いたコネクション文書を開くこともできます。コネクションの作成については、関連ドキュメントの『Lotus Connector 接続ガイド』を参照してください。文書上でポップアップヘルプも利用できます。

利用可能なコネクションのタイプには、DB2、File、Notes、ODBC、OLE DB、Oracle、Sybase、Test、その他 (Collapse/Expand Metaconnector、Meter Metaconnector、Order Metaconnector、Trace Metaconnector) があります。

User Assistant の表示、非表示の切り替えは、ナビゲータパネルの [Help] 領域にあります。

2. [Add Activity] - 新規のアクティビティ文書を作成します。 !

このボタンをクリックすると、可能なアクティビティタイプのリストが表示されます。オプションを選択すると、新規のアクティビティ文書が表示されます。Advanced RealTime アクティビティ (Virtual Agents、Virtual Documents、および Virtual Fields) のいずれかを作成する場合は、作成プロセスを通じて確認が求められるように、User Assistant を有効にするオプションも使用できます。アクティビティの作成については、本書で説明します。ポップアップヘルプも利用できます。

利用できるアクティビティタイプには、Archive、Command、Direct Transfer、Java、Polling、Replication、Scripted、Virtual Agents、Virtual Documents、Virtual Fields、Admin Backup、および Admin Purge Log があります。

[Start Activity] - 現在アクションバーの下の [Activities] ビューで選択されているアクティビティを開始します。!

選択されているアクティビティがすでに実行されている場合、この操作は無効となります。

[Stop Activity] - 現在選択されているアクティビティの実行を終了します。 !

選択されているアクティビティがすでに実行されている場合、この操作は無効となります。

[Current Activity Execution Log] - 現在選択されているアクティビティのステータスを表示します。 !

選択されたアクティビティが実行中の場合、開始時刻と現在のステータスが表示されます。選択されたアクティビティが実行されていない場合、最新の実行結果が表示されます。

ナビゲータパネルの [Log History] 領域で [Log] オプションをクリックすると、すべてのアクティビティログを表示できます。

Page 37: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI Administrator のナビゲータとビューのオプション

LEI Administrator の左側にあるナビゲータパネルを使用すると、LEI Administrator のビュー領域でアクティビティ文書、コネクション文書、および設定文書を表示できます。また、ユーザー定義のフォルダ名を使用したアクティビティやコネクションをグループ化できます。ナビゲータの [Help] セクションを使用すると、User Assistant を表示または非表示に切り替えて、オンライン文書を素早く開くことができます。ナビゲータを使用すると、サーバーおよびタイプ別にログ履歴を表示することもできます。

ナビゲータパネルオプションについて、下表で説明します。

[Activities] - このオプションを使用すると、次の 4 つの方法のいずれかでアクティビティを表示できます。アクティビ!ティ文書は、このビューから開いたり編集したりできます。[Activity] ビューでは、アクティビティ名と [Completed successfully] または [Has not run] などのステータスも表示されます。

[By Type] (デフォルト) - [Activity] ビューに、すべてのアクティビティをタイプ別に表示するには、このオプシ!ョンを選択します。

Page 38: LEI ユーザーズガイド

[By Category] - [Activity] ビューに、共有カテゴリ名を含むすべてのアクティビティとコネクションをカテゴリ!名別に表示するには、このオプションを選択します。

コネクション文書、設定文書およびアクティビティ文書には [Category] フィールドがあります。このフィールドにカテゴリ名を入力して、後でそのカテゴリ名別に文書をグループ化できます。

[By Advanced RealTime] - [Activity] ビューに、グループ化された Virtual Agents、Virtual !Documents、Virtual Fields のアクティビティータイプを表示するには、このオプションを選択します。

[Advanced RealTime] ビューの情報には、Domino アプリケーション (および使用されるフォーム)、アクティビティによって実行されるイベント (開く、更新など)、アクティビティタイプ、外部ソース、アクティビティのステータス、およびアクティビティの名前が表示されます。

[By Data Management] - [Activity] ビューに Archive、Command、Direct !Transfer、Java、Polling、Replication、Scripted、Virtual Agents、Virtual Documents、Virtual Fields、Admin Backup、および Admin Purge Log などのアクティビティタイプを表示するには、このオプションを選択します。

Page 39: LEI ユーザーズガイド

[Connections] - コネクションタイプ別にすべてのコネクションを表示するには、このオプションを選択します。コネクシ!ョン文書とメタコネクション文書は、このビューから開いたり編集したりできます。 文書の検索を容易にするために、[Name] 列と [Eternal Source] 列の両方をソートできます。

[Configuration] - LEI Server 用および LEI Administrator 用の設定文書を表示するには、このオプションを選択しま!す。必要に応じて、これらの文書を開いたり編集したりできます。サーバー文書とアドミニストレータ文書が 1 つずつあります。サーバー設定文書とアドミニストレータ設定文書の詳細については、本章の「LEI の設定文書」を参照してください。

[Project Organizer] - [Project Organizer] ビューを表示するにはこのオプションを選択します。このビューを使用する!と、プロジェクト別にグループ化や、その他の目的のためにフォルダを作成し、特定のコネクションとアクティビティをこれらのフォルダに置くことができます。たとえば、特定のタスクに関連するコネクションとアクティビティをグループ化

Page 40: LEI ユーザーズガイド

できます。

Domino メニューで [Create] - [Folder] をクリックすることで、ここにフォルダを作成できます。モニターしている種類の情報が反映されるような名前を使用します。

フォルダを作成したら、対象のコネクションまたはアクティビティをそのフォルダへドラッグアンドドロップして、ビュー内にフォルダの内容を表示します。

[Help] - このオプションを使用すると、User Assistant の表示/非表示の切り替えができ、オンライン文書を開いて !LEI Administrator データベース自体の詳細情報を参照できます。

[Turn User Assistant On/Off] -User Assistant を表示または非表示にするには、このオプションをクリックし!ます。User Assistant が表示されているとき、上部に説明付きのテキストが表示された状態でコネクション文書が開きます。Virtual Fields、Virtual Document、または Virtual Agents アクティビティ文書を作成する場合、User Assistant は、そのアクティビティ文書を作成する手順のガイダンスを提供します。

[LEI Documentation] - リストから LEI オンラインドキュメントを 1 つ選択して、関連した .nsf ファイルを開きま!す。各ガイドの目次パネルを使用して、必要なトピックまで移動します。

『IBM LEI (Lotus Enterprise Integrator) ユーザーズガイド』(leidoc.nsf)

『Lotus Connectors 接続ガイド』 (lccon6.nsf)

『Lotus Connector LotusScript Extensions ガイド』 (lsxlc6.nsf)

『IBM LEI (Lotus Enterprise Integrator) インストールガイド』(leiig.nsf)

メモ readme.txt および LEI 関連ドキュメントを含む 4 つのユーザードキュメントは、LDD Documentation Library (

http://www.lotus.com/ldd) の Enterprise Integrator 製品タイトルにあります。ここにはまざまな文書や参照リンクが

あります。

[About this Database] - Administrator の使用方法について説明する文書を開くには、このオプションを選択!します。

[Log History] - サーバーまたはタイプ別にすべてのログファイル文書を表示するには、このオプションを選択しま!す。これらの文書は、オプションとして、開いたり表示したりできます。

[Active View] オプション

ナビゲータの [Log History] オプションと同様に、[Activities] ビューまたは [Connections] ビューの下、つまり LEI Administrator の一番下に表示される [Active View] オプションを使用すると、現在実行中のものをすべて表示できます。このウィンドウは、実行中のサーバーと現在実行中のアクティビティを表示するために見出しをクリックすることで、必要に応じて展開または縮小できます。[Activity] または [Active Servers] 見出しをダブルクリックして、リストを展開または縮小できます。また、エントリを 1 つダブルクリックすることで、関連付けられた文書またはログ履歴を開くことができます。このウィンドウを使用すると、アクティビティの処理中に、現在実行中のアクティビティを終了したり、アクティビティ実行ログを表示できます。

Page 41: LEI ユーザーズガイド

アクティビティステータスの表示

[Activities] ビューにおけるステータスの表示について下の表に説明します。アクティビティによっては、これらのアイコンが異なる位置に表示される場合があります。[Activities] ビューを更新するには、[F9] キーを押します。

列 説明とアイコン

Status 下のアイコンによって示されるように、アクティビティのステータスを表示します。ステータスを更新するために、定期的にビューを更新します。

実行中のアクティビティ

アクティビティの開始または終了

エラーによってアクティビティが終了しました。

エラーによってアクティビティが無効になりました。

アクティビティがサーバーで AutoStart にスケジュールされています。

アクティビティがスケジュールされていません。

指定された時刻に開始および終了するようにアクティビティがスケジュールされています。

このアクティビティによってモニターされているイベントのタイプを表示します。[Advanced Real Time Activities] ビューで使用されます。

アクティビティで文書が作成されることを示します。

アクティビティで文書が開かれることを示します。

アクティビティで文書が更新 (編集または保存) されることを示します。

アクティビティで文書が削除されることを示します。

Events

Virtual Attachments がこのアクティビティで有効であることを示します。

Activity アクティビティが、Virtual Field アクティビティ、または Virtual Document アクティビティであることを示します。

アクティビティが Virtual Agents アクティビティであることを示します。

アクティビティが Virtual Fields アクティビティであることを示します。

アクティビティが Virtual Documents アクティビティであることを示します。

Page 42: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI Administrator のメニューコマンド

Domino メニューにある通常の Notes コマンドの他に、LEI Administrator は [Create] および [Actions] メニューオプションに追加のコマンドを提供します。

[Create] メニューオプション

Domino のトップバーメニューから [Create] を選択すると、次の LEI 固有のオプションが表示されます。

[Mail]!

メール文書を開きます。

[Activity]!

使用可能なアクティビティタイプのリストを表示し、作成できます。

[Connection]!

使用可能なコネクションタイプのリストを表示し、作成できます。

[Metaconnection]!

使用可能なメタコネクションタイプのリストを表示し、作成できます。

[Design]!

選択したメソッドや、エージェント、フォルダ、ビューなどを使用して Domino Designer を開きます。

[Action] メニューオプション

[LEI Administrator] メニューの [Action] ボタンからは、アクティビティの従属レポート作成などの有用な機能を使用できます。Domino のトップバーメニューから [Action] を選択すると、次の LEI 固有のオプションが表示されます 。

[Activity Administration]!

[LEI Server Administration]!

[RefreshAllDocuments]!

[Reset Activity]!

[Set Autostart]!

[Project Organizer] オプションを選択した場合、次のいずれか一方、または両方の追加オプションを使用できます。

[Folder Options]!

[Preview in Web Browser]!

[Activity Administration]

[Activity Administration] メニューには、Administrator データベースにおけるすべてのアクティビティの従属アクティビティレポートを含む、アクティビティ関連のコマンドが設定されています。

コマンド 説明

Clear Lock [ClearLock ] オプションは、アクティビティ文書の [Lock] フィールドとそれに関連するフィールドの値を削除し、アクティビティをもう一度実行できるようにします。アクティビティの実行中に LEI Server がダウンしたとき、サーバーの自動クリーンアップが開始する前に、ロック状態を手動で解除してアクティビティを再始動できるようにします。

メモ このエージェントを実行する前に、ビューで文書を選択してください。アクティビティ以外の文書が選択されているときは、エージェントは何も行いません。

Current Execution Log このオプションは、現在の実行ログを開きます。

Dependent Activity Report

このオプションは、従属アクティビティを含むアクティビティのリストを生成します。

出力レポートでは、LEI Administrator データベースにおけるすべてのアクティビティに対する従属アクティビティが示されます。従属アクティビティの重要な情報は、赤色の太字で示されます。出力には、アクティビティ文書に定義された各アク

Page 43: LEI ユーザーズガイド

ティビティ名が表示されます。リストされたアクティビティを選択すると、関連するアクティビティ文書が開きます。

Kill Activity このオプションは、アクティビティのプロセスを即座に終了させます。

メモ アクティビティを終了させるときは、[Stop (Activity)] コマンドをおすすめします。[Stop (Activity)] コマンドの場合は、データベースコネクションのクリーンアップを行い、終了の過程をログに記録するためです。[Kill Activity] コマンドを使用すると、アクティビティが途中で終了するため、システムが不安定な状態になります。このため、[Kill Activity] コマンドは必要なとき以外は使用しないでください。このコマンドでアクティビティを終了すると、エラーと認識されます。

Set Designated Server このオプションにより、使用するサーバー名を指定できます。サーバー設定文書が壊れてしまった場合に使用します。

LEI は名前ではなく ID でサーバーを識別しているため、アクティビティでサーバーフィールドが設定されているときは、新たに作成されたサーバー設定文書に含まれる新しいサーバー ID によってこのフィールドを更新する必要があります。このオプションは、選択したアクティビティに実行されます。

Start Activity このオプションは、選択したアクティビティを即座に開始します。

Stop Activity このオプションは、選択した実行中のアクティビティを終了させます。アクティビティを途中で終了させる方法としては、[Kill Activity] コマンドより [Stop (Activity)] を推奨します。

メモ LEI は、アクティビティの停止をエラーとは認識しません。LEI は閉じられたアクティビティを失敗とは認識しないため、メールによるエラー通知も行われません。このイベントでは、アクティビティは完了したことにはなりません。また従属アクティビティも実行されません。

メモ アクティビティのプロセスを即座に停止させるには、[Kill Activity] コマンドを使います。

[LEI Server Administration]

[LEI Server Administration ] メニューには、LEI Server の動作に関連するコマンドが設定されています。以下でコマンドについて説明します。

コマンド 説明

Shutdown Server このオプションは、LEI Server プロセスを終了させます。

LEI Server を終了するときは、[Stop Server] コマンドより、このコマンドの使用を推奨します。このコマンドは、LEI Server が新たなアクティビティを実行するのを防ぎ、現在実行中のすべてのアクティビティがシャットダウンされるのを待ちます。すべてのアクティビティのシャットダウンが完了した後、LEI Server プログラムを終了します。

サーバーを即座に終了させるときは、[Stop Server] コマンドを使用します。

Stop Server このオプションは、LEI Server を即座に終了させます。

このコマンドは、LEI Server が新たなアクティビティを実行するのを防ぎ、現在実行中のすべてのアクティビティに [Stop (Activity)] コマンドを送信します。一定の時間が経過すると、まだ実行されているアクティビティを強制終了し ([Kill] コマンドを参照)、LEI Server プログラムを終了させます。この時間は、Administrator データベースのサーバーコンフィグレーション文書の [Activity Request Shutdown Timeouts] フィールドで設定されています。

メモ サーバーを終了させるには、[Shutdown Server] コマンドの使用を推奨します。

[Refresh All Documents]

このアクションは、LEI Administrator におけるすべてのコネクションとアクティビティの内容および表示を更新します。アクティビティやコネクションを、LEI 3.x Administrator または DECS Administrator から LEI 6.x LEI Administrator に移行した場合、LEI 6.x で使用する前にこのコマンドを発行する必要があります。

[Reset Activity]

このコマンドは、現在選択されているアクティビティを再実行します。

[Set Autostart]

このオプションがオンになっていると、Domino の起動時に選択されたアクティビティがすべて実行されます。[Off] をクリックすると、選択されたアクティビティに対してこのオプションがオフになります。

[Folder Options]

このオプションにより、フォルダの作成、名前変更、または削除が可能です。現在開いているフォルダから、選択されたア

Page 44: LEI ユーザーズガイド

クティビティ文とコネクションの除去も可能です。このオプションは、[Project Organizer] フォルダ内からのみ利用できます。

[Preview in Web Browser]

このオプションは、使用するブラウザにおけるアクティブビューの内容を表示します。

Page 45: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

文書の作成、編集、削除

コネクション、アクティビティ、メタコネクションの各文書は、LEI Administrator を使用して作成します。このタスクの詳細は、このガイドのアクティビティに関する章と、『Lotus Connector 接続ガイド』のコネクションに関する章に記載されています。

メモ アドミニストレータ文書とサーバー設定文書は、LEI Server のインストール時に作成されます。アドミニストレータ文

書、サーバー設定文書、およびクライアント設定文書の詳細については、本章の「LEI の設定文書」を参照してください。

メモ アクティビティ文書およびコネクション文書の作成、編集および削除の際に使用できる User Assistant のヘルプを有

効にする方法については、第1章の「ヘルプの表示とユーザードキュメントの表示」を参照してください。

文書の新規作成

このセクションでは、LEI でコネクション文書とアクティビティ文書を作成するプロセスについて、概要を説明します。関連ドキュメント『Lotus Connector 接続ガイド』と本書では、各アクティビティタイプとコネクションタイプごとのこのプロセスについて、詳細に説明しています。

LEI コネクション文書またはアクティビティ文書を作成するには、次のようにします。

1 Lotus Notes を起動します。

2 LEI Administrator (decsadm.nsf) を開きます。

3 アクションバーから [Add Connection] または [Add Activity] アイコンをクリックします。または、Domino メニューから

[Create] ボタンを選択します。

メモ 必要なコネクション文書を作成するまで、アクティビティを作成できません。

4 作成する文書の種類 (たとえば、DB2 Connection や Direct Transfer Activity) を選択します。

5 必要に応じて、文書に情報を入力します。

メモ 複数選択が可能なリストから選択できます。下矢印をクリックして、利用可能な外部データで利用できるフィー

ルドを表示します。これは、「参照」と呼ばれます。下矢印アイコンをクリックするたびに外部メタデータがクエリーされ

るため、旧リリースの NotesPump (LEI) のようにキャッシュの更新は必要ではありません。多くの場合手動でエントリ

を入力しますが、手動で入力したエントリと参照されたエントリの両方を使用すると、予測できない結果が得られた

り、エラーメッセージが表示されることがあります。「参照」機能を使用してアクティビティを作成する場合、文書全体を

通じてこの機能を使用してください。手動で入力する場合には、文書全体を通じて手動で入力します。外部データソ

ースへの接続の適正な設定については、本章の「基本的な参照について」を参照してください。

入力するときは、次のガイドラインに従ってください。

リストから値を選択するフィールドもあります。このようなフィールドのラベルには、標準の Notes エントリヘル!パーボタンが付いています。このボタンをクリックするとキーのリストが表示されるため、入力する値をクリックします。

ラベルのない小さなボタンは、オプションの機能を設定するときにクリックします。 !

赤いカッコで示されたフィールドは、暗号化が可能なパスワードフィールドです。!

どの文書の最後にも [Category] フィールドと [Comments] フィールドがあります。 これらのフィールドは、文!書の管理に使用されます。

[Category] - カテゴリー名を入力します。このオプションを使用すると、文書がカテゴリ別に分類されて表示されます。入力したカテゴリ名が存在しない場合は、文書を保存するときに作成されます。複数入力するときは、各カテゴリをカンマで区切ります。

[Comments] - 文書についてのコメントを入力します。このフィールドはリッチテキストフィールドのため、文書リンクを含め、どのような情報でも入力できます。

6 Notes の読者と作成者のリスト権限を使用して、アクティビティ文書とコネクション文書にセキュリティを追加できます。

文書の作成者を追加または更新するには、[Author Privileges] アクションボタンをクリックして、作成者のアクセスを

管理する 3 つのオプションを表示します。オプションを使用するには、1 つを選択して、[OK] をクリックします。文書

の作成者は、自分が作成した文書の編集権限を持ちます。LEI の使用権限および ACL 情報については、『IBM LEI

(Lotus Enterprise Integrator) インストールガイド』に詳しく説明されています。

[Add name[s] to the Reader or Author field.] !

(以前は「公開アドレス帳」と呼ばれていた) Domino ディレクトリから、名前をこの文書の作成者や編集者、読者

Page 46: LEI ユーザーズガイド

(以前は「公開アドレス帳」と呼ばれていた) Domino ディレクトリから、名前をこの文書の作成者や編集者、読者などのリストに追加します。

[Remove a name from the Reader or Author field.]!

文書の作成者や編集者、読者などのリストから名前を削除するには、このオプションを選択します。

[View the Reader or Author field.]!

現在の文書の作成者や編集者、読者などのリストを表示するには、このオプションを選択します。

7 フォームの上部にある [Save & Exit] ボタンをクリックし、完成したフォームを保存します。または、LEI メニューから

[File] - [Save] を選択します。

既存の文書の編集

既存のアクティビティ文書またはコネクション文書を編集するには、次のように操作します。

1 LEI Administrator (decsadm.nsf) を開きます。

2 LEI ナビゲータからビューを選択します。

3 文書のリストが表示されたら、編集する文書をビュー内でダブルクリックします。

4 次のいずれかの方法で、文書を編集モードにします。

[Ctrl] + [E] キーを押す。!

[Action] メニューで [Edit Document] をクリックする。!

フォームの上部にある [Edit Document] アクションボタンをクリックする。 !

文書の中でダブルクリックする。!

5 文書に変更を加えます。

6 フォームの上部にある [Save & Exit] ボタンをクリックし、完成したフォームを保存します。または、LEI メニューから

[File] - [Save] を選択します。

文書の削除

適切なアクセス権を持っている場合、不要になった文書を削除できます。

メモ コネクション文書を削除する場合、これらの文書が他の文書によって使用されていないことを確認する必要がありま

す。[Activity] ビューで、[Source Connection] または [Target Connection] 列見出しをクリックすることで、ソートできま

す。他の文書で使用されている文書を削除すると、そのアクティビティを実行したり、従属文書を開こうとしたときにエラー

が発生します。

メモ 設定文書を削除しないでください。LEI インストールユーティリティまたはアンインストールユーティリティを使用して、

削除する必要があります。

アクティビティ文書またはコネクション文書を削除するには、次のようにします。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 LEI ナビゲータからビューを選択します。たとえば [Connections] ビューを選択します。

3 削除する文書を選択し、[Delete] キーを押します。文書はビューを閉じるときまたは更新するときに削除されます。ま

たは、Win32 プラットフォームの場合、文書を選択して [Ctrl] + [X] キーを押すと即座にドキュメントが削除されてビュ

ーに表示されなくなります。

Page 47: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

基本的な参照について

旧バージョンの NotesPump (LEI) では、クライアント側参照が使用されていました。クライアント側参照では、外部システム接続ソフトウェアを Domino Server (LEI Administrator と LEI Server をホストします) と Notes Client の両方にインストールする必要があります。LEI 6 ではその必要はありません。サーバー側参照が使用されるためです。外部システム上でデータベースを参照すると、LEI Administrator をホストする Domino Server からクライアント接続が使用されます。

外部システム接続ソフトウェアは、LEI Administrator と LEI Server をホストする Domino Server にインストールする必要があります。ただし、Domino Server と LEI Server が別々のコンピュータにある場合は、外部システム接続ソフトウェアを両方のコンピュータにインストールする必要があります。LEI ユーザーは、Notes Client 上に外部システム接続ソフトウェアをインストールする必要がなくなりました。

参照および Domino ディレクトリ

LEI Administrator が置かれている Domino ディレクトリには一定のセキュリティ設定が必要とされます。Domino Server のサーバー設定文書の [セキュリティ] タブで、[信頼されたディレクトリにリストされたユーザー] オプションはデフォルトで有効に設定されています。しかし、サーバーを参照するには、[信頼されたディレクトリにリストされたユーザー] オプションを無効に設定します。LEI アクティビティを作成するすべてのユーザーが Domino ディレクトリにリストされ、サーバーがグループの一部としてリストされていることを確認します。詳しくは、Domino ディレクトリのポップアップヘルプを参照してください。

その他の Domino ディレクトリ設定の要件については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』の「第1章 LEI のインストールと設定の概要」、第2章の「Windows へのインストールの準備」セクション、および第3章の「UNIX へのインストールの準備」セクションにそれぞれ説明があります。

リストのバッファ

リストに表示される項目数が多い場合は、リストをスクロールして目的の項目を選択してください。ただし、テーブルのリストが大き過ぎてスクロールで完全に対応できない場合は、リストの下部にオーバーフローメッセージ (<overflow...>) が表示されます。リストの下に、使用するテーブルの正確な名前を入力できるボックスも表示されます。下の図を参照してください。

メモ スクロールウィンドウによって対応できるテーブルの数は、テーブル名の文字数によって異なります。テーブル名が

短い場合は、テーブル名が長い場合よりも多くのテーブルを、スクロールによって表示できます。

Page 48: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

参照の設定

リモート Domino Server 上の Notes データベースを参照できるようにするには、リモート Domino Server 上に置かれている names.nsf ファイル (旧リリースでは Name and Address Book (公開アドレス帳) または NAB と呼ばれていた Domino ディレクトリ) を編集する必要があります。この手順については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』の第2章「Windows へのインストールと設定」および第3章「UNIX へのインストールと設定」の次のセクションに詳しい説明があります。

「Domino ディレクトリのアクセス制御を設定する」!

「Notes ID ファイルでアクセス権を設定する」!

Page 49: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI の設定文書

LEI の設定文書には、Administrator 用と Server 用の 2 種類があります。

これらの文書は、LEI Administrator データベース、LEI Client データベースと LEI Server のさまざまなパラメータを定義しています。これらの文書にアクセスするには、LEI ナビゲータの [Overview] オプションまたは [System Overview] の [View] メニューを使用します。

Administrator の設定

LEI の各 Administrator データベースごとに、1 つの Administrator 設定文書があります。Administrator 設定文書には、Administrator データベースや LEI Server の設定情報が含まれています。

Administrator 設定文書には、次の内容が含まれています。

フィールド名 説明

Log Database Domino Server 上の LEI ログデータベースのファイルパスとファイル名を、標準のデータディレクトリを起点とする相対パスで指定します。

Help Database Domino Server 上の LEI ヘルプデータベースのファイルパスとファイル名を、標準のデータディレクトリを起点とする相対パスで指定します。

Scripted Agent Database Scripted Agent のオプションリポジトリのファイルパスとファイル名を、標準のデータディレクトリを起点とする相対パスで指定します。

Status Broadcast Interval

動作中の LEI Server が Administrator データベースに実行ステータスを通知する間隔 (分単位) を指定します。この間隔の 3 倍の時間が経過してもステータスを更新できない LEI Server は、異常終了したものと認識されます。

間隔の値は分で入力する必要があります。デフォルトは 60 分に設定されています。

サーバーのステータスは、最後に受け取った通知の日時とともにサーバー設定文書に記録されます。

サーバーの設定

LEI Administrator には、管理する各 LEI Server ごとにサーバー設定文書があります。たとえば LEI Server 文書には、LEI Server に関する設定情報が含まれています。サーバー設定文書の例を次の図に示します。

Page 50: LEI ユーザーズガイド

サーバー設定文書には、次の情報が含まれます。

メモ LEI Server の設定文書に ([Poll Interval]、[Maximum Duration of Activities]、[Activity Shutdown Request Timeout]

などの) 変更を行っても、LEI Server を再起動するまで変更内容は有効となりません。

フィールドまたはボタン 説明

Current Status サーバーのステータスが表示されます。この情報を、ユーザーが変更することはできません。ステータスは [Active] または [Inactive] のいずれかです。

Last Broadcast Administrator がサーバーからステータスの更新を最後に受け取った日時が表示されます。[Current Status] と同様に、ユーザーは値を変更できません。通知の頻度は、Administrator 設定文書で設定します。

View log (ボタン) [log] アイコンをクリックすると ([log] アイコンが利用できる場合)、サーバーの最新のログ文書が表示されます。

Server Name インストール時に割り当てる LEI Server の名前を指定します。この情報は直接変更できません。詳しくは、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

Poll Interval LEI Server が、Administrator データベースをポーリングして、実行が必要なアクティビティがあるかを判断する間隔を指定します。

Maximum Number of Activities

サーバーが同時に実行するアクティビティの最大数を指定します。サーバーが最大数のアクティビティを実行しているときは、次のアクティビティは実行中のアクティビティが完了した後で実行されます。ゼロは最大数に制限がないことを示します。

Maximum Duration of Activities

サーバーが 1 つのアクティビティを実行する最長時間 (分単位) を指定します。この時間を経過すると実行中のアクティビティは、サーバーによって閉じられます。ゼロを指定すると、タイムアウトになりません。

Maximum Consecutive Failures

ここで指定した最大数を超えて 1 つのアクティビティのエラーが連続すると、サーバーはそのアクティビティを実行スケジュールから外します。ゼロはアクティビティを無効にしないことを示します。

Activity Shutdown Request Timeout

アクティビティが [Close] コマンドに応じるまでの時間 (秒単位) を指定します。この時間が経過すると、[Close] コマンドは終了します。ゼロを指定すると、タイムアウトになりません。

Page 51: LEI ユーザーズガイド

Domino Server Domino をホストするサーバー名です。LEI がインストールされているサーバーと同じ場合も、異なる場合もあります。

[Advanced RealTime Enabled]: 指定された Domino Server が Acvanced RealTime アクティビティを実行できることを LEI に通知するには、このボックスにチェックマークを付けます。

メモ Advanced RealTime アクティビティが有効になるように Domino Server を設定する方法については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

Page 52: LEI ユーザーズガイド

第第第第3333章章章章 LEI ADMINISTRATORLEI ADMINISTRATORLEI ADMINISTRATORLEI ADMINISTRATOR

LEILEILEILEI ログログログログ

LEI では、すべての LEI Server とアクティビティのログが記録されます。LEI ログは、パフォーマンス測定やトラブルシューティングに役立ちます。LEI ログを表示するには、ナビゲータで [Log] を選択してログデータベースを開き、参照するログをダブルクリックします。

サーバーログサーバーログサーバーログサーバーログ

サーバーログ文書には、次の情報が含まれています。

フィールドフィールドフィールドフィールド 説明説明説明説明

Server LEI Server の名前が表示されます。

(Date/time interval) LEI Server の開始日時と終了日時が表示されます。これは、ログが記録されている間にサーバー上でアクティビティが実行されていた期間を示します。表示形式は Notes Client のオペレーティングシステムでの形式に従います。

Individual line items LEI Server が実行した処理の履歴が表示されます。アクティビティとその開始日時および終了日時、サーバーのステータス、発生したエラーメッセージが含まれます。

アクティビティログアクティビティログアクティビティログアクティビティログ

LEI アクティビティログのエントリの例を次の図に示します。アクティビティログのエントリには、LEI のアクティビティに関する情報が含まれ、システムのパフォーマンスと結果の追跡が可能になります。含まれている情報は、アクティビティの名前、そのアクティビティを処理したサーバー、開始と終了の日時、統計情報の集計などです。

アクティビティログ文書には、次の情報が含まれています。

フィールドフィールドフィールドフィールド 説明説明説明説明

Activity アクティビティの名前が表示されます。

Processed by Server アクティビティを実行した LEI Server の名前が表示されます。

(Date/time interval) アクティビティの開始日時と終了日時が表示されます。表示形式は Notes Client のオペレーティングシステムでの形式に従います。

Individual line items イベントやエラーメッセージを含むアクティビティの処理の履歴が表示されます。

Elapsed Time アクティビティの実行時間が hh:mm:ss 形式で表示されます。

Page 53: LEI ユーザーズガイド

Records Fetched 外部システムから取得したレコード数が表示されます。

Records Inserted 外部システムに挿入したレコード数が表示されます。

Records Updated 外部システムで更新したレコード数が表示されます。

Records Removed 外部システムで削除したレコード数が表示されます。

オペレーションログオペレーションログオペレーションログオペレーションログ

オペレーションログには、LEI のすべてのシステムレポートが記録されます。LEI Administrator 内でエラーが発生すると、関連するシステムレポートが 1 種類のみ生成されます。たとえば、アクティビティのスケジュール情報が壊れたときは、そのアクティビティと影響を受けるデータを示すオペレーションログが作成されます。

オペレーションログの例を次の図に示します。

オペレーションログ文書には、次の情報が含まれています。

フィールドフィールドフィールドフィールド 説明説明説明説明

Generated for Server ログが作成されたサーバーの名前が表示されます。

(Date/time interval) ログに記録されたイベントが発生した日時が表示されます。

(Individual line items) 運用上の問題が表示されます。

Page 54: LEI ユーザーズガイド

第3章 LEI ADMINISTRATOR

LEI Script Vault (スクリプト格納)

LEI Script Vault (スクリプト格納) (leivlt6.nsf) は LEI に付属しています。このファイルは、LEI のインストール時に作成するよう選択できます。LEI で使用するために必要な LC LSX スクリプト (エージェント) をこのファイルに格納できます。

[Catalog All Agents] オプションはビューから利用できます。エージェントの概要をまとめ、各エージェントのトラッキング文書を作成します。トラッキング文書にはエージェント名や作成者などの各エージェントに関する情報が含まれ、ユーザーはこの文書にコメントを追加できます。LEI の Script Vault (スクリプト格納) データベースを開くときに、[Catalog All Agents] を選択してエージェントのトラッキング文書を更新し、エージェントが文書と同じようにビューに表示されるようにします。[Catalog All Agents] オプションを選択するたびに、エージェントのトラッキング文書が更新され、新しいエージェントがカタログに追加されます。関連するエージェントがないトラッキング文書は削除されます。

LEI Script Valut (スクリプト格納) には、付属のサンプルデータベース leipackagetrack.nsf とともに使用する 2 つのエージェントが用意されています。付録の「チュートリアル」に、これらのエージェントをサンプルデータベース leipackagetrack.nsf とともに使用して Scripted アクティビティを作成する方法が説明されています。

定期的に LEI Script Valut (スクリプト格納) のバックアップを作成することを推奨します。

メモ

メモ Admin Backup アクティビティの実行時にコピーされるのは、LEI Script Vault (スクリプト格納) (leivlt6.nsf) 内のエー

ジェントのうち、共有エージェントとして作成されたもののみです。

メモ Admin backup アクティビティでは、leivlt6.nsf 内の個人エージェントはターゲットデータベースにコピーされませ

ん。Admin Backup アクティビティの実行時にエージェントがターゲットのバックアップデータベースに確実にコピーされるよ

うにするには、エージェントを作成するときに Domino Designer の [Shared Agent] オプションを有効にしてください。

Page 55: LEI ユーザーズガイド

第4章 CONNECTOR について

第4章 Connector について

LEI には、いくつかの Lotus Connector が付属されます。これらについては、Domino の 『Lotus Connectors 接続ガイド』 の関連ドキュメントで解説されており、http://www.lotus.com/ldd でも参照いただけます。

Page 56: LEI ユーザーズガイド

第4章 CONNECTOR について

LEI 付属の Lotus Connector

LEI に付属の Lotus Connector は次のとおりです。

Notes!

DB2!

ODBC!

Text!

File!

Sybase!

Oracle 7!

Oracle 8!

OLE DB!

上記の Connector については、関連ドキュメントの『Lotus Connector 接続ガイド』を参照してください。これに関連する情報については、『Lotus Connectors LotusScript Extensions ガイド』 (lsxlc6.nsf) でも提供しています。これらのファイルは Domino で提供されており、LEI では提供されません。両タイトルは、文書ライブラリの http://www.lotus.com/ldd in .nsf で提供され、ブラウズで参照できます。

メモ iSeries プラットフォームは現在のところ Lotus Connector for DB2、Notes、SAP R/3、File System、 および Text を

サポートしています。 また、LEI Metaconnector もサポートします。

Lotus Connector for SAP R/3 は、プレミアムコネクタのため別売りになります。

付属および別売りの Lotus Connector の詳細については、次の Web サイトを参照してください。

http://www.lotus.com/ei

Page 57: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

第5章 LEI アクティビティの概要

本章では、LEI アクティビティ文書について説明します。アクティビティ文書の概要、すべてのアクティビティに共通するフィールドの説明、アクティビティのスケジュール設定、Advanced RealTime アクティビティの定義、コマンドラインからのアクティビティの実行などの内容が含まれます。

Page 58: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

アクティビティ文書の概要

アクティビティ文書には、データの転送など LEI Server が実行する内容に関する情報が含まれています。各アクティビティごとに専用の Notes フォームがあり、このフォームを使用してアクティビティ文書を作成します。LEI の各アクティビティについては、下表で簡単に説明します。詳細については、各アクティビティの章を参照してください。

メモ Advanced RealTime は、Virtual Fields、Virtual Documents、および Virtual Agents の 3 つのアクティビティで構成さ

れています。

アクティビティ 説明

Archive データベースをアーカイブします。

Command データベースに対してアクションを実行します。

Direct Transfer データベース間でデータを転送します。

Java ユーザー指定の Java アプリケーションを実行します。

Polling データベースをポーリングし、一定の条件を満たすときにアクティビティを実行します。

Virtual FieldsAdvanced RealTime

サポートされている外部データソース (DB2 など) に Domino アプリケーションからリアルタイムにアクセスできます。

Virtual DocumentsAdvanced RealTime

Virtual Fields と同様の機能を使用できます (ただし、キー文書は必要ありません)。また、Notes データベース側では使用スペースを最小限に抑えながら、外部ソース側の膨大な量のデータにアクセスできます。

Virtual AgentsAdvanced RealTime

外部システムのデータベース上でストアドプロシージャを実行する Domino エージェントを作成します。

Replication 異なるデータベース間でデータを同期します。

Scripted LotusScript でデータソースと動作を定義したアクティビティを実行します。

Admin Backup LEI Administrator データベースのデータをバックアップします。

Admin Purge Log LEI ログを削除します。

Page 59: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

アクティビティを作成する

LEI アクティビティ作成のプロセスについては、「第3章 LEI Administrator」の「文書の作成、編集、削除」セクションで説明します。また、本書の各アクティビティの章の冒頭でも説明します。

アクティビティの作成中に、既存のコネクション文書を選択してコネクション情報を設定できます。アクティビティで使用するコネクションは、あらかじめ作成しておく必要があります。コネクション文書の作成または編集方法については、関連マニュアルの『Lotus Connector 接続ガイド』を参照してください。このガイドは、LEI ではなく Domino に付属しますが、LEI Administrator の [Help] ボタンを使用してアクセスできます。また、Documentation Library (http://www.lotus.com/ldd) からも入手できます。

アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性をテストするには、『Lotus Connector 接続ガイド』に説明があるように CONTEST を使用します。

アクティビティ文書のほとんどのフィールドが参照可能で、ポイントアンドクリックで簡単にアクセスできます。

メモ 参照可能なフィールドは編集できますが、参照中に手動でフィールドを編集すると、予測できないエラーが発生する

可能性があります。「参照」機能を使用してアクティビティを作成する場合、文書全体にこの機能を使用してください。手動

で入力する場合には、文書全体を手動で入力します。

アクティビティ内部からのコネクションの参照

LEI は、サーバー側参照をサポートします。LEI Administrator をホストしている Domino Server 上ではなく Notes Client 上にある LEI Server ではコネクションを参照できません。LEI Server がローカルクライアント上にあり、ローカルの LEI データベースに接続する場合は、アクティビティ文書のメタデータ名とフィールド名を入力しておく必要があります。

参照の際、LEI Administrator をホストする Domino Server は、コネクション文書中で名前が指定されているデータベースを検索します。検索対象のデータベースが Notes Client 上に常駐している (つまり、LEI Administrator をホストする Domino Server にはない) 場合は、LEI の参照機能を使用しても、サーバーへの接続およびカタログ登録を実行できません。

ローカルデータベースへの Notes コネクションの使用中に LEI アクティビティからメタデータおよびフィールドを参照すると、次のエラーが発生する場合があります。「Cannot use a Notes connection to a local database - error: No such database exists.」

Page 60: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

アクティビティ文書アクションバー

表示または編集のためにアクティビティ文書を開くと、次のアクションボタンが用意されています。指定されたアクティビティに固有の他のボタンが含まれる場合もあります。

[Edit Document] アクションボタン

このオプションを選択すると編集する現在の文書が開きます。また、文書内の任意の場所をダブルクリックしても編集モードに入れます。

[Start] アクションボタン

このオプションを選択すると、LEI Server が LEI Administrator データベースを次回ポーリングするときに、指定したアクティビティを実行させることができます。

[Start] ボタンは、保存されたアクティビティ文書からのみ利用できます。

[Save and Exit] アクションボタン

このオプションを選択すると、文書への変更を保存し、LEI Administrator に戻ります。

[Author Privileges] アクションボタン

このオプションを使用すると、作成者または管理者がアクティブな文書の編集者レベルのアクセス権を表示または編集できます。このオプションを使用すると、以下のことが可能です。

文書の編集者リストに名前を追加。!

公開アドレス帳 (Domino ディレクトリ) 内のユーザー名を文書の編集者リストに追加するには、このオプションを選択します。

文書の編集者リストから名前を削除。!

文書の編集者リストから名前を削除するには、このオプションを選択します。

文書の編集者リストを表示。!

文書の編集者リストを表示するには、このオプションを選択します。

作成者レベルのアクセス権を持つユーザーは文書を参照および編集できます。

読者権限のアクティビティ

このオプションを使用すると、作成者または管理者がアクティブな文書の読者レベルのアクセス権を表示または編集できます。このオプションを使用すると、以下のことが可能です。

文書の読者リストに名前を追加。!

公開アドレス帳 (Domino ディレクトリ) 内のユーザー名を文書の読者リストに追加するには、このオプションを選択します。

文書の読者リストから名前を削除。!

文書の読者リストから名前を削除するには、このオプションを選択します。

文書の読者リストを表示。!

文書の読者リストを表示するには、このオプションを選択します。

読者レベルのアクセス権を持つユーザーは、文書を参照できますが、内容を編集することはできません。

読者フィールドに追加したユーザーは、最小アクセスレベルの [読者] として必ず LEI Administrators データベースの ACL に登録する必要があります。LocalDomainServers エントリを読者フィールドに追加すると、データベース複製の際に発生する問題の対策になります。

作成者が読者フィールドに名前を追加しない場合、すべてのユーザーが文書を読むことができます。作成者には、自動的に読み取り/書き込みアクセス権が付与されているため、作成者自身の名前を読者リストに追加する必要はありません。

メモ 読者フィールドが空の場合は、文書を開くすべてのユーザーが文書を読むことができます。ただし、読者フィールド

が空でない場合は、リストに名前のあるユーザーのみが文書の読み取りアクセス権を持ちます。この場合、文書の作成

者以外のユーザーが文書のアクセス権を持つには、読者リストに名前を追加 (あるいは、作成者または読み取りアクセス

権を持つ別のユーザーが名前を追加) する必要があります。読み取り/書き込みの両方のアクセス権を持つには、ユー

ザー名が作成者フィールドと読者フィールドの両方に表示されている必要があります。

Page 61: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

アクティビティ文書共通のフィールド

ほとんどのアクティビティ文書に共通するフィールドについて説明します。

アクティビティ名とステータス

すべてのアクティビティ文書に共通の名前フィールドおよびステータスフィールドについて、下表で説明します。

フィールド 説明

Name ユーザーが定義したアクティビティ名を指定します。アクティビティの固有の識別子です。固有であるかどうかは、アクティビティの保存時にチェックされます。最大長は 127 文字です。

Current Status サーバーから通知された文書のステータスを示します。ステータスは次のいずれかになります。

New - アクティビティはまだ保存されていません。アクティビティの作成中はこのステータスが表示されます。

Not Yet Scheduled - アクティビティが作成されてから、アクティビティのスケジュールが有効になっていません。

Scheduled for... - アクティビティは有効で、指定の時刻に実行されるようスケジュールが設定されています。

Active on... - アクティビティは、指定されたサーバー上で現在実行中です。

Scheduling Disabled but Running - アクティビティは、実行用のキューに登録されていますが、まだ実行が開始されていません。

Disabled but Running - アクティビティは無効になっていますが、現在は実行されています。

Disabled - アクティビティのスケジュールは現在無効になっています。スケジュールを有効にするには、アクティビティ文書を編集モードで開き、[Enabled/Disabled] フィールドを [Schedule Enabled] に変更します。

Last Computed Run アクティビティを最後に実行した日時と結果を示します。

Time アクティビティが最後に実行された日付と時刻を示します (アクティビティの結果にかかわらず日時が表示されます)。アクティビティが 1 回も実行されていないときは、ゼロが表示されます。

Result アクティビティ最新の実行結果を示します。アクティビティが 1 回も実行されていないときは、「Activity has not yet run to completion」と表示されます。

Log Link ログ文書が表示されます。[Log document] アイコン (使用可能な場合) をクリックすると、このアクティビティの最新の実行ログ文書が表示されます。

[General Options]

[General Options] フィールドでは、アクティビティの一般的な情報を定義できます。各オプションについて、次の表で説明します。

Page 62: LEI ユーザーズガイド

フィールド 説明

Designated Server LEI Server を指定します (オプション)。

ここで LEI Server を指定しない場合、コントロールストアを最初にポーリングしたサーバーがアクティビティを実行します (アクティビティの実行がスケジュール設定されている場合)。

ここでサーバーを指定すると、そのサーバーのみアクティビティを実行できます。

Dependent Activity(s) 現在のアクティビティが正しく実行されたときに、その後に引き続いて実行する別のアクティビティを指定します。

従属アクティビティを使用すると、複数のアクティビティを連続して実行できます。従属アクティビティとして指定するアクティビティは、それぞれのアクティビティ文書であらかじめ定義しておく必要があります。

OS Priority アクティビティに、[low]、[medium]、[high] のいずれかの優先度を割り当てます。

マルチタスク環境では、LEI Server は優先度に応じてリソースを割り当てます。優先度が [high] のアクティビティには、[medium] または [low] よりも多くの LEI リソースが割り当てられます。

Maximum Duration of This Activity

アクティビティの開始から終了までの最長時間を分単位で設定します。

ここで指定した値は、このアクティビティを実行するサーバーのサーバー設定文書で設定された最大実行時間よりも優先されます。ゼロを指定すると、タイムアウトになりません。

Logging [Enable Logging] が選択されている場合、このアクティビティを実行するたびにアクティビティログ文書が作成されます。このオプションを選択すると、ユーザーインターフェース内の他のログオプションが使用可能になります。

[Buffer Logging] が選択されている場合、ログエントリはアクティビティが完了するまでメモリに保存されます。アクティビティ完了時に、ログエントリがログデータベースに書き込まれます。[Buffer Logging] が選択されていない場合、ログエントリは生成と同時にデータベースに書き込まれます。

Send Log and Report Status

メールを送るタイミング ([Never]、[Always]、または [On Error]) を指定します。[On Error] を選択した場合、アクティビティが正常終了しなかった場合にのみメールが送信されます。

デフォルトでは、ログレポートとステータスは文書リンクを含む Notes のリッチテキスト形式で受信者に送信されます。[Send Log as Plain Text] を選択した場合は、プレーンテキスト形式のメールが送信されます。このオプションは、ポケットベルや PDA 機器への電子メール送信時での使用を想定して用意されています。

Email Recipients 電子メール通知の受信者 (Notes ユーザー名) を入力します。複数のユーザーを指定するときは、ユーザー名をカンマで区切ります。

スケジュール

本章の「アクティビティのスケジュール設定」を参照してください。

カテゴリとコメント

必要に応じて [Category] フィールドを使用して文書を分類したり、[Comments] フィールドにコメントを追加できます。

フィールド 説明

Category(s) 文書を分類するカテゴリ名を選択、または作成できます。カテゴリ名を使用すると、[Category] ビューで文書をカテゴリ別に分類して表示できます。たとえば、特定プロジェクトのすべてのコネクションとアクティビティを分類するなど、表示やアクセスが便利になります。

Comments 内容に関する説明を追加できます。フィールドに入力したテキストは、コネクション文書の構成と管理に役立ちます。

これはリッチテキストフィールドです。フィールドには Notes の文書リンクを追加できます。

Page 63: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

アクティビティのスケジュール設定

[Scheduling] セクションでは、アクティビティの実行スケジュールを定義します。

スケジュール設定の概要

アクティビティ文書の [Scheduling] セクションは、すべてのアクティビティに共通です。ここで指定したスケジュールに従って、アクティビティが実行されます。ただし、ナビゲータの [Start Activity] アイコン、または [Run ASAP] アクションボタンを使用すると、スケジュールに関係なくアクティビティをすぐに実行できます。どちらでアクティビティを実行しても、以降のスケジュールには影響ありません。スケジュールの設定項目はアクティビティの予定開始時刻に影響します。また、Polling アクティビティと Advanced RealTime アクティビティでは、アクティビティを終了する日時も指定します。スケジュールの設定と終了日時の関係については、このセクションの最後で詳しく説明します。

スケジュールの最初の項目では、スケジュールを [DISABLED]、[ENABLED]、[RESTRICT] のいずれかに設定します。アクティビティを無効にすると、スケジュールの残りの項目は無視されます。アクティビティを有効にすると、アクティビティはスケジュールの残りの設定に従って実行されます。シャットダウンやビジーなどが原因で LEI Server が利用できない場合、アクティビティが遅れて実行されることがあります。このような場合は、サーバーが利用可能になり次第アクティビティが実行されます。アクティビティをスケジュールどおりに実行する (遅れる場合は実行しない) 場合は、[RESTRICT TO SCHEDULE] を指定します。

スケジュールの次の設定項目は、[Start Date and Time] と [Stop Date and Time] です。これらの設定項目により実行時刻に境界が設けられ、スケジューリングは開始日時より前には開始されず、終了日時より後は続行されなくなります。たとえば、開始日時と終了日時をそれぞれ、1999/6/6 と 1999/12/25 に指定すると、アクティビティは 1999/6/6 の 00:00:00 AM よりも前には実行されず、1999/12/25 の 12:59:59 PM 以降にも実行されません。時刻のみを入力すると、当日の日付と認識されます。

スケジュールの有効期間を指定した後は、[Days of the Week]、[Weeks of the Month]、および [Days of the Month] を使用して、アクティビティを実行する日を定義します。ここで指定した日以外には、アクティビティは実行されません。ここでは、週はその月の初日の曜日から始まる 7 日間と認識されます。たとえば、月の初日が木曜日のときは、木曜日から水曜日の 7 日間が 1 週間となります。[Weeks of the Month] と [Days of the Month] はマイナスの数値でも指定できます。マイナスは月の最後から逆に数えた日または週を示します。この指定方法は、月末日やその月の最終金曜日などの日を指定するときに便利です。たとえば、毎月の末日を指定するときは -1 を入力します。また、最終金曜日を指定するときは、[Weeks of the Month] に -1 を入力し、[Days of the Week] で [Friday] を指定します。

スケジュール設定の最後の項目は [Repeat Interval] と [Run at Times] です。時刻を指定すると、指定の時刻以外にアクティビティは実行されません。値を指定するときは、"8:00AM、11:30PM" のように時刻を指定するか、"7:00AM - 3:00PM" にように時刻の範囲を指定します。最初の実行時刻を指定すると、後の実行時刻は繰り返し間隔に従って決められます。スケジュールを正確に維持するために、今回の実行を行う前に次回の実行時刻が決められます。これによって、アクティビティの完了に要する時間に左右されずに、次回の実行時刻が正しく決められます。次回の開始予定時刻までにアクティビティが完了しないときは、現在実行中のアクティビティを継続して実行し、それが完了した時点で次のアクティビティを実行します。

たとえば、繰り返し間隔が 60 分に指定されていて、アクティビティが数分で完了するとします。アクティビティは 6:30PM、7:30PM のように 1 時間ごとに実行されます。このとき、2 回目のアクティビティが 60 分で完了しなかったときは、7:30 PM 始まりのアクティビティは、8:30 PM 以降に終了します。そして、2 回目のアクティビティが終了した直後に、8:30 PM 始まりのアクティビティを実行します。このアクティビティの実行が通常通りに数分で完了したと認識された時点で、次の実行時刻が 9:30PM にセットされます。アクティビティの実行が毎回指定した間隔よりも長くかかる場合は、[Repeat Interval] を調整して、正しい間隔でアクティビティが実行されるようにします。

スケジュールの設定はすべて、アクティビティの開始時刻を決めるために使用されます。多くのアクティビティは、指定されたスケジュールに従って開始され、完了します。しかし、Polling アクティビティと Advanced RealTime アクティビティでは、終了時刻を指定する必要があります。[Run at Times]、[Days of the Week]、[Weeks of the Month]、[Days of the Month] を使用して開始時刻を設定します。同じ値を使用してアクティビティを無効にする時刻も決められます。終了時刻を必要とするアクティビティでは、開始時刻に基づいて無効にする時刻が計算され、終了時刻として使用されます。

メモ [Run at Times]、[Days of the Month]、[Weeks of the Month] に値が入力されず、[Days of the Week] ですべての曜

日が選択されている場合、無効にする時刻はなく、アクティビティには終了時刻が設定されません。また、開始時刻は終

了時刻の前に計算されます。これまでに説明したように、開始時刻は [Repeat Interval] に基づいて計算されます。次の

Page 64: LEI ユーザーズガイド

開始時刻が、現在の終了時刻よりも前に設定される場合もあります。たとえば、Notes Virtual Fields アクティビティで、有

効な時間を 7:00AM - 3:00PM にして、繰り返し間隔を 60 分にセットすると、スケジュールは 7:00AM 開始で 3:00PM 終

了となります。この場合、3:00PM にアクティビティが終了すると、有効な時間内で 60 分後の 8:00AM が次の実行時刻と

して指定されてしまいます。このとき、この 8:00AM 始まりのアクティビティが期限切れと認識され、すぐに同じアクティビテ

ィが再実行されてしまいます。このような動作を防ぐには、[Restrict to Schedule] を指定します。また、別の方法とし

て、[Repeat Interval] を 1 日に設定すると、実行時刻は毎日 7:00AM となります。また、[Restrict to Schedule] を選択し、

繰り返し間隔を短い時間に設定すると、終了時刻前にアクティビティが終了した場合に、すぐに再実行できるというメリット

が得られます。

Page 65: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

スケジュール

スケジュールは、次の 2 つの方法で設定できます。

アクティビティの実行時間を指定する方法 - アクティビティの開始と終了の日時を指定するか、定期的な間隔 (たと!えば、月曜日から金曜日の 7:00 AM から 6:00 PM まで) を指定します。

アクティビティ間隔を指定する方法 - アクティビティの実行頻度を指定します。分単位から月単位までの間隔を指定!できます。

スケジュールを設定した時刻になると、アクティビティの実行が開始されます。たとえば、7:30 AM から 5:00 PM の間で、[Repeat Interval] を 1 時間に設定すると、アクティビティは、まず 7:30 に実行され、以降は 1 時間ごとに実行され、最後の実行は 4:30 PM となります。

サーバー間でスケジュールの整合性を保つために、LEI Administrator は、LEI Server の起動時に標準時間を設定します。この結果、単一の Administrator によってサポートされている複数の LEI Server 上では、同じ時刻にアクティビティが実行されます。必要に応じてサマータイムにも対応できます。

メモ スケジュールを使用せず、イベントの発生時にアクティビティを実行する場合は、そのアクティビティを Polling アクテ

ィビティの従属アクティビティとして指定します。詳細については、「第 11 章 Polling アクティビティ」を参照してください。

アクティビティ文書の [Scheduling] セクションにある次のフィールドを使用してアクティビティを実行する時刻と頻度を定義します。

基本スケジュール

フィールド 説明

Run Activity Once and Disable

スケジュールに基づいてアクティビティを 1 回だけ実行します。スケジュールが設定されている場合は、そのスケジュールに従って実行されますが、実行されるのは 1 回のみです。実行された後で、スケジュールの有効/無効が無効に設定されます。[Run ASAP] による実行は、[Run Once] ステータスの回数には含められません。[Run Once] は、新しいアクティビティをテストするときに役に立ちます。

Schedule [Schedule Disabled]、[Schedule Enabled]、[Restrict to Schedule] の 3 つの LEI スケジュールオプションのいずれかを指定します。フィールドにカーソルを置いてスペースキーを押すと、3 つの値が切り替わります。

[Schedule Disabled] - 残りのスケジュール情報は無視され、アクティビティが実行されません。ただし、[ASAP] ボタンをクリックするとアクティビティを実行できます。この場合、アクティビティは実行されますが、ステータスは無効のままです。実行の共有は利用可能です。

[Schedule Enabled] - スケジュールに基づいてアクティビティが実行されます。

[Restrict to Schedule] - 有効にしたときと同様に、スケジュールに従ってアクティビティを実行します。ただし、何らかの原因で指定された時刻にアクティビティが実行できないときは、その回の実行を取りやめます。このオプションは、サーバーのダウンなどで指定した時刻にアクティビティを実行できないときに、アクティビティを遅らせて実行したくない場合に有効です。サーバーが利用可能になったとき、[Enabled] を選択しているとアクティビティは再実行されますが、[Restrict to Schedule] を選択しているとアクティビティは次のスケジュールまで実行されません。

[Run Activity Once and Disable] オプションが選択されている場合は、アクティビティは実行後に自動的に無効になります。

Repeat Interval アクティビティを実行する頻度を指定します。分、日、週、月単位で指定できます(時間を指定するときは、60 分の倍数で入力します)。

アクティビティが実行されると、最後の開始時刻に繰り返しの間隔が加算されて次の実行時刻が決められます。この実行時刻が、[Days of Week] や [Run at Times] で定義されている範囲内にあれば、その実行時刻は有効になります。

繰り返し間隔が 1 日以上で、時刻が指定されていない場合は、次の実行予定日の深夜 0 時に実行されます。

Run at Times アクティビティを実行する時刻を指定します。AM/PM を付けるか、24 時間制で指定します。時間の範囲を指定するときは、ハイフンを使用し、5:00 AM - 6:00 PM または 5:00 - 18:00 のように記述します。また、複数の時刻を指定するときは、カンマで区切ります (4:00, 8:00 - 10:00 のように組み合わせて指定することもできます)。どちらの場合も、時:分という形式を使用します (5PM や 1700 は不正な表現です)。

時刻が指定されていないときは、アクティビティはどの時刻にも実行できます。

Page 66: LEI ユーザーズガイド

Days of the Week アクティビティを実行する曜日を指定します。指定した曜日の指定した時刻にアクティビティが実行されます。

曜日を選択するには、曜日フィールドにカーソルを合わせ、[Enter] キーを押します。表示されたリストから曜日を選択します。曜日を直接追加、または削除できます。曜日を挿入するには、曜日の最初の文字を入力します。複数の曜日を指定するときは、各曜日をカンマで区切ります。

Start Date and Time 指定した日時よりも前にアクティビティが実行されないようにします (オプション)。

Stop Date and Time 指定した日時以降のアクティビティ実行をスケジューリングしないようにします (オプション)。

Days of the Month 毎月指定した日付 (複数可) にアクティビティが実行されるようにします。

メモ 当月の日数より大きい値を [Days of the Month] フィールドに入力した場合、月の末日がアクティビティを実行する日となります。

Weeks of the Month アクティビティを実行するその月の週を指定します。[Days of the Month] と組み合わせて使用することで、アクティビティの実行スケジュールを細かく制御できます。

Retry Options アクティビティが実行前または実行中に失敗したときに、再実行を試みる間隔を指定します。

[Activity Retry on Error] オプションが有効な場合、分単位で指定した間隔でアクティビティを再実行する回数を指定します。このオプションは、指定サーバーを最初のアクティビティ実行要求の処理に使用できない場合に役に立ちます。このオプションを指定すると、自動的に再実行が繰り返されます。

メモ [Activity Retry on Error] オプションを使用した場合、指定されたスケジュール範囲内でしか再試行を実行しません。アクティビティの実行時 (エラー再試行を含む) は、常に基本スケジュールによって決定されます。

詳細スケジュール

[Advanced Scheduling] オプションを使用すると、月の中で特定の週や日にアクティビティを実行できます。日付と時刻を組み合わせて指定することもできます。

[Days of the Month] と [Weeks of the Month] の両方が指定されている場合は、両方とも有効になります。つまり、第 1 週と第 2 週、および 26日 から 28 日が指定されている場合、アクティビティは、1 から 14 日、26 から 28 日に実行されます。ただし、「基本スケジュール」セクションの [Days of Week] の設定に従う必要があります。たとえば、実行する曜日として月曜日のみが指定されている場合は、1 から 14 日、26 から 28 日のうち、月曜日にあたる日のみにアクティビティが実行されます。

フィールド 説明

Start/Stop Date and Time

スケジュールの有効期間を指定します。

どちらか一方、または両方を指定できます。日付のみを指定し、時刻を省略すると、深夜の 0 時と認識されます。時刻のみを入力した場合、当日の日付が使用されます。Administrator がスケジュールを正しく把握できるようにするために、日付と時刻の両方を入力することを推奨します。

アクティビティを実行する期間を限定するときに、開始日付と終了日付を指定します。日時を指定せずに空欄にしておくと、実行する期間を限定しないことになります。開始日時を空欄にすると、アクティビティ文書を保存した直後からスケジュールが有効になります。

終了日時の時点で実行中のアクティビティは、実行を最後まで継続します。ただし、Polling アクティビティは例外で、起動後は [Stop Time] までしか実行を継続しません。終了日時が指定されていないときに Polling アクティビティを終了させるには、LEI Server のコンソールで [Close] コマンドを使用します。

日付と時刻の形式は、各国の設定と、Notes Client が実行されているオペレーティングシステムでの設定に従います。

Days of the Month 1 か月の中で、アクティビティを実行する日付を指定します。日付は 1 から始めます (1 は月の最初の日を示します)。複数の日付を指定するときは、カンマで区切ります。マイナスの数値を使用すると、月の最後の日から逆に数えた日付を指定できます。月の最後の日時は -1 となります。日付を指定しない場合は、すべての日付が (他のタイムスパン定義の範囲内で) 有効になります。

たとえば、7、15、21、-1 と入力すると、7日、15 日、21 日、月末日にそれぞれア

Page 67: LEI ユーザーズガイド

クティビティが実行されます。

範囲形式 (たとえば 10 ・20 など) は使用できません。範囲内の日付を、1 つ 1 つリストする必要があります。

Weeks of the Month アクティビティを実行する週を指定します。複数の週を指定するときは、カンマで区切ります。マイナスの数値を使用すると、月の最後の日から逆に数えた週を指定できます。 月の最後の週は -1 となります。週がリストされていない場合は、すべての週が (他のタイムスパン定義の範囲内で) 有効になります。

アクティビティのスケジュール設定では、週は月の最初の日を開始日とした 7 日間として認識されます。 日曜日から土曜日までを 1 週間とする一般的な数え方は適用されませんので注意してください。 各週は、次の日付となります。

Week 1 (第 1 週) - 1 日 から 7 日 の 7 日間!Week 2 (第 2 週) - 8 日 から 14 日 の 7 日間!Week 3 (第 3 週) - 15 日 から1 日 の 7 日間!Week 4 (第 4 週) - 22 日 から 28 日 の 7 日間!

Week 5 (第 5 週) - (29日)、(30日)、(31日)!

Page 68: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

Advanced RealTime アクティビティ

Advanced RealTime では、次の 3 種類の RealTime アクティビティを作成できます。

Virtual Fields アクティビティ (これまでは LEI RealTime または DECS RealTime と呼ばれていました)!

Virtual Documents アクティビティ!

Virtual Agents アクティビティ!

Virtual Fields アクティビティ

Virtual Fields アクティビティ (これまでは LEI RealTime アクティビティおよび DECS RealTime アクティビティと呼ばれていました) を使用すると、Domino アプリケーションから、サポートされている外部データソース (DB2 など) にアクセスできるようになります。LEI は、Notes アプリケーションをホストする Domino Server 上で実行されている間、Notes データベースのイベントを検出して処理します。たとえば、Notes Client または Web クライアントのユーザーが Notes 文書を開いたり、作成、更新、または保存の操作を行うと、これらのイベントへの作用により、Advanced RealTime でサポートされている外部データソースに Notes フォームから即時にアクセスできるようになり、データが即時に (ネットワークの帯域幅などシステムリソースに影響する要因にも左右されますが) 取得されます。

Virtual Fields アクティビティ機能には、以前の RealTime アクティビティでは使用できなかった機能 (計算結果サブフォームのサポート、改行の区切り記号のオプション、付加的なロギング機能のサポート、および挿入/更新オペレーション後のプロシージャリターンパラメータのサポート) も含まれています。書き込み操作の出力により、挿入操作または更新操作を実行した後、監視している Notes 文書のフィールドに書き込み操作の結果を返すことができます。

システム管理者が Virtual Fields アクティビティを作成すると、Notes ユーザーは使い慣れた Notes Client で直接的、透過的に外部のバックエンドのデータを開いたり、作成、更新、削除できます。さらには、Web クライアントから Domino 6 Server にアクセスして同じ Notes フォームを開き、サポートされている外部のソースデータにアクセスすることもできます。

たとえば、Notes フォームから問い合わせまたは更新を行う外部データベースが DB2 の場合は、Notes のエンドユーザーは DB2 のデータを Notes のデータであるかのように操作できます。クライアントシステム上では、DB2 への接続ソフトウェアは必要ありません。外部データソースへのネットワークアクセスは Domino Server コンピュータが処理します。Domino Server コンピュータには、DB2 などの外部データソースへ接続するためのソフトウェアをインストールします。さらに、取得したデータを Notes フォームに保存するか、単に表示するのみかを選択することもできます。

Virtual Fields アクティビティ (外部システム内の各レコード) では、プレースホルダー文書、またはその文書のデータの取り出しに必要なデータベースのキー値 (1 つまたは複数) を含んだ「キー文書」が Notes に格納されます。Virtual Fields アクティビティを使用する Domino アプリケーションによって文書が開かれると、キー文書内のキー値を使用して、バックエンドから仮想フィールドが取り出されます。アプリケーションユーザーからは、データが Notes 文書に保存されているかのように見えます。

Virtual Documents アクティビティ

Virtual Documents アクティビティと Virtual Fields アクティビティとでは、提供する機能が似ています。重要な相違点は、Virtual Documents では Notes データベース内にキー文書が必ずしも存在しなくてもよいという点です。Virtual Documents アクティビティでは、キー文書の代わりに NoteID (Notes 文書の固有の識別子 EIUNID など、文書の固有の ID を判定するための情報) を外部システム自体に格納します。これらの値は、外部システムレコードの固有のキーとしての役割を果たします。

Virtual Documents アクティビティは、他のすべての Advanced RealTime 機能と同様、LEI Administrator によって制御されています。外部システムへのアクセスに使用される Lotus Connector を指定、または監視対象の Notes データベースやフォームを指定するための Virtual Documents アクティビティ文書を作成してください。アクティビティ文書を作成する際は事前に、選択した外部システム用のコネクション文書を作成しておく必要があります。

Virtual Documents アクティビティの実行を開始すると、Notes フォームのイベント (その Notes フォームを使用する文書を開く、または作成するなど) が、アクティビティによって監視されます。たとえば、文書を開いたときには、Virtual Documents アクティビティ文書に指定されている外部データソースから取り出されたデータが、フォームに取り込まれます。新規文書の作成時には、Virtual Document の整合性を維持するための追加情報と一緒に、すべてのデータが外部のデータソースに保存されるため、次回は Domino から Virtual Document にアクセスできるようになります。たとえば、Notes フォーム情報の保存によって、次回 Virtual Document を開いたときには、適切なフォームを使用してデータが表示されるようになります。

Virtual Agents アクティビティ

Virtual Agents アクティビティでは、外部システムのデータベース上でストアドプロシージャを実行する Domino エージェントが作成されます。このアクティビティで作成されたエージェントは、[Domino Agent] メニューに追加されます。ストアドプロシージャがパラメータを必要とする場合、またはストアドプロシージャによってパラメータを返される場合は、これらのパラメータを設定した Domino 文書を作成し、エージェントの実行時にその文書を選択します。

Page 69: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

統合されたユーザー情報データベース

統合されたユーザー情報データベースは、Advanced RealTime アクティビティと同様、LEI 製品に追加された機能です。統合されたユーザー情報データベース (3 通りの Advanced RealTime アクティビティのみで使用可能) を使用することにより、外部システムのデータベースの特定の形式 (DB2、Sybase、Oracle など) へのユーザー ID とパスワードの関連付けに対するセキュリティがより強化されます。

LEI 付属の leicred.ntf テンプレートファイルを使用して統合されたユーザー情報データベースを作成し、わかりやすい命名規則でデータベースに名前を付けます。このデータベースで、ユーザー ID、パスワード、およびデータベースの種類の関連付けを行います。

3 つの Advanced RealTime アクティビティ文書を使用することにより、特定のアクティビティ名に対してユーザー情報データベースを使用するかどうかを指定できます。アクティビティ文書の選択肢としては、[Integrated Credentials: Use Connector Credentials] (ユーザー情報データベースを無視する) と、[Integrated Credentials: Lookup Credentials] (指定したユーザー情報データベースを検査し、アクティブなアクティビティ文書の参照先コネクション文書に指定されている外部システムに対して、現在のユーザー ID とパスワードが権限を持つことを確認する) とがあります。アクティビティ文書には、ユーザー情報データベースへのパスを入力するフィールドもあります。指定したユーザー情報データベースにアクセスできなかった場合は、代わりにアクティビティ文書のユーザー情報を使用するように指定することもできます。

ユーザー情報のチェックに関連するアクティビティ文書オプションについては、本書の「第 12 章 Virtual Fields アクティビティ」、「第 13 章 Virtual Documents アクティビティ」および「第 14 章 Virtual Agents アクティビティ」に説明があります。

統合されたユーザー情報データベースのセットアップおよび使用

外部システムのデータベースにアクセスするには、統合されたユーザー情報を使用します。統合されたユーザー情報文書をセットアップするには、LEI に付属するユーザー情報テンプレート (leicred.ntf) に基づいて Notes 文書を作成しておく必要があります。作成した .nsf ファイルに付ける名前は、どのような名前でもかまいません。

すべての外部システムへの接続ユーザー情報をすべて含む、単一の統合されたユーザー情報データベースを作成できます。必要であれば、統合されたユーザー情報データベースを複数作成することもできます。

統合されたユーザー情報ファイルを開くと、次のような画面が表示されます。

統合されたユーザー情報データベースのフィールドについて以下で説明します。

[Allowed Readers] - 文書に対する [Reader] の権限を持つユーザーを指定します。リストされていないユーザーには!文書は表示されません。

[Notes Identifier] - 認証情報を使用する必要があるユーザーの Notes ユーザー名を指定します。この Notes ユー!ザー ID は LEI により自動的に取得され、フィールドに入力されて検索キーとして使用されます。ID の値は、データベースを編集したユーザーの Notes ユーザー ID から取得されます。別のユーザーまたはサーバーの ID を追加する場合は、同じフォーマットを使用してこのフィールドを編集してください。たとえば、このフィールド内に Notes ユーザー ID が CN=John Doe/OU=Widgets/O=HugeCompany と表示されている場合、カスタマーサポート担当の Bob Smith 氏のユーザー情報を追加するには、フィールドを CN=Bob Smith/OU=Support/O=HugeCompany にします。CN、OU、および O の指定は、特定ユーザーまたは特定サーバー用の完全な Notes ドメイン名 (FQDN) に対応する固有の ID 指定です。CN、OU、および O はそれぞれ、共通名 (Common Name)、組織ユニット (Organizational Unit)、および組織 (Organization) の略です。場合によっては、OU 指定が適用されないこともあります。何を入力したらよいかわからない場合は、担当の Domino システム管理者に問い合わせてください。

[Connector] - 適用できるコネクタ名 (「Sybase」や「DB2」など) を指定します。このフィールドが入力されている場合!は、コネクタタイプ (すべての Sybase コネクタなど) にアクセスしているアクティビティに認証情報が関連付けられます。このフィールドはオプションです。

[External Server] - 外部サーバー名を指定します。このフィールドはオプションですが、サーバー名が入力されてい!る場合は、指定されたサーバーにアクセスするアクティビティの認証情報のみに限定されます。

メモ 複数の基幹システムを使用していて、ユーザーアカウントがシステム間で異なる場合、このフィールドにサーバ

ー名を入力する必要があります。フィールドを空にしておくと、実行時刻のエラーが発生する可能性があります。

[External Database] - 外部データベース名を指定します。このフィールドはオプションですが、フィールドにデータが!入力されている場合は、使用される認証情報がこの名前を使用してデータベースにアクセスしているアクティビティの認証情報のみに限定されます。

Page 70: LEI ユーザーズガイド

[External Userid] - 外部システムへの接続に使用されるユーザー ID を指定します。!

[Set Password] - 外部システムへの接続に使用されるパスワードを指定します。パスワードは、このフォームには表!示されません。

統合されたユーザー情報と全文索引

統合されたユーザー情報を使用して、Virtual Documents または Virtual Fields で全文索引を実行するには、統合ユーザー情報データベースにサーバー ID を追加する必要があります。

統合されたユーザー情報とサーバー間での複製

統合されたユーザー情報を使用してサーバー間複製を実行するには、複製するサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に、Virtual Documents 対応または Virtual Fields 対応のデータベースが格納されているとします。これをサーバー B に複製する場合は、サーバー A の統合ユーザー情報データベースにサーバー B のサーバー ID を追加します。

Domino クラスタでの統合されたユーザー情報

Domino クラスタ内のサーバーに、Virtual Documents 対応または Virtual Fields 対応データベースのレプリカが格納されている場合は、それらすべてのサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に Virtual Documents 対応のデータベースが格納されており、そのレプリカがサーバー B とサーバー C に存在するとします。さらに、サーバー A、B、C がすべて同じ Domino クラスタに属している場合、サーバー B とサーバー C のサーバー ID をサーバー A の統合ユーザー情報データベースに追加する必要があります。これらのサーバー ID が追加されていないと、クラスタの複製処理でレプリカを正しく同期できません。

統合されたユーザー情報と Virtual Agents

Virtual Agents は、統合されたユーザー情報のみを使用してエージェントを実行します。

統合されたユーザー情報およびストアドプロシージャへのマッピング

ストアドプロシージャへのマッピングを行うときは、すべてのインスタンスにおいて、プロシージャ名の前に所有者名を指定する必要があります。所有者名はユーザーのログイン名とは異なります。たとえば Emp54 としてログインして、Emp98 が所有する abx という名前のストアドプロシージャへのマップを試みると、「Monitor failure error..」というエラーメッセージを受け取ります。プロシージャへのマップが正しく行われるようにするには、名前を Emp98.abx に変更します。

HTTP および Notes Client の統合されたユーザー情報

HTTP または Notes Client あるいはその両方を使用して LEI を使用できるデータベースや統合されたユーザー情報にアクセスするときは、以下の点に配慮してください。

ご使用の Domino Server が HTTP 経由での匿名アクセスを許可するように設定されている場合、LEI ユーザー情報!データベース内を検索すると、ユーザー ID として「Anonymous」が探し出されます。この場合に HTTP クライアントから自分へのアクセスを許可するために必要な操作は、a) 有効なデータベースユーザー情報を指定した LEI ユーザー情報データベース内に「Anonymous」のエントリを持つことと、b) [Use connector credentials if user credentials unavailable] のチェックボックスをオンにしておくことです。

ご使用の Domino Server が 匿名の HTTP アクセスを拒否するように設定されていて、サーバーへの HTTP アクセ!ス用のアカウント情報が必要な場合は、HTTP クライアント用 LEI ユーザー情報データベース内を検索すると、最初に Domino Server にログインしたときのアカウントのユーザー ID の「短縮名」が探し出されます。この名前は、サーバーにあるユーザー用アドレス帳エントリ ([基本] タブ上の [短縮名/userID] の下部) にリストされていて、通常はユーザーの名前の頭文字と名字 (「jsmith」など) です。この場合、HTTP クライアントアクセスを可能にするには、LEI ユーザー情報データベース内に短縮名用のユーザー情報エントリを保有する必要があります。

ユーザーが Notes Client からデータベースにアクセスした場合、LEI ユーザー情報データベース内を検索すると、ユ!ーザー ID として Notes ユーザーの完全なユーザー名が探し出されます。この場合、Notes Client アクセスを可能にするには、LEI ユーザー情報データベース内に完全な Notes ユーザー名 (「John Smith/CAM/Lotus」など) のエントリを保有する必要があります。

メモ HTTP クライアントで Virtual Documents と統合されたユーザー情報を使用している場合は、サーバー認証情

報文書も必要になります。

メモ HTTP クライアントと Notes Client で特定ユーザーに同じようにアクセスできるようにするには、ユーザーの短

縮名用と完全な Notes ユーザー名用の両方の認証情報レコードを持っている必要があります。

Page 71: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

コマンドラインからのアクティビティの実行

アクティビティは、LEI Server が実行されているコンピュータで、システムのコマンドラインから実行できます。この機能により、特定のデータベースイベントをトリガーとして LEIACT を実行できます。

UNIX のコマンドラインから LEI アクティビティを実行するには、次の形式でコマンドを入力します。

leiact "Activity Name"

Windows のコマンドラインから LEI アクティビティを実行するには、次の形式でコマンドを入力します。

nleiact "Activity Name"

iSeries のコマンドラインから LEI アクティビティを実行するには、次の形式でコマンドを入力します。「domServer」は アクティビティが保存される Domino Server の名前、「activityName」は、実行する LEI アクティビティの名前です。

RUNDOMCMD SERVER(domServer) CMD(CALL PGM(LEIACT) PARM('activityName')) BATCH(*NO)

メモ iSeries では、LEIACT プログラムの実行権限を持っていれば、コマンドラインから LEI アクティビティを起動できま

す。LEI アクティビティは、プログラムのプロセスで実行されます。実行する LEI アクティビティの名前 (単一引用符 (') で

囲んだ文字列) を入力します。LEI アクティビティは、DB2 コネクションに登録されている iSeries ユーザープロファイルを

使用して DB2/400 データにアクセスし、KeyFileName で定義されているユーザー ID を使用して Notes データにアクセス

します。KeyFileName (notes.ini ファイル内にある) で定義されているユーザー ID にパスワードが設定されている場合

は、iSeries の対話プロセスで、パスワードの入力を要求されます。

いずれの場合も、「Activity Name」は、実行するアクティビティの名前です。たとえば、Windows NT のコマンドラインに次のように入力すると、引用符で囲まれた名前のアクティビティが起動します。

nleiact "ABX Direct Transfer Activity"

一般的な考慮事項

アクティビティをシステムのコマンドラインから実行すると、アクティビティの実行は Administrator およびサーバーコンソールには表示されませんが、ログは記録されます。

LEI Server は、Administrator でスケジュールが設定されたアクティビティのみを実行します。また、LEI Server からアクティビティが実行されているときは、その実行が終了するまでは、同じサーバーまたは他のサーバーで同じアクティビティを同時に実行できません。これは、「排他的な」実行と呼ばれています。一方、アクティビティをコマンドラインから実行すると、実行が「共有」されます。これは、同じアクティビティを複数同時に実行できることを意味します。最初はこの機能があまり有用ではないと感じるかもしれませんが、アクティビティの同時実行が重要なケースも考えられます。たとえば、Web アプリケーションの検索や、レポートの作成では、実行の「共有」が役立ちます。

アクティビティをコマンドラインから実行するときは、次の点に注意してください。

アクティビティ文書で指定されている従属アクティビティは実行されません。 !

アクティビティ文書内のログデータベースへのリンクは更新されません。したがって、新しいログエントリにはリンクし!ません。

iSeries に関するその他の考慮事項

LEIACT はパブリックの *EXCLUDE であり、権限のないユーザーにアクティビティを実行されないようにする必要があります。

LEI Server から実行した方がアクティビティのパフォーマンスは高くなります。LEIACT の呼び出しによってすべてのアクティビティのログエントリを得られますが、実行のステータス (最後の実行結果) は LEI アクティビティ自体には記録されません。

Page 72: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

データのマッピング

Direct Transfer アクティビティまたは Replication アクティビティを通じて、LEI でソースデータベースおよびターゲットデータベース内の列がマッピングされます。マッピングの方法には、以下の 3 種類があります。

フィールド名によるマッピング!

フィールド位置によるマッピング!

ユーザー定義によるマッピング!

LEI によるフィールドマッピングの仕組みを理解すると、Replication アクティビティと Direct Transfer アクティビティを設定する際に役に立ちます。

固有のデータマッピング要件を持つ Lotus Connector もあります。たとえば、DB2 用の Lotus Connector を使用している場合は、ID 列がサポートされている必要があります。また、DB2 用の Lotus Connector では、ストアドプロシージャ機能がサポートされている必要もあります。

メモ データ型については、「付録 A LEI とデータ」を参照してください。ご使用の Lotus Connector に固有のデータマッピ

ングに関する考慮事項については、関連ドキュメントの『Lotus Connector 接続ガイド』を参照してください。

フィールド名によるマッピング

ソースデータベースのフィールド名と同じ名前のターゲットデータベースのフィールドに、データが転送されます。アクティビティのコマンドステートメントが SQL であれば、別名を使用してソースフィールドをターゲットフィールドにマッピングできます。たとえば、「SELECT empno employee」というステートメントによって、ソースのフィールド empno がターゲットのフィールド employee にマッピングされます。

メモ 実際の式はデータベースの SQL 構文によって異なります。

フィールド位置によるマッピング

ソースの結果セットの最初のフィールドデータが、ターゲットの最初のフィールドにコピーされ、以降のフィールドも順にコピーされます。アクティビティのコマンドステートメントでメタデータからフィールドのサブセットを選択する場合も、フィールドの位置は 1 から始まり順番に 1 ずつ増分すると認識されます。そのため、選択ステートメントでのフィールド順に転送が行われます。「SELECT column6, column4, column7 FROM table」という SQL ステートメントによって、ソースの 6 番目のフィールドがターゲットの最初のフィールドにマッピングされます。同様に、ソースの 4 番目がターゲットの 2 番目に、ソースの 7 番目がターゲットの 3 番目にそれぞれマッピングされます。

ユーザー定義によるマッピング

ソースとターゲットの双方のフィールド名を指定すると、データフィールドがその指定された順番でマッピングされます。たとえば、ソースフィールドを "A, B, C" とし、ターゲットフィールドを "X, Y, Z" とすると、ソースフィールド A はターゲットフィールド X に、B は Y に、C は Z にそれぞれ転送されます。

フィールド数が一致しないとき

Archive アクティビティ と Direct Transfer アクティビティでは、双方のデータベースのフィールド数が同じである必要はありません。Replication アクティビティの場合にのみ、フィールド数の不一致が問題になります。これらのアクティビティでは次のことが発生します。

ソースの結果セットのフィールド数がターゲットのメタデータのフィールド数より多い - 転送は失敗し、エラーメッセー!ジが出されます。

ソースの結果セットのフィールド数がターゲットのメタデータのフィールド数より少ない - 転送は成功し、データが転!

送されなかったターゲットフィールドに NULL 値が入力されます。

Page 73: LEI ユーザーズガイド

第第第第5555章章章章 LEILEILEILEI アクティビティアクティビティアクティビティアクティビティのののの概要概要概要概要

ストアドプロシージャストアドプロシージャストアドプロシージャストアドプロシージャとととと出力出力出力出力パラメータパラメータパラメータパラメータ

出力パラメータがサポートされていると、LEI はターゲットのストアドプロシージャまたは ERP 呼び出しを使用して実行された Direct Transfer または Virtual Fields アクティビティの結果を、ターゲットデータベースの条件に基づいてソースデータベースに返すことができます。たとえば、DB2 テーブルへの挿入を実行するストアドプロシージャを作成して、ステータス番号または確認番号を生成できます。Direct Transfer アクティビティは、このストアドプロシージャをターゲットメタデータとして使用し、そのデータを外部システム (ソースコネクション) に転送します。転送の結果セットとして返されたデータは、Direct Transfer アクティビティ文書の [Stored Procedure Output Mapping - Source] フィールドに指定されているソース文書のフィールドに送られます。

メモメモメモメモ フィールド名が完全に一致しない場合は、フィールドリストでそれらのフィールド名を明示的にマッピングする必要が

あります。

Direct Transfer アクティビティは、この機能をサポートする唯一の LEI アクティビティです。この機能の使用方法については、「第 10 章 Direct Transfer アクティビティ」を参照してください。

出力パラメータ対応のストアドプロシージャをサポートする Lotus Connector タイプは、現時点では Lotus Connector for DB2 および Lotus Connector for SAP (別売品) に限られています。

Direct Transfer アクティビティを使用してターゲットストアドプロシージャを作成し、それを使用するには、コネクタがストアドプロシージャの出力パラメータをサポートするしくみについての実際的な知識が必要です。ご使用の Lotus Connector でこの機能をサポートする方法については、関連ドキュメント『Lotus Connector 接続ガイド』の各 Connector の章を参照してください。

メモメモメモメモ アクティビティのソースまたはターゲットのメタデータがストアドプロシージャとして指定されている場合は、そのストア

ドプロシージャで宣言されているすべてのパラメータがアクティビティで定義されている必要があります (戻り値としてマッ

ピングまたはリストされるため)。ストアドプロシージャで宣言されているパラメータがアクティビティ内で見つからない場

合、メッセージが返されます。たとえば、DB2 は「SQL1109N - The specified dll <procedure> could not be loaded」という

メッセージを返します DB2 はストアドプロシージャを名前とパラメータ数でカタログ登録します。

NotesNotesNotesNotes からからからから DBDBDBDB2222 へへへへ転送転送転送転送するするするする Direct TransferDirect TransferDirect TransferDirect Transfer アクティビティアクティビティアクティビティアクティビティのののの例例例例

この例では、Notes データベース (ソース) と DB2 データベース (ターゲット) の間の直接転送で DB2 の出力パラメータコードを使用します。社員名や入社日などのいくつかの値が Notes データベースから取得され、DB2 データベースの SP_EMPdb2 テーブルに挿入されます。挿入が完了すると、SP2 という名前のストアドプロシージャが現在のタイムスタンプを作成して、DATEPROC に割り当てます。DATEPROC は出力として指定されているため、この値はソース (Notes) データベースに返されます。

1 Notes コネクション文書と DB2 コネクション文書を作成します。この例では、コネクション名はそれぞれ LEITEST と

DB2v71 です。

2 DB2 ストアドプロシージャを作成します。この例では、ストアドプロシージャ名は SP2 です。Direct Transfer アクティビ

ティ文書では、ターゲットメタデータと呼ばれます。

Page 74: LEI ユーザーズガイド

3 Direct Transfer アクティビティ文書を作成して、文書の上部に情報を入力します。この例では、上記の手順 1 で作成

したソースとターゲットのコネクション名が指定されます。また、ターゲットコネクションの [Table Name] フィールドにス

トアドプロシージャ名 SP2 が指定されます。ストアドプロシージャによって更新されるフォーム (この例では、

SP_EMPdb2) が、ソースコネクションの [Form Name] フィールドで指定されます。フィールドのマッピングは、アクティ

ビティ文書の [Field Mapping] セクションに示されているように名前によって行われます。

4 アクティビティ文書の下部に情報を入力します。

[Target Data] セクションの [Target Metadata is Stored Procedure] オプションを有効にします。a.

[Accept Return Values into Source] を有効にします。b.

[Stored Procedure Output Mapping] セクションで、ソースとターゲットのフィールドに DATEPROC を入力しまc.

す。

Page 75: LEI ユーザーズガイド

5 このアクティビティを実行します。出力例を以下に示します。この例では、ENAME、EMPNO、MANAGER、HIREDATE

がターゲットデータベースへの入力で、DATE/TIME PROCESSED がターゲットデータベースからの出力です。

Page 76: LEI ユーザーズガイド

第5章 LEI アクティビティの概要

異種プラットフォーム間でのテキストリストデータの移動

Advanced RealTime などのアクティビティでは、Notes データベースはすべてのプラットフォームにおいて同一の標準形式 (リトルエンディアンバイト順) ですべてのデータを保存します。LEI は、Notes のデータを読み込む (たとえば、Notes フォームのキーフィールドにアクセスして、ホストのバックエンドシステムでレコード検索に使用する) 場合に、ホストプラットフォームのバイト順形式に自動変換します。逆に、Notes フォームに保存するときは、Notes の標準形式に変換します (複合データは例外です。これは常に canonical 形式で扱われます)。

システム計画での考慮点

Domino Server 間や Notes と他のデータベースシステム間でデータを転送するときは、通常、問題はありません。しかし、異種の LEI Server プラットフォーム上の別の DBMS を介して、ある Domino Server から別の Domino Server へデータを転送する場合、複数値タイプ (テキストリスト、数値リスト、日時リスト) は壊れてしまいます。たとえば、NT LEI Server を使用して Notes から DB2 にテキストリストを転送するとします。この場合、Windows NT 上で実行される別の LEI Server を介してデータを DB2 から Notes に戻すときは問題ありません。しかし、UNIX プラットフォーム上で実行される別の LEI Server を介して戻すと、ターゲットデータベースのテキストリストデータは無効になります。

Page 77: LEI ユーザーズガイド

第第第第5555章章章章 LEILEILEILEI アクティビティアクティビティアクティビティアクティビティのののの概要概要概要概要

アクティビティロギングアクティビティロギングアクティビティロギングアクティビティロギング

ロギング情報は、どの LEI アクティビティビューでも使用できます。ログには、アクティビティの開始および実行の日時がリストされています。また、アクティビティの処理中に発生したエラーに関する情報も含まれています。

特定のアクティビティのログを表示するには、LEI Administrator でそのアクティビティの名前をハイライト表示して、アクションバーの [Current Activity Execution Log] オプションをクリックします。

出力例を以下に示します。

メモメモメモメモ アクティブなアクティビティ文書で [View Log] ボタンをクリックしても、同じ出力が得られます。

最近の全アクティビティのログ履歴を表示するには、Navigator の [Log History] セクション内の [Log] オプションを使用します。

出力例を以下に示します。

Page 78: LEI ユーザーズガイド

LEI Administrator の一番下のセクションを展開して、アクティブなサーバーおよびジョブに関する情報を表示することもできます。

Page 79: LEI ユーザーズガイド

第6章 ADMIN BACKUP アクティビティ

第6章 Admin Backup アクティビティ

本章では、LEI の Admin Backup アクティビティについて説明します。

Page 80: LEI ユーザーズガイド

第6章 ADMIN BACKUP アクティビティ

Admin Backup アクティビティの概要

Admin Backup アクティビティを使用すると、LEI Administrator データベース (decsadm.nsf) のバックアップコピーを作成できます。また、LEI Script Vault (スクリプト格納) データベース (leivlt6.nsf) のバックアップコピーも作成できます。

Page 81: LEI ユーザーズガイド

第6章 ADMIN BACKUP アクティビティ

Admin Backup アクティビティの使用方法

Admin Backup アクティビティは、LEI Administrator とそれに関連する文書のバックアップコピーを作成する場合に使用します。

作成された LEI のアクティビティ、コネクション、コンフィグレーションの最新バックアップを維持するために、Admin Backup アクティビティを定期的に実行する必要があります。また、アドミニストレータデータベースの文書が大量に存在する場合などに Admin Backup アクティビティを使用すると、文書のコピーを残しながらデータベースをクリーンアップできます。

Page 82: LEI ユーザーズガイド

第6章 ADMIN BACKUP アクティビティ

Admin Backup アクティビティの作成方法

Admin Backup アクティビティを作成する一般的な手順を説明します。Admin Backup アクティビティ文書のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator から [Add Activity] を選択します。表示されたリストから [Admin Backup] を選択します。

3 Admin Backup アクティビティ文書の、必須フィールドを入力し、アクティビティに必要なオプションを選択します。

4 アクティビティ文書を保存します。

5 アクティビティを実行します。

Page 83: LEI ユーザーズガイド

第6章 ADMIN BACKUP アクティビティ

Admin Backup アクティビティ文書

以下に、Admin Backup アクティビティ文書を示します。新しく Admin Backup アクティビティを作成するには、[Add Activity] をクリックして表示されたリストから [Admin Backup] を選択します。既存の Admin Backup アクティビティを開くには、[Activities] ビューで、該当するアクティビティの名前をダブルクリックします。

メモ アクティビティの実行オプションについては、「第5章 LEI アクティビティの概要」を参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティの一覧に表示されます。また LEI Server コンソールでも、この名前が定義済みアクティビティの一覧に表示されます。

[Backup Options]

バックアップオプションについて、次の表で説明します。

フィールド 説明

Target Server LEI Administrator データべースまたは LEI Script Vault (スクリプト格納) データベース、あるいはその両方のバックアップコピーの保存先となる Domino Server の名前を指定します。

有効なターゲットサーバーを指定する必要があります。

Target Database LEI Administrator のバックアップコピーのファイル名を指定します。ターゲットデータベースが存在しない場合は、アクティビティにより作成されます。それ以外の場合は、指定されたデータベースが上書きされます。

このアクティビティを実行する場合、LEI Administrator は割り当てられた名前でコピーが作成されます。デフォルト名をそのまま使用するか、または独自で指定してください。

ターゲットと同様に、ファイルパスの割り当ても可能です。たとえば、\qe\leiback.nsf. です。パス名を指定する場合、データディレクトリからの相対パス

Page 84: LEI ユーザーズガイド

を指定する必要があります。

LEI Administrator データベースのバックアップを作成しない場合は、このフィールドを空欄にしておきます。

Script Vault Target Database

LEI Script Vault (スクリプト格納) のバックアップコピーのファイル名を指定します。ターゲットデータベースが存在しない場合は、アクティビティにより作成されます。それ以外の場合は、指定されたデータベースが上書きされます。

このアクティビティを実行する場合は、割り当てられた名前で Script Vault (スクリプト格納) のコピーが作成されます。デフォルト名をそのまま使用するか、または独自で指定してください。いずれの場合も、.nsf データベースが作成されます。

また、Script Vault ターゲット名にはファイルパスの割り当ても可能です。たとえば、\qe\leivlt6b.nsf. です。パス名を指定する場合、データディレクトリからの相対パスを指定する必要があります。

メモ このアクティビティの実行時にコピーされるのは、LEI Script Vault (スクリプト格納) (leivlt6.nsf) 内のエージェントのうち、共有エージェントとして作成されたもののみです。このアクティビティでは、leivlt6.nsf 内の専用エージェントはターゲットデータベースにコピーされません。スクリプトがターゲットバックアップデータベースに確実にコピーされるようにするには、LSLSX スクリプトの作成時に Domino Designer の [Shared Agent] オプションを有効にしてください。

LEI Script Vault (スクリプト格納) データベースのバックアップを作成しない場合は、このフィールドを空欄にしておきます。

メモ 過去のバックアップを削除するには、LEI Server で、バックアップデータベースに対する [Manager] アクセス権が設

定されている必要があります。バックアップの ACLは アドミニストレータデータベースの ACL からコピーされるため、サー

バーには LEI Administrator に対する [Manager] アクセス権が必要です。

Page 85: LEI ユーザーズガイド

第7章 ADMIN PURGE LOG アクティビティ

第7章 Admin Purge Log アクティビティ

本章では、LEI の Admin Purge Log アクティビティについて説明します。

Page 86: LEI ユーザーズガイド

第7章 ADMIN PURGE LOG アクティビティ

Admin Purge Log アクティビティの概要

Admin Purge Log アクティビティを使用すると、LEI のログデータベースにおいて、指定した期間よりも古い文書を削除できます。

Page 87: LEI ユーザーズガイド

第7章 ADMIN PURGE LOG アクティビティ

Admin Purge Log アクティビティの使用方法

Admin Purge Log アクティビティは、LEI のログの状況に応じて使用します。たとえば、LEI のログが多くのディスク容量を消費する場合は、定期的にこのアクティビティを実行します。このアクティビティによって、LEI の既存のログ文書が削除されます。

Page 88: LEI ユーザーズガイド

第7章 ADMIN PURGE LOG アクティビティ

Admin Purge Log アクティビティの作成方法

Admin Purge アクティビティを作成する一般的な手順を説明します。Admin Purge アクティビティ文書のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator から [Add Activity] を選択します。表示されたリストから [Admin Purge Log] を選択します。

3 Admin Purge Log アクティビティ文書で必須フィールドに情報を入力し、アクティビティに必要なオプションを選択しま

す。

4 アクティビティ文書を保存します。

選択したログを削除前に保存する

LEI の特定のログを保存する場合は、Admin Purge Log アクティビティを実行する前に、それらのログを Notes の別のデータベースにコピーしておきます。

Page 89: LEI ユーザーズガイド

第7章 ADMIN PURGE LOG アクティビティ

Admin Purge Log アクティビティ文書

Admin Purge Log アクティビティ文書を下図に示します。新しく Admin Purge Log アクティビティを作成するには、[Add Activity] をクリックし、表示されたリストから [Admin Purge Log] を選択します。既存の Admin Purge Log アクティビティを開くには、[Activities] ビューでそのアクティビティの名前をダブルクリックします。

メモ アクティビティの実行オプションについては、「第5章 LEI アクティビティの概要」を参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。またこの名前は、LEI Server コンソールの定義済みアクティビティ一覧にも表示されます。

[Purge Log Options]

[Purge Log Options] の [Purge Log Documents Older Than] 値では、ログレコードの削除の基準となる日数を指定します。この日数よりも古い文書は、ログから削除されます。日数は、アクティビティが実行される日時から計算されます。1 日は 24 時間として計算されます。

Page 90: LEI ユーザーズガイド

第8章 ARCHIVE アクティビティ

第8章 Archive アクティビティ

本章では、LEI の Archive アクティビティについて説明します。

Page 91: LEI ユーザーズガイド

第8章 ARCHIVE アクティビティ

Archive アクティビティの概要

Archive アクティビティを使用すると、データを 1 つのデータベースから別のデータベースに移動できます。ターゲットデータベースに移動されたレコードは、移動後にソースデータベースから 1 レコードずつ削除されます。

ソースデータとターゲットの場所は、メタデータ (テーブル、フォームなど) の名前で指定します。アーカイブする文書は、条件または相対的なタイムスタンプを指定して選択します。

Archive アクティビティを使用すると、ソースデータベースの元のレコードは削除されます。

メモ Archive アクティビティの使用時に SQL Server 7 データベースにアクセスする場合、ODBC コネクション文書は使用

できません。SQL Server 7 データベースにアクセスするには、代わりに OLE DB コネクション文書を使用します。

メモ Archive アクティビティ文書において、Notes から Notes へのアーカイブオペレーションの実行中、Notes コネクショ

ン文書で使用するビューを指定すると、選択ステートメントは無視されます。既存のビューが指定されている場合、条件節

は使用できません。

Page 92: LEI ユーザーズガイド

第8章 ARCHIVE アクティビティ

Archive アクティビティの使用方法

Archive アクティビティを使用すると、次のように定期的にデータを保護できます。

頻繁にアクセスしないデータを取り外し可能デバイスに格納し、システムサーバー上のディスク容量を解放する!

データを 1 つのデータベースから別のデータベースに移行する際にデータを保護する!

ディスク上に空き容量を確保する!

Archive アクティビティを他のアクティビティと組み合わせる

Activities アクティビティは、LEI の他のアクティビティと組み合わせて使用できます。たとえば、Archive アクティビティを Polling アクティビティと組み合わせ、システムデータベースをポーリングしてデータが最後にアクセスされた日時を判断し、それに基づいてデータをアーカイブします。

Page 93: LEI ユーザーズガイド

第8章 ARCHIVE アクティビティ

Archive アクティビティの作成方法

Archive アクティビティを作成する一般的な手順を説明します。Archive アクティビティ文書の特定のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator から [Add Activity] を選択します。表示されたリストから [Archive] を選択します。

3 Archive アクティビティ文書で、必須フィールドに情報を入力し、アクティビティに必要なオプションを選択します。

メモ アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性

をテストするには、『Lotus Connector 接続ガイド』に記載されているように CONTEST を使用します。

4 アクティビティ文書を保存します。

Page 94: LEI ユーザーズガイド

第8章 ARCHIVE アクティビティ

Archive アクティビティ文書

以下に、Archive アクティビティ文書を示します。新しく Archive アクティビティを作成するには、[Add Activity] をクリックして表示されたリストから [Archive] を選択します。既存の Archive アクティビティを開くには、[Activities] ビューで該当するアクティビティの名前をダブルクリックします。

アクティビティ実行オプション、スケジューリング、その他のオプションについては、「第5章 LEI アクティビティの概要」を参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティの一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティの一覧に表示されます。

[Source]

[Source] のオプションについて、次の表で説明します。

フィールド 説明

Edit Connection [Edit Connection] ボタンをクリックすると、指定されたソースコネクション文書が編集モードで開きます。

Connection ソースコネクションの名前を指定します。

データは、ソースコネクションデータベースからターゲットコネクションデータベースへ転送されます。各コネクションはアクセス情報を使用して、サーバーとデータベースを特定します。[Form/Table/View Name] オプション (以下を参照) は、メタデータを識別します。

Form/Table/View Name 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースの場合はテーブル、Notes データベースの場合はフォーム、DB2 データベースの場合はビューを選択します。

Page 95: LEI ユーザーズガイド

[Target]

[Target] のオプションについて、次の表で説明します。

フィールド 説明

Edit Connection [Edit Connection] ボタンをクリックすると、指定されたターゲットコネクション文書が編集モードで開きます。

Connection ターゲットコネクションの名前を指定します。

データは、ソースコネクションデータベースからターゲットコネクションデータベースへ転送されます。各コネクションはアクセス情報を使用して、サーバーとデータベースを特定します。[Form/Table/View Name] オプション (以下を参照) は、メタデータを識別します。

メモ ターゲットでテーブルを作成するには、[Target Table Name] フィールドにテーブル名を入力し、[Archive Options] セクション (以下を参照) で [Create Target Metadata] をクリックします。

Form/Table/View Name 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースの場合はテーブル、Notes データベースの場合はフォーム、DB2 データベースの場合はビューを選択します。

[Mapping]

アクティビティ文書の [Mapping] セクションには、手動または自動のどちらかのフィールドマッピングを指定できます。デフォルトは、手動マッピングです。両方のマッピングスタイルについてここで説明します。関連情報については、「第5章 LEI アクティビティの概要」の「データのマッピング」セクションを参照してください。

手動マッピング

手動マッピングのフィールドを以下に説明します。

フィールド 説明

Source Field(s) ターゲット内の名前にマッピングするソースの正確なフィールド名を入力します。

ソースでフィールドを選択すると、その名前はターゲットフィールドのリストに自動的に追加されます。ターゲットフィールドのリストに追加されたフィールド名は、そのままにしておくことも、リスト内で移動、編集、または削除もできます。

フィールドのマッピングを独自に定義する場合は、[Source Fields] と [Target Columns] に、マッピングする適切な順序でフィールドの名前を入力します。最初のソースフィールドは、ターゲットの最初のフィールドにマッピングされ、以後、2 番目のフィールド同士、3 番目のフィールド同士がそれぞれ対応します。

Target Columns ソース内の名前にマッピングするターゲットの正確なフィールド名を入力します。

Select Statement 実行するコネクション固有の選択ステートメントを選択します。デフォルトで、サンプルの構文が一部提供されています。

データを選択し、転送するコマンドステートメントを入力します。ステートメントは、データベースエンジンでの構文 (SQL クエリーや Notes の選択式など) に従って記述する必要があります。SQL クエリーを使用すると、複数のメタデータオブジェクトからデータを選択できます。

自動マッピング

[Automatic] オプションを選択すると、自動マッピング用のフィールドが表示されます。これらのフィールドについて、次の表で説明します。

フィールド 説明

Automatic [Automatic] を選択すると、ソースの列データとターゲットの列データが、列の位置 (ソースの最初の列とターゲットの最初の列、2 番目の列同士、3 番目の列同士など) またはフィールド名に基づいて自動的にマッピングされます。

このオプションを選択すると、次の 2 つのオプションが表示されます。

Page 96: LEI ユーザーズガイド

[By Name] - ソースとターゲットの列名が正確に一致するすべてのデータを、ソ!ースからターゲットに自動的にマッピングします。[By Position] - ソースとターゲットの位置が正確に一致する (左から右、上から!下) すべてのデータを、ソースからターゲットに自動的にマッピングします。

Select Statement 実行するコネクション固有の選択ステートメントを選択します。デフォルトで、サンプルの構文が一部提供されています。

転送するデータを選択するコマンドステートメントを入力します。ステートメントは、データベースエンジンでの構文 (SQL クエリーや Notes の選択式など) に従って記述する必要があります。SQL クエリーを使用すると、複数のメタデータオブジェクトからデータを選択できます。

[Archive Options] の [Selection Options]

[Archive Options] タブと [Selection Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Timestamp Archive [Timestamp Archiving] オプションを有効にすると、次の [Timestamp Field] と [Timestamp Cutoff in Days] オプションが表示されます。

Timestamp Field LEI で日付と時刻の測定基準として使用されるタイムスタンプの値を含むフィールドの名前を指定します。

メモ DB2 外部システムを使用する場合、[Timestamp Field] で選択する DB2 列は、DATE 型ではなく TIMESTAMP 型である必要があります。

Timestamp Cutoff in Days レコードが作成されてからタイムスタンプされるまでの最小の日数を指定します。たとえば、作成されてから 30 日を超えるレコードをすべてアーカイブするには、このフィールドに 30 と入力します。

Conditional Archive 必要に応じて、ソースコネクションの言語で記述された条件節を入力し、アーカイブするレコードを指定します。テーブル内の特定のレコードを選択する条件を入力できます。

[Archive Options] の [Precision Options]

[Archive Options] タブと [Precision Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Generate Error for any Data Loss

このオプションを選択すると、転送の結果データが失われた場合にエラーがログに書き込まれ、転送が終了します。

Allow Precision Loss Only このオプションを選択すると、転送の結果数値や日付/時刻の精度が低下し

Page 97: LEI ユーザーズガイド

た場合でもエラーが報告されません。

Truncate Data When Necessary

このオプションを選択すると、ターゲットデータベースのフィールドの長さに応じてテキストデータが切り捨てられます。パフォーマンスが低下するため、このオプションは数値データには適用されません。

[Archive Options] の [Target Data Options]

[Archive Options] タブと [Target Data Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Existing Data OptionsCreate Target Metadata

[Create Target Metadata] を選択すると、指定したテーブルがターゲットデータベースに存在しない場合、データの転送先となる新規のメタデータが作成されます。新規のメタデータは、可能な限りソースメタデータと一致するように作成されます。

[Create Target Metadata] を選択しない場合に、指定したターゲットテーブルが存在しないと、エラーメッセージが表示されます。

メモ [Create Target Metadata] が選択された状態で Notes ソースからデータをアーカイブする場合、一部の RDBMS 外部システムでは、Notes のテキストフィールドによって 64996 バイト (Notes のテキストフィールドの最大サイズ) のサイズの文字オブジェクトが作成されます。

メモ [Create Target Metadata] はプロトタイピングを支援し、メタデータを同じソースおよびターゲットタイプから作成する場合や (DB2 から DB2 に、Oracle から Oracle に、など)、いずれかのソースから Notes ターゲットにこれらを作成する場合に有用です。使用する場合は、テーブルが効率維持に最適な、必要なキーおよび索引で作成されていることを必ず確認してください。

Page 98: LEI ユーザーズガイド

第9章 COMMAND アクティビティ

第9章 Command アクティビティ

本章では、LEI の Command アクティビティについて説明します。

Page 99: LEI ユーザーズガイド

第9章 COMMAND アクティビティ

Command アクティビティの概要

Command アクティビティは、オペレーティングシステム、データベース、SQL の各コマンドを実行します。

オペレーティングシステムのコマンドを実行する場合は、コネクタを指定せず、オペレーティングシステムのプロンプトで入力する場合と同じコマンドを指定します。

データベースまたはコネクションに固有のコマンドを実行する場合は、対応するコネクション文書を選択してください。

Page 100: LEI ユーザーズガイド

第9章 COMMAND アクティビティ

Command アクティビティの使用方法

Command アクティビティは、接続されているデータベースまたは LEI Server が実行されているオペレーティングシステムで特定のコマンドを実行する場合に使用します。

Command アクティビティを使用すると、サポートされるコネクションで SQL ステートメントを実行、またはオペレーティングシステムのコマンドを実行できます。

Page 101: LEI ユーザーズガイド

第9章 COMMAND アクティビティ

Command アクティビティの作成方法

Command アクティビティを作成する一般的な手順を説明します。Command アクティビティ文書のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator から [Add Activity] を選択します。表示されたリストから [Command] を選択します。

メモ Command アクティビティ文書で、必須フィールドに情報を入力し、アクティビティに必要なオプションを選択しま

す。アクティビティで参照されるすべてのコネクションは存在し、有効である必要があります。コネクションの有効性を

テストするには、『Lotus Connector 接続ガイド』に記載されているように CONTEST を使用します。

3 アクティビティ文書を保存します。

Page 102: LEI ユーザーズガイド

第9章 COMMAND アクティビティ

Command アクティビティ文書

以下に、Command アクティビティ文書を示します。新しく Command アクティビティを作成するには、[Add Activity] をクリックして、表示されたリストから [Command] を選択します。既存の Command アクティビティを開くには、[Activities] ビューで該当するアクティビティの名前をダブルクリックします。

メモ

メモ アクティビティ実行オプション、スケジューリング、その他のオプションについては、「第5章 LEI アクティビティの概

要」を参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティの一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティの一覧に表示されます。

[Connection]

[Connection Name] フィールドエントリでは、コネクションの名前を指定します。ここで指定したコネクションに対してコマンドステートメントが実行されます。コネクションは、サーバーおよびデータベースを要求されるアクセス情報とともに識別します。

ローカルのオペレーティングシステムでコマンドを実行する場合は、コネクションを指定しません。

[Edit Connection] ボタンをクリックすると、指定されたコネクション文書が編集モードで開きます。

メモ コネクションを使用しない場合 (OS のコマンドを実行する場合など)、入力を必要とするコマンドに対しては、ファイル

からその入力項目をリダイレクトする必要があります。これを行わないと、この Command アクティビティが LEI コンソール

で入力を待機し、アクティビティがハングする状態になります。たとえば、NT でコマンド「del *.*」を指定すると、確認を待

機するためハングしますが、「del *.* < input.txt」を入力して、input.txt に「y」とその後に改行を入れると、ユーザーの入力

(stdin) の代わりに、ファイルから確認の「y」がリダイレクトされ、コマンドが実行されます。

Page 103: LEI ユーザーズガイド

メモ Command アクティビティ文書中で参照されるコネクションの種類に [Commit Every・・・] オプションがある場合、その

オプションは、Command アクティビティを正確に実行するためにコネクション文書で使用可能である必要があります。

Command

[Command Statement] には、実行するアクションを識別するコネクタ固有の (または、コネクタを指定していない場合はオペレーティングシステム固有の) ステートメントを指定します。ステートメントは、データベースエンジンまたはローカルコンピュータでの構文 (SQL クエリーや Notes の選択式など) に従い記述する必要があります。

Page 104: LEI ユーザーズガイド

第第第第9999章章章章 COMMANDCOMMANDCOMMANDCOMMAND アクティビティアクティビティアクティビティアクティビティ

CommandCommandCommandCommand アクティビティアクティビティアクティビティアクティビティのののの例例例例

Command アクティビティの使用方法を、いくつかの例を使用して説明します。

SQLSQLSQLSQL をををを使用使用使用使用するするするする CommandCommandCommandCommand アクティビティアクティビティアクティビティアクティビティ

次の Command アクティビティは、DB2 テーブルに行を挿入します。この例では、Command アクティビティ内で SQL ステートメントを使用し、リレーショナルデータベースでデータを操作する方法を示します。

NotesNotesNotesNotes エージェントエージェントエージェントエージェントをををを使用使用使用使用するするするする CommandCommandCommandCommand アクティビティアクティビティアクティビティアクティビティ

次の Command アクティビティは、EXECUTE コマンドステートメントを使用して Notes エージェントを実行します。Notes エージェント名は引用符で囲めません。

EXECUTE コマンドステートメントは、1 つの Notes エージェントの実行に使用されます。コマンドパラメータは使用しません。

Page 105: LEI ユーザーズガイド

次の図の Domino Designer に表示されるエージェントは、上記の Command アクティビティにより実行されます。LEI 内から Domino Designer と [Agent] ビューを開くには、Notes のトップバーから [Create] - [Design] - [Agent] を選択します。

メモメモメモメモ このエージェントの実行対象は、特に [All documents in the database] になります。これ以外に可能な文書の選択

は、[Run Once] です。エージェントは、ビューをベースとしての使用ができないため、Domino Designer のオプション [Run

on selected documents in view] と [Run on all documents in view] は選択できません。アクティビティのコマンドステート

メントについては、関連ドキュメント『Lotus Connector 接続ガイド』の「第4章 Lotus Connector for Notes」を参照してくだ

さい。

Page 106: LEI ユーザーズガイド

オペレーティングシステムオペレーティングシステムオペレーティングシステムオペレーティングシステムののののコマンドコマンドコマンドコマンドをををを実行実行実行実行するするするする CommandCommandCommandCommand のののの例例例例

次の Command アクティビティは、オペレーティングシステムのコマンドを実行します。この Command アクティビティでは、コネクション名を指定する必要はありません。これにより、システムに対するコマンドステートメントの入力が可能です。

別のコマンドステートメントの例は、次のとおりです。

del /q V:\SalesByMonth\June\*.*

この種類のコマンドステートメントを実行する場合は、File コネクションを指定する必要はありません。

メモメモメモメモ ファイルパスに誤ってスペースを入力すると、notes.ini ファイルが削除され、Domino や LEI が使用できなくなる場合

があります。

Page 107: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

第 10 章 Direct Transfer アクティビティ

本章では、LEI の Direct Transfer アクティビティについて説明します。

Page 108: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

Direct Transfer アクティビティの概要

Direct Transfer アクティビティを使用すると、1 つのデータベースから別のデータベースへデータをコピーできます。転送するデータは、ステートメント (たとえば、SQL クエリーや Notes の選択式など) によって選択します。

Direct Transfer アクティビティを開始するには、開いた Direct Transfer アクティビティ文書上で [Start ] ボタンをクリックして Administrator の [Activity] ビューでアクティビティ名をハイライトします。次に、[Start] をクリックするか、LEI スケジュールオプションを使用してアクティビティをスケジュールします。

Page 109: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

Direct Transfer アクティビティの使用方法

Direct Transfer アクティビティは、1 つのデータベースから別のデータベースへデータを転送するときに使用します。また、Direct Transfer アクティビティを Polling アクティビティと組み合わせると、指定した条件に一致する場合にのみデータを転送できます。

ターゲットへのデータ転送が成功したとき、データソースのフィールドを更新するために、出力パラメータのサポートを有効にすることもできます。

Page 110: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

Direct Transfer アクティビティの作成方法

Direct Transfer アクティビティを作成する一般的な手順を説明します。Direct Transfer アクティビティ文書のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 [Administrator] から [Add Activity] を選択します。表示されたリストから [Direct Transfer] を選択します。

3 Direct Transfer アクティビティ文書で必要な情報を入力し、オプションを指定します。

メモ アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性

をテストするには、『Lotus Connector 接続ガイド』に記載されているように CONTEST を使用します。

4 アクティビティ文書を保存します。

「付録 C チュートリアル」に、Direct Transfer アクティビティを作成する詳しい手順が説明されています。

Page 111: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

Direct Transfer アクティビティ文書

以下に Direct Transfer アクティビティ文書を示します。新しく Direct Transfer アクティビティを作成するには、[Add Activity] をクリックし、表示されたリストから [Direct Transfer] を選択します。既存の [Direct Transfer] アクティビティを開くには、[Activities] ビューでアクティビティの名前をダブルクリックします。

メモ アクティビティ実行オプションやスケジューリングなどのオプションについては、「第5章 LEI アクティビティの概要」を

参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティ一覧に表示されます。

[Source]

[Source] のオプションについて、次の表で説明します。

フィールド 説明

Edit Connection [Edit Connection] ボタンをクリックすると、指定されたソースコネクション文書が編集モードで開きます。

Connection Name ソースコネクションの名前を指定します。

データは、ソースコネクションデータベースからターゲットコネクションデータベースへ転送されます。各コネクションは、サーバー、データベース、アクセス情報を特定します。[Form/Table/View Name] オプション (以下を参照) は、メタデータを識別します。

Form/Table/View Name 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースではテーブル、Notes データベースではフォーム、DB2 データベースではビューを選択します。

[Target]

[Target] のオプションについて、次の表で説明します。

フィールド 説明

Page 112: LEI ユーザーズガイド

Edit Connection [Edit Connection] ボタンをクリックすると、指定されたターゲットコネクション文書が編集モードで開きます。

Connection Name ターゲットコネクションの名前を指定します。

データは、ソースコネクションデータベースからターゲットコネクションデータベースへ転送されます。各コネクションは、サーバー、データベース、アクセス情報を特定します。[Form/Table/View Name] オプション (以下を参照) は、メタデータを識別します。

Form/Table/View Name 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースではテーブル、Notes データベースではフォーム、DB2 データベースではビューを選択します。

[Mapping]

アクティビティ文書の [Mapping] セクションには、手動または自動のどちらかのフィールドマッピングを指定できます。デフォルトは、手動のマッピングです。両方のマッピングスタイルについて、ここで説明します。関連情報については、第5章「LEI アクティビティの概要」の「データのマッピング」セクションを参照してください。

手動マッピング

手動マッピングのフィールドを以下で説明します。

フィールド 説明

Source Field(s) ターゲット内の名前にマッピングするソースの正確なフィールド名を入力します。

ソースでフィールドを選択すると、その名前はターゲットフィールドのリストに自動的に追加されます。ターゲットフィールドのリストに追加されたフィールド名は、そのままでも、リスト内で移動、編集、または削除してもかまいません。

フィールドのマッピングを独自に定義する場合は、[Source Field(s)] と [Target Columns] に、適切な順序でフィールドの名前を入力します。最初のソースフィールドは、ターゲットの最初のフィールドにマッピングされ、以後、2 番目のフィールドどうし、3 番目のフィールドどうしがそれぞれ対応します。

Target Columns ソース内の名前にマッピングするターゲットの正確なフィールド名を入力します。

Select Statement 実行するコネクション固有の選択ステートメントを選択します。ポップアップヘルプにサンプルの構文が一部提供されています。

選択および転送するデータを識別するコマンドステートメントを入力します。ステートメントは、データベースエンジンでの構文 (SQL クエリーや Notes の選択式など) に従って記述する必要があります。SQL クエリーを使用すると、複数のメタデータオブジェクトからデータを選択できます。

自動マッピング

[Automatic] オプションを選択すると、自動マッピング用のフィールドが表示されます。これらのフィールドについて、次の表で説明します。

メモ [Create Target Metadata] を選択して、Notes/Domino データベースをソースとして使用し、DB2 などの RDBMS 外

部システムをターゲットして使用する場合、Notes のテキストフィールドによってサイズが 64996 バイト (Notes のテキスト

フィールドの最大サイズ) である文字オブジェクトが作成されます。テキストフィールドのサイズを制限するには、Notes の

コネクション文書オプション [Maximum Length for Text Data] を編集します。

フィールド 説明

Automatic [Automatic] を選択すると、ソースの列データとターゲットの列データが、列の位置 (ソースの最初の列とターゲットの最初の列、2 番目の列どうし、3 番目の列どうしなど) またはフィールド名に基づいて自動的にマッピングされます。

このオプションを選択すると、次の 2 つのオプションが表示されます。

[By Name] - ソースとターゲットの列名が正確に一致するすべてのデータを、ソ!ースからターゲットに自動的にマッピングします。[By Position] - ソースとターゲットの位置が正確に一致する (左から右、上から!下) すべてのデータを、ソースからターゲットに自動的にマッピングします。

Select Statement 実行するコネクション固有の選択ステートメントを選択します。ポップアップヘル

Page 113: LEI ユーザーズガイド

プにサンプルの構文が一部提供されています。

転送するデータを選択するコマンドステートメントを入力します。ステートメントは、データベースエンジンでの構文 (SQL クエリーや Notes の選択式など) に従って記述する必要があります。SQL クエリーを使用すると、複数のメタデータオブジェクトからデータを選択できます。

Page 114: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

[Direct Transfer Options]

[Direct Transfer Options] を使用して、アクティビティ実行時のデータ処理方法を選択できます。たとえば、ストアドプロシージャの出力パラメータを有効にするには、アクティビティ文書のこのセクションを使用します。使用可能な各オプションについては、次の表で説明します。

[Precision Options]

[Direct Transfer Options] タブと [Precision Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Generate Error for any Data Loss

このオプションを選択すると、転送の結果としてデータが失われた場合にエラーがログに書き込まれ、転送が終了します。

Allow Precision Loss Only このオプションを選択すると、転送の結果として数値や日付/時刻の精度が低下した場合でもエラーは報告されません。

Truncate Data when Necessary

このオプションを選択すると、ターゲットデータベースのフィールドの長さに応じてテキストデータが切り捨てられます。パフォーマンスが低下するため、このオプションは数値データには適用されません。

[Source Data Options]

[Direct Transfer Options] タブと [Source Data Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Source Data [Source Metadata is Stored Procedure] を選択すると、結果セットを取得する手段として、ソースデータベースからストアドプロシージャを呼び出すことができます。この機能は、結果または出力パラメータを返すことができるストアドプロシージャをサポートする Connector のみで利用できます。ストアドプロシージャでは、入力パラメータが宣言されていることはありません。

このオプションが有効化されているときには、選択ステートメントは使用されません。

[Target Data Options]

[Direct Transfer Options] タブと [Target Data Options] タブを選択すると、次のオプションが表示されます。

Page 115: LEI ユーザーズガイド

フィールド 説明

Existing Data Options:Create Target Metadata

指定したメタデータがターゲットコネクションに存在しないとき、転送されたデータを格納するために新規のメタデータを作成します。新規のメタデータは、できる限りソースメタデータと一致するように作成されます。

ソーステーブルにレコードが存在しない場合、テーブルは転送されません。すべてのテーブルレコードのエントリが NULL であるテーブルを転送するには、テーブルに 1 レコードを追加してから Direct Transfer アクティビティを実行します。

メモ [Create Target Metadata] を選択した状態で Notes ソースのデータを転送するとき、一部の RDBMS 外部システムでは、Notes のテキストフィールドによってサイズが 64996 バイト (Notes のテキストフィールドの最大サイズ) である文字オブジェクトが作成されます。テキストフィールドのサイズを制限するには、Notes のコネクション文書オプション [Maximum Length for Text Data] を編集します。

メモ [Create Target Metadata] はプロトタイピングを支援し、メタデータを同じソースおよびターゲットタイプから作成する場合や (DB2 から DB2 に、Oracle から Oracle に、など)、いずれかのソースから Notes ターゲットにこれらを作成する場合に有用です。これを使用する場合は、テーブルが最適効率の維持に必要なキーおよび索引で作成されていることを必ず確認してください。

Existing Data Options:Overwrite Existing Data

データを転送する前に、ターゲットデータベースのすべてのデータを削除します。データの転送が失敗したときも、ターゲットの既存のデータが失われるため注意が必要です。

このオプションを選択しないときは、転送されたデータはターゲットの既存のデータに追加されます。

Insert Options:Try Update Before Insert

このオプションを選択したときは、レコードの更新に使用するキーフィールドを指定します。

Insert Options:Target Key Fields for Update

キーフィールドを使用してターゲットのデータレコードを検索し、検出した場合は (変更されているかどうかには関係なく) そのレコードが更新されます。

ソースのレコードに一致するレコードがターゲットに存在しないときは (キーフィールドの比較によって検索)、そのレコードが新規レコードとしてターゲットに挿入されます。

Options:Target Metadata is Stored Procedure

このオプションは、ターゲットメタデータが実行するストアドプロシージャを示すときに選択します。転送されるフィールドがストアドプロシージャの入力パラメータになり、フィールド名がパラメータ名になります。

このオプションを選択すると、[Accept Output Parameters into Source] メニューオプションが表示されます。

Options:Continue on Insert Errors

このオプションを選択すると、挿入エラーが発生したとき、アクティビティはエラーをログに記録して転送を継続します。

Options:Disable Trimming of Text Trailing Spaces

このオプションを選択すると、テキストフィールドの末尾のスペースが削除されません。デフォルトでは、末尾のスペースは削除されます。

Accept Output Parameters into Source

[Target Metadata is Stored Procedure] が有効化されていると、このオプションが表示されます。このオプションを使用すると、ストアドプロシージャからソ

Page 116: LEI ユーザーズガイド

ースコネクションのフィールドにパラメータを返すことができます。

DB2 ユーザーの場合、ユーザーが定義できる [field mapping] セクションが開きます。[field mapping] セクションを使用して、ソースコネクション (メタデータ) 内のフィールドをストアドプロシージャで出力パラメータとして指定されているターゲットフィールドにマッピングします。

SAP ユーザーの場合、ユーザーが定義できる [field mapping] セクションが開きます。この [field mapping] セクションを使用して、ソースコネクション (メタデータ) 内のフィールドをストアドプロシージャで書き出しパラメータとして指定されているターゲットフィールド、またはストアドプロシージャによって返される結果セットにマッピングします。

メモ 取得された各出力パラメータは、アクティビティのログに記録された取得カウントに影響します。取得カウントの値は、アクティビティ全体で取得されたレコードの総数です。プロシージャ呼び出しごとに出力が取得される必要があるため、アクティビティログには予定の 2 倍の取得数が表示されます。そのうちの半分はソースからの取得で、半分はターゲットからの取得です。これは、適切な動作です。

[Stored Procedure Output Mapping] セクションで、ストアドプロシージャの出力パラメータにソースフィールドをマッピングできます。

Stored Procedure Output Mapping:Source Fields

ストアドプロシージャの出力を受け取るソースコネクションのフィールドをリストします。最初に表示されているソースフィールドが、最初に表示されている出力パラメータにマッピングされ、以降のフィールドも同様にマッピングされます。

Stored Procedure Output Mapping:Target Parameters

データをソースに返すターゲットコネクションのパラメータを表示します。最初のパラメータが最初のソースフィールドにマッピングされ、以降のフィールドも同様にマッピングされます。

[Performance Options]

[Direct Transfer Options] タブと [Performance Options] タブを選択すると、次のオプションが表示されます。

フィールド 説明

Number of Records to Transfer Concurrently

転送する前にレコードをバッファできます。デフォルトでは、一度に 1 レコードが転送されます。

データベースとコネクションで配列の転送がサポートされている場合は、このオプションを使用して一度に転送するレコード数を指定できます。一度に複数のレコードを転送するとパフォーマンスが向上しますが、データベースがこの機能をサポートしている必要があります。

メモ [Source Metadata is Stored Procedure] オプションが選択されていると、このフィールドで有効なエントリは 1 のみとなります。

Maximum Number of Records to Transfer

アクティビティで転送するレコードの最大数を指定します。制限しないときは 0 を指定します。

Page 117: LEI ユーザーズガイド

第 10 章 DIRECT TRANSFER アクティビティ

Direct Transfer アクティビティに関する考慮事項

Direct Transfer アクティビティを使用する上で考慮する必要がある点を次に説明します。

ストアドプロシージャと出力パラメータを使用する

ストアドプロシージャと出力パラメータを使用する上での考慮事項を以下に説明します。

出力パラメータ対応のストアドプロシージャをサポートしている Lotus Connector タイプは、現時点では Lotus !Connector for DB2 および Lotus Connector for SAP (別売品) に限られています。

LEI アクティビティのソースまたはターゲットのメタデータがストアドプロシージャとして指定されている場合は、そのス!トアドプロシージャで宣言されているすべてのパラメータがアクティビティで定義されている必要があります (戻り値としてマッピングまたはリストされるため)。ストアドプロシージャで宣言されているパラメータがアクティビティ内で見つからないと、メッセージが返されます。たとえば、DB2 は「SQL1109N - The specified dll <procedure> could not be loaded」というメッセージを返します (DB2 はストアドプロシージャを名前とパラメータ数でカタログ登録します)。詳細については、『Lotus Connector 接続ガイド』の「Lotus Connector for DB2」の章を参照してください。

ソースまたはターゲットがストアドプロシージャであるときは、[Performance Option] の [Number of Records to !Transfer Concurrently] はデフォルトの 1 レコードのみサポートします。

フィールドとストアドプロシージャのパラメータは名前によって内部的に関連付けられているため、フィールドとパラメ!ータは該当するマッピングセクションで常に明示的にマッピングされている必要があります。出力パラメータを持つストアドプロシージャを Direct Transfer のターゲットとして使用しているときは、自動フィールドマッピングの [By Position] オプションを使用しないでください。

出力パラメータにストアドプロシージャを使用する方法の例については、『IBM LEI (Lotus Enterprise Integrator) ユーザーズガイド』 (本書) の「第5章 LEI アクティビティの概要」を参照してください。

Lotus Connector for Notes の使用方法

[Create Target Metadata] を選択した状態で Notes ソースからデータを転送するとき、一部の RDBMS 外部システム (DB2 など) では、Notes のテキストフィールドによってサイズが 64996 バイト (Notes のテキストフィールドの最大サイズ) である文字オブジェクトが作成されます。テキストフィールドのサイズを制限するには、Notes のコネクション文書オプション [Maximum Length for Text Data] を編集します。

Lotus Connector for File System の使用方法

Direct Transfer のソースコネクションまたはターゲットコネクションが File コネクションで、[Automatic Field Mapping !by Position] が選択されている場合、[File] フィールドが配置される順序は次のようになります。

Filename

Contents

Timestamp

Size

Direct Transfer のソースコネクションが File コネクションである場合、選択ステートメントを空白にできます。こうする!と、選択ステートメントが次のように指定されていると認識され、アクティビティにエラーが発生せずに実行されます。

select *.*

Oracle または ODBC を使用したターゲットメタデータの作成

Direct Transfer アクティビティを使用して LONG VARCHAR 型 (Oracle の LONG 型に対応する ODBC のデータ型) の列を複数持つメタデータを作成するには、Lotus Connector for ODBC ではなく、Lotus Connector for Oracle 7 を使用する必要があります。Oracle では、1 つのテーブルまたは 1 つの SQL ステートメントに複数の LONG 型の列を含めることはできません。

Page 118: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

第 11 章 Polling アクティビティ

本章では、LEI の Polling アクティビティについて説明します。

Page 119: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

Polling アクティビティの概要

ポーリングは、データベース内の条件を監視し、その条件に一致したときに下位アクティビティを起動する方法です。条件に一致すると、下位アクティビティは即座に実行されます。下位アクティビティは各アクティビティ文書に定義されており、Polling アクティビティによって呼び出されます。

Polling アクティビティによって使用されるコネクションは、アクティビティが実行される間、使用可能である必要があります。LEI は、終了したコネクションの再確立を 1 回試みます。この再確立が失敗すると、アクティビティはエラーとなります。Polling アクティビティは、終了したデータソースへのコネクションを再確立することはありません。たとえば、Sybase コネクションの非活動状態が 10 分継続したらタイムアウトとなるように設定し、Polling アクティビティのポーリング間隔を 15 分に設定すると、Polling アクティビティがチェックする前に Sybase コネクションがタイムアウトとなって終了する可能性があります。その場合、Polling アクティビティは失敗します。

Page 120: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

Polling アクティビティの使用方法

Polling アクティビティは、別のアクションの実行やイベントの発生に基づいて、特定のアクションを実行するときに使用します。たとえば、人事管理部門が Oracle データベースを使用して社員情報を管理しており、同じ社員情報を Notes データベースに保存して販売管理部門とマーケティング部門がアクセスできるようにするとします。この場合、Polling アクティビティを使用して、Oracle データベース内でのレコードの作成や変更をチェックします。Polling アクティビティは、そのようなイベントを検出すると、Replication アクティビティを起動して変更されたデータを Notes データベースにコピーします。

メモ Polling アクティビティでは、一度に複数のアクティビティを実行できます (Replication アクティビティと Direct

Transfer アクティビティなど)。ただし、Polling アクティビティを開始するとき、指定された (下位) アクティビティは指定され

た順序では実行されません。指定された順序でアクティビティを実行する場合には、アクティビティ文書の [General

Options] の [Dependent Activities] フィールドを使用してください。[General Options] ついては、「第5章 LEI アクティビテ

ィの概要」を参照してください。

Page 121: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

Polling アクティビティの作成方法

Polling アクティビティ文書では、下位アクティビティの実行に必要な次の情報を設定します。

下位アクティビティ (実行するアクティビティ) を実行するための条件!

スケジュールとポーリングの頻度!

実行する下位アクティビティの名前!

メモ Polling アクティビティを作成する前に、ポーリングされるデータベースへのアクセス方法に関する情報をコネクション

文書で定義しておく必要があります。また、すべての下位アクティビティも、Polling アクティビティの作成の前に各アクティ

ビティ文書で定義しておく必要があります。

Polling アクティビティを作成する一般的な手順を説明します。Polling アクティビティ文書のフィールドやオプションの詳細については、本章の「Polling アクティビティ文書」を参照してください。

1 LEI Administrator データベース (decsadm.NSF) を開きます。

2 Administrator から [Add Activity] を選択します。表示されたリストから [Polling] を選択します。

3 Polling アクティビティ文書で必須フィールドに情報を入力し、アクティビティに必要なオプションを指定します。

メモ アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性

をテストするには、『Lotus Connector 接続ガイド』に説明があるように CONTEST を使用します。

4 アクティビティ文書を保存します。

「付録 C チュートリアル」に、Replication アクティビティを作成する詳しい手順が説明されています。

Page 122: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

Polling アクティビティ文書

以下に、Polling アクティビティ文書を示します。新規 Polling アクティビティを作成するには [Add Activity] をクリックして、表示されたリストから [Polling] を選択します。既存の Polling アクティビティを開くには、[Activities] ビューでアクティビティの名前をダブルクリックします。

[Trigger Statement] に基づいてポーリングを行うように要求するか、[Timestamp] フィールドに基づいてポーリングを行うように要求できます。これら 2 種類のポーリングは同時に実行できません。トリガーベースのポーリングを要求するには、[Table] フィールドと [Trigger Statement] フィールドに適切な値を指定します。タイムスタンプベースのポーリングを要求するには、[Timestamp Polling] オプションを有効にした後、[Timestamp] フィールドに適切な値を指定します。

メモ アクティビティ実行オプションやスケジューリングなどのオプションについては、「第5章 LEI アクティビティの概要」を

参照してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティ一覧に表示されます。

[Connection]

Polling アクティビティ文書の [Connection] セクションでは、ポーリングするソースデータベースを指定します。コネクションと下位アクティビティは、Polling アクティビティ文書で使用する前に作成しておく必要があります。

フィールド 説明

Edit Connection 下記のコネクション名を使用して指定されたコネクション文書を編集モードで開きます。

[Edit Connection] ボタンは、コネクション名を指定した後で使用可能になります。

Connection Name ポーリング対象のデータベースを含むコネクションの名前を指定します。

コネクション名を指定すると、[Edit Connection] ボタンが表示されます。

Page 123: LEI ユーザーズガイド

Table 指定したコネクションに基づいて、トリガーベースのポーリングで使用するメタデータを指定します。たとえば、リレーショナルデータベースではテーブルを、Notes データベースではフォームを選択します。 また、ファイルではサブディレクトリを選択します。

Trigger Statement 実行するコネクション固有のトリガーステートメントを指定します。トリガーステートメントの例を次に示します。

select * from SYM_TEST_SYBASE

この場合、テーブル内に行が存在すると、トリガーが TRUE になります。

トリガーステートメントは、Polling アクティビティが下位アクティビティを実行用キューに入れるための条件を示します。トリガーステートメントによって 1 つ以上のレコードを含む結果セットが生成されると、条件は満たされます。条件が満たされるとき、ポーリングが成功したことになります。

トリガーベースのポーリングを要求した場合にのみ、トリガーステートメントが使用されます。タイムスタンプベースのポーリングを要求したときには使用されません。

Timestamp Polling タイムスタンプベースのポーリングを要求し、[Timestamp] フィールドと [Reset Timestamp] オプションを表示するには、[Enable Timestamp Polling] オプションを選択します。

最初のタイムスタンプポーリング値は「01/01/0001 12:00:00 AM」に設定されており、アクティビティが開始されると、指定されたすべてのアクティビティでポーリングが実行されます。

Timestamp Field 重要な日時を含むデータフィールドを指定します。Polling アクティビティは、最終ポーリング日時と現在のデータベースサーバーの日時との間の値に対して、この日時フィールドのポーリングを行います。レコードがこの基準を満たす場合、[Activities to Execute] で選択されているアクティビティが実行されます。このフィールドは、[Enable Timestamp Polling] を選択した場合にのみ表示されます。

タイムスタンプベースのポーリングを要求した場合にのみ、[Timestamp Field] の値が使用されます。トリガーベースのポーリングを要求したときには使用されません。

メモ DB2 外部システムを使用する場合、[Timestamp Field] に選択する DB2 列は、DATE 型ではなく TIMESTAMP 型である必要があります。

Reset Timestamp このオプションを選択すると、このポーリングアクティビティ用に格納されているタイムスタンプ値が削除されます。このため、このアクティビティが次回実行されるとき、ポーリングに指定されている他のすべてのアクティビティも実行されます。このオプションを選択すると確認用の画面が表示されます。続行するには [Yes]、キャンセルするには [No] を選択します。

[Definition]

[Definition] タブを選択すると、以下のオプションが表示されます。

フィールド 説明

Polling Frequency データベースをポーリングし、[Trigger Statement] で定義した条件をチェックする頻度を秒数で指定します。

ポーリングは、当該アクティビティ文書の [Scheduling] セクションで定義されている期間内のみ行われます。本章の「Polling アクティビティのスケジュールについての考慮事項」を参照してください。

Activities to Execute トリガーステートメントの結果が真であるときに実行される下位アクティビティを指定します (複数可)。

Page 124: LEI ユーザーズガイド

便宜のため、アクティビティはアルファベット順にリストされていますが、実行順序とは関係ありません。あるアクティビティによる別のアクティビティへの依存を調整するには、各アクティビティについて [General Options] の [Dependent Activity(s)] フィールドを使用します。

Polling アクティビティは、アクティビティのスケジュールに関係なく、指定されたアクティビティを実行します。ここでアクティビティを指定しても、そのアクティビティ自身のスケジュールには影響せず、また、[Start!] ボタンによる実行も可能です。

メモ Polling アクティビティによって下位アクティビティを実行するために、下位アクティビティ文書で [Scheduling] を有効にする必要はありません。

Synchronous Setting [Execute Synchronously] を有効にすると、下位アクティビティの実行中はポーリングが保留されます。デフォルトでは、このオプションは選択されておらず、下位アクティビティが実行されている間もポーリングは一時停止されません。

下位アクティビティが実行されている間ポーリングを一時停止すると、下位アクティビティが何らかの原因 (その下位アクティビティを実行すべきサーバーが起動していなかったなど) で完了できなかった場合、ポーリングは再開されません。その場合、Polling アクティビティは手動で終了しない限り一時停止したままになります。

メモ [Execute Synchronously] と [Reset Trigger Execution: Execute after Activities] の両方を有効にすると、アクティビティの完了後にトリガーがリセットされます。

Reset Trigger Statement ポーリングが成功した後にトリガー条件をリセットするためのオプションのステートメントを指定します。つまり、ポーリングが成功した後に実行するステートメントを指定します。このステートメントは、ポーリングを成功させた条件をリセットするために使用します。

Notes では、ステートメントは次の式を使用する式エージェントである必要があります。

Execute agentname

Domino Designer では、エージェントを作成するときに [Formula] を選択します。また、[All documents in database] オプションも選択する必要があります。

[Reset Trigger Statement] フィールドに値を入力すると、[Reset Trigger Execution] フィールドと [Commit Options] フィールドが表示されます。

Reset Trigger Execution アクティビティの起動前に実行するか、起動後に実行するかを指定できます。下位アクティビティの実行後にステートメントを実行するようにも指定できます。詳細については後述の「メモ」を参照してください。

[Execute before Activities] - 下位アクティビティを実行する前に [Reset !Trigger] を実行します。[Execute after Activities] - 下位アクティビティを実行した後 [Reset !Trigger] を実行します。メモ [Execute Synchronously] も有効にする場合は、アクティビティの完了後、トリガーによってアクティビティがリセットされます。[Execute Synchronously] を有効にしない場合は、アクティビティの完了後ではなくアクティビティの実行後にのみ、トリガーによってアクティビティがリセットされます。

Commit Options [Commit Post Statement] - Commit アクションをサポートしているコネクションの場合、このオプションを選択すると、各実行の後に [Reset Trigger] ステートメントをコミットできます。

[Error Handing Options]

[Error Handing Options] タブを選択すると、以下のオプションが表示されます。

フィールド 説明

On Polling Error [Ignore Polling Errors] - このオプションを選択すると、トリガーステートメントがエラーを返してもポーリングが継続されます (ただし、コネクションが失われていることを示すエラーの場合は例外です)。

Page 125: LEI ユーザーズガイド

Maximum Event Count ポーリング期間が満了するまでの間に、最大何回までポーリングを行うかを指定します (成功を 1 回と数える)。上限を設けない場合は 0 を指定します。

Page 126: LEI ユーザーズガイド

第 11 章 POLLING アクティビティ

Polling アクティビティのスケジュールについての考慮事項

ここでは、Polling アクティビティのスケジュールについて説明します。

Direct Transfer アクティビティや Replication アクティビティなどのバッチアクティビティとは異なり、Polling アクティビ!ティは同時進行のアクティビティです。

Polling アクティビティは、常に開始時刻と終了時刻でスケジュールが設定されます。開始時刻と終了時刻を指定した!場合は、[Restrict to Schedule] オプションを有効にする必要はありません。

Polling アクティビティは、LEI Administrator から実行される場合に限ってスケジュール設定されます。!

終了時刻になっても実行中のポーリングは、完了するまで実行されます。そのポーリングが成功した場合は、Polling !アクティビティによって下位アクティビティが実行されます。

Polling アクティビティには、下位アクティビティの他に従属アクティビティもある場合があります。従属アクティビティ!は、次のいずれかの場合、Polling アクティビティが終了した後に 1 回実行されます。

スケジュール期間が満了した場合!

Polling アクティビティがユーザーによってシャットダウンされた場合!

ポーリングが指定の成功回数に達した場合!

[Maximum Duration] の設定は、長時間実行されていて、実際にはハングしている可能性のあるアクティビティを停止!するために使用します。45 分や 6:00 から 6:45 までなどのように、アクティビティのポーリングを一定期間に制限するには、アクティビティ文書で開始時刻と終了時刻を指定します。

Polling アクティビティが開始すると、ユーザーまたはスケジュールがアクティビティを閉じるまで、外部システムへの!コネクションが継続します。

Polling アクティビティは通常、外部データソースを読み込むだけですが、[Read] トランザクションをコミットする必要が!あります。[Read] はデフォルトではコミットされませんが、[Read] がコミットされるまで他のプロセスまたはユーザーがテーブルへのアクセスを拒否される場合があります。コネクション文書で [Read] トランザクションを含むあらゆるトランザクションを実行するたびに [Commit] を実行する必要があります。

例:スケジュール設定された Polling アクティビティ

この例では、ユーザーが次のように設定すると仮定します。

6:00 PM から 6:45 PM まで 60 秒ごとにポーリングを行う。 !

ポーリングが 1 回成功した後に、別のアクティビティを実行する。 !

この場合、Polling アクティビティ文書で次の値を設定します。

Run at Times:6:00 PM - 6:45 PM!

Maximum Duration [ ]!

Repeat Interval [60] seconds!

Page 127: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

第 12 章 Virtual Fields アクティビティ

LEI には、次の 3 種類の Advanced RealTime アクティビティがあります。

Virtual Fields (これまでは LEI RealTime または DECS RealTime と呼ばれていました)!

Virtual Documents!

Virtual Agents!

この章では、Virtual Fields アクティビティについて説明します。

Page 128: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields アクティビティの概要

LEI アクティビティを使用すると、Notes フォームを監視できます。LEI により Lotus Connector を通じて、外部データソース (DBS など) にこれらのフォームを接続します。システム管理者が Virtual Fields アクティビティを作成すると、その他のユーザーは各自の Notes Client から外部システムのデータを直接開き、外部システムであることを意識せずにデータの作成、更新、削除を行えます (Virtual Fields アクティビティは、以前は LEI RealTime アクティビティと呼ばれていました)。さらに、Web クライアントから Domino Server にアクセスすることで、アクティビティが監視している Notes フォームを開き、サポートされている外部データソースにアクセスできます。

たとえば、Notes フォームからクエリーや更新を行う外部データベースが DB2 の場合、Notes のエンドユーザーは、Notes のデータと同じように DB2 データを操作できます。クライアントシステムには DB2 接続ソフトウェアをインストールする必要はありません。ただし、Domino Server コンピュータには DB2 接続ソフトウェアをインストールする必要があります。外部データソースへのネットワークアクセスは Domino Server コンピュータ (DB2 などの外部データソース用の LEI 接続ソフトウェアがインストールされている) が処理します。

Virtual Fields は次の機能をサポートしています。これらは、以前の RealTime アクティビティでは使用不可であった機能です。

計算結果のサブフォーム、改行区切り文字のオプション!

統合されたユーザー情報!

挿入操作および更新操作の後でプロシージャから返されるパラメータ!

書き込み操作の出力を使用すると挿入操作または更新操作を実行した後に、監視されている Notes 文書のフィールドに書き込み操作の結果を返すことができます。1 つのアクティビティがデータベース内のすべてのフォームを監視できるので、特定のフィールドの総合的な参照が可能です。

概要

Virtual Fields アクティビティにおいても、ユーザーに提示される各データセットには Notes 文書を使用します。Virtual Fields アクティビティは、単に外部システムのデータを既存の文書にのみ追加します。

Virtual Fields で最も単純なケースは、外部システムのデータの取得に必要なキー値のみが Notes 文書に含まれている場合です。これらの Notes 文書は、「キー」文書 と呼ばれます。Notes 文書には、キー値のみで構成された単純なキー文書と、その他のフィールドを含む文書があります。外部システムのデータにマッピングされないすべてのフィールドは Notes 文書に保存されます。

各 Virtual Fields アクティビティは、メタデータが定義される特定の Notes フォームを監視します。メタデータは、データのクエリーや更新を実行する際、Notes フォームのどのフィールドが、外部データソースのどのフィールドにマッピングされるかを定義したものです。Virtual Fields アクティビティを使用して、外部データソースのキーフィールドを対応する Notes フォームのフィールドにマッピングする必要があります。Virtual Fields アクティビティを正確に機能させるには、Notes データベース内にキー文書が必要です。 (キー文書は、以前のリリースでは「スタブ文書」と呼ばれていました)。これらのキー文書は、Virtual Fields アクティビティで 1 回のみ初期化されます。詳細については、この後の「キー文書の機能」を参照してください。

さらに Virtual Fields アクティビティは、外部システムのストアドプロシージャを呼び出し、フォームに表示するデータの生成ができます。

Virtual Fields を Virtual Documents と併用する方法については、「付録 E Virtual Documents アクティビティでの Virtual Fields アクティビティの使用」を参照してください。

Page 129: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

複数の Virtual Fields アクティビティと監視の順序

Virtual Fields アクティビティはフィールドレベルで動作します。複数の Virtual Fields アクティビティで Notes 文書の同じフォームが監視できますが、各アクティビティが監視するのはフォーム上の一部のフィールドのみです。たとえば、いずれかの Virtual Fields アクティビティを停止した場合、文書フォームにはすべてのフィールドが表示されますが、停止中の Virtual Fields アクティビティの担当フィールドのみが空白になります。つまり、監視の順序が適切であれば、1 つ以上の Virtual Fields アクティビティを使用して Notes 文書のフォームが監視できます。

たとえば、社員 ID をキーとするアクティビティを使用して社員データを取得するとします。この社員データにはジョブ ID が含まれます。さらに、別のアクティビティでこのジョブ ID をキーとして使用し、役職、説明、給与範囲などの情報を取得します。このように、監視の順序を適切に使用すると、参照を実行してキーを取得し、さらにそのキーを使用して次の参照を実行できます。

つまり、Notes フォームから複数の外部ソースへのアクセスが可能になります。各外部データソース定義 (コネクション文書) では、接続先のデータソースおよび使用するメタデータを示します。多数の Virtual Field アクティビティを使用して 1 つのフォームを監視できます。これらの各アクティビティは、複数の外部データソースのデータにアクセスします。Virtual Fields アクティビティでは、複数のテーブルの情報を 1 つの Notes 文書フォームにまとめます。そのため通常は、Virtual Documents アクティビティではなく Virtual Fields アクティビティを使用します。

さらに、取得したデータを Notes フォームに保存する、または単に表示する選択ができます。本書でこの後に説明する「Virtual Fields の [General Options]」の [Data Storage] を参照してください。

Page 130: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

キー文書の機能

すでにレコードが格納されている関連データベースの Virtual Fields アクティビティを作成する際は、[Initialize Keys] オプションを使用して、外部システムの各レコードに対応する「キー文書」を Notes データベースに取り込みます。初期化した LEI のキー文書には、アクティビティ文書での指定に基づいて、外部システムのテーブルにマッピングされたキー値が含まれます。これらのキーを使用して、外部システムテーブルへの参照を実行します。Notes 文書を開くと、キー文書のキーに基づいて外部システムデータが抽出され、他のフィールドが取り込まれます。キーの初期化は 1 回のみ行います。これにより、新しい Notes データベースに必要なキー文書が作成されます。キーを初期化した後、Notes および Domino 以外から外部ソースに追加されたデータを取り込むには Replication アクティビティを使用します。

Notes Client で新規文書を作成すると、キー文書が作成され、キーフィールドの値とともに保存されます。

最も単純なケースは、すべてのデータが外部データベースに保存されており、Notes 文書には検索キーのみが格納される場合で、このとき Notes は実際にプレースホルダーまたはキー文書として機能します。ただし、キー文書の役割は、単にキーを格納するだけではありません。キー文書を使用して、外部システムに保存されるデータに加え、その他のデータを含むことができます。アクティビティ文書で、外部システムのフィールドにマッピングされないフォーム上のすべてのフィールドは、「キー文書」に保存されます。さらに、Virtual Fields アクティビティ文書では、マッピングされたフィールドを「キー文書」に保存するよう指定ができます。どちらの場合も、マッピングされたすべてのフィールドの値は外部データソースに格納されます。

たとえば、給与データ、社員の履歴、および個人情報を表示するフォームを作成し、このフォームを Virtual Fields アクティビティで監視させる場合を考えます。社員データと個人情報は Notes データベースに保存され、給与情報は DB2 データベースに保存されているとします。この場合、キー文書は単なる「キー」として機能します。つまり、社員の情報文書を開いたとき、社員 ID を「キー」として使用して給与情報が取得されます。Virtual Fields アクティビティを実行していない場合、または DB2 データへのアクセス権が与えられていない場合、社員に関する情報の参照は可能ですが、給与関連のフィールドにはデータが表示されません。ただし、[General Options] の [Data Storage] セクションで [Leave all real-time fields in documents] を選択した場合は、Virtual Fields アクティビティを停止する前の最新の更新値が維持されます。詳細については、本章で説明する Virtual Fields の [General Options] を参照してください。

Page 131: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields とパブリックキーの暗号化

Virtual Fields アクティビティの暗号化が有効になっており、[文書] プロパティの [セキュリティ] タブに [パブリック暗号キー] が指定されている場合は、非仮想文書と同じように、暗号化指定されたすべてのフィールドが暗号化されます。外部システムのテーブルでは、対応するデータは NULL になります。暗号化されたデータは、適切な暗号キーを所有する Notes ユーザーに対してのみ表示されます。暗号化が可能である Notes の仮想フィールドにマッピングされた外部システムのテーブルの列には、NULL 値を拒否する制約や固有性制約の設定はできません。暗号化された仮想フィールドのデータは、キー (スタブ) 文書内に保存されます。

Page 132: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

添付ファイル再同期について

[Resync Attachments] オプションは、障害発生からの回復を行います。Notes データベースに異常が発生した (この場合は、[Initialize Keys] 機能を使用してキー文書を削除し、再作成してください) 場合は、直ちにこのオプションを行ってください。[Resync Attachments] オプションは、添付ファイルテーブルで保存される仮想添付ファイルの回復、および再作成されたキー文書でそれらの添付ファイルを再結合します。

[Resync Attachments] オプションを使用しない場合、その添付ファイルは新しいキーレコードで表示されないか、または添付ファイルのアイコンが [Note item not found] のエラーメッセージで表示されるかのいずれになります。

[Resync Attachments] オプションは、孤立した添付ファイルレコードをそのデータキーの値で定義します。このキーは、Notes 文書に対応する関連レコードを一致させるキーと同じです。添付ファイルテーブルにはそれらのキーを含む必要があり、含まない場合は、ファイルの再結合に失敗する可能性があります。また、削除された Notes 文書 (EIUNID) のユニバーサル ID、および古くなった $FILE アイテム (EIFILE) からなるファイルもテーブルに表記される必要があります。

[Resync Attachments] を使用する場合は、アクティビティを停止してください。ファイルの再結合をする際に要求されるユーザー情報のダイアログが表示されます。

Notes のキー文書に、リレーショナルデータベースでは保存されないその他のフィールドが含まれる場合は、Notes 文書を削除するとそのフィールド値も削除されます。しかし、他の Notes データベースのレプリカから、削除された値の復帰が可能である場合があります。

添付ファイルを仮想化する際、ファイルをリレーショナルデータベースで保存されないリッチテキストフィールドにする場合でも、その添付ファイルはリレーショナルデータベースで保存されます。リッチテキストの内容が無効である添付ファイルでも、復帰させることは可能です。ただし、その添付ファイルは「V2」スタイルに変換され、文書の最後の行の下で表示されます。

Page 133: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields アクティビティの使用における要件、パフォーマンス、およびマッピング

Virtual Fields アクティビティを使用する上での重要な要件は次の 3 つです。

索引の作成!

キーフィールドのデータ型!

HTTP サーバー!

Virtual Fields アクティビティを正しく動作させるには、索引の作成、キーフィールドのデータ型、および HTTP サーバーに関する要件に従う必要があります。

索引の作成

Virtual Fields アクティビティでは、次のフィールドに索引を作成する必要があります。

マッピングされたキーフィールド!

すべての Sybase データテーブル!

キーフィールドのデータ型

Virtual Fields アクティビティでキーとして使用するすべてのフィールドは、外部システムデータソースにおいてもキーフィールドとして使用できる必要があります。

次に挙げるデータソースの一部のデータ型は、Virtual Fields アクティビティのキーフィールドとして使用できません。

Oracle - LONG 型および LONG RAW 型はキーとして使用できません。 !

DB2 - BLOB 型、CLOB 型、および DBCLOB 型はキーとして使用できません。 !

Sybase - TEXT 型および IMAGE 型はキーとして使用できません。 !

ODBC - 外部システムによって異なります。各データベースのドキュメントを参照してください。 !

Notes - リッチテキストフィールドはキーとして使用できません。 !

メモ キーフィールドとして使用できるデータ型の詳細については、各データソースのドキュメントを参照してください。

HTTP サーバー

HTTP サーバーを使用して文書にアクセスする場合は、Virtual Fields の更新イベントオプション [Conflict Detection] を使用しないでください。このオプションは非表示フィールドを使用しますが、HTTP サーバーにはコンテキスト情報が保存されません。

Virtual Fields のパフォーマンス

外部コネクションが SQL データベースである場合は、 Virtual Fields アクティビティで最適なパフォーマンスが得られるように、キーフィールドに SQL 索引を作成してください。たとえば、テーブル「MyTable」を監視する Virtual Fields アクティビティのキーフィールドが「FirstName」と「LastName」の場合は、SQL データベースで次のように索引を作成します。

CREATE UNIQUE INDEX IndexName on MyTable (FirstName, LastName)

Virtual Fields アクティビティが有効な場合、LEI は、このアクティビティの最初のイベントが発生した時点でコネクションを開き、アクティビティの終了後すぐにコネクションを閉じます。デフォルトでは、開いている 1 つのコネクションを Notes データベースのすべてのユーザーが共有するように設定されています。パフォーマンスを向上させるため、同時に開くコネクションの最大数を設定することもできます。Virtual Fields の [General Options]の [Max. Connections] オプションを参照してください。

マッピングと非マッピング列

通常、Virtual Fields テーブルにマッピングされていない列があり、その列が NULL を受け付けない場合は、新規レコードの作成時に NULL 割り当てエラーが発生します。実際に表示されるエラーメッセージは、使用するコネクタによって異なります。Virtual Fields アクティビティの「キー文書」として Virtual Documents テーブルを使用する場合は、この状況が特に顕著になります。

Page 134: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

User Assistant を使用して Virtual Fields アクティビティを作成する

User Assistant を有効にすると、新しい Virtual Fields アクティビティの作成手順が表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。

ここでは、User Assistant を使用して Virtual Fields アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

手順 1: アクティビティ文書を開く

[Activity] ビューまたは [Favorites] ビュー ([Folder] ビュー) で、アクションバーの [Add Activity] アイコンをクリックします。メッセージボックスが開き、User Assistant でアクティビティ文書を作成する手順が表示されます。

メモ User Assistant がオンのときに何も選択していない場合は、このメッセージボックスで [Cancel] ボタンをクリックする

と、アクティビティフォームが閉じて LEI Administrator に戻ります。User Assistant で項目を選択した場合は、[Cancel] ボ

タンをクリックすると User Assistant が終了します。 ただし、アクティビティ文書は編集モードで開いたままになり、その時

点までの選択内容が表示されます。この後、アクティビティ文書を手動で完成または中断できます。

User Assistant の使用中に選択した内容を後で変更するには、そのアクティビティ文書を編集モードで開きます。

手順 2: Domino データベースを選択する

Domino データベースのリストが表示されます (下図を参照)。監視する Notes フォームが保存されている Domino データベースを選択します。

Page 135: LEI ユーザーズガイド

メモ リストの表示項目が多い場合は、リストをスクロールして目的の Domino アプリケーション (nsf) を探してください。た

だし、リストの項目が多すぎて、スクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセー

ジ (<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベースの正

確な名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削

除」および「基本的な参照について」を参照してください。

メモ 即時監視または「リアルタイム監視」では、アプリケーションデータベースの Notes レプリカ ID が使用されま

す。Virtual Fields アクティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベース

が互いのレプリカである場合、およびオペレーティングシステムを使用し、既存のデータベースをコピーして新しいデータ

ベースを作成した場合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 3: 監視する Notes フォームを選択する

選択したデータベース内のフォームが一覧表示されます。これらのフォームを使用して、外部システムのデータを表示します。このリストから、監視するフォームを 1 つ選択してください。

メモ 使用するフォームにかかわらず、データベース内のすべてのフォームを Virtual Fields アクティビティに監視させる場

合は、Virtual Fields アクティビティ文書の [General Options] にある [Form Override] チェックボックスを使用します。この

オプションは、Virtual Fields アクティビティ文書にのみ適用されます。本章の「Virtual Fields アクティビティ文書のオプショ

ン」を参照してください。

Page 136: LEI ユーザーズガイド

手順 4: データソースの Lotus Connection を選択する

次に示す [Select Connection] ダイアログボックスのリストから、監視する外部データソースのコネクションを選択します。

メモ リストに表示される項目数が多い場合は、リストをスクロールして目的のテーブルを選択してください。ただし、リスト

の項目が多すぎて、スクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するテーブルの正確な名

前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」およ

び「基本的な参照について」を参照してください。

Page 137: LEI ユーザーズガイド

コネクションを選択したあと、その外部データベースに 1 つ以上のテーブルが存在する場合は、さらに別のダイアログボックスが表示されます。このダイアログボックスで、外部データベースのテーブルを選択します。下の図を参照してください。

手順 5: キーフィールドとデータフィールドをマッピングする

外部データソースを指定し、ユーザー名やパスワードなどの接続情報を入力すると、[Key and Data Field Mapping] ダイアログボックスが表示されます。Domino アプリケーションと外部データソースとの間で、キーフィールドとデータフィールドをマッピングする必要があります。次の図で、Virtual Fields アクティビティのキーフィールドとデータフィールドをマッピングするインターフェースを示しいます。

Page 138: LEI ユーザーズガイド

メモ マッピングされていない列が NULL を受け付けない場合、新規レコードの作成時に NULL 割り当てエラーが発生し

ます。本章の「Virtual Fields アクティビティの使用における要件、パフォーマンス、およびマッピング」の「マッピングと非マ

ッピング列」を参照してください。

メモ OLE DB コネクションを使用してアクティビティを作成する場合、キーフィールドのデータ型を TEXT 型、NTEXT 型、

または IMAGE 型にはできません。これらのデータ型は ORDER BY 節では使用できません。また、述語 LIKE または IS

NULL が伴わない限り、WHERE、HAVING、ON 節でもこれらのデータ型を使用できません。

UNID をキーフィールドとして使用するLEI では、各文書の作成時に Notes によって自動的に割り当てられる Notes ユニバーサル ID を使用できます。この ID を使用することで、単にキーフィールドとして使用するフィールドを Notes データベースに追加する必要がなくなります。

手順 6: 監視するイベントを選択する

キーフィールドとデータフィールドをマッピングすると、[Virtual Fields Activity Event Selection] ダイアログボックスが表示されます。必須の手順はこれで最後になり、ここでは、監視するイベント (Create、Open、Update、Delete) を選択します。Virtual Fields アクティビティ文書を作成または編集する場合のみ、このダイアログボックスが表示されます。

メモ 監視するイベントを必ず 1 つ以上選択してください。選択するイベントの組み合わせは自由です。Update イベントを

監視する場合は、Open と Update の両方を選択する必要があります。Update のみを選択するとエラーメッセージが表示

されます。

メモ 監視対象は、そのアクティビティ文書で指定した Notes フォーム上で発生するイベントです。ただし、更新の場合

は、外部システムのデータを更新します。ユーザー名を使用して外部システムに接続するには、その外部システムに対す

る読み取り/書き込みアクセス権が必要です。読み取りアクセス権のみが与えられている場合は、文書を開くことはできま

すが、その文書の更新および外部システムに対する更新の保存はできません。

Page 139: LEI ユーザーズガイド

手順 7: アクティビティ文書に名前を付ける

画面の指示に従い、固有なアクティビティ名を入力して [OK] をクリックします。

アクティビティ名を入力して [OK] をクリックすると、次のように、Virtual Fields アクティビティのオプションに関する説明がメッセージボックスに表示されます。

Page 140: LEI ユーザーズガイド

[OK] をクリックします。Virtual Fields アクティビティ文書が開き、これまでの選択内容が表示されます。文書内に示されている番号は、User Assistant で Virtual Fields アクティビティを作成するための手順番号に対応します。

手順 8: サブフォームを有効にする

このオプションを選択すると、式によって制御されるサブフォームの使用が可能になります。式によって制御されないサブフォームはデフォルトで追加されます。このオプションを選択するとダイアログボックスが表示されます。このダイアログボックスで、計算結果のサブフォームのリストから必要なサブフォームを選択します。式によって制御されるサブフォームのみを追加してください。

Step 9:オプションを選択する

この時点で、この Virtual Fields アクティビティで使用するオプションが選択できます。詳細については、本章の Virtual Fields の [General Option] を参照してください。

Page 141: LEI ユーザーズガイド

手順 10: スケジュール関連のオプションを選択する

Virtual Fields アクティビティのスケジュールを制御する方法を選択します。[Manual]、[AutoStart]、または [Custom] を選択できます。詳細については、「第5章 LEI アクティビティの概要」の「スケジュール」を参照してください。

手順 11: アクティビティの定義を保存し、キーを初期化して、文書を閉じる

キーは 1 回のみ初期化する必要があります。

[File] - [Save] を選択して、この Virtual Fields アクティビティの定義を保存します。

[Initialize Keys] ボタンをクリックします。これで、Virtual Fields アクティビティ文書を閉じることができます。

[File] - [Close] を選択して Virtual Fields アクティビティ文書を閉じ、LEI Administrator に戻ります。

メモ キーの初期化の詳細については、本章の「Virtual Fields のキーの初期化」を参照してください。

メモ キー文書をすでに作成している場合は、キーは再初期化できません。

ヒント 作成した Virtual Fields アクティビティで出力パラメータを使用し、データを受け取るフィールドに次のような Hide

When 式が含まれている場合、Hide When フィールドの値を表示するにはフォームを手動で更新する必要があります。

For field FIELD_FOO:

Hide When FIELD_FOO=""

文書の保存後、フォームを更新しない限り Hide When フィールドの値は表示されません。

ただし、Domino Designer を使用してフォームデザインの Postsave イベントに次のコードを追加した場合は、フォームを手動で更新しなくても、文書を保存した直後に Hide When フィールドの値が表示されます。

Sub Postsave(Source As Notesuidocument)

Dim workspace As New NotesUIWorkspace

Dim uidoc As NotesUIDocument

Set uidoc = workspace.CurrentDocument

Call uidoc.Refresh

End Sub

手順 12: Virtual Fields アクティビティを処理する

Virtual Fields アクティビティを処理するには、[Activities] ビューまたは [Favorites] ビュー ([Folders] ビュー) のアクションバーにある [Start] ボタンと [Stop] ボタンを使用します。

メモ アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合は、サーバーを起動するたびに Virtual

Fields アクティビティが確立されます。詳細については、「第5章 LEI アクティビティの概要」の「スケジュール」を参照してく

ださい。

Page 142: LEI ユーザーズガイド

Virtual Fields アクティビティをクリックして選択し、[Start] ボタンをクリックして処理を開始します。

メモ Virtual Fields アクティビティを停止するには、目的の Virtual Fields アクティビティを選択して [Stop] ボタンをクリック

します。

Page 143: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

User Assistant を使用しないで Virtual Fields アクティビティを作成する

User Assistant を有効にすると、新しい Virtual Fields アクティビティの作成手順が表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。User Assistant が無効の場合は、空白のアクティビティ文書が表示されます。この文書に必要項目を入力してアクティビティを定義します。

ここでは、User Assistant を使用しないで Virtual Fields アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

手順 1: アクティビティ文書を開く

[Add Activity] アイコンをクリックします。Virtual Fields アクティビティ文書が開きます。

手順 2: アクティビティの名前を入力します。

文書の一番上にある [Name] フィールドに、このアクティビティの固有の名前を入力します。

手順 3: 監視する Domino アプリケーションとフォームを選択する

[Domino Application] セクションの下矢印アイコンをクリックします。データベースのリストが表示されます。監視する Domino アプリケーションが含まれるデータベースを選択します。フォーム名も指定するよう求められます。

メモ リストの表示項目が多い場合は、リストをスクロールして目的の Domino アプリケーションを探してください。ただし、

リストの項目が多すぎて、スクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベースの正確な

名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」お

よび「基本的な参照について」を参照してください。

メモ 即時監視または「リアルタイム監視」では、アプリケーションデータベースの Notes レプリカ ID が使用されま

す。Virtual Fields アクティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベース

が互いのレプリカである場合、およびオペレーティングシステムを使用し、既存のデータベースをコピーすることにより新し

いデータベースを作成した場合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 4: データソースの Lotus Connection を選択する

[External System] セクションの下矢印アイコンをクリックして、既存のコネクション文書の中から使用する文書を選択します。

メモ リストに表示される項目数が多い場合は、リストをスクロールして目的のテーブルを選択してください。ただし、リスト

の項目が多すぎて、スクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するテーブルの正確な名

前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」およ

び「基本的な参照について」を参照してください。

手順 5: サブフォームを有効にする

このオプションを選択して、式によって制御されるサブフォームを使用できるようにします。式によって制御されないサブフォームはデフォルトで追加されます。このオプションを選択するとダイアログボックスが表示されます。このダイアログボックスで、計算結果のサブフォームのリストから必要なサブフォームを選択します。式によって制御されるサブフォームのみを追加してください。

Page 144: LEI ユーザーズガイド

手順 6: キーフィールドとデータフィールドをマッピングする

外部データソースを指定し、ユーザー名やパスワードなどの接続情報を入力すると、[Key and Data Field Mapping] が表示されます。Domino アプリケーションと外部データソースとの間で、キーフィールドとデータフィールドをマッピングする必要があります。

[Mapping] セクションの下矢印をクリックします。フィールドをマッピングするダイアログボックスが表示されます。このダイアログボックスを使用して、Domino アプリケーションと外部データソースの間でキーフィールドとデータフィールドをマッピングします。

次の図は、Virtual Fields アクティビティのキーフィールドとデータフィールドをマッピングするインターフェースを示しています。

Page 145: LEI ユーザーズガイド

メモ マッピングされていない列が NULL を受け付けない場合、新規レコードを作成しようとすると NULL 割り当てエラー

が発生します。本章の「Virtual Fields アクティビティの使用上の要件、パフォーマンス、およびマッピング」の「マッピングと

非マッピング列」を参照してください。

メモ OLE DB コネクションを使用してアクティビティを作成する場合、キーフィールドのデータ型を TEXT 型、NTEXT 型、

または IMAGE 型にすることはできません。これらのデータ型は ORDER BY 節では使用できません。また、述語 LIKE ま

たは IS NULL が伴わない限り、WHERE、HAVING、ON 節でもこれらのデータ型を使用できません。

UNID をキーフィールドとして使用するLEI では、各文書の作成時に Notes によって自動的に割り当てられる Notes ユニバーサル ID を使用できます。この ID を使用すると、単にキーフィールドとして使用するフィールドを Notes のフロントエンドに追加する必要がなくなります。

手順 7: 監視するイベントを選択する

Virtual Fields フォームにデータを入力するには、監視するイベントを 1 つ以上選択する必要があります。[Events] セクションの下矢印アイコンをクリックします。ダイアログボックスが表示されます。監視する文書イベントを選択します。選択するイベントの組み合わせは自由です。

メモ Update イベントを監視する場合は、Open と Update を両方とも選択する必要があります。Update のみを選択する

とエラーメッセージが表示されます。

手順 8: オプションおよびイベントオプションを選択する

文書の [Options] タブおよび [Event Options] タブで、必要なオプションとイベントオプションを選択します。詳細については、本章の Virtual Fields アクティビティのオプションとイベントオプションに関する説明を参照してください。

手順 9: スケジュール関連のオプションを選択する

Virtual Fields アクティビティのスケジュールを制御する方法を選択します。[Manual]、[AutoStart]、または [Custom] を選択できます。詳細については、「文書の作成、編集、削除」および「基本的な参照について」「第5章 LEI アクティビティの概要」の「スケジュール」を参照してください。

Page 146: LEI ユーザーズガイド

手順 10: アクティビティの定義を保存し、キーを初期化して、文書を閉じる

キーは 1 回のみ初期化する必要があります。

[File] - [Save] を選択して、この Virtual Fields アクティビティの定義を保存します。定義を保存すると [Initialize Keys] ボタンが表示されます。

[Initialize Keys] ボタンをクリックします。Virtual Fields アクティビティ文書を閉じることができます。

[File] - [Close] を選択して Virtual Fields アクティビティ文書を閉じ、LEI Administrator に戻ります。

メモ キー文書をすでに作成している場合は、キーを再初期化できません。キーの初期化の詳細については、本章の「文

書の作成、編集、削除」および「基本的な参照について」「Virtual Fields のキーの初期化」を参照してください。

ヒント 作成した Virtual Fields アクティビティで出力パラメータを使用し、データを受け取るフィールドに次のような非表示

式が含まれている場合、非表示フィールドの値を表示するにはフォームを手動で更新する必要があります。

For field FIELD_FOO:

Hide When FIELD_FOO=""

文書の保存後、フォームを更新しない限り非表示フィールドの値は表示されません。

ただし、Domino Designer を使用してフォーム設計の Postsave イベントとして次のコードを追加する場合は、フォームを手動で更新しなくても、文書を保存した直後に非表示フィールドの値が表示されます。

Sub Postsave(Source As Notesuidocument)

Dim workspace As New NotesUIWorkspace

Dim uidoc As NotesUIDocument

Set uidoc = workspace.CurrentDocument

Call uidoc.Refresh

End Sub

手順 11: Virtual Fields アクティビティを処理する

Virtual Fields アクティビティを処理するには、[Activities] ビューまたは [Favorites] ビュー ([Folders] ビュー) のアクションバーにある [Start] ボタンと [Stop] ボタンを使用します。(アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合は、サーバーを起動するたびに Virtual Fields アクティビティが確立されます。詳細については、「文書の作成、編集、削除」および「基本的な参照について」「第5章 LEI アクティビティの概要」の「スケジュール」を参照してください。)

Virtual Fields アクティビティをクリックして選択し、[Start] ボタンをクリックして処理を開始します。

メモ Virtual Fields アクティビティを停止するには、目的の Virtual Fields アクティビティを選択して [Stop] ボタンをクリック

します。

Page 147: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields アクティビティ文書のオプション

Domino アプリケーション、コネクション、およびデータマッピングを指定した後、さらに必要であれば、Virtual Fields アクティビティを設定するオプションを指定できます。

これらのオプションは、[Options] と [Event Option] の 2 つのカテゴリに分けられます。オプションおよびイベントオプション

[Options] タブは、さらに次のカテゴリに分けられます。

[General Options]!

[Multi-value Data]!

[Integrated Credentials]!

[Virtual Attachments]!

[Event Options] タブは、さらに次のカテゴリに分けられます。

[Create]!

[Open]!

[Update]!

[Delete]!

すべてのアクティビティ文書に共通する次のセクションについては、「文書の作成、編集、削除」および「基本的な参照について」「第5章 LEI アクティビティの概要」を参照してください。

[Activity Name]!

[Scheduling]!

[Category]!

[Comments]!

メモ Virtual Fields アクティビティを実行するには、キーを初期化するか、または何らかの方法で「キー文書」を作成する

必要があります。キーを初期化すると、LEI アクティビティ文書のキーフィールドに基づいてキー文書が作成されます。こ

れらのキー文書は、アクティビティを有効にした後データコンテナとして機能します。キーは 1 回のみ初期化します。詳細

については、「文書の作成、編集、削除」および「基本的な参照について」本章の「Virtual Fields のキーの初期化」を参照

してください。

メモ DECS をアップグレードした後、または DECS から LEI にアップグレードした後、Virtual Fields アクティビティの実行

時にデータを取得できない場合は、Virtual Fields アクティビティ文書を開き、そのアクティビティ文書で正しい Domino

Server が選択されていることを確認してください。

Page 148: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

[Options] タブ

Virtual Fields アクティビティ文書の [General Options] タブには、監視するイベントの種類にかかわらず、その Virtual Fields アクティビティに適用されるオプションが表示されます。次の図を参照してください。[General Options] の各オプションについては、図の後の説明を参照してください。

[General Options] 説明

Monitor Order 1 つの Notes フォームで複数の Virtual Fields アクティビティを使用する場合は、文書のイベントを検出する順序を指定できます。

監視の順序を指定することで、複数のアクティビティを使用してそれぞれ異なるテーブルに接続し、1 番目の Virtual Fields アクティビティ (監視順序 1) で取得した値をそれ以降のアクティビティ (監視順序 2、3...) のキーとして使用できます。

メモ 監視の順序が「2」以降のアクティビティは、Open (オープン) イベントを監視する必要があります。その他のイベントも監視できますが、そのうち 1 つは必ず Open (オープン) イベントである必要があります。アクティビティの内容によっては、監視の順序が「1」のアクティビティも Open (オープン) イベントを監視する必要があります。

Max. Connections ユーザーからの要求に対して同時に開くことができる外部データベースへの最大コネクション数を指定します。Domino アプリケーションで最初のイベントが発生すると、外部データソースへのコネクションが 1 つ開きます。2 番目、3 番目のイベントが同時に発生した場合は、それに応じて新しいコネクションが開きます。

開いているコネクションの数がこのオプションで指定した最大数に達すると、それ以降のイベントはキューに登録され、先に発生したイベントから順番に処理されます。コネクションが開いているのは、外部データソースに対してデータを読み書きする間のみです。読み書きするデータ量に応じて、各イベントの処理に必要な最小限の時間のみ、コネクションが維持されます。 したがって、複数のイベントを処理する場合でも、コネクションの最大数をそれほど大きくする必要はありません。通常は、最大コネクション数として「2」または「3」を設定しますが、動作が遅いと感じる場合は最大数を増やしてください。

Form Override デフォルトでは、[Domino Application] セクションで指定したフォームを使用する文書のみが監視されます。

このオプションを選択すると、指定したフォームにかかわらず、Notes データベース内で元のメタデータと同じキーを持つすべての文書について、選択したイベントが処理されます。

Page 149: LEI ユーザーズガイド

Filter Formula Notes 式を使用して、Virtual Fields アクティビティが監視する文書を定義します。ここで指定した式と一致する文書のみが、Virtual Fields アクティビティによって処理されます。

フィルタ式は、リレーショナルデータベースからデータが取得される前に評価されるため、Notes 文書で保存されるフィールド、またはこれ以前の監視の順序の段階で取得されたフィールドを必ず参照します。Notes で保存されるフィールドを制御するには、[Data Storage] オプションの [Saved Fields] を参照してください。

SELECT キーワードは使用できません。

メモ Virtual Fields アクティビティの「キー文書」のソースとして Virtual Documents を使用し、Virtual Fields アクティビティの [Filter Formula] オプションに入力したフィールドをマッピングしない場合は、Virtual Fields アクティビティの [Data Storage] フィールドで [Leave selected real-time fields in documents] オプションを選択する必要があります。このオプションを選択せずに、フィルタ式と一致するレコードを更新すると、そのレコードは Notes ビューから削除されます。これは、Virtual Document 側のフィルタフィールドが NULL に更新されるためです。したがって、これらのフィールドは Virtual Fields アクティビティに残しておく必要があります。ただし、フィルタフィールドが Virtual Fields アクティビティのキーフィールドとしてマッピングされている場合は、選択したフィールドを Virtual Fields アクティビティに維持する必要はありません。フィルタ式と一致しているかにかかわらず、Virtual Documents 側にマッピングしたすべてのフィールドが Virtual Fields アクティビティによって表示されます。

作成した文書がフィルタ基準に一致しない場合、その文書は外部テーブルに挿入されません (つまり「処理」されません)。代わりに、[Data Storage] の設定にかかわらず、Notes データベースでローカルに保存されます。

Data Integrity [Prevent data loss] - このオプションを有効することにより、転送の結果としてデー!タが失われた場合にエラーがログに書き込まれ、転送が終了します。[Allow precision loss] - このオプションを選択すると、転送の結果として数値や日!付/時刻の精度が低下した場合にエラーが報告されません。精度が低下した場合でもそれを許可し、転送を続行します。デフォルトでは、このオプションが選択されています。[Allow precision loss and truncation of text] - このオプションを選択すると、精度!の低下が許可され、外部データベースのフィールド長に合わせてテキストデータが切り捨てられます。ただし、キーフィールドの文字列は切り捨てられません。

Trim Trailing Spaces このオプションは、外部データのテキストフィールドに含まれる末尾スペースの処理方法を指定します。

外部ソースからフィールドデータを読み込む場合のみ、そのフィールドの末尾スペースが削除されます。

[Trim spaces on all non key fields] - このオプションを選択すると、キーフィールド!以外のデータフィールドについてのみ末尾のスペースが削除されます (デフォルト)。[Do not trim spaces on any fields] - このオプションを選択すると、いずれのフィー!ルドについても末尾のスペースが削除されません。 Notes と外部データのフィールドをマッピングするには、末尾にスペースが必要な場合もあります。

メモ 外部システムの固定長フィールドにデータを書き込むと、そのフィールドの長さに合わせてスペースが埋め込まれるため、同じデータを再び読み込んだときに外部システムとのコネクションが失われることがあります。このような場合は、外部システムのデータベースで可変長フィールド (VARCHAR) を使用するか、[Trim spaces on all non key fields] オプションを選択します。この問題は、外部データソースが Oracle 7 または Oracle 8 であり、キーフィールドとして CHAR 型を使用する場合に発生する可能性があります。CHAR 型をキーフィールドとして使用するときは、デフォルト設定の [Trim spaces on all non key fields] を選択してください。

メモ Virtual Fields アクティビティで Create イベントを監視する場合、CHAR 型のキーフィールド (固定長) にそのアクティビティの「Trim Trailing Spaces」オプションが適用されるのは、キーを最初に初期化するときのみです。アクティビティの実行中に新しく作成した CHAR 型 (固定値) のキーフィールドについては、Notes で新規レコードを作成するときに入力した状態が維持されます。

New Line Delimiter for Connection

Notes の改行区切り文字を他のシステムの改行区切り文字に変換するオプションを選択します。

Data Storage このオプションでは、マッピングされたフィールドのコピーの Notes 文書における保存を制御します。仮想フィールドをビューの列内、選択式内、またはエージェント内で使用するには、Notes 文書中に、仮想フィールドのコピーが必要になります。キーフィールドは常に Notes 上に保存されますが、非キーフィールドのコピーの保存は任意です。選択した [Data Storage] メソッドは、文書を保存する際に実行されます。

[Remove all real-time fields from documents] - このオプションを選択する!と、Notes 文書をディスクに保存する前に、アクティビティでマッピングしたすべて

Page 150: LEI ユーザーズガイド

のデータフィールドが Notes 文書から削除されます。デフォルトでは、このオプションが選択されています。[Leave all real-time fields in documents] - このオプションを選択すると、外部ソー!スの更新後でも Notes 文書内のデータフィールドが削除されません。すべてのデータフィールドが Notes 文書に残ります。このオプションは、アクティビティが有効な場合に文書を作成または更新する場合のみ適用されます。[Leave selected real-time fields in documents] - 選択したデータフィールドを !Notes 文書に残す場合にこのオプションを選択します。このオプションは、フォームのビューを有効にするときなどに使用します。

Saved Fields このオプションは、前述の [Data Storage] メソッドの [Leave selected real-time fields in documents] オプションのみで使用可能です。

下矢印をクリックすると、Notes データフィールドのリストが表示されます。このリストから必要なデータフィールドを選択します。フィールドを何も選択しない場合は、[Remove all real-time fields from documents] オプションを選択したときと同じように処理されます。

メモ [Filter Formula] オプションを使用する場合は、選択したフィールドがこの [Saved Fields] でも定義されている必要があります。

Page 151: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields のキーの初期化

Virtual Fields アクティビティ文書で作業しているときは、アクションバーに [Initialize Keys] ボタンが表示されます。このボタンをクリックすると、現在選択している Virtual Fields アクティビティのキーフィールドに、そのコネクションの外部データソースから取得したデータが設定されます。このコマンドは、Virtual Fields アクティビティを作成した後に 1 回のみ使用してください。キーを再初期化すると、既存の文書と同じ文書が作成されます。

[Leave selected real-time fields in documents] または [Leave all real-time fields in documents] を指定した場合は、対応するフィールドが Domino アプリケーションに転送されます。

メモ フィルタ式を持つ Virtual Fields アクティビティで [Initialize Keys] を実行すると、Notes へインポートする外部レコー

ドの数を条件節によって制限するか確認するメッセージが表示されます。[Yes] を選択した場合は、外部条件節を入力す

るよう求められます。ここでは、その外部システムの「キーに基づく選択節」を入力する必要があります。たとえば、SQL シ

ステムの場合、「WHERE」という単語に続く部分が条件節になります。ステートメント全体が「SELECT * from Table

WHERE Number > 1」の場合は、「Number > 1」のみをキーの初期化条件として入力します。

メモ Create イベントの場合、CHAR 型 (固定値) のキーフィールドには「末尾スペースの削除」オプションが適用されませ

ん。また、外部データソースへの保存方法により影響を受けることもありません。これらのフィールドでは、Notes でレコー

ドを作成するときに入力されたままの値が維持されます。

メモ OLE DB コネクションを使用してアクティビティを作成する場合、キーフィールドのデータ型を TEXT 型、NTEXT 型、

または IMAGE 型にすることはできません。これらのデータ型は ORDER BY 節では使用できません。また、述語 LIKE ま

たは IS NULL が伴わない限り、WHERE、HAVING、ON 節でもこれらのデータ型を使用できません。

Page 152: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields の [Multi-value Data]

LEI アクティビティで複数値データを処理するには、アクティビティ文書の [Options] セクションにある [Multi-value Data] の [Use multi-value data fields] チェックボックスをオンにします。セクションが展開され、その他の選択項目が表示されます。[Multi-value Data] のオプションを使用すると、非キーフィールドを複数値フィールドと認識できます。フィールドを選択すると、ソート方法と並び順を指定するオプションが表示されます。[Multi-value Data] の各オプションについては、図の後の説明を参照してください。

[Multi-value Data] のオプション 説明

Multi-value Data [Use multi-value data fields] - このオプションを選択すると、Virtual Fields アクティビティの実行時に非キーフィールドが複数値フィールドと認識されます。

[Multi-value Data] を使用すると、Notes データベース内の 1 つの文書を、そのコネクションの複数のレコードに関連付けることができます。このオプションを選択した場合、Open イベントでは、キーデータフィールドと一致するすべてのレコードが外部システムから読み込まれ、複数のフィールドのデータが Notes の複数値フィールドに結合されます。Create、Update、Delete の各イベントでは、これと反対の処理が行われます。

メモ 「Not Equal To」や「Less Than or Equal To」などの条件キーを使用して、複数値データをこれ以上操作することはできません。

Subkey Fields 折りたたまれたレコード内で固有キーを定義する別のフィールド (1 つ以上) を指定します。1 つ以上のフィールドの選択が可能です。任意の順序でリストできます。

Notes ユーザーに対して複数フィールド中の値の編集、および Notes Save イベントの外部システムの更新を許可する場合は、サブキーを使用します。

サブキーを使用しない場合、アクティビティは、データが読み込まれた行を更新しない場合があります。詳細については以下のテーブルを参照してください。

Sorting [Sort multi-value data] - このオプションを選択すると、Virtual Fields アクティビティの実行時に非キーフィールド内のデータがソートされます。

このオプションを選択した場合は、[Sorting fields] で指定した順序、および指定したソート方法 (テキスト、バイナリ、昇順、降順) に従って複数値データフィールド内の値がソートされます。

[Text Order]、[Direction]、[Character Set] の各フィールドを使用できるようになります。

Sorting fields ソートキーフィールドは、折りたたまれたレコード内のデータの順序を定義します。複数値データフィールド内の各値は、[Text order] オプションと [Direction] オプションに基づいてソートされます。

他のすべてのフィールドには、ソートフィールドと同じ順序で複数値データが設定されます。

[Binary] - 文字コードのバイナリ順でソートされます。推奨設定です。!

Page 153: LEI ユーザーズガイド

Text order[Case Sensitivity] - 小文字、大文字の順序でソートされます。![Case Insensitivity] - ソートの際に大文字と小文字が区別されません。!

Direction [Ascending] - アルファベットは A から Z の順番でソートされます。日付は、!古い日付から順にソートされます。数値は、小さい数値から順にソートされます。[Descending] - アルファベットは Z から A の順番でソートされます。日付!は、最新の日付から順にソートされます。数値は、大きい数値から順番にソートされます。

Character set データをソートする際に使用するキャラクタセットを選択します。デフォルトでは、ベースとなるコネクションのキャラクタセットが使用されます。キャラクタセットを指定するには、それに対応するサフィックスを使用してください。たとえば、LCSTREAMFMT_IBMCP932 の場合は「CP932」を使用します。キャラクタセットの一覧は、『Lotus Connector LotusScript Extensions ガイド』の付録を参照してください。

アクティビティで複数値機能を使用すると、共通のキー値を持つ複数のレコードを 1 つの Notes 文書にグループ化できます。複数値フィールドを使用した場合、たとえばテーブルデータとしてこれらのレコードを表示できます。グループキーフィールドの値が同じであるレコードは、異なるキーが検出されるまですべて結合 (省略) されます。この情報を取得するために、たとえば、Designer を使用して Notes フォーム上に 2 行の表を作成し、複数値を表示するフィールドを追加します。区切りオプションとしては「改行」を設定します。

すべての LEI アクティビティで、キーは複数フィールドとして定義されている必要があります。たとえば、「JOB」をキーフィールドとして定義します。この場合、アクティビティ文書には、固有フィールドではないキー値フィールドが設定されます。

サブキー

サブキーフィールドでは、その他のキーの指定を可能にします。それらのキーは、Notes 文書を保存する際に、更新用に、リレーショナル行を固有に定義する他のキーと結合されます。これは、リレーショナルフィールドすべてを Notes フィールドへマッピングしない場合に必要で、マッピングされたフィールドのデータが、リレーショナルテーブルのマッピングされないフィールドと取り替えられることを防ぎます。たとえば Notes 文書中に、CUSTOMERID をキーとして用いた顧客の発注データの集計が含まれると想定します。1 つの顧客に対する発注すべてが複数値フィールドに表示され、1 つの Notes フィールドに対し、1 つのリレーショナル行になります。SHIPBYDATE リレーショナルフィールドは Notes フィールドへマッピングされますが、SHIPSTATUS フィールドはマッピングされません。Notes ユーザーが 1 つの発注に対し SHIPBYDATE フィールドを更新する場合、その発注が保存される際に、新たな値がリレーショナルテーブルへと書き込まれます。しかし、特にソートオプションを使用している場合、その発注が読み込まれた同じ行へは書き込まれない場合があります。このため SHIPSTATUS フィールド値は、SHIPBYDATE のような関連するマッピングフィールドにランダムに配置されます。これを防ぐには、ORDERID などの他のキーを選択します。これによりアクティビティはデータを読み込んだ行を特定し、その行を更新できます。

ソートに関するさまざまなオプションも用意されています。これらのオプションを使用して、結合レコード (折りたたまれたレコード) に含まれるデータのソート方法を指定します。

メモ 既存のサブキーを更新するときは十分な注意が必要です。いかなる場合にでも、既存のサブキーは更新しないでく

ださい。サブキー列に固有性制約を指定している場合、現在のレコードの 1 次キーに存在しない値をサブキーに設定す

ると、挿入エラーが発生します。固有性制約を指定していない場合は、エラーが発生せず、更新処理は正常に行われま

す。ただし、サブキーを更新し、同じ 1 次キーの既存の値をサブキーとして使用すると、その列に固有性制約を設定して

いてもデータが失われる可能性があります。

メモ Virtual Fields アクティビティ文書で使用される用語「サブキー」は、Collapse/Expand メタコネクタ文書で使用される

用語「グループキー」と相関します。Virtual Fields アクティビティとの組み合わせで使用される用語「固有ではないキー」

は、Collapse/Expand メタコネクタ文書で使用される「追加の書き込みキー」と相関します。

メモ Virtual Fields アクティビティ文書で使用される用語「サブキー」は、Collapse/Expand メタコネクタ文書で使用される

用語「追加の書き込みキー」と相関します。このフィールドは、イベントの更新、削除、または作成の際にイベントが 1 つ

のレコードのみに影響を与えるように、外部システムテーブルでは固有である必要があります。このフィールドが外部シス

テムテーブルにおいて固有ではない場合、イベントは選択された「グループ」のレコードすべてに影響を与えま

す。Collapse/Expand メタコネクタ文書で使用される用語「グループキー」は、Virtual Fields アクティビティ文書で使用され

る用語「キーフィールド」と相関します。「複数値データ」として解釈されているデータを使用する場合、「グループキー」

(Virtual Fields Activity 文書では「キーフィールド」) は、固有になりません。これは、Collapse/Expand コネクションタイプを

用いる Replication アクティビティを使用する際に役立ちます。

Page 154: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields の [Integrated Credentials]

[Integrated Credentials] のオプションを使用すると、外部システムへの接続に使用されるユーザー情報が自動的に検索されます。ユーザー情報は外部システムへの接続時に使用されます。外部システムにすでに備わっているセキュリティ機能とこのユーザー情報を統合することで、Domino のセキュリティがより向上します。

メモ 統合されたユーザー情報データベースの詳細については、本書の「文書の作成、編集、削除」および「基本的な参

照について」「第5章 LEI アクティビティの概要」を参照してください。統合されたユーザー情報の設定と使用の詳細につ

いては、第5章の「統合されたユーザー情報データベース」セクションを参照してください。

次の図の後で、[Integrated Credentials] の各オプションについて説明します。

[Integrated Credentials] のオプション

説明

Use Connector Credentials

このアクティビティで使用するコネクション文書で指定されているユーザー ID とパスワードを使用します。

Obtain Credentials from Data

このオプションを選択すると、フォームが展開され、次のオプションが表示されます。

[Missing Credentials] - [Use Connector Credentials] オプションを選択できます。この!オプションを選択した場合、ユーザー情報の参照に失敗したときは、アクティビティのデフォルトのユーザー情報が使用されます。このオプションを選択しない場合は、操作に失敗します (デフォルトの動作)。[Credentials UserID field] - 外部システムへの接続時に使用するユーザー ID が格納!されているフィールドの名前です。 [Credentials Password field] - 外部システムへの接続時に使用するパスワードが格納!されているフィールドの名前です。[Connection Cache Size] - 一度に有効にできるユーザー情報の最大数です。!

メモ Virtual Fields アクティビティのキー文書のソースとして Virtual Documents を使用する場合は、ユーザー ID とパスワードを Virtual Documents アクティビティ文書に追加する必要があります。これらの情報を Virtual Fields アクティビティ文書に追加しても使用できません。

Lookup Credentials このオプションを選択すると、フォームが展開され、次のオプションが表示されます。

[Missing Credentials] - ユーザー情報の参照に失敗した場合、アクティビティのデフォ!ルトのユーザー情報を使用できます。それ以外の場合は、操作に失敗します (デフォルトの動作)。[Credentials DB Filepath] - ユーザー情報データベースの名前を入力します。このデ!ータベースに、Notes ユーザー名とそれに対応する外部システムのユーザー情報が保存されます。LEI ディレクトリ (leidir など) を基準とする相対パスを指定してください。

メモ このデータベースは、テンプレート leicred.ntf を使用して作成されている必要があります。本書の「第5章 アクティビティの概要」の「統合されたユーザー情報データベースのセットアップおよび使用」を参照してください。

[Connection Cache Size] - 異なるユーザー情報が一度にアクティブになる最大数で!す。

統合されたユーザー情報と全文索引

統合されたユーザー情報を使用して、Virtual Documents または Virtual Fields で全文索引を実行するには、統合ユーザー情報データベースにサーバー ID を追加する必要があります。

統合されたユーザー情報とサーバー間での複製

Page 155: LEI ユーザーズガイド

統合されたユーザー情報を使用してサーバー間で複製を実行するには、複製するサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に、Virtual Documents 対応または Virtual Fields 対応のデータベースが格納されているとします。これをサーバー B に複製する場合は、サーバー A の統合ユーザー情報データベースにサーバー B のサーバー ID を追加します。

Domino クラスタでの統合されたユーザー情報

Domino クラスタ内のサーバーに、Virtual Documents 対応または Virtual Fields 対応データベースのレプリカが格納されている場合は、それらすべてのサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に Virtual Fields 対応のデータベースが格納されており、そのレプリカがサーバー B とサーバー C に存在するとします。さらに、サーバー A、B、C がすべて同じ Domino クラスタに属している場合、サーバー B とサーバー C のサーバー ID をサーバー A の統合ユーザー情報データベースに追加する必要があります。これらのサーバー ID が追加されてい場合、クラスタの複製処理でレプリカを正しく同期できません。

Page 156: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

[Virtual Attachments]

[Virtual Attachments] は、Notes を使用して外部システムデータベースに添付ファイルを追加する機能です。添付ファイルは、Domino アプリケーションではなく外部システムに保存されます。

メモ Virtual Fields アクティビティを使用する場合、キー文書を再初期化する必要があります。しかし、キーの再初期化を

すると、仮想添付ファイルとキー文書間の結合性が失われるため、仮想添付ファイルが孤立します。 また、壊れたデータ

ベースで「Fixup」ユーティリティを実行する場合、多くのアクションがキー文書のデータベースを消去する可能性がありま

す。これらのいずれかのイベントが発生した場合は、(Resynchronize キー) を有効にして、孤立した仮想添付ファイルをキ

ー文書と再接続します。

メモ ファイル名と Notes ID を保存することで、添付ファイルの識別と取得が容易になります。ただし、これらを格納する列を外部システムテーブルに追加する必要があります。

Virtual Attachment の必須列とオプションの列は次のとおりです。

列名 必須/オプション

EIDBID 必須

EIFILE 添付ファイルの修復が必要な場合以外はオプション

EIFILEID 必須

EIFILESIZE 必須

EIUNID 添付ファイルの修復が必要な場合以外はオプション

EIFILENAME オプション

EICONTENTS 必須

<DATA TABLE KEY(S)> 添付ファイルの修復が必要な場合以外はオプション

添付ファイルテーブルに EIFILE、EIUNID、または DATA TABLE KEY フィールドを含む必要はありません。ただし、これらのフィールドを含めないと、仮想添付ファイルが孤立した場合に再結合できません。また、これらのフィールドが添付ファイルテーブルにない場合は、仮想添付ファイルが完全に孤立したという警告が LEI のログデータベースで表示されます。

EIFILE を使用して添付ファイルフィールドの [$FILE] フィールドを保存します。EIUNID は、データ/キーテーブルの行の EIUNID フィールドに対応する Note ID 値です。EIFILENAME は、Notes で指定されている添付ファイルの名前です。DATA TABLE KEY は、添付ファイルをデータテーブルのキーフィールドにリンクする際に必要です。この情報を保存することで LEI は添付ファイルテーブルを、結合性が失われたイベントのアクティビティと再結合できます。

重要な制約が 1 つあります。仮想添付ファイルテーブルは、アクティビティからアクセスする外部システムデータと同じ外部システム、同じデータベースに存在する必要があります。Virtual Fields アクティビティで使用する外部システムまたはデータベース以外の場所に仮想添付ファイルテーブルは配置できません。これは、同じコネクション文書を使用して外部システムにアクセスするためです。これら固有のキーを添付ファイルテーブルに作成、および NULL 以外に設定することはできません。

注意 仮想添付ファイルデータを LEI 以外に変更する場合、たとえば外部システムのデータを直接編集する場合は、添

付ファイルと Virtual Fields アクティビティの関係を「壊す」ことになります。ファイルの長さなど、仮想添付ファイルに関す

る特定の情報は、 LEI を使用して仮想添付ファイルデーターが接続されない限り変更できません。一度結合性が壊され

てしまうと、データの編集は LEI 以外のみで可能になります。

Virtual Attachments 機能を使用すると、ネイティブの Notes 文書にファイルを添付する場合と同じように、Virtual Fields を追加できます。ただし、添付ファイルは Domino アプリケーションにではなく外部システムに保存されます。添付したデータは、ユーザーが作成した外部システムテーブルのバイナリフィールドに保存されます。外部システムテーブルのその他の列にはキーデータが保存されます。アクティビティでは、このキーデータに基づいて特定の添付ファイルが検索されます。複数の Virtual Fields アクティビティに対して 1 つのテーブルを使用できます。この機能を使用する場合、次の点に注意してください。

Virtual Fields で添付ファイルを使用する場合は、[Virtualize Attachments] オプションを選択する必要があります。仮!想化しない限り、Virtual Fields アクティビティに添付ファイルを保存できません。仮想化しない場合は、添付ファイルは保存されません。

監視対象の文書が開いているときに Notes データベースで「Fixup」ユーティリティを実行した場合、修復した Virtual !Attachments にアクセスするには、文書を閉じて再度開くか、文書を保存する必要があります。「Fixup」の詳細につ

Page 157: LEI ユーザーズガイド

いては、Domino サーバーのドキュメントを参照してください。

[Initialize Keys] 機能を使用して Virtual Fields アクティビティを作成した後、[load fixup decsadm.nsf] コマンドを使用!して LEI Administrator 上で一貫性チェックを実行すると、LEI コンソールにエラーメッセージが表示されます。修復が完成すると、LEI は正常に続行します。このエラーを回避するには、LEI を停止し ([tell lei quit] などを使用)、LEI Administrator データベース (decsadm.nsf) 上で [fixup] コマンドを実行します。

[Virtual Attachments] のオプション 説明

Attachments [Virtualize Attachments] - Virtual Fields アクティビティとともに添付ファイルを保存する場合は、このオプションを選択します。このオプションを選択するには、添付ファイルを保存する外部システムテーブルを作成し、そのテーブルを指定する必要があります。

メモ 仮想添付ファイルテーブルを作成するには、添付ファイルテーブルを指定する必要があります。

Attachment table 添付ファイルの内容を保存するテーブルを指定します。オプションの左に位置する下矢印ボタンをクリックすると、アクティビティで指定されたコネクション文書のデータベース内からテーブルの選択が可能になります。

添付ファイルの内容の他に、このテーブルにはロケーターキーも保存されます。必要に応じて、ファイル名と Notes ID もデータ要素として保存できます。その場合は、このオプションの [Additional data] を使用します。

メモ 仮想添付ファイルを作成するには、[Create Virtual Attachment Table] オプションをクリックし、本章の「仮想添付ファイルテーブルを作成する」を参照してください。

メモ Sybase で仮想添付ファイルテーブルを作成する場合は、列名を大文字にする必要があります。

Additional data 添付ファイルの名前とその Notes ID を添付ファイルテーブルに追加するには、このオプションを選択します。このオプションは必須ではありません。

メモ ファイル名と Notes ID を保存することで、添付ファイルの識別と取得が容易になります。ただし、これらを格納する列を外部システムテーブルに追加する必要があります。

Resynchronize Attachments 分離されている添付ファイルを再結合します。

このオプションを選択すると、影響するテーブル名がツール使用の結果を表すダイアログボックスに表示され、コネクション文書からの情報を使用するか、または代替ユーザー名およびパスワードを指定するか指示するプロンプト表示がされます。

仮想添付ファイルテーブルを Virtual Fields アクティビティに再結合することで、Domino データベースのキー文書を更新します。仮想添付ファイルテーブルの入力項目と一致させるためにデータテーブルレコードが検出されますが Domino に現行のキー文書がない場合は、対応する $FILE フィールドが、仮想添付ファイルテーブルからの EIFILE の内容で新たなキー文書に作成されます。ベースとなる LC LSX スクリプトは、このタスクを遂行するために Domino Server 上で実行します。

パフォーマンスの向上を目的としたフィールドに対する索引の作成 仮想添付ファイルを使用する場合は、仮想添付ファイルテーブルの EIFILEID に索引を作成します。さらに、仮想添付ファイルテーブルが複数のデータベースをサポートしている場合は、そのテーブルの EIDBID 列にも索引を作成します。仮想添付ファイルテーブルは複数の Virtual Fields アクティビティが使用します。この中には、異なる複数の Domino データベース のフォームを監視するアクティビティも含まれます。

メモ Virtual Fields アクティビティを [Virtual Attachments] オプションが有効な状態で使用する場合、そのアクティビティ

を 1 回以上仮想化することで、添付ファイルテーブルをアクティビティから分離します。たとえば、EINOTEID をゼロにリセ

ットし、仮想添付ファイルが存在する場合、これらは接続不可になります。このような場合は、[Virtualize Attachments] オ

プションを使用して添付ファイル、および画面に表示される結果を再結合できます。

フィールドとデータ型次の表で、外部システムの添付ファイルテーブルに必要なフィールドとデータ、および Notes フォームに必要なフィールドを示します。

Virtual Attachment の必須フィールド名は、次のとおりです。

EIDBID!

EIFILEID!

EIFILESIZE!

EIUNID EIUNID (以前は EINOTEID と呼ばれていました)!

Page 158: LEI ユーザーズガイド

EIFILENAME!

EICONTENTS!

EIFILE!

各フィールドのデータ型は次のテーブルで説明されるように、外部システムごとに異なります。

メモ Sybase では、列名は大文字である必要があります (EINOTEID など)。

メモ この情報は DB2 では、最大 1MB の添付ファイルを含むデータ型に関連します。

外部システム EIDBID の外部システムデータ型

Oracle VARCHAR2 (16) または CHAR (16)

Informix CHAR (16)

Sybase CHAR (16)

DB2 CHARACTER (16)

SQL Server CHAR (16)

MS Access NUMBER、INTEGER

メモ テーブルが複数のデータベースをサポートする場合は、パフォーマンスを向上するために、これらのフィールドに索

引を作成してください。

外部システム EIFILEID のデータ型

Oracle NUMBER

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT (16)

メモ パフォーマンスを向上するために、これらのフィールドに索引を作成してください。

外部システム EIFILESIZE のデータ型

Oracle NUMBER (8)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access NUMBER、LONG、INTEGER

メモ EIFILESIZE 列の長さは調整可能ですが、整数 (X,0) を維持する必要があります。

Page 159: LEI ユーザーズガイド

外部システム EIUNID のデータ型

Oracle NUMBER (10)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT (32)

メモ EIUNID は、DWORD または 32 ビットの符号なし整数です。式 2^n - 1 によって算出される EIUNID は最大

4,294,967,295 になるため、全体で 10 桁が必要です。

外部システム EIFILENAME のデータ型

Oracle VARCHAR2 (255)

Informix VARCHAR2 (255)

Sybase VARCHAR2 (255)

DB2 VARCHAR2 (255)

SQL Server VARCHAR2 (255)

MS Access TEXT (255)

外部システム EICONTENTS のデータ型

Oracle BLOB (8i 以降を推奨) LONG RAW (8.0.5 以前を推奨)

Informix BYTE

Sybase IMAGE

DB2 BLOB (1048576)

SQL Server IMAGE

MS Access OLE OBJECT

外部システム EIFILE のデータ型

Oracle BLOB (8i 以降を推奨) LONG RAW (8.0.5 以前を推奨)

Informix BYTE

Sybase IMAGE

DB2 BLOB (1KB)

Page 160: LEI ユーザーズガイド

SQL Server IMAGE

MS Access OLE OBJECT

仮想添付ファイルのフィールドが存在するテーブルの指定

アクティビティ文書の [Attachment table] フィールドにテーブルの名前を入力して、上記のフィールドを持つテーブルを指定します。次の図では、添付ファイルに使用するテーブルの名前は MY_ATTACH です。

メモ SQL コマンドを使用してテーブルを作成できます。

メモ Virtual Attachment (仮想添付ファイル) の処理によって外部システムに追加されていない添付ファイルは、Virtual

Fields および Virtual Documents のアクティビティ文書からアクセスできません。たとえば、SQL コマンドなど、他の処理

方法で外部システムデータベースに添付ファイルを追加した場合は、Virtual Fields および Virtual Documents のアクティ

ビティ文書からそれらの添付ファイルにアクセスできません。

添付ファイルテーブルとスキーマの指定仮想添付ファイルテーブルのスキーマを指定していない場合、デフォルトでは、そのコネクションを確立しているユーザーが使用されます。たとえば、ユーザーが TESTONE、スキーマが DBSOURCE の場合、このユーザーがスキーマとして使用され、TESTONE.MY_TABLE となります。選択ダイアログで仮想添付ファイルテーブルを選択すると、このスキーマ名がプレフィックスとして追加されます。ただし、ユーザーがテーブル名を自分で入力する場合、スキーマとコネクションユーザーが異なるときは、DBSOURCE.MY_TABLE のようにスキーマ名をプレフィックスとして入力する必要があります。

Virtual Attachment (仮想添付ファイル) の処理によって外部システムに追加されていない添付ファイルは、Virtual Fields および Virtual Documents からアクセスできません。たとえば、SQL コマンドなど、他の処理方法で外部システムデータベースに添付ファイルを追加した場合は、Virtual Fields および Virtual Documents からそれらの添付ファイルにアクセスできません。テーブルは SQL コマンドを使用して作成できます。

Page 161: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

仮想添付ファイルテーブルを作成する

Virtual Documents アクティビティ文書および Virtual Fields アクティビティ文書では、リレーショナルテーブルを使用して添付ファイルを保存するように設定できます。この場合、仮想添付ファイルテーブルを作成し、添付ファイルをバイナリオブジェクトとして保存します。

1 アクティビティ文書の中央にある [Virtual Attachments] タブをクリックします。

2 [Attachments] の [Virtualize Attachments] オプションをクリックします。

3 [Attachment table] フィールドに、作成するテーブルの名前を入力します。owner.tablename 形式、または

schemaname.tablename 形式のいずれかを使用し、テーブル名を指定してください。MS へ接続するには、テーブル

名のみを入力します。

4 [Create Virtual Attachments Table] ボタンをクリックします。

5 [Create Attachment Table] ダイアログボックスが表示されます。このダイアログボックスでは、一部のフィールドの最

適な最大サイズを設定し、必要に応じてその他のフィールドの索引を作成できます。パネルでの説明に従いフォーム

を完成し、[OK] をクリックし続行します。

[Table Name] - アクティビティ文書の [Attachment table name] フィールドに入力したテーブル名が表示され!ます。

メモ テーブル名の最初の部分には所有者名を指定してください。たとえば、作成するテーブルの名前が

EMPTRANSFER、所有者名が DB2ADMIN の場合は、[Create Attachment Table] フォームの [Table Name] フィー

ルドに DB2ADMIN.EMPTRANSFER と入力します。

[Use Connector Credentials] - メタデータの作成権限を与えられたリレーショナルデータベースユーザー ID !

Page 162: LEI ユーザーズガイド

が必要です。コネクション文書のユーザー ID にこの権限が割り当てられていない場合は、このボックスをオフにして、別のユーザー ID とパスワードを入力してください。

6 上記の説明に従ってダイアログボックスに必要な情報を入力したら、このダイアログボックスの右上にある [OK] をク

リックします。

7 テーブルが作成されたことを知らせるメッセージが表示されます。

メモ テーブルがすでに存在する場合は、既存のテーブルを上書きするか確認するメッセージが表示されます。[Yes]

を選択すると、既存のテーブルとそのすべてのデータが消去されます。多くのタイプのコネクションでは、外部プログ

ラムから既存のテーブルへのフィールドの追加、またはフィールドのプロパティ変更ができません。したがって、間違

って作成された既存の添付ファ

イルテーブルは変更できません。

テーブル作成ツールによって索引が作成されるフィールドの詳細については、本章の「[Virtual Attachments]」を参照してください。

Page 163: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

[Event Options] タブ

監視対象イベントは、そのアクティビティ文書で監視対象として指定した Notes フォームで発生するイベントです。Virtual Fields アクティビティ文書の [Create] セクション、[Open] セクション、[Update] セクション、[Delete] セクションには、その Virtual Fields アクティビティで監視するイベントのタイプに応じたさまざまなオプションが用意されています。各オプションについての説明は、この後の表を参照してください。

アクティビティで監視するイベントを選択すると、そのイベントのタイプに応じたオプションが表示されます。監視するイベントを必ず 1 つ以上選択してください。次の図では、すべてのイベントオプションが選択されます。

[Create] のオプション

文書の Create イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Create] のオプション 説明

Pre-Create Formula 文書のデータを保存する前に、Notes 式言語ステートメントが実行されます。既存のフィールド値を変更、または新しいフィールドの値を計算する場合にこのオプションを使用します。たとえば、

FIELD LASTNAME:=@if(LASTNAME = "";"NA";LASTNAME);"" のようになります。

メモ Oracle 外部システムに接続し、固定長のテキストフィールドをキーフィールドとして使用する場合は、式フィルタを使用してフィールドを決められた長さに調整します。詳細については、『Lotus Connector 接続ガイド』の Lotus Connector for Oracle 7 または Lotus Connector

Page 164: LEI ユーザーズガイド

for Oracle 8 に関する説明を参照してください。

Stored Procedure 文書が作成される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのマッピングされたすべてのフィールドが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで入力パラメータにマッピングされる必要があります。

Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Fields アクティビティでは、指定したキーフィールドが表示されます。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output

[Enable Procedure Output] - このオプションは、[Stored Procedure] フィールドでストアドプロシージャを指定した場合のみ使用できます。このオプションを選択すると、アクティビティ文書の [Stored Procedure Output Mapping] セクションが開き、入力フィールド名と出力フィールド名を入力できるようになります。

このオプションにより、ストアドプロシージャからデータが戻されます。Notes フィールドのマッピング、および以下のパラメータの出力を行ってください。

パラメータおよびその順序を見るには、プロシージャ名を入力した後に [F9] を押してください。

現在、Lotus Connector for DB2 および Lotus Connector for SAP (別途購入が可能) のみが出力パラメータをサポートしています。

Stored Procedure Output Mapping

[Domino Application] - ストアドプロシージャの出力を受け取る Domino アプリケーション !(Notes 文書) のフィールドを指定します。[Lotus Connection] - ストアドプロシージャの出力を格納する外部システムのフィールドを!指定します。外部システムの最初のフィールドが出力先の 1 番目のフィールドにマッピングされ、外部システムの 2 番目のフィールドが出力先の 2 番目のフィールドにマッピングされます。

メモ これらのフィールドは、アクティビティ文書の [Mapping] セクションで指定しないでください。

[Open] のオプション

文書の Open イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Open] のオプション 説明

Pre-open Formula(Virtual Fields のみ)

文書のデータを外部システムから取得する前に、Notes 式を実行します。新しいフィールドの値を計算するか、またはキー情報として使用する既存のフィールドを変更することにより、別のデータを提示できます。

Post-Open Formula 外部システムからデータを取得した直後に Notes 式を実行します。新しいフィールドの値を計算、または既存のフィールド値を変更する場合にこのオプションを使用します。たとえば、

FIELD FIRSTNAME := @if(FIRSTNAME = "Al";"Albert";FIRSTNAME);"" のようになります。

メモ 競合を検出するときは、[Post-Open Formula] を使用しないでください。

Page 165: LEI ユーザーズガイド

Stored Procedure 文書が開かれる場合、このオプションは、外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのキーが渡されます。出力パラメータは、選択コンテキストから取得できます。Connector によるサポートの違いについては、『Lotus Connector 接続ガイド』(lccon6.nsf) を参照してください。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで要求される入力パラメータにマッピングされる必要があります。

Domino/LEI は、ストアドプロシージャの参照をサポートしています。

プロシージャの出力パラメータをサポートしている Lotus Connector の場合は、Virtual Fields アクティビティのキーフィールドが入力/出力パラメータとして渡され、その他のフィールドは出力パラメータとして渡されます。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Missing External Records(Virtual Fields のみ)

文書を開くとき、一致する外部レコードが見つからない場合の対処方法を以下の項目から選択します。

[Create Record] - 外部データベースに新規レコードが作成されます。![Generate Error] - Notes エラーメッセージボックスが表示されます。![Ignore] - 一致するレコードが見つからないという事実が無視され、データが存在しな!い場合でも文書が開きます。

Stored Procedure Output Mapping

これらのフィールドは、Create イベントまたは Update イベントで [Stored Procedure Output] を選択した場合のみ表示されます。詳細については、Create イベントおよび Update イベントの説明を参照してください。

[Update] のオプション

文書の Update イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Update] のオプション 説明

Pre-Update Formula Notes 文書が更新される場合、外部データベースにデータを保存する前に Notes 式のステートメントを実行します。

Stored Procedure 文書が更新される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのマッピングされたすべてのフィールドが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで入力パラメータにマッピングされる必要があります。

Page 166: LEI ユーザーズガイド

Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Fields アクティビティでは、指定したキーフィールドが表示されます。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用したときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output

[Enable Procedure Output] - このオプションは、[Stored Procedure] フィールドでストアドプロシージャを指定した場合のみ使用できます。このオプションを選択すると、アクティビティ文書の [Stored Procedure Output Mapping] セクションが開き、入力フィールド名と出力フィールド名を入力できるようになります。

このオプションでの指定に基づいて、外部コネクションのストアドプロシージャのデータが Domino アプリケーションに返されます。入力パラメータとして、アクティビティのキー (EINOTEID) とフィールドがストアドプロシージャに渡されます。以下の [Procedure Output Mapping] セクションの [Notes Fields] および [Output Parameters] を入力してください。

パラメータおよびその順序を見るには、プロシージャ名を入力した後に [F9] を押してください。

メモ 現在、Lotus Connector for DB2 および Lotus Connector for SAP (別途購入が可能) のみが出力パラメータをサポートしています。

Conflict Detection [Check External Data for Changes] - Notes 文書を開いた後、外部データが変更されていないことを確認します。外部データが変更されている場合は、外部データソースを更新できません。

このオプションを選択した場合、Notes 文書のデータを変更してその文書を保存した後、さらに変更するときは、文書を終了してから新しい変更を加える必要があります。

メモ HTTP サーバーを使用して文書にアクセスする場合は、[Conflict Detection] オプションを使用できません。

メモ Virtual Fields アクティビティの場合、[Conflict Detection] を選択して Sybase 外部システムに接続するときは、Sybase 外部システムのテーブルに索引を作成する必要があります。

Field Level Updates [Only Update Changed Fields] - このオプションを選択した場合、Notes 文書の対応するフィールドが編集されない限り、外部データソースのフィールドが更新されません。

外部システムに、テーブルの各列への変更を監視するトリガーがある場合にこのオプションを使用します。

Key Field Updates(Virtual Fields only)

次の 3 つは、キーフィールドの更新に関する設定です。

[Block]-Notes 文書または外部データソースのレコードのキーフィールドを更新できなく!なります。[Delete/Insert]-キーフィールドを更新すると外部データソースの元のレコードが削除さ!れ、新しいキーを持つ新規レコードが追加されます。[Ignore]-外部データソースのキーフィールドが更新されません。キーフィールドが編集さ!れた場合、その変更は Notes 文書には保存されますが、外部データソースのキーフィールドは変更されません。

Stored Procedure Output Mapping

[Domino Application] - ストアドプロシージャの出力を受け取る Domino アプリケーション !(Notes 文書) のフィールドを指定します。[Lotus Connection] - ストアドプロシージャの出力を格納する外部システムのフィールド!を指定します。外部システムの最初のフィールドが出力先の 1 番目のフィールドにマッピングされ、外部システムの 2 番目のフィールドが出力先の 2 番目のフィールドにマッピングされます。

メモ これらのフィールドは、アクティビティ文書の [Mapping] セクションで指定しないでください。

Delete オプション

文書の Delete イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

Page 167: LEI ユーザーズガイド

[Delete] のオプション 説明

Pre-Delete Formula 外部データベースでデータを削除する直前に、Notes 文書で実行する Notes 式言語のステートメントを入力します。

たとえば、削除された文書に関する情報を電子メールで送信する場合は、次のようになります。

FIELD LASTNAME:=LASTNAME;

FIELD FIRSTNAME:=FIRSTNAME;

@MailSend("John Q Public";"";"";"Doc Deleted";"Doc deleted from MyDatabase w/ Firstname/Lastname of:";FIRSTNAME:LASTNAME);""

メモ Notes 文書に、アクティビティデータの保存の指定が必要になる可能性があります。保存しない場合、指定式は、削除された後にフィールド値を接続する可能性があります。たとえば、上記の例では、FIRSTNAME と LASTNAME が空になります。アクティビティデータが保存されるように設定するには、アクティビティフォームの [General Options] にある [Data Storage] で、[Leave all real-time fields in documents] または [Leave selected real-time fields in document] を選択します。

Stored Procedure 文書が削除される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。プロシージャの入力パラメータとして、ストアドプロシージャにアクティビティのキーが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで要求される入力パラメータにマッピングされる必要があります。

Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Fields では、ストアドプロシージャ名の横に、指定したキーフィールドも表示されます。Virtual Fields では、NOTEID フィールドのみが表示されます。

プロシージャの出力パラメータをサポートしている Lotus Connector の場合は、キーフィールドが入力/出力パラメータとして渡され、その他のフィールドは出力パラメータとして渡されます。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output Mapping

これらのフィールドは、Create イベントまたは Update イベントで [Stored Procedure Output] を選択した場合のみ表示されます。詳細については、Create イベントおよび Update イベントの説明を参照してください。

Page 168: LEI ユーザーズガイド

第 12 章 VIRTUAL FIELDS アクティビティ

Virtual Fields に対する Virtual Agents の実行

Virtual Agent を実行して Virtual Fields 文書を変更すると、指定した文書が即座に更新されます。ただし、Virtual Agent がビューの列内の値を更新する場合は、文書に対する変更がそのビューに反映されません。また、[Shift] + [F9] キーを押してもビューが更新されません。

Virtual Fields をビュー内に表示するには、アクティビティの作成時に [Leave all real-time fields in document] または [Leave selected real-time fields in document] を選択する必要があります。これにより、文書内のフィールドのネイティブコピーが作成されます。外部システムのデータが変更された場合にこれらのフィールドを更新、または変更を反映するには、Notes 文書を手動で更新するか、式やスクリプトを使用する必要があります。

Page 169: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

第 13 章 Virtual Documents アクティビティ

LEI には、次の 3 種類の Advanced RealTime アクティビティがあります。

Virtual Fields (以前は LEI RealTime または DECS RealTime と呼ばれていました)!

Virtual Documents!

Virtual Agents!

本章では、Virtual Documents アクティビティについて説明します。

Page 170: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティの概要

Virtual Documents アクティビティは Notes フォームを監視します。LEI は、Lotus Connector を使用して、DB2 などの外部データソースにこれらのフォームを接続します。

システム管理者が Virtual Documents アクティビティを作成すると、Domino ユーザーは各自の Notes Client から外部システムのデータを直接開き、外部システムであることを意識せずにデータの作成、更新、削除を行えます。さらに、Web クライアントから Domino 6 Server にアクセスすることで、アクティビティが監視している Notes フォームを開き、サポートされている外部データソースにアクセスできます。

たとえば、Notes フォームからクエリーや更新を行う外部データベースが DB2 の場合、Notes のエンドユーザーは、Notes のデータと同じように DB2 データを操作できます。クライアントシステムには DB2 接続ソフトウェアをインストールする必要はありません。ただし、Domino Server コンピュータには DB2 接続ソフトウェアをインストールする必要があります。外部データソースへのネットワークアクセスは Domino Server コンピュータ (DB2 などの外部データソースへの接続に必要な LEI ソフトウェアがインストールされている) が処理します。この機能を実行するには、外部システムに特定のフィールドを追加する必要があります。

Page 171: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティと Virtual Fields アクティビティの比較

Virtual Documents アクティビティを使用すると、外部システムに保存されている文書を Domino に存在するかのように見せることができます。Virtual Documents アクティビティと Virtual Fields アクティビティが提供する機能は類似していますが、両者には重要な違いがあります。Virtual Documents アクティビティはキーフィールドの初期化に必要な「キー文書」(以前は「スタブ文書」と呼ばれていました) が不要であるのに対し、Virtual Fields アクティビティでは、キー文書を使用してキーフィールドを初期化する必要があります。また、Virtual Fields のデータと異なり、Virtual Documents のすべてのデータがビュー操作の対象となります。

Virtual Documents アクティビティは、文書を固有に識別するための情報を外部システム自体に保存します。外部システムのレコードへの固有のキーとなるこの情報は、すべて LEI が管理します。Virtual Fields アクティビティでは、([Initialize Keys] オプションを使用して生成した) キー文書とそれに対応する外部システムのレコードを同期する必要があります。一方、Virtual Documents アクティビティはキー文書を生成 (または使用) しないため、その必要がありません。

Virtual Fields アクティビティと同様、Virtual Documents アクティビティ文書を作成する場合も事前に選択した外部システム用のコネクション文書を作成しておく必要があります。外部システムへのアクセスに使用する Lotus Connector を指定、および監視対象の Notes データベースやフォームを指定する Virtual Documents アクティビティ文書を作成します。その他すべての LEI 機能と同様、定義した Virtual Documents アクティビティは LEI Administrator が制御します。

また、Virtual Fields アクティビティと同様に、Virtual Documents アクティビティの作成時には、そのアクティビティで監視するフォームのフィールドを外部システムのテーブル列にマッピングします。このマッピングは、アクティビティを実行していない場合はいつでも編集できます。LEI Administrator には参照機能が備わっているため、外部システムのテーブルと列を対応する Notes データベース (フォーム) とフィールドへ簡単にマッピングできます。

Virtual Fields と異なり、Virtual Documents では固有のキーが生成され外部システムに保存されるため、キーフィールドを指定する必要がありません。1 つの Virtual Documents アクティビティが監視できるフォームは 1 つのみです。各フォームは、1 つの Virtual Documents アクティビティのみが監視できます。

メモ フォーム上のすべてのフィールドをマッピングする必要があります。.nsf ファイルには文書が一切保存されないた

め、すべてのフィールドデータが外部システムのデータベースから取得されます。外部データベースのフィールドにマッピ

ングされていないフィールドにはデータが取り込まれません。

Virtual Documents を Virtual Fields と併用する方法については、「付録 E Virtual Documents アクティビティでの Virtual Fields アクティビティの使用」を参照してください。

Virtual Documents アクティビティの利点Virtual Fields アクティビティと比較した場合、Virtual Documents アクティビティには次のような利点があります。

Domino アプリケーションには実際の Notes 文書が一切保存されないにもかかわらず、Notes ユーザーは、Notes に!実際に保存されているデータと同じようにすべてのデータにアクセスできます。

Notes アプリケーションにキー文書を保存する必要がないため、拡張性にすぐれ、管理も簡単です。!

Virtual Documents アクティビティはビューおよびビューの更新を完全にサポートしています。一方、Virtual Field アク!ティビティのデータは、Virtual Fields の監視対象として選択した非キーフィールドをキー文書に保存するよう指定しない限り、Lotus Notes のビューに表示されません。さらに、これらのフィールドには、ビューを更新した後でも古いデータが含まれる可能性があります。

Virtual Document アクティビティでは、外部システムに追加されたレコードをバックグラウンドで仮想化できます。これ!により、外部システムに挿入された新規レコードがビューへ自動的に追加されます。さらに、既存のデータテーブルの中で、まだ仮想化されていないすべてのレコードが仮想化されます。

次の図に、Virtual Fields と比較した場合の Virtual Documents の利点を示します。Virtual Fields アクティビティでは多数の「キー文書」を使用するため、多くの場合、Notes データベースが大きくなります。一方、Virtual Documents アクティビティではキー文書を使用しません。Virtual Documents アクティビティは Domino で Notes データベースを管理し、必要に応じて「仮想」文書を作成します。Virtual Document アクティビティを実行していないときは、これらの仮想文書にアクセスできません。したがって、仮想文書に関連付けられている外部データにもアクセスできません。

Page 172: LEI ユーザーズガイド

Virtual Fields アクティビティと Virtual Documents アクティビティの併用

同じ Notes データベースで、Virtual Fields アクティビティと Virtual Documents アクティビティを同時に使用できます。1 つの Virtual Documents アクティビティと、1 つ以上の Virtual Fields アクティビティに同じ Notes フォームを同時に監視させることもできます。この場合、最初に Virtual Documents アクティビティが仮想文書を作成して外部システムのデータを取り込み、次に、Virtual Fields アクティビティがその仮想文書のキーを使用して、別の外部システムデータソースからデータを文書に取り込みます。これにより、キー文書を使用せずに、Virtual Fields アクティビテイのフィールドレベルの柔軟な操作と監視の順序が可能になります。

詳細については、「付録 E Virtual Documents アクティビティでの Virtual Fields アクティビティの使用」を参照してください。

Page 173: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティとパブリック暗号キー

仮想文書のフィールドの暗号化が有効になっており、[文書] プロパティの [セキュリティ] タブに [パブリック暗号キー] が指定されている場合は、非仮想文書と同じように、暗号化指定されたすべてのフィールドが暗号化されます。外部システムのテーブルで対応するデータは NULL になります。暗号化されたデータは、適切な暗号キーを所有する Notes ユーザーに対してのみ表示されます。Notes フィールドの暗号化を有効にした場合、それに対応する外部システムのテーブル列には、NULL 値を拒否する制約や固有性制約を設定しないでください。

多数のフィールドを暗号化すると、Virtual Document の EINOTEPROPS バイナリ列のサイズが大きくなり、推奨値の 10KB を超える可能性があります。特に、リッチテキストフィールドやサイズの大きいテキストフィールドを暗号化する場合にこのような状況が発生します。リッチテキストフィールドを暗号化すると、そのリッチテキストフィールドにマッピングされているバイナリデータ型の列と同じサイズ分 EINOTEPROPS のサイズが大きくなります。たとえば、リッチテキストフィールド「memo」を暗号化するとします。この「memo」フィールドが外部システムテーブルのバイナリ型の列「memdata」にマッピングされており、「memdata」列のサイズが 5KB だとすると、EINOTEPROPS のサイズは 15KB になります (推奨サイズの 10KB に、暗号化された「memo」フィールドのデータを格納するための 5KB を加算したサイズ)。これらは一般的な目安であり、実際には、暗号化するフィールドの数、暗号化するフィールドにリッチテキストフィールドが含まれているか、フィールドの合計数など、さまざまな要素によって異なります。EINOTEPROPS の詳細については、「Virtual Documents アクティビティで使用する外部システムの必須フィールド」を参照してください。

Page 174: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティと監視対象のフォーム

Virtual Documents アクティビティを作成するには、Domino データベース内でそのアクティビティが監視する Notes フォームを指定し、さらにそのフォームのフィールドと外部システムのテーブルの列をマッピングする必要があります。外部システムへの接続情報はコネクション文書で定義します。この文書は、Virtual Documents アクティビティを作成する前に別に作成する必要があります。

Virtual Documents アクティビティを実行すると、監視対象のフォームを使用して新しい Notes 文書を作成し、それを保存できるようになります。このとき、外部システムのテーブルには新規レコードが作成され、ユーザーが入力したデータと、そのレコードを標準の Notes 文書と同じように扱うための情報が保存されます。同じ文書をもう一度開くと、適切な Notes フォームを使用してデータが表示されます。ユーザーが作成した Notes のデータベースリンク、文書リンク、添付ファイルなどは、仮想文書でもそのまま維持されます。ビュー選択式を含むビューに仮想文書が正しく表示されるかは、その選択式によって異なります。

Virtual Documents アクティビティの実行中は、仮想文書を開いたり、作成、更新、削除を実行できます。仮想文書を更新または削除すると、外部システムのテーブルでもそれと同じ操作が実行されます。別の Notes フォームを使用して文書を作成したり、Virtual Documents アクティビティを停止するときに文書を作成することも可能です。ただし、その文書はネイティブの Notes 文書となり、それに対応するレコードが外部システムのテーブルに作成されません。同様に、Notes ビューに仮想文書が表示されていても、Virtual Documents アクティビティを実行していないときはその仮想文書を開くことができません。Virtual Documents アクティビティを実行していないときにビューを更新すると、ネイティブ以外の文書情報がすべてビューから消去されます。

Notes 以外の外部システムクライアントが外部システムのテーブルデータを変更した場合、その変更内容は、Notes ビューを更新するまで Domino アプリケーションには表示されません。Notes 以外の外部システムからデータが変更された場合は、[Shift] + [F9] キーを押してビューを更新してください。データを新規作成する場合も同様です。他の外部システムクライアントがレコードを作成した場合、その新規レコードは自動的に仮想化され、ビューを更新した時点でビューに表示されます (レコードを自動的に仮想化するには、アクティビティ文書の [General Options] タブで [Virtualize External System Data] オプションを有効にします)。Notes 以外の外部システムクライアントがレコードを削除した場合は、ビューを更新した時点で、そのレコードがビューから削除されます。ただし、通常は、Notes Client から Virtual Documents アクティビティを使用してレコードを削除することをお勧めします。これにより、複製など、仮想文書に関係したその他の Domino 操作の整合性を維持できます。詳細については、「仮想文書を削除する際の注意事項」を参照してください。

1 つの Domino アプリケーションに対して複数の Virtual Documents アクティビティを実行し、それぞれに異なる Notes フォームを監視させることができます。各 Virtual Documents アクティビティは、それぞれ異なるコネクションと外部システムテーブルを使用できます。これらのテーブルは、別の外部システム (DB2 と Oracle など) に格納されていてもかまいません。Notes フォームの情報は保存されているため、仮想文書のデータは常に同じフォームを使用して表示されます。

メモ 外部システムの各テーブルには、1 つの Notes データベースとフォームの仮想文書データのみが含まれま

す。Virtual Documents アクティビティで複数の Notes データベースやフォームを監視する場合は、別々のテーブルを使

用する必要があります。これは、データテーブルとキーテーブルの両方に適用されます。

既存のデータの仮想化

Virtual Documents アクティビティで使用する外部システムテーブルにすでにデータが存在する場合、または外部システムテーブルに Notes 以外から新規行が追加された場合は、特殊な状況が発生します。Virtual Documents には、このようなデータをその場で仮想化し、Domino アプリケーションで使用可能にする便利な機能が備わっています。この機能を有効にするには、Virtual Documents アクティビティ文書の [General Options] タブで [Virtualize External System Data] を選択します。このオプションはデフォルトで選択されています。

Virtual Documents アクティビティを起動すると、外部システムの新規行がすべて仮想化されます。その後、 Virtual Documents アクティビティが起動されたことを知らせるメッセージがログまたはコンソールに出力され、アクティビティが使用できるようになります。大規模なデータベースを初めて仮想化するときなど、外部システムのデータに多数の新規行が含まれている場合は、アクティビティ起動時の仮想化に数分から 1 時間以上かかる場合があります。

Virtual Documents アクティビティの起動後、アクティビティ文書の [Refresh Frequency] で指定した値に基づいて、外部システムに追加された新規レコードが定期的に仮想化されます。

新しく仮想化されたレコードは、Virtual Documents アクティビティが監視している Notes フォームに自動的に割り当てら

Page 175: LEI ユーザーズガイド

れます。それらのレコードを開くと、割り当てられたフォームが使用されます。

仮想化処理について

仮想化はバックグラウンドで実行されます。Virtual Documents アクティビティを起動すると、最初の仮想化が行われます。アクティビティのステータスはアクティビティログに書き込まれます。このログには、仮想化の開始時刻、終了時刻、正常に仮想化されたレコード数が記録されます。

仮想化処理の開始がログに出力されても、実際には、最初の仮想化が完了するまで Virtual Documents アクティビティは使用できません。この初期サイクルの完了前に仮想文書にアクセスしたり、仮想文書を作成しようとすると、エラーメッセージが表示されます。

バックグラウンドでの仮想化中に問題が発生すると、仮想化エラーがアクティビティログに出力されます。

Page 176: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティで使用する外部システムの必須フィールド

Virtual Document アクティビティでは、Virtual Fields アクティビティで使用するようなキー文書は必要ありません。ただし、4 つの特殊な列を含むテーブルを外部システムに用意し、各列を Domino が生成する制御フィールドにマッピングする必要があります。マッピングには 2 つの方法があります。

外部システムのデータテーブルに、4 つの制御データ列を直接追加します。4 つの列については、この後の説明を参!照してください。Virtual Documents アクティビティでは、このテーブルを Notes フォームにマッピングします。

「外部キーテーブル」と呼ばれる別のテーブルを外部システムに作成します。このテーブルには、4 つの制御データ!列と、実際のデータテーブルへのマッピングに必要な外部キーフィールドのみを格納します。

メモ この外部キーテーブルを自動的に作成するには、[Create External Key Table] ボタンを使用します。詳細につ

いては、本章の [Create External Key Table] オプションに関する説明を参照してください。外部キーテーブルを使用

して Notes の制御フィールドを保存する場合、データテーブルと同じデータベースにそのキーテーブルを配置し、デ

ータテーブルと同じユーザーアクセス権を割り当てる必要があります。

2 番目の方法を使用する場合は、Virtual Documents アクティビティ文書で外部キーテーブルの名前を指定し、さらにキーテーブルを実際のデータテーブルへマッピングするためのキーを指定します。このキーは、複数のフィールドを組み合わせて指定することもできます。この方法の利点は、既存のデータテーブルを変更する必要がないことです。

メモ Virtual Documents アクティビティの外部キーテーブルを操作する場合は、キーフィールドを明確に指定し、データテ

ーブルと外部キーテーブルを結合する必要があります。こうすることで固有性が増し、データテーブルを操作する際にレコ

ードを 2 重に挿入しなくなります。

どちらの方法を使用する場合でも、Virtual Documents アクティビティを作成すると、新しい 4 つの制御データ列がそれに対応する Notes 内部のフィールドへ自動的にマッピングされます。アクティビティ文書の [Mapping] セクションでマッピングする必要はありません。手動によるマッピングが有効な場合でも、これらのフィールドは表示されません。名前とデータ型が正しいかを確認する以外、マッピングについては何かをする必要はありません。

追加する必要がある 4 つの Notes 制御データ列の名前は次のとおりです。

EINOTEID!

EIUNID!

EIMODIFIED!

EINOTEPROPS!

これらの列名は変更できません。Sybase ユーザーは、これらの列名をすべて大文字で指定する必要があります。

外部キーテーブルの設定の詳細については、この後の「外部キーテーブルを作成する」を参照してください。

メモ 上記の必須列を既存のデータテーブルに追加するか、外部キーテーブルに作成するかにかかわらず、名前を正確

に入力し、適切なデータ型を割り当てる必要があります。各外部システムで使用できるデータ型については、この後

の「Virtual Documents アクティビティに必要な列のデータ型」を参照してください。

メモ LEI によって EINOTEPROPS フィールドに書き込まれる情報は、Domino 内部のフィールドから取得されます。この

情報は、文書を使用するにつれてサイズが大きくなる可能性があります。この情報が EINOTEPROPS フィールドのサイ

ズより大きくなるのを防ぐ方法、およびこの情報を格納するためのサイズを制御する方法については、本章の「外部キー

テーブルを作成する」の「注意事項」を参照してください。

Page 177: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティに必要な列のデータ型

次の表に、各必須フィールドに使用するデータ型を示します。

メモ Sybase など、大文字と小文字が区別される RDBMS では、列名を大文字で指定する必要があります。

メモ 全体のパフォーマンスを向上させるため、EINOTEID 列と EIMODIFIED 列に索引を作成することをお勧めしま

す。Virtual Documents アクティビティを使用して Domino Web アプリケーションをサポートする場合は、EIUNID に索引を

作成します。

メモ すべてのアプリケーションで、Virtual Documents で使用する変更エントリ数を制限するようにしてください。データベ

ースの [Advanced properties] タブで、[Limit entries in $Revisions fields] および [Limit entries in $UpdatedBy fields] の

値を 3 以下に設定します。

外部システム EINOTEID の必須フィールド - このフィールドには NULL を指定できません

Oracle 7 NUMBER (デフォルト値はゼロ)

Oracle 8 NUMBER (デフォルト値はゼロ)

Sybase INT (デフォルト値はゼロ)

DB2 INTEGER (デフォルト値はゼロ)

SQL Server INT (デフォルト値はゼロ)

MS Access 2000 NUMBER

外部システム EIUNID の必須フィールド

Oracle 7 CHAR (32) または VARCHAR (32)

Oracle 8 CHAR (32) または VARCHAR (32)

Sybase CHAR(32)

DB2 CHAR(32)

SQL Server CHAR(32)

MS Access 2000 TEXT(32)

外部システム EIMODIFIED の必須フィールド

Oracle 7 DATE

Oracle 8 DATE

Sybase DATETIME

DB2 TIMESTAMP

SQL Server DATETIME

MS Access 2000 DATETIME

Page 178: LEI ユーザーズガイド

外部システム EINOTEPROPS の必須フィールド

Oracle 7 RAW (2K) または LONG RAW (10K) [a, b, c]

Oracle 8 BLOB (10K) [a, c]

Sybase IMAGE または バイナリ (255) [a]

DB2 VARCHAR (10240) for bit data [d, e]

SQL Server バイナリ (1024) [a]

MS Access 2000 OLE オブジェクト

EINOTEPROPS に対するシステム特有のその他の考慮事項 (上記の表ごと)

以下の考慮事項は、上記の表内の括弧付きのアルファベットに対応します。

[a] - Oracle 7、Oracle 8、Sybase、および SQL Server (OLE DB) では、推奨値はバイナリデータ型のサイズです。(フィールド数が 100 を超えるなど) フォームのサイズが非常に大きく、添付ファイル、データベースリンク、文書リンクの数が多くなると予想される場合や、変更履歴や更新履歴の最大数が設定されていない場合は、この値を大きくしてください。不明な場合、または更新に失敗した場合は、大きめの値を選択してください。また、外部キーテーブルを使用している場合は、EINOTEPROPS を IMAGE フィールドとして設定できます。

[b] - Oracle 7 では、1 つのテーブルにつき 1 つの Long データ型しか使用できません。また、Oracle 7 は BLOB をサポートしていません。そのため、最大サイズが 2KB である RAW を使用する必要があります。テーブル内で他に Long データ型が使用されていない場合 LONG RAW を使用できます。

[c] - Oracle 7 と Oracle 8 で LONG RAW を使用する場合は、データテーブルまたはキーテーブルの他の場所で LONG 型を使用できません。

[d] - この DB2 設定を有効にするには、少なくとも 1 つの USERSPACE を 32K ページサイズに設定しておく必要があります。統合キーを使用し、データテーブルが 32K ページサイズの USERSPACE 以外の場所にある場合は、データテーブルを移動するとパフォーマンスが大幅に向上します。統合キーを使用し、Virtual Documents アクティビティ文書 (本章の後半で説明します) の [Create External Key Table] オプションを使用してテーブルを作成した場合、DB2 は 32K ページサイズの USERSPACE にテーブルを自動作成します。32K ページサイズの USERSPACE がない場合、[Create External Keys Table] オプションは LONG VARCHAR 型として EINOTEPROPS を作成します。

[e] - 旧バージョンの LEI では、推奨設定は BLOB 2GB でした。LEI 6.5 にアップグレードした場合、BLOB 2GB に設定すると、次のようなメモリ割り当てエラーが発生する可能性があります。

Monitor failure -- Error:Failed attempting to allocate 2147483647 bytes to fetch data from BINARY column EINOTEPROPS.Connector - DB2, Method - Fetch.

If this occurs, perform the following procedure to correct the problem and improve performance.

この例では、Virtual Documents アクティビティは DB2ADMIN.KEYS という名前の外部キーテーブルを使用していま!す。

メモ このタスクを実行するコンピュータには、TEMPCOPY.IXF 一時ファイルを作成できる十分な空き領域が必要で

す。

1. LEI リリース 6.5 にアップグレートします。

2. 最低 1 つの 32K ページサイズの USERSPACE が DB2 にあるか確認します。

3. Virtual Documents アクティビティフォームのキーテーブルを作成するボタンを使用して DB2ADMIN.KEYS_NEW を作成します。ただし、テーブル作成後、Virtual Documents アクティビティ文書は保存しません。これは、DB2ADMIN.KEYS という名前の古いテーブルを Virtual Documents アクティビティの外部キーテーブルのフィールドに残すためです。KEYS_NEW テーブル内の列名の順番が、KEYS テーブルと同じであるか確認してください。順番が異なっている場合は、KEYS_NEW のテーブル構造を記録し、テーブルをドロップして KEYS テーブルと同じ順番になるように列を手動で再作成します。

4. DB2 コマンドラインプロセッサから以下の SQL ステートメントを実行します。

EXPORT TO C:\TEMP\TEMPCOPY.IXF OF IXF SELECT * FROM DB2ADMIN.KEYS;

5. DB2 コマンドラインプロセッサから以下の SQL ステートメントを実行します。

IMPORT FROM C:\TEMP\TEMPCOPY.IXF OF IXF INSERT INTO DB2ADMIN.KEYS_NEW;

6. KEYS_NEW テーブルが元のままであることを確認し、次に DB2ADMIN.KEYS をドロップします。

7. DB2ADMIN.KEYS_NEW から DB2ADMIN.KEYS に名前を変更します。

この例では、キーはご使用の DB2 データテーブルにある統合キーです。!

メモ このタスクを実行するコンピュータには、TEMPCOPY.IXF 一時ファイルを作成できる十分な空き領域が必要で

Page 179: LEI ユーザーズガイド

す。また、データベースには DATA テーブルと DATA_COPY テーブルの両方を格納できる十分な空き領域が必要で

す。

1. LEI リリース 6.5 にアップグレートします。

2. 最低 1 つの 32K ページサイズの USERSPACE が DB2 にあるか確認します。

3. DB2ADMIN.DATA_COPY を作成します。列 EINOTEPROPS を除き、ソース DATA テーブルと同じテーブルを作成します。ソース DATA テーブルで列 EINOTEPROPS にあたる列は VARCHAR (10k) として作成します。

DATA_COPY テーブル内の列名の順番が、DATA テーブルと同じであるか確認してください。DATA_COPY テーブルは、32K ページサイズの USERSPACE に自動的に作成されます。

4. DB2 コマンドラインプロセッサから以下の SQL ステートメントを実行します。

EXPORT TO C:\TEMP\TEMPCOPY.IXF OF IXF SELECT * FROM DB2ADMIN.DATA;

5. DB2 コマンドラインプロセッサから以下の SQL ステートメントを実行します。

IMPORT FROM C:\TEMP\TEMPCOPY.IXF OF IXF INSERT INTO DB2ADMIN.KEYS_COPY;

6. DATA_COPY テーブルが元のままであることを確認し、次に DB2ADMIN.DATA をドロップします。

7. DB2ADMIN.DATA_COPY から DB2ADMIN.DATA に名前を変更します。

EINOTEPROPS についてのその他の考慮事項Virtual Document アクティビティの実行に必要な 4 つの制御列のうち、EINOTEID、EIUNID、および EIMODIFIED は固定サイズであり、それぞれの要件に応じてデータが格納されます。EINOTEPROPS 列は可変長であるため、特別な注意点がいくつかあります。

EINOTEPROPS の値はアプリケーションごとに異なります。ほとんどのアプリケーションでは、EINOTEPROPS の最大サイズは 10KB で十分です。

EINOTEPROPS 列には Virtual Document のさまざまな属性が格納されるため、これらの情報を格納するための専用の列を外部システムに設ける必要がありません。EINOTEPROPS フィールドに格納される情報の一部は時間とともにサイズが大きくなり、EINOTEPROPS フィールドの最大サイズを超える可能性があります。EINOTEPROPS フィールドに書き込まれる情報のサイズは、Notes データベース (アクティビティ文書で名前を指定した .nsf) のプロパティダイアログボックスで指定できます。データベースのプロパティを表示し、[Advanced] タブをクリックします。[Advanced] タブにオプションが表示されない場合は、システム管理者に問い合わせてください。[Advanced] タブでは、EINOTEPROPS フィールドに書き込まれるデータのサイズを制限できます。そのためのオプションが [Limit entries in $UpdateBy Fields] と [Limit entries in $Revisions fields] です。これらのオプションに、「2」(64 バイトのデータ) または最大値として「10」(640 バイトのデータ) を設定することをお勧めします。デフォルト値の 0 (ゼロ) は「制限なし」を意味します。

フォーム内の Notes フィールドにパブリックキー暗号が設定されている場合、EINOTEPROPS に格納されるデータのサイズはその分大きくなります。多数のフィールドを暗号化する場合は、必要に応じて EINOTEPROPS の最大サイズを大きくしてください。詳細については、本章の「パブリックキー暗号化フィールドを使用する際の注意点」を参照してください。

EIMODIFIED についての考慮事項

(Domino 以外から) 外部システムのデータテーブルを直接変更すると、EIMODIFIED タイムスタンプが更新されます。これにより、LEI はそのレコードが変更されたと判断します。これは、次の機能を使用する場合に重要です。

競合検出 - 文書のコピーを編集した後、その文書を書き込もうとしたときに外部システムのデータが更新されていた!場合は、データが変更されていることを知らせるメッセージが表示され、競合文書を保存するかを尋ねられます。外部システムの EIMODIFIED が更新されていない場合は、外部システムの変更内容が上書きされます。その他の競合状態と同様、解決方法を決めておく必要があります。

複製 - EIMODIFIED を更新しない限り、テーブルに対する変更がデータベースのレプリカに反映されません。!

索引 - 場合によっては、追加された文書や変更された文書を取り込むために索引が部分的に更新されます。全索!引を作成し直さない限り、ビューには最新情報が表示されません。索引を作成し直すには、[Shift] + [F9] キーを押します。

Page 180: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

外部システムの必須フィールドを使用する/テストする

Virtual Documents アクティビティをテストまたは使用する前に、次の作業を行う必要があります。

1 Virtual Documents アクティビティで監視するフォームを作成します。このフォームには、外部システムのデータテーブ

ル列にマッピングするフィールドが含まれている必要があります。

2 手順 1 で作成したフォームをマッピングする外部システムのデータテーブルに、4 つの必須列 (EINOTEID

、EIUNID、EIMODIFIED、EINOTEPROPS) を追加します。または、外部キーテーブルを作成します。

既存のデータテーブルを使用する場合 - データテーブルにすでにレコードが存在するときは、これら 4 つの列を追加できないことがあります。その場合は、同じメタデータを含む新しいテーブルを作成し、4 つの必須列を追加します。その後、既存のレコードをその新規テーブルにコピーします。EINOTEID の値をゼロに設定します。可能であれば、SQL を使用してください。

外部キーテーブルを作成する場合 - 可能であれば、アクティビティ文書の [Create External Key Table] オプションを使用してください。既存のデータテーブルを変更する必要がなく、しかも既存のデータを指定した Domino アプリケーションへ「仮想化」できます。

3 LEI Administrator のメニューで [Add Activity] - [Virtual Documents] を選択して、Virtual Documents アクティビティ

を作成します。外部キーテーブルを作成する場合の手順については、本書の「外部キーテーブルを作成する」を参照

してください。

4 Virtual Documents アクティビティが監視するフォームに基づいて、Notes データベースにビューを作成します。このビ

ューには、外部データにマッピングされたデータフィールドを表示できます。

5 アクティビティ文書の一番上にある [Start] ボタンをクリックして、Virtual Documents アクティビティを起動します。また

は、LEI Administrator の [Activity] ビューでアクティビティ名を選択し、[Start Activity] ボタンをクリックします。

6 アクティビティが正常に起動されたことを確認するには、LEI Administrator の [Activity] ビューで [F9] キーを押しま

す。

メモ アクティビティを起動すると、仮想化されていない既存のすべてのレコードが仮想化され、その後でアクティビテ

ィを実際に使用できるようになります。ただし、アクティビティ文書で [Virtualize External System Data] オプションを

無効にした場合は、レコードが自動的に仮想化されません。

7 「Activity Started」メッセージは、そのアクティビティが処理中であることを示します。アクティビティログを参照し、アク

ティビティが完了したかを確認してください。使用する Notes ビューは、外部システムのデータにマッピングされたフィ

ールドのデータを表示するように設計されている必要があります。また、ビューには、Virtual Documents アクティビテ

ィが監視するフォームを除外する選択式は含めません。データは起動時に一度「仮想化」され、その後は指定した間

隔で「仮想化」されます。Virtual Documents アクティビティの実行中は、仮想化は必ずバックグラウンドで行われま

す。

メモ Notes 以外の外部システムから追加された新規データ行も、同じ方法で自動的に仮想化されます。必要であれ

ば、[F9] キーを押してビューを更新します。外部システムのデータの仮想化が完了すると、アクティビティログにメッ

セージが表示され、そのアクティビティを使用できるようになります。

8 次の 2 つの操作を実行して、必要なテーブルが正しく設定されていることを確認します。

仮想文書は、ネイティブの Domino 文書と同じように開いたり、作成、更新、削除を実行できます。たとえば、Notes Client を使用して新しい仮想文書を作成すると、外部システムのテーブルに新規行が挿入されます。仮想文書を削除すると、外部システムのテーブルからレコードが削除されます。既存のデータが存在しない場合は、レコードを入力してから上記の操作を実行してください。

メモ 詳細については、「仮想文書を削除する際の注意事項」を参照してください。

メモ 仮想文書は、外部システムデータソースのセキュリティ設定に従います。たとえば、Virtual Documents アクティ

ビティで使用する外部システムテーブルに新規行を作成するための権限がユーザーに与えられていない場合、その

ユーザーは文書を保存できません。文書を保存しようとすると、エラーが発生します。

バックグラウンドでの仮想化を手動でテストするため、SQL クライアントなどを使用して外部システムにテストa.

行を追加します。テスト行には EINOTEID のエントリが含まれ、値がゼロに設定されている必要があります。

このテスト行が正常に仮想化されるかを簡単にテストするため、アクティビティ文書の [Refresh Frequency]

オプションを 1 分に設定します。または、アクティビティを停止して再起動します。

Page 181: LEI ユーザーズガイド

アクティビティを起動するとすぐに、仮想化されていないすべての外部レコードの仮想化処理が開始されまb.

す。仮想化が完了すると、新しい外部レコードに対応する新規の仮想文書がビューに表示されます。前の手

順と同様、必要であれば [F9] キーを押してビューを更新してください。仮想文書がビューに表示されたら、そ

の文書を開いて更新します。

Virtual Documents アクティビティを停止します。Notes ビューを更新します。どの仮想文書もビューに表示さc.

れなくなります。

メモ 索引を作成するとパフォーマンスが向上します。詳細については、「Virtual Document パフォーマンスの向上」を参

照してください。

Page 182: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Document パフォーマンスの向上

索引は、Virtual Documents アクティビティを正しく動作させるための重要な必須事項です。また、Virtual Documents アクティビティで Virtual Attachments を使用する場合にも索引が重要な役割を果たします。

Virtual Documents アクティビティのパフォーマンスを最大限に高めるため、外部システムテーブルの次の列に索引を作成してください。これらの列は、データテーブルまたは外部キーテーブルに追加します。

EINOTEID (常時)!

EIMODIFIED (常時)!

EIUNID (Virtual Documents アクティビティを使用して Domino Web アプリケーションをサポートする場合)!

さらに、外部キーテーブルを使用する場合は、その外部キーテーブルをデータテーブルにマッピングするためのデー!タキー (外部キー) にも索引を作成する必要があります。 作成しない場合、データテーブルと外部キーテーブルのキー間の 1 対 1 の関係は保証できません。

詳細については、「Virtual Documents アクティビティで使用する外部システムの必須フィールド」を参照してください。

メモ Virtual Document アクティビティで Sybase データベースを使用する場合は、データテーブルに索引を作成する必要

があります。

メモ notes.ini 変数 EIReadBlockSize は 1 回に取得するレコードの数を設定し、Domino の索引操作のスピードを向上さ

せます。iSeries のデフォルト値は 100 で、その他すべてのプラットフォームでは 1 です。Windows または UNIX プラットフ

ォームで EIReadBlockSize を 25 または 50 に設定すると、DB2 で大幅なパフォーマンスの向上が期待できます。また、

すべてのコネクタでメリットがあります。この値を 100 以上に設定すると、容量の多い RAM を備えた高性能の UNIX ワー

クステーションで最大のパフォーマンスを得ることができます。

次の表は、どのようなとき、どの列に索引を作成すると Virtual Documents と Virtual Attachments のパフォーマンスが向上するかを示しています。

列名 必須またはオプション

索引の必要性

EINOTEID 必須 常時

EIMODIFIED 必須 常時

EIUNID オプション Domino の HTTP サーバーから Web アプリケーションにアクセスする場合

外部キー 必須 外部キーテーブルを作成する場合

Page 183: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

パブリックキー暗号化フィールドを使用する際の注意点

Virtual Document フォームのフィールドにパブリックキー暗号が設定されている場合、仮想文書ではそのフィールドが次のように暗号化されます。暗号化する際の注意点についても説明します。

フィールドにパブリックキー暗号を設定すると、外部テーブルのそれに対応するデータが NULL に設定され、適切な!権限を与えられているユーザーが仮想文書を開いた場合のみデータが表示されます。暗号化されたデータは外部テーブルに表示されません。パブリックキー暗号が設定されたフィールドにマッピングするテーブル列については、NULL 値および重複値を許可する必要があります。NULL 値と重複値が許可されていないと、暗号化データを含む仮想文書を保存できません。

暗号化されたデータは、暗号化フィールドを含む仮想文書で使用する外部テーブルの EINOTEPROPS 列に保存さ!れます。そのため、場合によっては、このバイナリ列 (EINOTEPROPS) のサイズを推奨値より大きく設定する必要が生じます。暗号化するデータがそれほど多くなく、おおよそのサイズが分かっている場合は問題ありません。ただし、暗号化フィールドに長いテキストが入力される可能性がある場合は、フィールドのテキストサイズを制限するか、EINOTEPROPS のサイズを大きくする必要があります。たとえば、「社員給与」という数値型フィールドは格納されるデータのサイズがあらかじめ分かっていますが、「マネージャからのコメント」というテキストフィールドには非常に長いテキストが入力される可能性があります。文書内の暗号化フィールドのサイズを見積もるには、[Document Properties Items] タブで、一般的な文書の暗号化データのサイズを確認します。[$SealData] 項目とデータの長さを参照してください。各 [$SealData] 項目は、その文書の暗号化フィールドを表しています。

Page 184: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

仮想文書を削除する際の注意事項

ここでは、仮想文書の削除に関する 2 つの概念、削除スタブと削除取り消しについて説明します。

削除スタブ

Domino データベースから文書データを削除した場合でも、他の Domino サービスを正常に実行できるようにその文書のスタブはデータベースに残ります。これを「削除スタブ」といいます。たとえば、データベースを複製するとき、削除された文書はこのスタブによって識別されるため、レプリカデータベースでも同じ文書が削除された状態になります。Virtual Documents アクティビティを使用する場合、この「削除スタブ」は外部システムデータベースで次のように動作します。

外部キーテーブルを使用する場合、その外部キーテーブルにスタブが保存され、データテーブルの実際のデータ行!は削除されます。このときの注意点は 1 つです。データテーブル内で対応するキーが固有であっても、外部キーテーブルのデータキー列は [Allow Duplicate Values] に設定してください。

外部キーテーブルを使用せず、4 つの Domino 制御列 (EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS) をデー!タテーブルに直接追加した場合、デフォルトではテーブルの行が削除されません。仮想文書を削除した場合、Domino 内ではその文書が「削除済み」として認識され、Notes ユーザーはアクセスできなくなります。ただし、SQL クライアントやその他の外部システムクライアントから外部システムテーブルを操作すると、実際にはその行が削除されていないことが分かります。データはすべて元のままです。Domino 制御フィールドが削除スタブとして指定され、Domino 環境からのみ、その行が削除されます。

Notes 以外のクライアントからも外部システムのデータを表示できないようにするには、アクティビティ文書の ![Maintain Deletion Stubs] オプションをオフにします。ただし、このオプションをオフにすると、削除した Domino 文書がデータベースレプリカに反映されなくなります。さらに、仮想文書を削除した後でその文書のレプリカを更新すると、予期しない結果を招く可能性があります。

メモ アクティビティ文書の [Create External Key Table] を使用する場合は、[Maintain Deletion Stubs] オプションを

オフにしないでください。

削除取り消し

Domino は削除取り消しもサポートしています。Notes データベースでこのオプションを有効にすると、削除したすべての文書は、特別に設計されたビュー以外では表示できなくなります。このビューは、普段デスクトップで使用しているごみ箱と似ています。削除された文書は、いつでも元に戻すことができます。また、文書の削除取り消しの有効期間を設定することもできます。この場合、指定した時間が経過すると、削除取り消しされた文書が Notes データベースから完全に削除されます。

Virtual Documents アクティビティは、Domino の削除取り消し機能を完全にサポートしています。仮想文書を削除取り消しした場合、Notes データベース内では削除取り消しされた文書として動作しますが、Notes 以外のクライアントからは、その文書に対応する外部システムのデータを通常とまったく同じように操作できます。文書を完全に削除してはじめて、その文書が外部システムからも削除されます。詳細については、「仮想文書を削除する際の注意事項」を参照してください。

Page 185: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

User Assistant を使用して Virtual Documents アクティビティを作成する

ここでは、User Assistant を使用して Virtual Documents アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

メモ User Assistant を有効にすると、新しい Virtual Documents アクティビティの作成手順が表示されます。User

Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。

手順 1: アクティビティ文書を開く

[Activity] ビューまたは [Favorites] ビュー ([Folder] ビュー) で、アクションバーの [Add Activity] アイコンをクリックします。メッセージボックスが開き、User Assistant でアクティビティ文書を作成するための手順が表示されます。

User Assistant がオンのときに何も選択していない場合は、このメッセージボックスで [Cancel] ボタンをクリックすると、アクティビティ文書が閉じて LEI Administrator に戻ります。User Assistant で項目を選択した場合、[Cancel] ボタンをクリックすると User Assistant が終了します。ただし、アクティビティ文書は編集モードで開いたままになり、その時点までの選択内容が表示されます。この後、アクティビティ文書を手動で完成、または中断できます。

メモ User Assistant の使用中に選択した内容を後で変更するには、そのアクティビティ文書を編集モードで開きます。

手順 2: Domino データベースを選択する

Domino データベースのリストが表示されます (下図を参照)。監視する Notes フォームが保存されているデータベースを選択します。

メモ 選択するデータベースは、LEI がインストールされているサーバー上に配置されている必要があります。他の

Domino サーバーに配置されているデータベースで LEI RealTime 機能を使用する場合は、LEI をそのサーバーにインス

トールする必要があります。

Page 186: LEI ユーザーズガイド

メモ リストの項目が多すぎてスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用する .nsf ファイルの正確な

名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」お

よび「基本的な参照について」を参照してください。

メモ リアルタイム監視では、アプリケーションデータベースの Notes レプリカ ID が使用されます。Virtual Documents ア

クティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベースが互いのレプリカで

ある場合、およびオペレーティングシステムを使用し、既存のデータベースをコピーして新しいデータベースを作成した場

合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 3: 監視する Notes フォームを選択する

選択したデータベース内のフォームが一覧表示されます。これらのフォームを使用して、外部システムのデータを表示します。このリストから、監視するフォームを 1 つ選択してください。

Page 187: LEI ユーザーズガイド

手順 4: データソースの Lotus Connection を選択する

次に示す [Select Connection] ダイアログボックスのリストから、監視する外部データソースのコネクションを選択します。

コネクションの選択後、その外部データベースに複数のテーブルが存在する場合は、さらに別のダイアログボックスが表示されます。このダイアログボックスで、外部データベースのテーブルを選択します。下の図を参照してください。

メモ リストに表示される項目数が多い場合は、リストをスクロールして目的のテーブルを選択してください。ただし、リスト

の項目が多すぎてスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

Page 188: LEI ユーザーズガイド

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するテーブルの正確な名

前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」およ

び「基本的な参照について」を参照してください。

メモ データテーブルとキーテーブルは同じユーザー ID で所有する必要があります。

手順 5: データフィールドをマッピングする

外部データソースを指定し、ユーザー名やパスワードなどの接続情報を入力すると、[Key and Data Field Mapping] ダイアログボックスが表示されます。このダイアログボックスを使用して、Domino アプリケーションと外部データソースの間でデータフィールドをマッピングします。

Page 189: LEI ユーザーズガイド

メモ 通常、Virtual Documents テーブルにマッピングされていない列があり、その列が NULL を受け付けない場合は、新

規レコードの作成時に NULL 割り当てエラーが発生します。実際に表示されるエラーメッセージは、使用するコネクタによ

って異なります。

手順 6: 外部キーテーブルを作成する (オプション)

Notes 制御フィールドを外部データソースに追加した場合、それらのフィールドは自動的にマッピングされます。これ以外の場合は、[Create External Key Table] 機能を使用して制御フィールドを作成する必要があります。詳しい手順は、本章の「外部キーテーブルを作成する」を参照してください。

手順 7: アクティビティ文書に名前を付ける

画面の指示に従い、固有のアクティビティ名を入力して [OK] をクリックします。

アクティビティ名を入力して [OK] をクリックすると、次のように、Virtual Fields アクティビティのオプションに関する説明がメッセージボックスに表示されます。

Page 190: LEI ユーザーズガイド

[OK] をクリックします。Virtual Documents アクティビティ文書が開き、これまでの選択内容が表示されます。文書内に示されている番号は、User Assistant で Virtual Documents アクティビティを作成するための手順番号に対応しています。

手順 8: オプションを選択する

この Virtual Documents アクティビティで使用するオプションを選択します。詳細については、本章の「Virtual Documents アクティビティの [Options] タブ」を参照してください。

手順 9: スケジュール関連のオプションを選択する

Virtual Documents アクティビティのスケジュールを制御する方法を選択します。詳細については、本章後半の「スケジュール」セクションを参照してください。

手順 10: 文書を保存して閉じる

[File] - [Save] を選択して、Virtual Documents アクティビティを保存します。[File] - [Close] を選択して Virtual Documents アクティビティ文書を閉じ、LEI Administrator に戻ります。

手順 11: Virtual Documents アクティビティを処理する

Virtual Documents アクティビティを実行するには、LEI Administrator の [Activity] ビューで Virtual Documents アクティビティを選択し、[Start] ボタンをクリックします。

メモ Virtual Documents アクティビティを処理するには、LEI Administrator で、[Activities] ビューのアクションバーにある

[Start] ボタンと [Stop] ボタンを使用します。アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合

は、サーバーを起動するたびに Virtual Documents アクティビティが確立されます。詳細については、「第5章 LEI アクテ

ィビティの概要」の「スケジュール」を参照してください。

Virtual Documents アクティビティを停止するには、[Activities] ビューで目的のアクティビティを選択して [Stop] ボタンをクリックします。

メモ [Virtualize External System Data] オプションを有効にすると (デフォルト)、まず、外部システムのテーブル内で仮想

化されていないレコードがすべて検索され、次にそれらのレコードが仮想化されます。仮想化されていないレコードがテー

ブル内に多数ある場合は、この処理に数分かかります。テーブルのサイズとネットワーク負荷によっては、それ以上かか

る場合もあります。アクティビティが起動済みであると示されても、外部システムのテーブルレコードの仮想化が完了する

までは仮想文書にアクセスできません。アクティビティログの進捗状況を参照し ([F9] キーを押してビューを定期的に更新

します)、仮想化処理の結果を確認してください。仮想化が完了するとメッセージが表示され、アクティビティにアクセスでき

るようになります。

Page 191: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

User Assistant を使用しないで Virtual Documents アクティビティを作成する

User Assistant を有効にすると、新しい Virtual Documents アクティビティの作成手順が表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。User Assistant が無効の場合は、空白のアクティビティ文書が表示されます。この文書に必要項目を入力してアクティビティを定義します。

ここでは、User Assistant を使用しないで Virtual Documents アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

手順 1: アクティビティ文書を開く

[Add Activity] アイコンをクリックします。Virtual Documents アクティビティ文書が開きます。

手順 2: アクティビティの名前を入力します。

文書の一番上にある [Name] フィールドに、このアクティビティの固有の名前を入力します。

手順 3: 監視する Domino アプリケーションとフォームを選択する

[Domino Application] セクションの下矢印アイコンをクリックします。データベースのリストが表示されます。監視する Domino アプリケーションが含まれるデータベースを選択します。フォーム名も指定するよう求められます。

メモ リストの表示項目が多い場合は、リストをスクロールして目的の Domino アプリケーションを探してください。ただし、

リストの項目が多すぎてスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用する Notes データベースの

正確な名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、

削除」および「基本的な参照について」を参照してください。

メモ リアルタイム監視では、アプリケーションデータベースの Notes レプリカ ID が使用されます。Virtual Documents ア

クティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベースが互いのレプリカで

ある場合、およびオペレーティングシステムを使用し、既存のデータベースをコピーして新しいデータベースを作成した場

合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 4: データソースの Lotus Connection を選択する

[External System] セクションの下矢印アイコンをクリックして、既存のコネクション文書の中から使用する文書を選択します。

メモ リストに表示される項目数が多い場合は、リストをスクロールして目的のテーブルを選択してください。ただし、リスト

の項目が多すぎてスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するテーブルの名前を入力

します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」および「基本

的な参照について」を参照してください。

メモ データテーブルとキーテーブルは同じユーザー ID で所有する必要があります。

手順 5: マッピング

[Mapping] セクションの下矢印をクリックします。フィールドをマッピングするためのダイアログボックスが表示されます。このダイアログボックスを使用して、Domino アプリケーションと外部データソースの間でデータフィールドをマッピングします。

メモ Virtual Documents テーブルにマッピングされていない列があり、その列が NULL を受け付けない場合、新規レコー

ドの作成時に NULL 割り当てエラーが発生します。実際に表示されるエラーメッセージは、使用するコネクタによって異な

ります。

手順 6: 外部キーテーブルを作成する (オプション)

Notes 制御フィールドを外部データソースに追加した場合、それらのフィールドは自動的にマッピングされます。これ以外の場合は、[Create External Key Table] 機能を使用して制御フィールドを作成する必要があります。詳しい手順は、本章の「外部キーテーブルを作成する」を参照してください。

手順 7: オプションおよびイベントオプションを選択する

文書の [Options] タブおよび [Event Options] タブで、必要なオプションとイベントオプションを選択します。詳細については、本章の Virtual Documents アクティビティのオプションとイベントオプションに関する説明を参照してください。

Page 192: LEI ユーザーズガイド

手順 8: スケジュール関連のオプションを選択する

Virtual Documents アクティビティのスケジュールを制御する方法を選択します。[Manual]、[AutoStart]、または [Custom] を選択できます。詳細については、本章後半のスケジュールに関するセクションを参照してください。

手順 9: 文書を保存して閉じる

[File] - [Save] を選択して、アクティビティ文書を保存します。[File] - [Close] を選択してアクティビティ文書を閉じ、LEI Administrator に戻ります。

手順 10: Virtual Documents アクティビティを処理する

Virtual Documents アクティビティを実行するには、LEI Administrator の [Activity] ビューで Virtual Documents アクティビティを選択し、[Start] ボタンをクリックします。

メモ Virtual Documents アクティビティを処理するには、LEI Administrator で、[Activities] ビューのアクションバーにある

[Start] ボタンと [Stop] ボタンを使用します。アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合

は、サーバーを起動するたびに Virtual Documents アクティビティが確立されます。詳細については、「第5章 LEI アクテ

ィビティの概要」の「スケジュール」を参照してください。

Virtual Documents アクティビティを停止するには、[Activities] ビューで目的のアクティビティを選択して [Stop] ボタンをクリックします。

メモ [Virtualize External System Data] オプションを有効にすると (デフォルト)、まず、外部システムのテーブル内で仮想

化されていないレコードがすべて検索され、次にそれらのレコードが仮想化されます。仮想化されていないレコードがテー

ブル内に多数ある場合は、この処理に数分かかります。テーブルのサイズとネットワーク負荷によっては、それ以上かか

る場合もあります。アクティビティが起動済みであると示されても、外部システムのテーブルレコードの仮想化が完了する

までは仮想文書にアクセスできません。アクティビティログの進捗状況を参照し ([F9] キーを押してビューを定期的に更新

します)、仮想化処理の結果を確認してください。仮想化が完了するとメッセージが表示され、アクティビティにアクセスでき

るようになります。

Page 193: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents アクティビティ文書のオプション

使用する Domino アプリケーションとコネクションを指定し、マッピングを設定した後、さらに必要であれば、アクティビティを設定するオプションを指定できます。

これらのオプションは、[Options] と [Event Options] の 2 つのカテゴリに分けられます。

[Options] タブは、さらに次の 3 つのカテゴリに分けられます。

[General Options]!

[Integrated Credentials]!

[Virtual Attachments]!

[Event Options] タブは、さらに次の 4 つのカテゴリに分けられます。

[Create]!

[Open]!

[Update]!

[Delete]!

すべてのアクティビティ文書に共通する次のセクションについては、「第5章 LEI アクティビティの概要」を参照してください。

[Activity Name]!

[Scheduling]!

[Category]!

[Comments]!

Page 194: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

[Options] タブ

[Options] タブには、[General Options]、[Integrated Credentials]、[Virtual Attachments] の 3 つのタブがあります。

[General Options]

[General Options] タブには、Virtual Documents アクティビティで監視するイベントの種類にかかわらず、そのアクティビティに適用されるオプションが表示されます。[General Options] タブの各オプションについては、図の後の説明を参照してください。

メモ Virtual Documents を使用するには、外部データソースに 4 つのフィールドを設定する必要があります。詳細につい

ては、本章の「Virtual Documents アクティビティで使用する外部システムの必須フィールド」を参照してください。

メモ データテーブルとキーテーブルは同じユーザー ID で所有する必要があります。

[General Options] のオプション

説明

Key Table Option キーフィールドの場所を指定します。

次のいずれかのオプションを選択します。

[Keys Are in Connector Table] - このオプションを選択した場合、外部データベースのテーブルにキーフィールドを追加する必要があります。

[Use External Key Table] - 外部システムのデータベーステーブルを変更せずに、仮想ビューの機能を使用するときにこのオプションを選択します。Notes の必須フィールドは外部テーブルに保存されます。この外部テーブルには、データテーブルの行を識別するためのキーフィールドも格納されます。

外部キーテーブルを作成する場合、このオプションを選択してください。

メモ データテーブルとキーテーブルは同じユーザー ID で所有する必要があります。

このオプションを選択すると、さらに [Key Table Name] と [Key Fields] を指定できるようになります。外部キーテーブルを作成するには、これら 2 つのオプションも指定する必要があります。

[Key Table Name] - Domino データベースとの同期に必要なフィールドが含まれる外!部テーブルの名前を指定します。これは、データソーステーブルとは別のテーブルです。外部キーテーブルを作成する場合は、既存のテーブルの名前ではなく、新しく作成するテーブルの名前をここに入力します。[Keys Field(s)] - データテーブルのレコードを固有に識別するためのフィールドを指定!します。

メモ 手順の詳細については、「外部キーテーブルを作成する」を参照してください。

Maintain Deletion Stubs このオプションを選択した場合 (デフォルト)、外部システムのデータ行は実際に削除されません。ただし、内部では「削除済み」と認識されるため、Notes の仮想文書としてはアクセスできなくなります。Notes データベースの削除オプションを有効にして、これらの行を定期的に削除することもできます。

[Maintain Deletion Stubs] オプションを選択しない場合、仮想文書を削除したときに外部システムのデータ行も必ず削除されます。ただし、Domino では他のデータベースにはこの削除が反映されません。

Virtualize External System Data

[Virtualize External System Data] のオプションを選択すると、Virtual Documents アクティビティの起動時に、外部データベースシステムのデータが自動的に仮想化されます。その後は、Notes 以外の外部クライアントから追加された新規データが定期的に仮想化されます。

メモ 1 つの外部データテーブルに対して、1 つの Virtual Document アクティビティのみがこのオプションを有効にできます。

[Virtualize External System Data] のオプションを選択すると、[Refresh Frequency] オプシ

Page 195: LEI ユーザーズガイド

ョンを指定できるようになります。

[Refresh Frequency]:Notes 以外の外部ソースから追加された新規レコードをビューに!反映する時間間隔を指定します。分単位、時間単位、日単位で指定できます。デフォルトは 1 時間ごとです。

Max. Connections ユーザーからの要求に対して同時に開くことができる外部データベースへのコネクションの最大数を指定します。Virtual Documents の最小コネクション数は「2」です。動作が遅いと感じる場合はこの値を大きくしてください。

Domino アプリケーションで最初のイベントが発生すると、外部データソースへのコネクションが 1 つ開きます。2 番目、3 番目のイベントが同時に発生した場合は、それに応じて新しいコネクションが開きます。

開いているコネクションの数がこのオプションで指定した最大数に達すると、それ以降のイベントはキューに登録され、先に発生したイベントから順番に処理されます。コネクションが開いているのは、外部データソースに対してデータを読み書きする間のみです。

読み書きするデータ量に応じて、各イベントの処理に必要な最小限の時間のみ、コネクションが維持されます。したがって、複数のイベントを処理する場合でも、コネクションの最大数をそれほど大きくする必要はありません。

Data Integrity [Prevent both precision and data loss] - データ型変換の結果としてデータが失われた場合、そのエラーがログに書き込まれます。

[Allow precision loss] - データ型変換の結果として数値データや日時データの精度が低下した場合でも、エラーが報告されません。精度が低下した場合でもそれを許可し、転送を続行します。デフォルトでは、このオプションが選択されています。

[Allow precision loss and truncation of text] - 精度の低下が許可され、外部データベースのフィールド長に合わせてテキストデータが切り捨てられます。

Trim Trailing Spaces このオプションは、外部データのテキストフィールドに含まれる末尾スペースの処理方法を指定します。

[Trim spaces on all fields] - このオプションを選択すると、キーフィールド以外のデータフィールドについてのみ末尾のスペースが削除されます(デフォルト)。

[Do not trim spaces on any fields] - このオプションを選択すると、どのフィールドについても末尾のスペースが削除されません。

Notes と外部データのフィールドをマッピングするには、末尾のスペースを残す必要がある場合もあります。

メモ 外部システムの固定長フィールドにデータを書き込むと、そのフィールドの長さに合わせてスペースが埋め込まれるため、同じデータを再び読み込んだときに外部システムとのコネクションが失われることがあります。このような場合は、外部システムのデータベースで可変長フィールド (VARCHAR) を使用するか、[Trim spaces on all fields] オプションを選択します。

New Line Delimiter for Connection

Notes の改行区切り文字を他のシステムの改行区切り文字に変換するためのオプションを選択します。

Page 196: LEI ユーザーズガイド

第第第第 13131313 章章章章 VIRTUAL DOCUMENTSVIRTUAL DOCUMENTSVIRTUAL DOCUMENTSVIRTUAL DOCUMENTS アクティビティアクティビティアクティビティアクティビティ

外部外部外部外部キーテーブルキーテーブルキーテーブルキーテーブルをををを作成作成作成作成するするするする

ここでは、外部システムに必須列を追加するための外部テーブルを作成する方法と、それを使用する方法について説明します。また、その際の制約についても説明します。

Virtual Documents から外部システムのデータへアクセスできるようにする方法としてまず考えられるのは、既存のデータテーブルに必要な列を追加するか、または必要な列を含めた新しいデータテーブルを作成する方法です。しかし、これらの方法が必ずしも最適とは限りません。外部キーテーブルを使用すると、既存のデータテーブルを変更する必要がありません。ただし、その場合でも追加の手順が必要となります。別に作成した外部キーテーブルに必須列を格納する場合は、この後の手順に従ってください。

Virtual Documents アクティビティを実行するには、Notes の制御情報を格納するための専用テーブルが外部データソースに含まれているか、または既存のテーブルのフィールドにこれらの情報を格納する必要があります。Notes には文書に関する情報が一切保存されないため、文書のユニバーサル ID、作成日時、およびその他のシステム値を格納するための場所が必要になります。

次に、Virtual Documents アクティビティを使用して外部キーテーブルを作成する方法の手順を示します。

1 新しい外部キーテーブルを作成するか、または既存のデータテーブルを使用するかを決定します。データテーブルに

は、各データ行の固有のキーセットとなる列を含める必要があります。固有の値を得るために複数の列を使用するこ

ともできます。

4 つの必須列 (EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS) を既存のデータテーブルに追加する場合と同様、外部キーテーブルにもこれらの列が含まれている必要があります。さらに、データテーブルのキー列を 1 つ以上追加します。外部キーテーブルにキー列を追加することで、データテーブルと同じキー列を参照できるようになります。外部キーテーブルのキー列には、データテーブルのそれに対応するキー列と同じ名前、同じデータ型を指定してください。アクティビティ文書では、これらの必須条件の指定ができるようになっています。

2 LEI Administrator のアクションバーにある [Add Activity] ボタンを使用して、新しい Virtual Documents アクティビティ

を作成します。

詳しい手順については、本章の「User Assistant を使用して Virtual Documents アクティビティを作成する」または「User Assistant を使用しないで Virtual Documents アクティビティを作成する」を参照してください。

3 アクティビティ文書の中央にある [Options] タブの [General Options] タブをクリックします。

4 [Key Table Option] で [Use External Key Table] を選択します。[Key Table Name] オプションと [Key Field(s)] オプ

ションが表示されます。この時点で、これらのフィールドにデータを入力する必要があります。

5 [Key table name] フィールドにテーブル名を入力します。

6 [Key field(s)] フィールドで、1 つ以上のキー列名を表示されたリストから選択します。

Page 197: LEI ユーザーズガイド

必須フィールドをテストする方法については、「外部システムの必須フィールドを使用する/テストする」を参照してください。

メモメモメモメモ 固有性を確保するために、キーフィールドで索引を作成する必要があります。キーフィールドが固有ではない場

合、外部キーテーブルを結合できません。また、複数のレコードが戻る可能性があります。詳細については、「Virtual

Document パフォーマンスの向上」を参照してください。

7 アクティビティ文書の [Key Table Option] のすぐ上に表示される [Create External Key Table] ボタンをクリックしま

す。

8 [Create Key Table] ダイアログボックスが表示されます。このダイアログボックスでは、一部のフィールドの最適なサ

イズ制限を設定し、必要に応じてその他のフィールドに索引を作成できます。次の説明に従って、フォームに必要な

情報を入力します。

このダイアログボックスの下部に、各環境に合わせてキーテーブルを適切に設定するための質問事項が表示されます。質問の内容は、このアクティビティで使用する Lotus Connector によって異なります。

メモメモメモメモ コネクション文書に保存されているユーザー ID とパスワードに、接続先データベースでテーブルを作成するた

めの権限が与えられていない場合は、[Use Connector Credentials] オプションをオフにしてください。このオプション

をオフにすると、この操作でのみ使用する別のユーザー ID とパスワードを入力できるようになります。このログイン

情報は LEI Administrator データベースに保存されません。

[Create Key Table] ダイアログボックスには次のフィールドが表示されます。

[Table Name] - アクティビティ文書の [General Options] タブで [Key Table Name] フィールドに入力したテー�

ブル名が表示されます。

メモメモメモメモ テーブル名の最初の部分には所有者名を指定してください。たとえば、作成するテーブルの名前が

EMPTRANSFER、所有者名が DB2ADMIN の場合は、[Create Attachment Table] ダイアログボックスの [Table

Name] フィールドに「DB2ADMIN.EMPTRANSFER」と入力します。

[Use Connector Credentials] - メタデータの作成権限を与えられたリレーショナルデータベースユーザー ID �

が必要です。コネクション文書のユーザー ID にこの権限が割り当てられていない場合は、このボックスをオフにして、別のユーザー ID とパスワードを入力してください。

Page 198: LEI ユーザーズガイド

最適化に関する質問事項 - Virtual Documents アクティビティ文書で指定したコネクションの種類に応じて、�

動作を最適化するための質問が表示されます。ただし、Oracle 8、DB2、または OLE DB に接続する場合は、システムフィールド領域 (EINOTEPROPS) のサイズを指定する必要はありません。これらの外部システムに接続する場合、最適化に関する質問と [System field storage ... bytes] フィールドはダイアログボックスに表示されません。

これらの質問は、EINOTEPROPS フィールドの最適なサイズを計算し、どのフィールドに索引を作成すると最適なパフォーマンスが得られるかを判断するためのものです。入力した答えに基づいて、フィールドサイズの推奨制限値が自動的に計算されます。推奨値を使用しない場合は、このダイアログボックスの [System field storage ... bytes] に別の値を入力します。このフィールドに何も入力しない場合は、推奨値が使用されます。

[System field storage] - EINOTEPROPS フィールドの推奨サイズを変更するときに使用します。詳細につい�

ては、上記の「最適化に関する質問事項」の説明を参照してください。

9 上記の説明に従ってダイアログボックスに必要な情報を入力したら、ダイアログボックスの右上にある [OK] をクリッ

クしてキーテーブルを作成します。

10 テーブルが作成されたことを知らせるメッセージが表示されます。

これらのフィールドをストアドプロシージャの引数として使用する方法については、「Virtual Documents のイベントでのストアドプロシージャの使用」を参照してください。

テーブル作成ツールによって索引が作成されるフィールドの詳細については、Virtual Documents と Virtual Attachments を使用する際の要件に関する説明を参照してください。

外部外部外部外部キーテーブルキーテーブルキーテーブルキーテーブルについてのについてのについてのについての考慮事項考慮事項考慮事項考慮事項

仮想文書の作成時に [External Key Table] オプションを選択した場合は、次の点に注意する必要があります。

Virtual Documents アクティビティの外部キーテーブルを操作する場合は、キーフィールドを明確に指定し、データ�

テーブルと外部キーテーブルを結合する必要があります。こうすることで固有性が増し、データテーブルを操作する際にレコードを 2 重に挿入しなくなります。

外部キーテーブルを使用してキーを変更するには、ライトバックを有効にする必要があります。非キーフィールドを変�

更するときは、ライトバックの必要がありません。また、レコードを削除し、新しいキー値を指定して同じレコードを作

Page 199: LEI ユーザーズガイド

成し直す方法もあります。

データテーブルと外部キーテーブルは、同じ外部システムデータソース上に配置する必要があります。つまり、コネク�

タ、サーバー、データベース、ユーザー ID、パスワードがすべて同じで、テーブル名のみが異なることになります。

他のアプリケーションによってデータテーブルから行が削除され、ID テーブルの対応するエントリが削除されていな�

い場合、その仮想文書にアクセスしようとすると、「unable to retrieve external record」というエラーメッセージが表示されます。詳細については、「仮想文書を削除する際の注意事項」を参照してください。

同じキーを持つデータ行が複数存在する場合は、ID テーブルにエントリが 1 つのみ作成され、文書を開いたときに�

最初のデータ行のみが取得されます。削除時および更新時には両方のレコードが変更されます。

パフォーマンスを最大限に高めるため、データテーブルのキー列には必ず索引を作成してください。詳細について�

は、「Virtual Document パフォーマンスの向上」を参照してください。

データテーブルの対応するキー列が重複値を許可しないように設定されている場合でも、外部キーテーブルのキー�

列にはこの制約を設定しないでください。外部キーテーブルでは、キー列に重複値を入力できるようにする必要があります。

SQL ステートメントを使用して外部キーテーブルを作成した場合、キーテーブル名に「KEY」は使用できません。�

現在、4 つの必須列 (EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS) をアクティビティ文書から既存のテーブル�

に追加することはできません。ほとんどの外部データソースではこのような処理が許可されません。既存のテーブルにフィールドを追加する場合は、最初に外部テーブルを作成します。次に、リレーショナルデータベースの設定ツールを使用して、目的のテーブルにフィールドをコピーします。外部キーテーブルのどの列に索引が作成されているかに注意し、フィールドをコピーするときも同じように索引を作成してください。新しい列を含む新規テーブルを作成し、Direct Transfer アクティビティを使用して、古いテーブルから新しいテーブルへデータをコピーする方法もあります。

Page 200: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

[Integrated Credentials]

[Integrated Credentials] のオプションを選択すると、外部システムへの接続に使用されるユーザー情報を検索できるようになります。ユーザー情報は外部システムへの接続に使用されます。外部システムにすでに備わっているセキュリティ機能とこのユーザー情報を統合することで、Domino のセキュリティがより向上します。

メモ 統合されたユーザー情報データベースの詳細については、本書の「第5章 LEI アクティビティの概要」を参照してくだ

さい。統合されたユーザー情報データベースの作成と使用の詳細については、「統合されたユーザー情報データベース」

を参照してください。

メモ HTTP クライアントで Virtual Documents と統合されたユーザー情報を使用している場合は、サーバー認証情報文

書も必要になります。

メモ HTTP クライアントで統合ユーザー情報を使用する場合、ユーザー名とパスワードの入力を求めるメッセージが .nsf

によって表示されないときは、そのユーザーは「Anonymous」としてログインします。したがって、ユーザー情報

に「Anonymous」というエントリが必要になります。

[Integrated Credentials] タブの各オプションについては、次の説明を参照してください。

[Integrated Credentials] のオプション

説明

Use Connector Credentials

このアクティビティで使用するコネクション文書に入力したユーザー ID とパスワードを使用します。

Lookup Credentials このオプションを選択すると、フォームが展開されて次のオプションが表示されます。

[Missing Credentials] - ユーザー情報の参照に失敗した場合、アクティビティのデフォルトのユーザー情報を使用できます。それ以外の場合は、操作に失敗します (デフォルトの動作)。

[Credentials DB Filepath] - ユーザー情報データベースの名前を入力します。このデータベースに、Notes ユーザー名とそれに対応する外部システムのユーザー情報が保存されます。LEI ディレクトリ (leidir など) を基準とする相対パスを指定してください。

メモ このデータベースは、テンプレート leicred.ntf を使用して作成されている必要があります。本書の「第5章 アクティビティの概要」の「統合されたユーザー情報データベースのセットアップおよび使用」を参照してください。

[Connection Cache Size] - 一度に有効にできるユーザー情報の最大数です。

メモ 外部データベースシステムへのアクセス時に使用するユーザー情報にテーブルへの書き込み権限が与えられていない場合、その Notes ユーザーが文書を削除、更新、または作成しようとするとエラーメッセージが表示されます。

統合されたユーザー情報と全文索引

統合されたユーザー情報を使用して、Virtual Documents または Virtual Fields で全文索引を実行するには、統合ユーザー情報データベースにサーバー ID を追加する必要があります。

Page 201: LEI ユーザーズガイド

統合されたユーザー情報とサーバー間での複製

統合されたユーザー情報を使用してサーバー間複製を実行するには、複製するサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に、Virtual Documents 対応または Virtual Fields 対応のデータベースが格納されているとします。これをサーバー B に複製する場合は、サーバー A の統合ユーザー情報データベースにサーバー B のサーバー ID を追加します。

Domino クラスタでの統合されたユーザー情報

Domino クラスタ内のサーバーに、Virtual Documents 対応または Virtual Fields 対応データベースのレプリカが格納されている場合は、それらすべてのサーバーのサーバー ID を統合ユーザー情報データベースに追加する必要があります。たとえば、サーバー A に Virtual Documents 対応のデータベースが格納されており、そのレプリカがサーバー B とサーバー C に存在するとします。さらに、サーバー A、B、C がすべて同じ Domino クラスタに属している場合、サーバー B とサーバー C のサーバー ID をサーバー A の統合ユーザー情報データベースに追加する必要があります。これらのサーバー ID が追加されていないと、クラスタの複製処理でレプリカを正しく同期できません。

Page 202: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

[Virtual Attachments]

[Virtual Attachments] は、Notes を使用して外部システムデータベースに添付ファイルを追加するための機能です。添付ファイルは、Domino アプリケーションではなく外部システムに保存されます。添付したファイルには仮想ビューからアクセスできます。

Virtual Documents アクティビティを [Virtual Attachments] オプションの有効で使用する場合、そのアクティビティを 1 回以上仮想化することで、添付ファイルテーブルをアクティビティから分離します。再仮想化する場合は、EINOTEID をゼロに設定してください。これは、統合キーを使用している場合でも、外部キーテーブルを使用している場合でも同じです。

注意 旧バージョンでは、外部キーテーブルを再仮想化する場合、テーブルからすべてのレコードを削除していました。現

バージョンでは、EINOTEID をゼロに設定することをお勧めします。EINOTEID をゼロに設定すると、仮想添付ファイルは、

仮想化されていないレコードの次のバックグラウンドチェックの実行時刻に基づいて再結合されます。外部キーテーブル

からレコードを削除すると、レコードに関連付けられたすべての仮想添付ファイルが完全に孤立します。

メモ ファイル名と Notes ID を保存することで、添付ファイルの識別と取得が容易になります。ただし、これらを格納する列を外部システムテーブルに追加する必要があります。

Virtual Attachment の必須列とオプションの列は次のとおりです。

列名 必須/オプション

EIDBID 必須

EIFILEID 必須

EIFILESIZE 必須

EIUNID オプション (以下の「メモ」を参照)

EIFILENAME オプション

EICONTENTS 必須

メモ 添付ファイルテーブルに EIUNID を含める必要はありませんが、含めない場合、孤立した添付ファイルは再結合さ

れません。Virtual Documents アクティビティ文書の [Create Attachment Table] オプションは、再結合に必要なすべての

列を自動作成します。EIUNID は、データ/キーテーブルの行の EIUNID フィールドに対応する Note ID 値で

す。EIFILENAME は、Notes で指定されている添付ファイルの名前です。EIUNID フィールドと EIFILENAME フィールドが

ある場合、LEI は添付ファイルテーブルにこれらのフィールドを自動的に書き込みます。

重要な制約が 1 つあります。仮想添付ファイルテーブルは、アクティビティからアクセスする外部システムデータと同じ外部システム、同じデータベースに存在する必要があります。Virtual Documents アクティビティで使用する外部システムまたはデータベース以外の場所に仮想添付ファイルテーブルは配置できません。これは、同じコネクション文書を使用して外部システムにアクセスするためです。

メモ 仮想添付ファイルデータを LEI 以外に変更する場合、たとえば外部システムのデータを直接編集する場合は、添付

ファイルと Virtual Fields アクティビティの関係を壊すことになります。ファイルの長さなど、仮想添付ファイルに関する特

定の情報は、 LEI を使用して仮想添付ファ

イルデーターが接続されない限り変更できません。一度結合性が壊されてしまうと、データの編集は LEI 以外のみで可能になります。結合性を壊さないよう、読み取り専用アクセスモードでファイルを開いてください。ただし、ファイルの添付に使用したオプションによって、ファイルデータはバイナリデータのままではなく、ユーザーが使用できないデータを EICONTENTS フィールドに含めることができる Notes 固有の圧縮形式である場合があります。

Virtual Attachments 機能を使用すると、ネイティブの Notes 文書にファイルを添付する場合と同じように、仮想文書に添付ファ

イルを追加できます。ただし、添付ファイルは Domino アプリケーションにではなく外部システムに保存されます。添付したデータは、ユーザーが作成した外部システムテーブルのバイナリフィールドに保存されます。外部システムテーブルのその他の列にはキーデータが保存されます。アクティビティでは、このキーデータに基づいて特定の添付ファイルが検索されます。複数の Virtual Documents アクティビティに対して 1 つのテーブルを使用できます。 この機能を使用するときは、次の点に注意してください。

Virtual Document で添付ファイルを使用するときは、[Virtualize Attachments] オプションを選択する必要がありま!す。仮想化しない限り、Virtual Documents アクティビティに添付ファイルを保存できません。仮想化しない場合は、添付ファイルは保存されません。

監視対象の文書が開いているときに Notes データベースで「Fixup」ユーティリティを実行した場合、修復した Virtual !Attachments にアクセスするには、文書を閉じて再度開くか、文書を保存する必要があります。「Fixup」の詳細につ

Page 203: LEI ユーザーズガイド

いては、Domino サーバーのドキュメントを参照してください。

[Virtual Attachments] のオプション 説明

Attachments [Virtualize Attachments] - Virtual Documents アクティビティとともに添付ファイルを保存する場合は、このオプションを選択します。このオプションを選択するには、添付ファイルを保存する外部システムテーブルを作成し、そのテーブルを指定する必要があります。

メモ 仮想添付ファイルテーブルを作成するには、添付ファイルテーブルを指定する必要があります。

Attachment table 添付ファイルの内容を保存するためのテーブルを指定します。オプションの左に位置する下矢印ボタンをクリックすると、アクティビティで指定されたコネクション文書のデータベース内からテーブルの選択が可能になります。

添付ファイルの内容の他に、このテーブルにはロケーターキーも保存されます。必要に応じて、ファイル名と Notes ID もデータ要素として保存できます。その場合は、このオプションの [Additional data] を使用します。

メモ 仮想添付ファイルを作成するには、[Create Virtual Attachment Table] ボタンをクリックし、本章の「[Virtual Attachments]」を参照してください。

メモ Sybase で仮想添付ファイルテーブルを作成する場合は、列名を大文字にする必要があります。

Additional data 添付ファイルの名前とその Notes ID を添付ファイルテーブルに追加するには、このオプションを選択します。このオプションは必須ではありません。

メモ ファイル名と Notes ID を保存することで、添付ファイルの識別と取得が容易になります。ただし、これらを格納する列を外部システムテーブルに追加する必要があります。

パフォーマンスの向上を目的としたフィールドに対する索引の作成Virtual Attachments (仮想添付ファイル) を使用する場合は、Virtual Attachment Table (仮想添付ファイルテーブル) の EIFILEID に索引を作成します。さらに、仮想添付ファイルテーブルが複数のデータベースをサポートしている場合は、そのテーブルの EIDBID 列にも索引を作成します。仮想添付ファイルテーブルは複数の Virtual Documents アクティビティが使用します。この中には、異なる複数の Domino データベースのフォームを監視するアクティビティも含まれます。

メモ Virtual Documents アクティビティを [Virtual Attachments] オプションが有効な状態で使用する場合、そのアクティビ

ティを 1 回以上仮想化することで、添付ファイルテーブルをアクティビティから分離します。たとえば、EINOTEID をゼロに

リセットし、仮想添付ファイルが存在する場合、これらは接続不可になります。このような場合は、[Virtualize

Attachments] オプションを使用して添付ファイル、および画面に表示される結果を再結合できます。

フィールドとデータ型次の表で、外部システムの添付ファイルテーブルに必要なフィールドとデータ型、および Notes フォームに必要なフィールドを示します。

Virtual Attachment の必須フィールド名は、次のとおりです。

EIDBID!

EIFILEID!

EIFILESIZE!

EIUNID (以前は EINOTEID と呼ばれていました)!

EIFILENAME!

EICONTENTS!

各フィールドのデータ型は次のテーブルで説明されるように、外部システムごとに異なります。

メモ Sybase では、列名を大文字にする必要があります (EINOTEID など)。

メモ この情報は DB2 では、最高 1MB の添付ファイルからなるデータ型に関連します。

外部システム EIDBID のデータ型

Oracle VARCHAR2 (16) または CHAR (16)

Informix CHAR (16)

Sybase CHAR (16)

Page 204: LEI ユーザーズガイド

DB2 CHARACTER (16)

SQL Server CHAR (16)

MS Access NUMBER、INTEGER

メモ テーブルが複数のデータベースをサポートする場合は、パフォーマンスの効率を上げるために、これらのフィールド

に索引を作成してください。

外部システム EIFILEID のデータ型

Oracle NUMBER

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT(16)

メモ パフォーマンスの効率を上げるために、これらのフィールドに索引を作成してください。

外部システム EIFILESIZE のデータ型

Oracle NUMBER (8)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access NUMBER、LONG、INTEGER

メモ EIFILESIZE 列の長さは調整可能ですが、整数 (X,0) を維持する必要があります。

外部システム EIDBID のデータ型

Oracle NUMBER (10)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT (32)

メモ EIUNID は、DWORD または 32 ビットの符号なし整数です。式 2^n - 1 によって算出される最大 EIUNID は

Page 205: LEI ユーザーズガイド

4,294,967,295 になるため、全体で 10 桁が必要です。

外部システム EIFILENAME のデータ型

Oracle VARCHAR2 (255)

Informix VARCHAR2 (255)

Sybase VARCHAR2 (255)

DB2 VARCHAR2 (255)

SQL Server VARCHAR2 (255)

MS Access TEXT (255)

外部システム EICONTENTS のデータ型

Oracle BLOB (8i 以降推奨)LONG RAW (8.0.5 以前推奨)

Informix BYTE

Sybase IMAGE

DB2 BLOB (1048576)

SQL Server IMAGE

MS Access OLE OBJECT

Virtual Attachments フィールドが存在するテーブルの指定

アクティビティ文書の [Attachment table] フィールドにテーブルの名前を入力して、上記のフィールドがあるテーブルを指定します。次の図では、添付ファイルに使用するテーブルの名前は MY_ATTACH です。

メモ SQL コマンドを使用してテーブルを作成できます。

メモ Virtual Attachment 処理によって外部システムに追加されていない添付ファイルは、Virtual Fields および Virtual

Documents からアクセスできません。たとえば、SQL コマンドなど、他の処理方法で外部システムデータベースに添付フ

ァイルを追加した場合は、Virtual Fields および Virtual Documents のアクティビティ文書からそれらの添付ファイルにアク

セスできません。

添付ファイルテーブルとスキーマの指定仮想添付ファイルテーブルのスキーマを指定していない場合、デフォルトでは、そのコネクションを作成するユーザーが使用されます。たとえば、ユーザーが TESTONE、スキーマが DBSOURCE の場合、このユーザーがスキーマとして使用され、TESTONE.MY_TABLE となります。選択ダイアログで仮想添付ファイルテーブルを選択すると、このスキーマ名がプレフィックスとして追加されます。ただし、ユーザーがテーブル名を自分で入力する場合、スキーマとコネクションユーザーが異なるときは、DBSOURCE.MY_TABLE のようにスキーマ名をプレフィックスとして入力する必要があります。

Virtual Attachment 処理によって外部システムに追加されていない添付ファイルは、Virtual Fields および Virtual Documents からアクセスできません。たとえば、SQL コマンドなど、他の処理方法で外部システムデータベースに添付ファイルを追加した場合は、Virtual Fields および Virtual Documents からそれらの添付ファイルにアクセスできません。SQL コマンドを使用してテーブルを作成できます。

文書の再仮想化仮想文書を「再仮想化」する必要がある場合があります。再仮想化では、新しい Note ID と Universal ID が割り当てられます。再仮想化が必要で、アプリケーションが仮想添付ファイルを使用している場合、外部キーテーブルのデータを単純

Page 206: LEI ユーザーズガイド

ます。再仮想化が必要で、アプリケーションが仮想添付ファイルを使用している場合、外部キーテーブルのデータを単純

に削除、また、すべての Notes データ列を NULL にしてはいけません。文書の再仮想化で添付ファイルと一致する必要のあるデータを破壊し、添付ファイルが完全に修復不能となる可能性があります。

再仮想化されるレコードにフラグを付けるには、すべてのレコードで EINOTEID をゼロに設定します。既存の添付ファイルと共に Notes 文書が再作成されます。

Page 207: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

仮想添付ファイルテーブルを作成する

Virtual Documents アクティビティ文書および Virtual Fields アクティビティ文書では、リレーショナルテーブルを使用して添付ファイルを保存するように設定できます。この場合、仮想添付ファイルテーブルを作成し、添付ファイルをバイナリオブジェクトとして保存します。

1 アクティビティ文書の中央にある [Virtual Attachments] タブをクリックします。

2 [Attachments] の [Virtualize Attachments] オプションをクリックします。

3 [Attachment table] フィールドに、作成するテーブルの名前を入力します。owner.tablename 形式、または

schemaname.tablename 形式のいずれかを使用し、テーブル名を指定してください。MS へ接続するには、テーブル

名のみを入力します。

4 [Create Virtual Attachments Table] ボタンをクリックします。

5 [Create Attachment Table] ダイアログボックスが表示されます。このダイアログボックスでは、一部のフィールドの最

適な最大サイズを設定し、必要に応じてその他のフィールドの索引を作成できます。次の説明に従って、フォームに

必要な情報を入力します。

[Table Name] - アクティビティ文書の [Attachment table name] フィールドに入力したテーブル名が表示され!ます。

メモ テーブル名の最初の部分には所有者名を指定してください。たとえば、作成するテーブルの名前が

EMPTRANSFER、所有者名が DB2ADMIN の場合は、[Create Attachment Table] ダイアログボックスの [Table

Name] フィールドに「DB2ADMIN.EMPTRANSFER」と入力します。

[Use Connector Credentials] - メタデータの作成権限を与えられたリレーショナルデータベースユーザー ID !が必要です。コネクション文書のユーザー ID にこの権限が割り当てられていない場合は、このボックスをオフにして、別のユーザー ID とパスワードを入力してください。

6 上記の説明に従ってダイアログボックスに必要な情報を入力したら、このダイアログボックスの右上にある [OK] をク

リックします。

7 テーブルが作成されたことを知らせるメッセージが表示されます。

Page 208: LEI ユーザーズガイド

メモ テーブルがすでに存在する場合は、既存のテーブルを上書きするかを確認するメッセージが表示されま

す。[Yes] を選択すると、既存のテーブルとそのすべてのデータが消去されます。多くのタイプのコネクションでは、外

部プログラムから既存のテーブルへのフィールドの追加、またはフィールドへのプロパティを変更ができません。した

がって、間違って作成された既存の添付ファイルテーブルは変更できません。

テーブル作成ツールによって索引が作成されるフィールドの詳細については、本章の「[Virtual Attachments]」を参照してください。

Page 209: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

[Event Options] タブ

[Event Options] タブでは、Create イベント、Open イベント、Update イベント、および Delete イベントのオプションを指定できます。Virtual Documents アクティビティが監視するイベントのタイプに応じて、さまざまなオプションが表示されます。監視対象となるのは、そのアクティビティ文書で指定した Notes フォームで発生するイベントです。各オプションについては、次の表で説明します。

Virtual Fields アクティビティと異なり、Virtual Documents アクティビティはこれら 4 つの基本的なフォームイベントを常に処理します。

[Create] のオプション

文書の Create イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Create] のオプション

説明

Pre-Create Formula

文書のデータを保存する前に、Notes 式言語ステートメントが実行されます。既存のフィールド値を変更、または新しいフィールドの値を計算する場合にこのオプションを使用します。例 :

FIELD LASTNAME:=@if(LASTNAME = "";"NA";LASTNAME);""

メモ Oracle 外部システムに接続し、固定長のテキストフィールドをキーフィールドとして使用する場合は、式フィルタを使用してフィールドを決められた長さに調整します。詳細については、『Lotus Connector 接続ガイド』の Lotus Connector for Oracle 7 または Lotus Connector for Oracle 8 に関する説明を参照してください。

Stored Procedure 文書が作成される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのマッピングされたすべてのフィールドが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで入力パラメータとマッピングされる必要があります。

Virtual Documents アクティビティでは、4 つの必須列 (EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS) のうちの 1 つである必須パラメータ EINOTEID も表示されます。

メモ Virtual Documents でストアドプロシージャを使用する場合は、外部システムのそのストアドプロシージャに EINOTEID パラメータを追加する必要があります。詳細については、「Virtual Documents のイベントでのストアドプロシージャの使用」を参照してください。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output

[Enable Procedure Output] - このオプションは、[Stored Procedure] フィールドでストアドプロシージャを指定した場合のみ使用できます。このオプションを選択すると、アクティビティ文書の [Stored Procedure Output Mapping] セクションが開き、入力フィールド名と出力フィールド名を入力できるようになります。

このオプションは、ストアドプロシージャからのデータの返還を可能にします。Notes フィールドのマッピング、および以下のパラメータの出力を行ってください。

ストアドプロシージャに渡される引数を確認するには、このフィールドにストアドプロシージャ名を入力して、[F9] キーを押します。ストアドプロシージャ名の横に、そのストアドプロシージャに渡されるフィールドが表示されます。

メモ 現在、Lotus Connector for DB2 および Lotus Connector for SAP R/3 のみが出力パラメータのストアドプロシージャをサポートしています。

Page 210: LEI ユーザーズガイド

Stored Procedure Output Mapping

[Domino Application] - ストアドプロシージャの出力を受け取る Domino アプリケーション (Notes 文書) のフィールドを指定します。

[Lotus Connection] - ストアドプロシージャの出力を格納する外部システムのフィールドを指定します。外部システムの最初のフィールドが出力先の 1 番目のフィールドにマッピングされ、外部システムの 2 番目のフィールドが出力先の 2 番目のフィールドにマッピングされます。

メモ これらのフィールドは、アクティビティ文書の [Mapping] セクションで指定されている必要があります。

[Open] のオプション

文書の Open イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Open] のオプション

説明

Post-Open Formula 外部システムからデータを取得した直後に Notes 式を実行します。新しいフィールドの値を計算、または既存のフィールド値を変更する場合にこのオプションを使用します。例 :

FIELD FIRSTNAME := @if(FIRSTNAME = "Al";"Albert";FIRSTNAME);""

メモ 競合を検出するときは、[Post-Open Formula] は使用できません。

Stored Procedure 文書が開かれると、このオプションは外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのキーが渡されます。出力パラメータは、選択コンテキストから取得できます。Connector によるサポートの違いは、『Lotus Connector 接続ガイド』(lccon6.nsf) を参照してください。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで要求される入力パラメータとマッピングされる必要があります。

+Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Documents では、4 つの必須フィールドのうち EINOTEID フィールドのみを入力フィールドとして指定する必要があります。その他のフィールドは出力フィールドとなります。これらの指定は外部システムによって異なります。

プロシージャの出力パラメータをサポートしているコネクションの場合、キーフィールドは入力/出力パラメータとして渡され、その他のフィールドは出力パラメータとして渡されます。

メモ +Domino/LEI は、ストアドプロシージャの参照をサポートしています。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output Mapping

これらのフィールドは、Create イベントまたは Update イベントで [Stored Procedure Output] を選択した場合のみ表示されます。詳細については、Create イベントおよび Update イベントの説明を参照してください。

[Update] のオプション

文書の Update イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

Page 211: LEI ユーザーズガイド

[Update] のオプション

説明

Pre-Update Formula Notes 文書が更新される場合、外部データベースにデータを保存する前に Notes 式のステートメントを実行します。

Stored Procedure 文書が更新される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。入力パラメータとして、ストアドプロシージャにアクティビティのマッピングされたすべてのフィールドが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで入力パラメータとマッピングされる必要があります。

+Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Documents アクティビティでは、4 つの必須列 (EINOTEID、EIUNID、EIMODIFIED、EINOTEPROPS) のうちの 1 つである必須パラメータ EINOTEID も表示されます。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Stored Procedure Output

[Enable Procedure Output] - このオプションは、[Stored Procedure] フィールドでストアドプロシージャを指定した場合のみ使用できます。このオプションを選択すると [Stored Procedure Output Mapping] セクションが開き、入力フィールド名と出力フィールド名を入力できるようになります。

このオプションでの指定に基づいて、外部コネクションのストアドプロシージャのデータが Domino アプリケーションに返されます。入力パラメータとして、アクティビティのキー (EINOTEID) とフィールドがストアドプロシージャに渡されます。以下の [Procedure Output Mapping] セクションの [Notes Fields] および [Output Parameters] を入力してください。

パラメータおよびその順序を見るには、プロシージャ名を入力した後に [F9] を押してください。

メモ 現在、Lotus Connector for DB2 および Lotus Connector for SAP R/3 のみが出力パラメータのストアドプロシージャをサポートしています。

Conflict Detection [Check External Data for Changes] - Notes 文書を開いた後、外部データが変更されていないことを確認します。外部データが変更されている場合は、外部データソースを更新できません。

このオプションを選択した場合、Notes 文書のデータを変更してその文書を保存した後、さらに変更するときは、文書を終了してから新しい変更を加える必要があります。

メモ HTTP サーバーを使用して文書にアクセスするときは、[Conflict Detection] オプションを指定できません。

Field Level Updates [Only Update Changed Fields] - このオプションを選択した場合、Notes 文書の対応するフィールドが編集されない限り、外部データソースのフィールドが更新されません。

Page 212: LEI ユーザーズガイド

外部システムに、テーブルの各列への更新を監視するトリガーがある場合にこのオプションを使用します。

Stored Procedure Output Mapping

[Domino Application] - ストアドプロシージャの出力を受け取る Domino アプリケーション (Notes 文書) のフィールドを指定します。

[Lotus Connection] - ストアドプロシージャの出力を格納する外部システムのフィールドを指定します。外部システムの最初のフィールドが出力先の 1 番目のフィールドにマッピングされ、外部システムの 2 番目のフィールドが出力先の 2 番目のフィールドにマッピングされます。

メモ これらのフィールドは、アクティビティ文書の [Mapping] セクションで指定されている必要があります。

[Delete] のオプション

文書の Delete イベントを監視する場合、選択内容に応じていくつかのオプションを指定できます。各オプションについては、図の後の説明を参照してください。

[Delete] のオプション

説明

Pre-Delete Formula

外部データベースでデータを削除する直前に、Notes 文書で実行する Notes 式言語のステートメントを入力します。

たとえば、削除された文書に関する情報を電子メールで送信する場合は、次のようになります。

FIELD LASTNAME:=LASTNAME;

FIELD FIRSTNAME:=FIRSTNAME;

@MailSend("John Q Public";"";"";"Doc Deleted";"Doc deleted from MyDatabase w/ Firstname/Lastname of:";FIRSTNAME:LASTNAME);""

メモ 通常は、アクティビティデータが Notes 文書に保存されるように設定する必要があります。これを設定しない場合、指定した式からフィールド値にアクセスしたとき、それらのフィールド値がすでに削除されている可能性があります。たとえば、上記の例では、FIRSTNAME と LASTNAME が空になります。アクティビティデータが保存されるようにするには、[General Options] タブの [Data Storage] で、[Leave all real-time fields in document] または [Leave selected real-time fields in document] を選択します。

Stored Procedure 文書が削除される場合、このオプションは、外部コネクションのストアドプロシージャを実行します。プロシージャの入力パラメータとして、ストアドプロシージャにアクティビティのキーが渡されます。

ストアドプロシージャに渡されるフィールドの名前および順序を見るには、プロシージャ名を入力した後、[F9] を押します。このリストは、プロシージャで要求される入力パラメータとマッピングされる必要があります。

+Domino/LEI は、ストアドプロシージャの参照をサポートしています。

Virtual Documents では、4 つの必須フィールドのうち EINOTEID フィールドのみを入力フィールドとして指定する必要があります。その他のフィールドは出力フィールドとなります。これらの指定は外部システムによって異なります。

プロシージャの出力パラメータをサポートしているコネクションの場合、キーフィールドは入力/出力パラメータとして渡され、その他のフィールドは出力パラメータとして渡されます。

メモ Virtual Documents でストアドプロシージャを使用するには、別のパラメータをストアドプロシージャに追加する必要があります。詳細については、「Virtual Documents のイベントでのストアドプロシージャの使用」を参照してください。

メモ Sybase または OLE DB の結果セットを返すストアドプロシージャを使用するときに発生するエラーについては、「付録 A LEI とデータ」を参照してください。

Page 213: LEI ユーザーズガイド

Stored Procedure Output Mapping

これらのフィールドは、Create イベントまたは Update イベントで [Stored Procedure Output] を選択した場合のみ表示されます。詳細については、Create イベントまたは Update イベントの説明を参照してください。

Page 214: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents のイベントでのストアドプロシージャの使用

Virtual Documents アクティビティで処理する基本的な 4 つのイベント (Create、Open、Update、Delete) は、外部システムで定義されているストアドプロシージャでも処理できます。これらのプロシージャを使用すると、データフィールドを変更したり、レポート機能を追加するなど、特定の外部ロジックを操作に追加できます。ただし、ストアドプロシージャを使用する場合は、重要なガイドラインに従ってそのストアドプロシージャを記述する必要があります。

現在、ストアドプロシージャでは外部キーテーブルを使用できません。

まず、パラメータの 1 つとして、必ず EINOTEID をストアドプロシージャに渡す必要があります。このパラメータは、Virtual Document アクティビティを実行する際、外部システムテーブルに必ず追加する必要のある列の 1 つに対応しています。ストアドプロシージャ内から外部システムテーブルにアクセスするには、EINOTEID パラメータを固有のキーとして使用する必要があります。EINOTEID フィールドとそのデータ型の詳細については、「Virtual Documents アクティビティで使用する外部システムの必須フィールド」を参照してください。

2 番目に、削除以外のすべてのイベントについて、Virtual Document アクティビティでマッピングされている外部システムテーブルのすべてのデータフィールドをパラメータとして指定する必要があります。その他のパラメータは使用できません。削除イベントのストアドプロシージャでは、EINOTEID のみ指定する必要があります。

3 番目に、ストアドプロシージャは、関連付けられている Virtual Document イベントと同じオペレーションを実行する必要があります。たとえば、Open ストアドプロシージャは、EINOTEID をキーとして使用して Select オペレーションを実行します。Create ストアドプロシージャは、新しい行をテーブルに挿入します。ストアドプロシージャは、データを変更、他のテーブルにアクセス、また、他のオペレーションを実行できます。ただし、Virtual Documents アクティビティで指定された外部システムテーブル上でのオペレーションは、そのイベントと一致する必要があります。

メモ EINOTEID パラメータの値は決して変更しないでください。

最後に、Delete ストアドプロシージャの実行時には十分な注意が必要です。ストアドプロシージャが EINOTEID をキーとして使用し、外部システムのテーブル行を実際に削除した場合、Domino では、仮想文書の削除をレプリカデータベースに反映できなくなります。仮想文書の削除を複製する必要がある場合は、ストアドプロシージャが実際に行を削除できないようにしてください。こうすることで、外部システムのテーブルからは行が削除されませんが、Domino では、その行が削除されたと認識されます。この場合でも、Delete ストアドプロシージャを使用して、レポートオペレーションやその他のハウスキーピングオペレーションを実行できます。Delete ストアドプロシージャの使用目的が外部システム行の削除のみの場合は、代わりに Virtual Documents アクティビティの [Maintain Deletion Stubs] オプションを無効にする方法もあります。

ストアドプロシージャのパラメータ要件をまとめると、次のようになります。

Create イベントと Update イベントでは、マッピングされたデータフィールドに加え、ストアドプロシージャは EINOTEID フィールドを入力パラメータとして受け取る必要があります。

Open イベントでは、マッピングされたデータフィールドに加え、ストアドプロシージャは EINOTEID フィールドを入力/出力パラメータとして受け取る必要があります。

Delete イベントでは、入力パラメータとして EINOTEID のみをマッピングする必要があります。

EINOTEID のマッピングについては、名前とデータ型が正しいかを確認する以外は何もする必要がありません。

ストアドプロシージャのサンプル

次に、サンプルとして、EINOTEID パラメータの使い方を示す簡単な DB2 ストアドプロシージャをいくつか紹介します。Virtual Document アクティビティで、2 つのデータフィールド (EMPNO と SALARY) がマッピングされているものとします。

OPEN サンプル

以下は、DB2 の「Delete」ストアドプロシージャのサンプルです。

CREATE PROCEDURE MRL_EMP_EIVD_OPEN (INOUT EINOTEID INT, OUT EMPNO INT, OUT SALARY INT)

言語 SQL

----------------------------------------------------------------------

-- SQL ストアドプロシージャ

----------------------------------------------------------------------

P1:BEGIN

DECLARE KeyVar INT;

SET KeyVar = EINOTEID;

SELECT EMPNO, (SALARY * 2) AS SALARY, EINOTEID

INTO EMPNO, SALARY

FROM MRL_EMP_EIVD

WHERE MRL_EMP_EIVD.EINOTEID = KeyVar;

END P1

UPDATE サンプル

Page 215: LEI ユーザーズガイド

以下は、DB2 の「Update」ストアドプロシージャのサンプルです。

CREATE PROCEDURE MRL_EMP_EIVD_UPDATE (IN EINOTEID INT, IN EMPNO INT, IN SALARY INT)

言語 SQL

------------------------------------------------------------------------

-- SQL ストアドプロシージャ

------------------------------------------------------------------------

P1:BEGIN

DECLARE KeyVar INT;

DECLARE VarEmpno INT;

DECLARE VarSalary INT;

SET KeyVar = EINOTEID;

SET VarEmpno = EMPNO;

SET VarSalary = SALARY;

UPDATE MRL_EMP_EIVD

SET EMPNO=VarEmpno, SALARY=VarSalary*2

WHERE MRL_EMP_EIVD.EINOTEID = KeyVar;

END P1

UPDATE サンプル (出力パラメータを使用)

以下は、DB2 の「Update」ストアドプロシージャのサンプルです。ここでは出力パラメータも使用します。

CREATE PROCEDURE MRL_EMP_EIVD_UPDATE_OUTPARAM (IN EINOTEID INT, INOUT EMPNO INT, INOUT SALARY INT)

言語 SQL

------------------------------------------------------------------------

-- SQL ストアドプロシージャ

------------------------------------------------------------------------

P1:BEGIN

DECLARE KeyVar INT;

DECLARE VarEmpno INT;

DECLARE VarSalary INT;

SET KeyVar = EINOTEID;

SET VarEmpno = EMPNO;

SET VarSalary = SALARY;

UPDATE MRL_EMP_EIVD

SET EMPNO=VarEmpno, SALARY=VarSalary*2

WHERE MRL_EMP_EIVD.EINOTEID = KeyVar;

SET EMPNO = VarEmpno;

SET SALARY = VarSalary*2;

END P1

CREATE サンプル

以下は、DB2 の「Create」ストアドプロシージャのサンプルです。

CREATE PROCEDURE MRL_EMP_EIVD_CREATE_OUTPARAM (IN EINOTEID INT, IN EMPNO INT, IN SALARY INT)

言語 SQL

------------------------------------------------------------------------

-- SQL ストアドプロシージャ

------------------------------------------------------------------------

P1:BEGIN

Page 216: LEI ユーザーズガイド

DECLARE KeyVar INT;

DECLARE VarEmpno INT;

DECLARE VarSalary INT;

SET KeyVar = EINOTEID;

SET VarEmpno = EMPNO;

SET VarSalary = SALARY * 2;

INSERT INTO MRL_EMP_EIVD (EINOTEID, EMPNO, SALARY)

VALUES (KeyVar, VarEmpno, VarSalary);

END P1

CREATE サンプル (出力パラメータを使用)

以下は、DB2 の「Create」ストアドプロシージャのサンプルです。ここでは出力パラメータも使用します。

CREATE PROCEDURE MRL_EMP_EIVD_CREATE_OUTPARAM (IN EINOTEID INT, INOUT EMPNO INT, INOUT SALARY INT)

言語 SQL

------------------------------------------------------------------------

-- SQL ストアドプロシージャ

------------------------------------------------------------------------

P1:BEGIN

DECLARE KeyVar INT;

DECLARE VarEmpno INT;

DECLARE VarSalary INT;

SET KeyVar = EINOTEID;

SET VarEmpno = EMPNO;

SET VarSalary = SALARY * 2;

INSERT INTO MRL_EMP_EIVD (EINOTEID, EMPNO, SALARY)

VALUES (KeyVar, VarEmpno, VarSalary);

SET EMPNO = VarEmpno;

SET SALARY = VarSalary;

END P1

DELETE サンプル

以下は、DB2 の「Delete」ストアドプロシージャのサンプルです。

CREATE PROCEDURE MRL_EMP_EIVD_DELETE (IN EINOTEID INT)

言語 SQL

------------------------------------------------------------------------

-- SQL ストアドプロシージャ

------------------------------------------------------------------------

P1:BEGIN

DECLARE KeyVar INT;

SET KeyVar = EINOTEID;

DELETE FROM MRL_EMP_EIVD

WHERE EINOTEID = KeyVar;

END P1

Page 217: LEI ユーザーズガイド

第 13 章 VIRTUAL DOCUMENTS アクティビティ

Virtual Documents に対する Virtual Agents の実行

ビューで文書を選択し、その文書に対して Virtual Agent を実行して Virtual Documents を変更すると、対象の文書が即座に更新されます。ただし、Virtual Agent が View 列内の値を更新する場合は、文書に対する変更がそのビューに即座に反映されません。これらの変更を表示するには、[Shift] + [F9] キーを押して、索引を作成し直す必要があります。

開いている仮想文書に対して Virtual Agent を実行する場合は、その文書を一度閉じてから再び開くと、変更内容が表示されます。この動作は、開いている文書に対してネイティブの Domino Agent を実行した場合と同様です。

Page 218: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

第 14 章 Virtual Agents アクティビティ

LEI には、次の 3 種類の Advanced RealTime アクティビティがあります。

Virtual Fields (これまでは LEI RealTime または DECS RealTime と呼ばれていました)!

Virtual Documents!

Virtual Agents!

Virtual Agents アクティビティについて説明します。

Page 219: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Agents アクティビティの概要

Virtual Agents アクティビティでは、外部システムのデータベース上でストアドプロシージャを実行する Domino エージェントが作成されます。このアクティビティで作成されたエージェントは、[Domino Agent] メニューに追加されます。ストアドプロシージャがパラメータを必要とする場合は、これらのパラメータを設定した Domino 文書を作成し、エージェントの実行時にその文書を選択します。

Virtual Agents アクティビティは、外部のストアドプロシージャを 2 つの方法で実行します。

パラメータを使用しない方法!

選択された文書に格納されているパラメータ値を使用する方法!

パラメータを受け付けないプロシージャの実行時には文書を使用しません。これらのプロシージャは、「データベース内のすべての文書に対して実行されるエージェント」として作成し、指定します。パラメータを受け付けるプロシージャは、「選択した文書に対して実行されるエージェント」として作成します。この場合、少なくとも 1 つの文書を選択する必要があります。仮想エージェント用として選択したすべての文書は、そのエージェントの入力パラメータのソースとして使用されます。外部ストアドプロシージャの入力パラメータは、対象文書内のそれぞれ対応するフィールドから取得されます。

たとえば、3 つの文書を選択して、外部ストアドプロシージャを 3 回実行する場合、各文書から直接取得した入力パラメータを使用してこのプロシージャが 1 回ずつ実行されます。さらに、Virtual Agents 用として選択した各文書からプロシージャのパラメータに対応する項目が取得され、そのプロシージャの入力パラメータとして使用されます。

外部システムのストアドプロシージャは名前で定義します。また、オプションの入力と出力も指定できます。入力データは常にパラメータとして渡されるのに対し、出力データは、出力 (入出力) パラメータまたは結果セットとして返されます。Domino のエージェントにはパラメータを直接渡すことができません。ただし、エージェントの実行時に文書を使用することによって同様の機能を実現できます。

メモ 出力パラメータを受け取る仮想化されていない Notes 文書、または Notes 内の仮想化されていないフィールドを変

更するには、Virtual Agent アクティビティの出力パラメータを使用します。

メモ データベースがすでに開いている場合、Virtual Agent は更新されません。

メモ Virtual Agent アクティビティを停止すると、エージェントが表示されなくなります。ただし、クライアントでデータベース

を開いている場合は、[Actions] メニューにエージェントが表示されたままとなります。データベースを閉じて、再び開くと、

エージェントが表示されなくなります。

ストアドプロシージャのパラメータ

エージェントが実行するストアドプロシージャが引数を必要とする場合は、外部システムのストアドプロシージャのパラメータとまったく同じ名前のフィールドが設定された Domino 文書を作成します。Domino 文書にこれらのフィールドを設定し、各フィールドに適切な値 (入力パラメータ) を指定すると、エージェントを実行可能になります。

Page 220: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

User Assistant を使用して Virtual Agents アクティビティを作成する

User Assistant を有効にすると、新しい Virtual Agents アクティビティの作成手順が表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。

ここでは、User Assistant を使用して Virtual Agents アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

手順 1: アクティビティ文書を開く

[Activity] ビューまたは [Favorites] ビュー ([Folder] ビュー) で、アクションバーの [Add Activity] アイコンをクリックします。メッセージボックスが開き、User Assistant でアクティビティ文書を作成するための手順が表示されます。

User Assistant でまだ何も選択していない場合、このメッセージボックスで [Cancel] ボタンをクリックすると、アクティビティ文書が閉じて LEI Administrator に戻ります。User Assistant で項目を選択した場合、[Cancel] ボタンをクリックすると User Assistant が終了します。ただし、アクティビティ文書は編集モードで開いたままで、その時点までの選択内容が表示されます。その後、アクティビティ文書を手動で完成するか、中断できます。

メモ User Assistant で選択した内容を後で変更するには、そのアクティビティ文書を編集モードで開いてください。

手順 2: 監視する Domino データベースを選択する

Domino データベースのリストが表示されます。監視する Domino データベースを選択します。

Page 221: LEI ユーザーズガイド

メモ リストの表示項目が多い場合は、リストをスクロールして目的の Domino アプリケーション (.nsf) を選択してくださ

い。ただし、リストの項目が多すぎるためスクロールしても全項目を表示できない場合は、リストの最後にオーバーフロー

メッセージ (<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベー

スの正確な名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編

集、削除」および「基本的な参照について」を参照してください。

監視では、アプリケーションデータベースの Notes レプリカ ID が使用されます。Virtual Agents アクティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベースが互いのレプリカである場合、またオペレーティングシステムを使用し、既存のデータベースをコピーすることによって新しいデータベースを作成した場合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 3: 外部データソースの Lotus コネクションを選択する

次に示す [Select Connection] ダイアログボックスのリストから、監視する外部データソースのコネクションを選択します。

メモ リストの表示項目が多い場合は、リストをスクロールして目的のコネクションを選択してください。ただし、リストの項

目が多すぎるためスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベースの正確な

名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」お

よび「基本的な参照について」を参照してください。

Page 222: LEI ユーザーズガイド

手順 4: 所有者を選択する

画面の指示に従って、メタデータの所有者を選択します。

手順 5: アクティビティ文書に名前を付ける

画面の指示に従い、固有のアクティビティ名を入力して [OK] をクリックします。

Page 223: LEI ユーザーズガイド

アクティビティ名を入力して [OK] をクリックすると、次のように、Virtual Fields アクティビティのオプションに関する説明がメッセージボックスに表示されます。

[OK] をクリックします。Virtual Agents アクティビティ文書が開き、これまでの選択内容が表示されます。文書内に示されている番号アイコンは、User Assistant で Virtual Agents アクティビティを作成したときの手順番号に対応しています。

手順 6: オプションおよびイベントオプションを選択する

文書の [Options] タブおよび [Event Options] タブで、必要なオプションとイベントオプションを選択します。詳しくは、本章でこの後説明する「Virtual Agents アクティビティ文書のオプション」を参照してください。

手順 7: スケジュール関連のオプションを選択する

Virtual Agents アクティビティのスケジュールを制御する方法を選択します。[Manual]、[AutoStart]、または [Custom] を選択できます。詳しくは、本章のスケジュールに関する説明を参照してください。

手順 8: 文書を保存して閉じる

[File] - [Save] を選択して、この Virtual Agents アクティビティの定義を保存します。[File] - [Close] を選択して Virtual Agents アクティビティ文書を閉じ、LEI Administrator に戻ります。

手順 9: Virtual Agents アクティビティを処理する

Virtual Fields アクティビティを処理するには、[Activities] ビューまたは [Favorites] ([Folders]) ビューのアクションバーにある [Start] ボタンと [Stop] ボタンを使用します。アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合は、サーバーを起動するたびに Virtual Agents アクティビティが実行されます。詳しくは、「第5章 LEI アクティビティの概要」の「スケジュール」を参照してください。

目的の Virtual Agents アクティビティをクリックして選択し、[Start] ボタンをクリックして処理を開始します。

Virtual Agents アクティビティを停止するには、目的の Virtual Agents アクティビティを選択して [Stop] ボタンをクリックし

Page 224: LEI ユーザーズガイド

ます。

Page 225: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

User Assistant を使用せずに Virtual Agents アクティビティを作成する

User Assistant を有効にすると、Virtual Agents アクティビティの作成手順が表示されます。User Assistant のオンとオフを切り替えるには、LEI Administrator のナビゲータパネルにある [Help] オプションを使用します。User Assistant が無効な場合は、空白のアクティビティ文書が表示されます。この文書に必要項目を入力してアクティビティを定義します。

ここでは、User Assistant を使用せずに Virtual Agents アクティビティを作成する方法について説明します。ここで説明されていないオプションについては、「第3章 LEI Administrator」および「第5章 LEI アクティビティの概要」を参照してください。

手順 1: アクティビティ文書を開く

[Add Activity] アイコンをクリックします。Virtual Agents アクティビティ文書が開きます。

手順 2: アクティビティの名前を入力します。

文書の一番上にある [Name] フィールドに、このアクティビティの固有の名前を入力します。

手順 3: 監視する Domino アプリケーションを選択する

[Domino Application] セクションの下矢印アイコンをクリックします。データベースのリストが表示されます。監視するデータベースを選択します。

メモ リストの表示項目が多い場合は、リストをスクロールして目的の Domino アプリケーション (.nsf) を選択してくださ

い。ただし、リストの項目が多すぎるためスクロールしても全項目を表示できない場合は、リストの最後にオーバーフロー

メッセージ (<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベー

スの正確な名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編

集、削除」および「基本的な参照について」を参照してください。

メモ 即時監視 (「リアルタイム」監視) では、アプリケーションデータベースの Notes レプリカ ID が使用されます。Virtual

Agents アクティビティは、同じレプリカ ID を共有する複数のデータベースを識別しません。複数のデータベースが互いの

レプリカである場合、またオペレーティングシステムを使用し、既存のデータベースをコピーすることによって新しいデータ

Page 226: LEI ユーザーズガイド

ベースを作成した場合、それらのデータベースには同じレプリカ ID が割り当てられます。

手順 4: データソースの Lotus Connection を選択する

[External System] セクションの下矢印アイコンをクリックして、既存の Lotus Connection の文書から使用する文書を選択します。

メモ リストの表示項目が多い場合は、リストをスクロールして目的のコネクションを選択してください。ただし、リストの項

目が多すぎるためスクロールしても全項目を表示できない場合は、リストの最後にオーバーフローメッセージ

(<overflow...>) が表示され、さらにリストの下にボックスが表示されます。このボックスに、使用するデータベースの正確な

名前を入力します。参照および参照要件の詳細については、「第3章 LEI Administrator」の「文書の作成、編集、削除」お

よび「基本的な参照について」を参照してください。

手順 5: オプションおよびイベントオプションを選択する

文書の [Options] タブおよび [Event Options] タブで、必要なオプションとイベントオプションを選択します。詳しくは、本章でこの後説明する「Virtual Agents アクティビティ文書のオプション」を参照してください。

手順 6: スケジュール関連のオプションを選択する

Virtual Agents アクティビティのスケジュールを制御する方法を選択します。[Manual]、[AutoStart]、または [Custom] を選択できます。詳しくは、本章のスケジュールに関する説明を参照してください。

手順 7: 文書を保存して閉じる

[File] - [Save] を選択して、この Virtual Agents アクティビティの定義を保存します。[File] - [Close] を選択して Virtual Agents アクティビティ文書を閉じ、Virtual Agents アクティビティの LEI Administrator に戻ります。

手順 8: Virtual Agents アクティビティを処理する

Virtual Fields アクティビティを処理するには、[Activities] ビューまたは [Favorites] ([Folders]) ビューのアクションバーにある [Start] ボタンと [Stop] ボタンを使用します。アクティビティ文書の [Scheduling] セクションで [Auto Start] を選択した場合は、サーバーを起動するたびに Virtual Agents アクティビティが実行されます。詳しくは、「第5章 LEI アクティビティの概要」の「スケジュール」を参照してください。

目的の Virtual Agents アクティビティをクリックして選択し、[Start] ボタンをクリックして処理を開始します。

Virtual Agents アクティビティを停止するには、目的の Virtual Agents アクティビティを選択して [Stop] ボタンをクリックします。

Page 227: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Agents アクティビティ文書のオプション

使用する Domino データベースとコネクションを指定した後、さらに必要であれば、Virtual Agents アクティビティを設定するためのオプションを指定できます。

ここでは、次の 2 つのグループのオプションについて説明します。

[General Options]!

[Integrated Credentials]!

すべてのアクティビティ文書に共通する次のセクションについては、「第5章 LEI アクティビティの概要」を参照してください。

Activity Name (アクティビティ名)!

Scheduling (スケジュール)!

Category (カテゴリ)!

Comments (コメント)!

Page 228: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Agents アクティビティの [General Options]

Virtual Agents アクティビティ文書の [General Options] タブには、Virtual Agents アクティビティで使用できるオプションが表示されます。次の図を参照してください。[General Options] の各オプションについては、図の後の説明を参照してください。

[General Options] 説明

External Owner Name

外部システムの所有者を指定すると、その所有者のストアドプロシージャのみが選択リストに表示されます。下矢印をクリックして、所有者のリストを表示します。

メモ 外部システムの所有者を選択します。[External Owner Name] を指定した場合のみ、[Agent Pattern List] が表示されます。

Agent Pattern List 選択したエージェントのみが実行されます。下矢印をクリックするとダイアログボックスが表示されます。このダイアログボックスのリストからエージェントを選択します。「*」や「?」などのワイルドカードを使用してエージェント名を入力し、エージェントをパターン検索することもできます。

Max. Connections 文書を同時に開いたり、文書の作成、更新、削除を同時に行うなど、複数のユーザーからの要求に対して同時に開くことができる外部データベースへの最大コネクション数を指定します。

Notes アプリケーションで最初のイベントが発生すると、LEI は外部データソースへのコネクションを 1 つ開きます。2 番目、3 番目のイベントが同時に発生した場合は、それに応じて新しいコネクションが開きます。開いているコネクションの数がこのオプションで指定した最大数に達すると、それ以降のイベントはキューに登録され、先に発生したイベントから順番に処理されます。

コネクションが開いているのは、外部データソースに対してデータを読み書きする間のみです。読み書きするデータ量に応じて、各イベントの処理に必要な最小限の時間だけコネクションが維持されます。したがって、複数のイベントを処理する場合でも、コネクションの最大数をそれほど大きくする必要はありません。通常は、最大コネクション数として「2」または「3」を設定しますが、動作が遅いと感じる場合は最大数を増やしてください。

Shutdown Options [Delete Agents on Shutdown]:アクティビティの停止時に仮想エージェントが削除されます。このオプションがオフの場合は、noteid が再使用されます。Virtual Agents アクティビティを再起動したとき、同じ名前の Virtual Agent 文書が存在する場合は新しい文書が作成されず、前の noteid が再使用されます。ただし、エージェント文書の内容は、外部システムのストアドプロシージャの変更内容に合わせて作成し直されます。

Output Parameters [Save Output Parameters]:ストアドプロシージャから返された出力パラメータが選択した文書に保存されます。ストアドプロシージャが外部システムのデータも変更した場合は、選択した仮想化レコードにマッピングされているフィールドが変更されないように注意してください。この場合、出力パラメータをそのレコードに保存すると、外部システムに直接加えられた変更が上書きされる場合があります。

Page 229: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Agents の [Integrated Credentials]

[Integrated Credentials] のオプションを使用すると、外部システムのユーザー情報が自動的に参照されます。ユーザー情報は外部システムへの接続時に使用されます。

メモ 統合されたユーザー情報データベースの詳細については、「第5章 LEI アクティビティの概要」を参照してください。

統合されたユーザー情報の設定と使用の詳細については、Virtual Fields の [Integrated Credentials] に関する説明を参

照してください。

メモ Virtual Agents は、統合されたユーザー情報のみを使用してエージェントを実行します。

次の図の後で、[Integrated Credentials] の各オプションについて説明します。

[Integrated Credentials] のオプション

説明

Use Lotus Connector for xyz Credentials

このアクティビティで使用するコネクション文書で指定されているユーザー ID とパスワードを使用します。

Lookup Credentials [Missing Credentials] - ユーザ情報データが見つからない場合の処理方法を指定します。

[Use Connector Credentials] - このオプションを選択した場合、ユーザー情報の検索に失敗したときに、そのアクティビティのデフォルトのユーザー情報を使用できます。このオプションを選択しない場合は、操作に失敗します (デフォルトの動作)。

[Credentials DB Filepath] - ユーザー情報データベースの名前を入力します。この

Page 230: LEI ユーザーズガイド

データベースに、Notes ユーザー名とそれに対応する外部システムのユーザー情報が保存されます。LEI ディレクトリ (leidir など) を基準とする相対パスを指定してください。

メモ このデータベースは、テンプレート leicred.ntf を使用して作成されている必要があります。本書の「第5章 LEI アクティビティの概要」の「統合されたユーザー情報データベースのセットアップおよび使用」を参照してください。

Page 231: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

HTTP クライアントからの Virtual Agents アクティビティの実行

HTTP クライアントを使用して Virtual Agent を実行するには、URL を指定する方法と、フォームの設計時にそのエージェントを Web クライアントに追加する方法があります。

URL の使用

Virtual Agent を URL から直接実行できます。たとえば、「Update_VA」というエージェントをサーバー「MyServer」上に配置し、names.nsf データベースを使用する場合、URL コマンドは次のようになります。

http://myserver.mysite.com/names.nsf/Update_VA?OpenAgent

フォームの設計での Web オブジェクトの使用

HTTP クライアント経由で仮想エージェントを実行するには、フォームの設計時に、そのフォームの WebQuerySave または WebQueryOpen オブジェクトを挿入する方法があります。たとえば、次のようになります。

@Command([ToolsRunMacro]; "<Your agent goes here>")

Web でそのフォームを保存するたびに、または Web からそのフォームを開くたびに、指定した仮想エージェントが実行されます。

Page 232: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Documents に対する Virtual Agents の実行

ビューで文書を選択し、その文書に対して Virtual Agent を実行することによって Virtual Documents を変更すると、対象の文書が即座に更新されます。ただし、Virtual Agent が View 列内の値を更新する場合は、文書に対する変更がそのビューに即座に反映されません。これらの変更を表示するには、[Shift] + [F9] キーを押して、索引を作成し直す必要があります。

開いている仮想文書に対して Virtual Agent を実行する場合は、その文書を一度閉じてから再び開くと、変更内容が表示されます。この動作は、開いている文書に対してネイティブの Domino Agent を実行した場合と同じです。

Page 233: LEI ユーザーズガイド

第 14 章 VIRTUAL AGENTS アクティビティ

Virtual Fields に対する Virtual Agents の実行

Virtual Agent を実行して Virtual Fields 文書を変更すると、指定した文書が即座に更新されます。ただし、Virtual Agent がビューの列内の値を更新する場合は、文書に対する変更がそのビューに反映されません。また、[Shift] + [F9] キーを押してもビューは更新されません。

Virtual Fields をビュー内に表示するには、アクティビティの作成時に [Leave all real-time fields in document] または [Leave selected real-time fields in document] を選択する必要があります。これにより、文書内のフィールドのネイティブコピーが作成されます。外部システムのデータが変更された場合にこれらのフィールドを更新、または変更を反映するには、Notes 文書を手動で更新するか、式やスクリプトを使用する必要があります。

Page 234: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

第 15 章 Replication アクティビティ

本章では、LEI の Replication アクティビティについて説明します。

Page 235: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication アクティビティの概要

Replication アクティビティでは、一方のデーターベースをもう一方のデータベースのデータで更新することにより、データベース間の同期を行います。

Replication アクティビティは、2 種類あります。

1 次キー複製 !

タイムスタンプ複製 !

Replication アクティビティ文書の [Conditional Clause] に条件を使用して結果セットを絞り込むことで、より高度で選択的な複製を実行できます。詳しくは、本章の「Replication アクティビティの種類」セクションを参照してください。

一方のデータベースのデータ項目がもう一方のデータベースのデータ項目と完全に一致しない場合の競合 (LEI 用語ではインスタンス) をアクティビティで解決する方法を制御できます。

Page 236: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication アクティビティの使用方法

Replication アクティビティは、次のときに使用することを推奨します。

2 つのデータベース間でデータを同期するとき!

一方のデータソースからもう一方のデータソースにデータをマージするとき!

Replication アクティビティを Polling アクティビティと組み合わせると、Replication アクティビティの実行時期を詳細に制御できます。たとえば、一方のデータベースでデータの挿入などの特定のイベントを監視し、このイベントが発生したときに Replication アクティビティを実行し、もう一方のデータベースにデータを複製できます。

Page 237: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication アクティビティの種類

Replication アクティビティでは、次の 2 種類 (1 次キーとタイムスタンプ) の複製を実行できます。

1 次キー複製

LEI の 1 次キー複製では、両方のコネクションに共通する固有のキー (メタデータ形式 1 つ以上のフィールドから構成可能) に基づいて、データが複製されます。1 次キーの機能は、両方のデータソースに一致するレコードが存在することを確認して、レコードの更新、新規レコードの挿入、またはレコードの削除が必要かどうかを判断することです。

複製が行われるときには、次の既定のルールに従ってレコードが複製されます。

両方のコネクションにキー値が一致しているレコードが存在し、そのデータフィールド値が同じ場合は、何も起こりま!せん。

両方のコネクションにキー値が一致しているレコードが存在し、そのデータフィールド値が異なる場合は、ターゲットレ!コードを更新します。

ターゲットに存在しないキー値がソースレコードに含まれている場合は、ターゲットに新規レコードを挿入します。 !

ソースに存在しないキー値がターゲットレコードに含まれている場合は、そのレコードをターゲットから削除します。!

メモ 1 次キー複製では、Replication アクティビティはソースのレコードを変更しません。

タイムスタンプ複製

[Enable Timestamp Replication] オプションを使用することで、アクティビティ文書にあるタイムスタンプフィールドに基づいて複製を制御できます。このオプションを使用するためには、アクティビティ文書に指定されている 2 つのコネクション (ソースおよびターゲット) にタイムスタンプフィールドが少なくとも 1 つは含まれている必要があります。

Replication アクティビティ文書は、それぞれのコネクションの最後の複製をベースに、内部のタイムスタンプフィールド ([SrcTimeStamp] フィールドおよび [DestTimeStamp] フィールド) を保持します。これらのフィールドを閲覧するには、アクティビティ文書の文書プロパティを表示します。アクティビティ文書を右クリックしてプロパティを表示するか、Notes のトップバーから [ファイル] - [文書のプロパティ] を選択します。[フィールド] タブでスクロールして、フィールド名を探します。

タイムスタンプ複製では、「ソース」および「ターゲット」の指定はありません。Replication アクションによっては、どちらのコネクションにも影響が出る場合があります。アクティビティ文書上では、コネクションがソースおよびターゲットとして指定されるため、本書における以下のルール説明にはこれらの用語を使用します。

複製が実行されるときは、次の既定のルールに従ってレコードが複製されます。

SrcTimeStamp 値よりも後の時刻のタイムスタンプ値がソースレコードに含まれ、同じキーフィールドを持つターゲット!レコードが存在しない場合は、ターゲットに新規レコードを挿入します。

DestTimeStamp 値よりも後の時刻のタイムスタンプ値がターゲットレコードに含まれ、同じキーフィールドを持つソー!スレコードが存在しない場合は、ソースに新規レコードを挿入します。

SrcTimeStamp 値よりも後の時刻のタイムスタンプ値がソースレコードに含まれ、同じキーフィールドを持つターゲット!レコードが存在する場合は、ターゲットレコードを更新します。

DestTimeStamp 値よりも後の時刻のタイムスタンプ値がターゲットレコードに含まれ、同じキーフィールドを持つソー!スレコードが存在する場合は、ソースレコードを更新します。

どちらのコネクションからもレコードは削除されません。!

メモ ターゲットレコードおよびソースレコードが同じキーフィールドを共有していて、各レコードにそれぞれ

SrcTimeStamp、DestTimeStamp よりも後の時刻のタイムスタンプ値が含まれる場合は、ターゲットレコードを更新します。

この場合、Replication アクティビティでは、タイムスタンプ値を複製アクションの判定には使用しません。

タイムスタンプ複製について最初のタイムスタンプ複製時は、SrcTimeStamp および DestTimeStamp の初期値が 01/01/0001 12:00:00 AM であるため、両方のコネクションのレコードすべてが上記のルールに従って複製されます。移行の複製は、以下で説明されているルールに合わせられます。

Replication アクションは、タイムスタンプウィンドウを使用して決定されます。複製対象のレコード内に SrcTimeStamp ま

Page 238: LEI ユーザーズガイド

たは DestTimeStamp よりも後の時刻のタイムスタンプ値が含まれているかどうかという基準を厳密には従いません。ソースレコードまたはターゲットレコードが複製されるためには、ソースおよびターゲットのタイムスタンプ値がそれぞれの内部タイムスタンプ値 (SrcTimeStamp または DestTimeStamp) よりも後の時刻であり、しかもデータベースサーバーの現在のシステム時刻よりも前の時刻である必要があります。以下のような場合を考えます。

Replication アクティビティ文書の中のソースコネクションは DB2 です。そのソースコネクションにはタイムスタンプフィールドとして [LASTUPDATED] が指定されています。ソースコネクションには、[LASTUPDATED] が現在 03/27/02 11:31:46 AM のレコードがあります。[SrcTimeStamp] フィールドの値は 03/27/02 10:47:07 AM で、DB2 Server の現在のシステム時刻は 03/27/02 11:29:12 AM です。このレコードは複製されません。03/27/02 11:31:46 AM は、SrcTimeStamp (03/27/02 10:47:07 AM) よりも後の時刻にはなっていますが、DB2 Server の現在のシステム時刻 (03/27/02 11:29:12 AM) よりも前の時刻にはなっていないためです。こうした状況を回避するには、使用されているすべてのタイムスタンプ (特にトリガまたは数式を使用して設定されたタイムスタンプ) を相互に同期させます。

メモ タイムスタンプ複製時に、タイムスタンプとして使用される [DB2] 列は、DATE 型ではなく TIMESTAMP 型である必

要があります。

Notes データベースでのタイムスタンプ複製の使用

タイムスタンプ複製中に Replication アクティビティは、Notes データベースがある Domino Server の時刻を現在のシステム時刻として使用して、レコードを複製する必要があるかどうかを判定します。そのため、この時刻の取り込み先となるタイムスタンプフィールドの使用は重要になります。@Modified を使用すると、文書が保存されたときに Domino Server によってセットされた文書の変更日時が取得されます。

@Modified の値はサーバーから得られ、@Now の値はデスクトップから得られます。Domino Server の時刻と Notes Client コンピュータの時刻が正確には一致していない場合があるため、クライアントの時刻がサーバーの時刻よりも進んでいると、タイムスタンプ複製で一部の文書が失われる可能性があります。したがって、タイムスタンプとして使用するフィールドには、適切な時刻を入手できるように @Modified を使用する必要があります。しかし、@Modified では前回の保存時のタイムスタンプが格納されるため、常に 1 回前の編集日時がセットされます。@Modified は変更時刻を読み取りますが、式の実行時には、実行文書に前回の保存時の日時が含まれるため、現在の保存時刻を返しません。

この問題を解決するには、以下の 2 つの方法があります。

1 つは Notes コネクションオプションの [Load last modified TimeStamp (@Modified)] を使用する方法です。この場!合、Replication アクティビティ文書のタイムスタンプフィールドには @Modified が入力されます。この方法を使用すると、Notes アプリケーションに特別な変更は必要ありません。このオプションの詳細については、Notes コネクションに関する章を参照してください。

もう 1 つは、QueryClose イベントを Notes フォームに挿入する方法です。!

タイムスタンプフィールド (計算結果フィールドである必要があります) で、次の式を使用します ([EditedDate] はタイムスタンプ用に使用されるフィールドのフィールド名です)。

@IF(@IsDocBeingSaved;@Modified; EditedDate)

この式は、文書が保存されるときに、変更日時を Domino Server から取得して [EditedDate] フィールドに保存します。それ以外の場合は変更しません。

フィールドに、前回の編集日時ではなく実際の編集日時を入れるために、フォームに QueryClose イベントのスクリプトを作成します。このイベントスクリプトは文書に 2 回の保存を実行します。最初は、[EditedDate] フィールドに前回の編集日時をセットします。2 回目は、実際に保存を実行した日時がセットされます。このスクリプトでは実際の時刻の 10 分の 1 秒まで保存できます。

Sub Queryclose(Source As Notesuidocument, Continue As Variant)

Dim workspace As New NotesUIWorkspace

Dim doc As NotesUIDocument

Set doc = workspace.currentdocument

If doc.editmode Then

Call doc.save

Call doc.save

Else

Stop

End If

End Sub

Page 239: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

タイムスタンプ複製でのデータベーストリガーの使用

通常、データベースアプリケーションは、行のデータが変更されたときに、トリガーを使用してタイムスタンプをセットします。LEI の複製によって行が更新されると、トリガーがタイムスタンプをファイルまたはデータベースの変更日時にリセットする場合があります。これにより、次回の複製の実行時に、他のデータベースに対して不要な複製が行われる可能性があります。このため、行を更新したのがクライアントアプリケーションか LEI かを判断し、それに応じてタイムスタンプを処理するようトリガーを設計する必要があります。

Page 240: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Notes データベースでの選択ビューの指定

タイムスタンプ複製は、複製する文書の選択条件に基づいて一時的なビューを作成します。Notes コネクションオプションの [View to Use for Selection] フィールドを使用すると、アクティビティで使用する文書を選択する永続的なビューを指定できます。永続的なビュー名を指定すると、アクティビティの実行時にデータベースの索引の再作成が不要になるため、パフォーマンスが大幅に向上します。LEI はこのビューを変更する権限を持っているため、ユーザーが使用するビューを指定しないでください。

Page 241: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

ソート順についての考慮事項

複製では、両方のコネクションからの結果セットを生成して、対応するキーの結果セットを一度だけスキャンします。各コネクションに別のソート順が使用されている場合、複製中には不整列のキーが除外されるため、結果的に不必要な挿入や削除が行われます。この挿入や削除を回避するには、Order Metaconnector を使用して、結果セットに対して一定のソート順を設定します。Order Metaconnector は次の条件の場合に使用します。Order Metaconnector を使用するときは、双方のコネクションで使用してください。

テキストのキーがある場合。テキスト以外のキーのときは、ソート順は問題にはなりません。!

複製で使用するコネクションのソート順が異なる場合。これは Connector によります。異なるシステムに接続する場!合でも、同じソート順を使用することもあります。

テキストのキーが、ソート順の異なる文字を含む場合。たとえば、Notes と Oracle では、句読文字のソート順が異な!ります。テキストのキーが英数字のみで構成される場合は、ソート順の違いは問題にはなりません。

メモ 複製対象のデータが同一システム上にはなく、両方のコネクションに同一の Connector が使用されている場合 (た

とえば、DB2 間の複製の場合)、Order Metaconnector は必要ありません。

メモ EBCDIC ベースのシステムでは、非 EBICDIC システムとはソート順が異なります。

複製で使用するデータベースのソート順が、双方で同じであることを確認してください。ソート順の問題を解決する方法の 1 つに、数値キーの使用があります。また、Order Metaconnector を使用してソート順をより厳密に制御することもできます。

大文字と小文字を区別しない文字列の比較が原因でソートに違いが生じる場合は、本章の [Mapping] セクションの各オプションについての説明を参照してください。

Page 242: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication アクティビティの作成方法

Replication アクティビティ文書では、Replication アクティビティに必要な次の情報を定義します。この情報には、データの処理を制御するための複製のパラメータやオプションが含まれます。

Replication アクティビティを作成する一般的な手順を説明します。Replication アクティビティ文書の特定のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.NSF) を開きます。

2 [Administrator] から [Add Activity] を選択します。表示されたリストから [Replication] を選択します。

3 Replication アクティビティ文書で、必須フィールドに情報を入力し、アクティビティに必要なオプションを選択します。

メモ アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性

をテストするには、『Lotus Connector 接続ガイド』に説明があるように CONTEST を使用します。

4 アクティビティ文書を保存します。

「付録 C チュートリアル」に、Replication アクティビティを作成する詳しい手順が説明されています。

Page 243: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication アクティビティ文書

以下に、Replication アクティビティ文書を示します。新しく Replication アクティビティを作成するには、[Add Activity] をクリックして、表示されたリストから [Replication] を選択します。既存の Replication アクティビティを開くには、[Activities] ビューでそのアクティビティの名前をダブルクリックします。

メモ アクティビティ実行オプションまたはスケジューリングなどのオプションについては、「第5章 LEI アクティビティの概

要」を参照してください。

特別な設定

[Activity Document] アクションバーには、Replication アクティビティの次のオプションが設定されています。

ボタン 説明

Trial-Run Replication このボタンをクリックすると、データベースの内容を変更せずに Replication アクティビティを実行し、ログを記録します。複製の競合はすべて記録されます。

[Trial-Run Replication] オプションが選択されている場合は、情報パネルが表示されます。このパネルで [OK] をクリックすると、検出された競合のみがログ記録されるようにアクティビティを設定します。競合は複製されません (関連情報については「Replication オプション」のセクションの [Conflict Handling] を参照)。[OK] をクリックすると、アクティビティ文書に次が表示されます。

[Trial-Run Replication] を有効にすると、[Source Restrictions] および [Target Restrictions] が無効になります。これらの制限を無視すると、すべての競合がアクティビティによってログ記録されます。その後、処理を続行する方法を決定できます。

Page 244: LEI ユーザーズガイド

Default Settings このボタンをクリックすると、標準の複製が実行され、[Trial-Run Replication] に関連付けられているフィールドがクリアされ、Replication アクティビティ文書の一部のセクションがデフォルト設定値に戻ります。このデフォルト設定では、[Skip Conflicts] オプションの選択が解除され、コネクションの制限がすべて解除されて、ソースのコネクションがマスターとして設定されます。

[Trial-Run Replication] を解除して標準の複製設定に戻すには、[Default Settings] オプションを選択して、指示に従って [OK] をクリックします。[Default Settings] オプションにより、[Trial-Run Replication] に関連付けられているフィールドがクリアされ、アクティビティはそのアクティビティのデフォルト設定値に戻されます。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティ一覧に表示されます。

データの複製元および複製先の情報は、[Source] および [Target] セクションから提供されます。コネクションは、このアクティビティ文書で使用する前に作成しておく必要があります。

[Source]

ソースコネクションのフィールドを以下で説明します。

フィールド 説明

Connection ソースデータベースに定義済みのコネクション名を指定します。このデータベースからデータを選択してコピーします。

コネクションによって、サーバーとデータベースのアクセス情報が提供されます。文書の [Additional Information] セクションによってメタデータを設定します。

使用可能なコネクションのリストを表示するには、[Source] の見出しの右にある矢印をクリックします。

Edit Connection 選択した Connection 文書を編集モードで開きます。

Metadata Type 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースのときはテーブルを選択し、Notes データベースのときはフォームを選択します。

Source Restrictions

コネクタに対する Replication アクティビティの動作を制限するオプションを指定します。これらのオプションの具体的な使用方法については、本章で後述する「キーによる Replication アクティビティでの制限の使用」および「タイムスタンプによる Replication アクティビティでの制限の使用」セクションを参照してください。

[Skip Insertions] - 複製中にソースコネクションにレコードが挿入されないようにします。![Skip Updates] - 複製中にソースコネクションのレコードが更新されないようにします。![Skip Deletions] - 複製中にソースコネクションのレコードが削除されないようにします。!

[Skip Insertions]、[Skip Updates]、および [Skip Deletions] を有効にすると、そのコネクションの複製ではライトバックの変更が禁止されます。この変更禁止により、ロッキングレベルが低くなります。これは、その複製側を変更しないことがわかっている場合にその側のロックを回避する目的にも使用されます。この操作は、リレーショナルデータベースの更新不可ビューから複製を実行する場合に特に有用です。

メモ これらのオプションは、[Timestamp Replication] が選択されている場合にのみ使用できます。

[Target]

ターゲットコネクションのフィールドを以下で説明します。

フィールド 説明

Connection 複製先データベースに、定義済みコネクション (データのコピー先) の名前を指定します。

使用可能なコネクションのリストを表示するには、「Target」の見出しの右にある矢印をクリックします。

Edit Connection 選択した Connection 文書を編集モードで開きます。このボタンは、編集モードのみで使用できます。

Metadata Type 選択したコネクションの種類に基づいて、メタデータを指定します。たとえば、リレーショナルデータベースのときはテーブルを選択し、Notes データベースのときはフォームを選択します。

各コネクションに対する Replication アクティビティの動作を制限するオプションを指定します。こ

Page 245: LEI ユーザーズガイド

Target Restrictionsれらのオプションの具体的な使用方法については、本章で後述する「キーによる Replication アクティビティでの制限の使用」および「タイムスタンプによる Replication アクティビティでの制限の使用」セクションを参照してください。

[Skip Insertions] - 複製中にターゲットコネクションにレコードが挿入されないようにします。![Skip Updates] - 複製中にターゲットコネクションのレコードが更新されないようにします。![Skip Deletions] - 複製中にターゲットコネクションのレコードが削除されないようにします。!

[Skip Insertions]、[Skip Updates]、および [Skip Deletions] を有効にすると、そのコネクションに対する複製でライトバックの変更が禁止されます。この変更禁止により、ロッキングレベルが低くなります。これは、その複製側を変更しないことがわかっている場合にその側のロックを回避する目的にも使用されます。この操作は、リレーショナルデータベースの更新不可ビューから複製を実行する場合に有用です。

[Mapping]

アクティビティ文書の [Mapping] セクションには、手動または自動のどちらかのフィールドマッピングを指定できます。デフォルトは、手動のマッピングです。両方のマッピングスタイルについて、ここで説明します。

関連情報については、「第5章 LEI アクティビティの概要」の「データのマッピング」セクションを参照してください。

手動マッピング

手動マッピングのフィールドを以下で説明します。

フィールド 説明

Source Key(s) データの集まりに対する固有の 1 次キーを表すフィールドまたは列 (複数可) を指定します。各レコードにはキーフィールドの値が存在する必要があり、2 つのレコードでキーフィールドの値が重複することはできません。双方のコネクションのキーフィールドは対応している必要があります。[Source Key] と [Target Key] の値は、一致している必要があります。

Notes コネクションをソースとして使用する場合は、[Metadata Creation: Select Target Metadata] ([Data Options] タブ) の説明を参照してください。

Target Key(s) [Source Key(s)] の値を示すために使用される、対応するキーフィールドを指定します。

Source Column/Fields(s)

ソースコネクションで使用される列またはフィールドを指定します。

Target Column/Field(s)

ターゲットコネクションで使用される列またはフィールドを指定します。

自動マッピング

[Automatic] オプションを選択すると、自動マッピング用のフィールドが表示されます。これらのフィールドについて、次の表で説明します。

フィールド 説明

Source Key(s) データの集まりに対する固有の 1 次キーを表すフィールドまたは列 (複数可) を指定します。各レコードにはキーフィールドの値が存在する必要があり、2 つのレコードでキーフィールドの値が重複することはできません。双方のコネクションのキーフィールドは対応している必要があります。[Source Key] と [Target Key] の値は、一致している必要があります。

Target Key(s) [Source Key(s)] の値を示すために使用される、対応するキーフィールドを指定します。

Page 246: LEI ユーザーズガイド

By Name ソースとターゲット間で、名前が一致するフィールドが自動的にマッピングされます。このオプションを使用するには、ソースおよびターゲットのコネクションのフィールド名が同じである必要があります。異なるとエラーが発生します。

By Position ソースとターゲット間で、位置によってフィールドが自動的にマッピングされます (最初の列どうし、2 番目の列どうし、というようにマッピングされます)。このオプションを使用するには、ソースおよびターゲットにおけるコネクションのフィールド名の数が同じである必要があります。異なるとエラーが発生します。左から右、または上から下の位置は同じである必要があります。

[Replication Options]

Replication アクティビティ文書の [Replication Options] セクションには、ユーザーが指定できるいくつかのオプションがあります。各サブセクションについて、以下の表で説明します。

タイムスタンプのオプション

[Timestamp] タブを選択して [Enable Timestamp Replication] オプションを選択すると、以下の選択肢が使用可能になります。また、[Source Restrictions] では 3 つの選択肢 ([Skip Insertions]、[Skip Updates]、[Skip Deletions]) も使用可能になります。

フィールド 必須 説明

Timestamp Replication: Enable Timestamp Replication

否 このオプションを選択すると、タイムスタンプの複製が可能になります。デフォルトは、1 次キー複製です。

Reset Replication Timestamp 否 このオプションを選択すると、両方のメタデータタイムスタンプ (SrcTimeStamp および DestTimeStamp) のレプリケーションタイムスタンプが 01/01/0001 12:00:00 AM に再初期化されます。

これにより、次回のタイムスタンプ複製が、それ以前には一度も複製が実行されなかったかのような動作になり、全レコードが複製の対象となります。この機能は、複製で同期できなくなった場合などに役に立ちます。詳しくは、本章の冒頭に

Page 247: LEI ユーザーズガイド

あるルールを参照してください。

Source Timestamp タイムスタンプを複製する場合は必須

レコードのタイムスタンプ値を保持するフィールドの名前を指定します。ここでフィールド名を入力すると、タイムスタンプと 1 次キーの両方が比較されます。このフィールドが使用されている場合、ソースとターゲットの両方にタイムスタンプフィールド名を入力する必要があります。

Source: Replicate Timestamp Field オプション [Do Not Replicate] オプションを有効にすると、タイムスタンプフィールド値は複製されなくなり、データフィールド値のみが複製の対象になります。

このため、タイムスタンプフィールド値が変化してもデータフィールド値が変化しない場合、複製レコードは発生しません。アクティビティではタイムスタンプフィールドを変更しないため、変更内容はデータソースに残ります。

Target Timestamp [Source Timestamp] の定義を参照してください。

Target: Replicate Timestamp Field [Source: Replicate Timestamp Field] を参照してください。

[Logging Options]

[Logging Options] タブを選択すると以下のオプションが現れ、複製中に発生したエラーを記録できるようになります。このオプションは、トラブルシューティングに有用です。

フィールド 説明

Log Key Values on Error 有効化していると、複製中にエラーが発生したときにアクティビティログにエントリが作成されます。エントリにはエラーとなったレコードのキー値が含まれます。

[Conflict Options]

Replication アクティビティ文書では、複製の際に発生する競合の処理方法を指定します。

競合とは、一方のデータベースにあるデータ項目が、もう一方のデータベースのデータ項目と完全には一致しないことを指します。タイムスタンプによって「優先権を持つ」データベースを決められない場合に、競合が発生します。キーによる複製では、データ項目に違いがある場合をすべて競合といいます。タイムスタンプによる複製では、ある特定の相違のみを競合といいます。競合は、複製で発生する通常のイベントです。そのため、この競合の処理方法を決定する必要があります。

1 次キー複製中、ソースコネクションは、どのような複製の競合にも優先権を持ちます。

メモ 複製の競合をログファイルに記録できます。このログエントリはエラーではなく、単に競合イベントの内容を記録した

ものです。たとえば、名前で発生した競合をログファイルに記録することによって、アクティビティ自体をチェックしたり、2

つのデータベース間での名前の不一致をチェックできます。LEI では、複製の競合イベントへの対処法を制御できま

す。[Conflict Options] タブを選択すると、以下のオプションが表示されます。

Page 248: LEI ユーザーズガイド

フィールド 説明

Conflict Handling 非マスターデータベースに含まれる競合レコードを保存します。

[Save Conflict Data to Metadata] を選択すると、次に示す [Conflict Link: Metadata Name] の選択肢が、フォームに表示されます。

Conflict Connection: Metadata Name

競合キーおよびデータが、ソースまたはターゲットのどちらかのコネクションにある特定のテーブルまたはフォーム (メタデータ) に保存されます。

[Metadata Name] フィールド名の右にある [browse] および [select] ボタンを使用して、テーブル名またはフォーム名を指定する必要があります。ここで指定されたメタデータ名は、競合での優先権を持たないレコードを受け取ることになります。

[Source] - メタデータ名がソースコネクションにあることを指定します。![Target] - メタデータ名がターゲットコネクションにあることを指定します。!

Log Conflicts 競合をアクティビティログに記録します。[Enable Conflict Logging] を選択すると、下記の [Logging Options] および [Limit To] の選択肢がフォームに表示されます。

Logging Options 競合のログ記録を実行する方法を指定します。

[As Event] - 競合をイベントとして扱いアクティビティログに記録します。![As Error and Continue] - 競合をエラーとして扱いアクティビティログに記!録し、アクティビティを続行します。[As Error and Stop] - 競合をエラーとして扱いアクティビティログに記録!し、アクティビティを中止します。

競合をエラーとして扱うオプションを使用すると、各ログエントリがディスクに書き込まれるため、速度が遅くなります。競合をイベントとして扱うオプションの方がより高速であるため、本稼働環境ではこちらを推奨します。

Limit To ログ記録の対象となる競合を、指定したアクティビティにとって有用な数のみに限定する場合に使用されます。競合のログがこの数に達すると、それ以上の競

Page 249: LEI ユーザーズガイド

合は記録されません。

デフォルトは 500 で、0 は制限がない (すべての競合を記録する) ことを示します。

[Data Options]

[Data Options] タブを選択すると、以下のオプションが表示されます。

フィールド 説明

Metadata CreationCreate Target Metadata

[Create Target Metadata] を選択すると、[Index to Create on Metadata Creation] フィールドが表示されます。

メモ Notes コネクションを [Source Connection] およびこのオプションとして使用すると、64996 バイト (Notes 用テキストフィールドの最大サイズ) のターゲット用テキストフィールドがアクティビティによって作成されます。これは、複製中に一部の RDBMS 外部システムでエラーが発生する原因になります。このエラーを回避するには、テキストフィールドを [Source Key] フィールドとしては使用しないようにします。

メモ [Create Target Metadata] はプロトタイピングを支援し、メタデータを同じソースおよびターゲットタイプから作成する場合や (DB2 から DB2 に、Oracle から Oracle に、など)、いずれかのソースから Notes ターゲットにこれらを作成する場合に有用です。これを使用する場合は、テーブルが最適な効率の維持に必要なキーおよび索引で作成されていることを必ず確認してください。

Index to Create on Metadata Creation

メタデータを作成するオプションが選択されている場合は、メタデータの作成が実行され、新規メタデータ上に索引が作成されます。入力の対象となる名前は、新規索引の名前です。Replication アクティビティのキーフィールドは、索引列です。

索引の作成がサポートされていない Lotus Connector もあります。

リレーショナルデータベースなど、コネクションによっては、索引があるとパフォーマンスが大幅に向上します。

Data Comparison and Trimming データの比較方法、および末尾スペースの処理方法を指定します。

[Reduced-precision Comparison] - データベース間で日時、タイムスタンプ、および浮動小数点値の保存に使用される精度の違いによる擬似の不一致 (たとえば、秒の小数部分を認識するデータベースと、認識しないデータベースがあるなど) を回避します。このオプション選択すると、精度は両者の下位の共通レベルとなります。日時は秒まで比較され、標準時とサマータイムは比較されません。日時の比較は、年、月、日、時、分、秒のみに基づき実行されます。浮動小数点の比較は 10 桁の精度で行われます。標準時、サマータイム、秒未満の単位での比較は行われません。このオプションは、日時や浮動小数点の精度が異なるデータベースでの複製に役立ちます。

このオプションは、複製の両方のコネクションで大文字と小文字を区別しないソートが行われる場合にのみ使用します (たとえば、2 つの Notes コネクション間での LEI の複製など)。この場合は、標準の大文字と小文字を区別する比較を行うと、誤った競合が発生する可能性があります。

メモ このオプションを使用すると、大文字と小文字を区別せずに文字列が比

Page 250: LEI ユーザーズガイド

較されます。

メモ ただし、このオプションによって、コネクションが大文字と小文字を区別しないソートを実行するわけではありません。

[Disable Trimming of Text Trailing Spaces] - 末尾スペースが含まれているテキストフィールドを切り捨てないように指定します。

Conditional Clause for Source アクティビティをより詳細に定義するには、キーフィールド (1 つまたは複数) をベースとした結果セットに対して実行されるステートメントの中にオプションの条件節を含めます。使用可能な節としては、SQL の WHERE 節や、Notes の選択式の節などがあります。

どちらか一方のコネクションまたは両方のコネクションに条件を入力できます。

条件節の構文は、コネクションでの定義に従う必要がありますが、キーワード (SELECT または WHERE など) は含めなくてもかまいません。

条件節は、ソースおよびターゲットの両方で処理対象レコードを判別するフィルタとしての役目を果たします。条件節を使用することで、Replication アクティビティを通じて比較される対象のソースレコードおよびターゲットレコードが限定されます。たとえば、ソースおよびターゲットのテーブルがあり EmpID の値が 1 から 500 の範囲内にある従業員レコード 500 件が各テーブルにある場合は、以下が true になります。

ソースの条件節が EmpID > 250 に設定されている場合、Replication アクティビティで比較用に使用されるソースレコードは、EmpID の値が 250 を超えるレコードのみに限られます。EmpID の値が 250 を超えるソースレコードとターゲット全体のレコードの比較に基づいて、ターゲットに対して更新、挿入、および削除を適宜に実行します。

Conditional Clause for Target 上記の [Conditional Clause for Source] および下記の解説を参照してください。たとえば、ソースおよびターゲットのテーブルがあり EmpID の値が 1 から 500 の範囲内にある従業員レコード 500 件が各テーブルにある場合は、以下が true になります。

ターゲットの条件節が EmpID > 250 に設定されている場合、Replication アクティビティで比較用に使用されるターゲットレコードは、EmpID の値が 250 を超えるレコードのみに限られます。ソース全体と EmpID の値が 250 を超えるターゲットレコードの比較に基づいて、ターゲットに対して更新、挿入、および削除を適宜に実行します。

Page 251: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

[Do Not Replicate] タイムスタンプオプションの使用

Replication アクティビティ文書の [Timestamp] タブ上にある [Replicate Timestamp] フィールドの、[Do Not Replicate] 設定値を使用した場合に発生する可能性のある結果を、下表に示します。

ソースコネクション [Do Not Replicate] の設定

ターゲットコネクション[Do Not Replicate] の設定

レコードの処理 レコード複製の結果

有効 なし ソースのタイムスタンプフィールド値のみを更新する

処理なし

有効 なし ソースのタイムスタンプフィールド値およびデータフィールド値を更新

ターゲットのデータフィールド値のみが更新される

無効 なし ソースのタイムスタンプフィールド値のみを更新する

ターゲットのタイムスタンプフィールド値のみが更新される

無効 なし ソースのタイムスタンプフィールド値およびデータフィールド値を更新

ターゲットのタイムスタンプフィールド値およびデータフィールド値が更新される

なし 無効 ターゲットのタイムスタンプフィールド値のみを更新

ソースのタイムスタンプフィールド値のみが更新される

なし 無効 ターゲットのタイムスタンプフィールド値およびデータフィールド値を更新

ソースのデータフィールド値およびタイムスタンプフィールド値が更新される

なし 有効 ターゲットのタイムスタンプフィールド値のみを更新

処理なし

なし 有効 ターゲットのタイムスタンプフィールド値およびデータフィールド値を更新

ソースのデータフィールド値のみが更新される

コネクションが外部システムのデータベースによってセットされたタイムスタンプを使用するときは (トリガー経由または文書の保存による)、アクティビティはタイムスタンプに対しては何の効力も持ちません。タイムスタンプは、外部システムのデータベースでの規則に基づいてセットされます。たとえば、Notes 文書の Modified による日時を使用するとき、コネクションの [Load Last Modified Timestamp (@Modified)] を指定すると、LEI は Notes 文書に含まれる変更日時を使用します。複製中に文書が変更されたときは、Notes は文書の保存に応じて変更時刻を更新します。LEI 以外のユーザーアプリケーションまたはデータ入力アプリケーションからデータベースに新規データが入力された場合、またはデータベースのレコードデータが変更された場合は、タイムスタンプフィールド値は最終更新時の日付および時刻に更新されます。

[Do Not Replicate] オプションをソースコネクション側で使用することにより、ターゲットコネクション側のタイムスタンプフィールドをアクティビティに更新させるかどうかを制御できます。

Notes コネクションが双方で使用され、[Load Last Modified Timestamp (@Modified)] が指定されているときの結果を、次の表に例示します。

ソースコネクション [Do Not Replicate] の設定

ターゲットコネクション[Do Not Replicate] の設定

レコードの処理 レコード複製の結果

有効 なし ソースのタイムスタンプフィールド値のみを変更

ターゲットのタイムスタンプフィールド値に対しては、更新が行われない

Page 252: LEI ユーザーズガイド

有効 なし ソースのタイムスタンプフィールド値およびデータフィールド値を変更

ターゲットではデータフィールド値のみ更新される。文書が変更されたときに、Notes によって変更日時がタイムスタンプにセットされる (これで、ターゲットはソースよりも新しくなる)。

なし 無効 ターゲットのタイムスタンプフィールド値のみを変更

ソースのタイムスタンプフィールド値のみが更新される

なし 無効 ターゲットのタイムスタンプフィールド値およびデータフィールド値を変更

ソースのデータフィールド値およびタイムスタンプフィールド値が更新される

無効 なし ソースのタイムスタンプフィールド値のみを変更

ターゲットのタイムスタンプフィールド値が更新される (これで、ターゲットがソースよりも後の時刻になる)

無効 なし ソースのタイムスタンプフィールド値およびデータフィールド値を変更

ターゲットのタイムスタンプフィールド値およびデータフィールド値が更新される

なし 有効 ターゲットのタイムスタンプフィールド値のみを変更

ソースに対しては、更新が行われない

なし 無効 ターゲットのタイムスタンプフィールド値およびデータフィールド値を変更

ソースのデータフィールド値およびタイムスタンプフィールド値が更新される

なし 無効 ターゲットのデータフィールド値およびタイムスタンプフィールド値を変更

ソースのデータフィールド値およびタイムスタンプフィールド値が更新される

無効 なし ソースのデータフィールド値およびタイムスタンプフィールド値を変更

ターゲットのタイムスタンプフィールド値およびデータフィールド値が更新される

なし 有効 ターゲットのタイムスタンプフィールド値のみを変更

ソースに対しては、更新が行われない

有効 なし ソースのタイムスタンプフィールド値のみを変更

ターゲットに対しては、更新が行われない

Page 253: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

キーによる Replication アクティビティでの制限の使用

複製の制限は、設定したコネクションのみに適用されます。たとえば、ターゲットコネクションにオプションが設定されている場合、特定のアクションについては、ソースへの変更がターゲットへは適用されません。[Trial-Run Replication] オプションが使用されているときは、複製の制限がすべて無視されます。

キーによる複製中、制限の設定をターゲットコネクションでは利用できますが、ソースでは利用できません。

ターゲットコネクションにさまざまな複製の制限が設定されているときの影響を、次の表に示します。各オプションを設定してアクションを実行すると、オプションを設定した方のコネクションに結果が表示されます。複製の種類によって、ターゲットの動作が決定されます。キーによる複製では、タイムスタンプ複製とは異なる処理が行われます。これらのオプションは、データの転送を制御し、複製のそれぞれのサイドで異なる方法でデータを扱うために使用されます。

ターゲットコネクションの設定 アクション 結果

Skip Insertions ソースへの挿入が行われる ターゲットに対しては、挿入が行われない

ターゲットへの挿入 ターゲットからの削除

Skip Updates ソースが更新される ターゲットに対しては、更新が行われない

ターゲットの更新 ターゲットに対しては、更新が行われない

Skip Deletions ソースからの削除 ターゲットに残る

ターゲットからの削除 ソースで置き換えられる

Page 254: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

タイムスタンプによる Replication アクティビティでの制限の使用

タイムスタンプ複製は両方向 (ソースでターゲットを更新し、ターゲットでソースを更新する) のため、制限は各コネクションに設定できます。タイムスタンプ複製ではどのような場合にも、ソースコネクションとターゲットコネクションの両方に [Skip Deletions] を指定する必要があります。これは、他のコネクションには削除が伝播されないためです。次の表では、[Skip Deletions] が設定され、各コネクションですべての削除が無視されるものとします。

下表に、ソースコネクションの設定値を示します。

ソースコネクションの設定 アクション 結果

Skip Insertions and Deletions ソースへの挿入が行われる

ターゲットへの挿入

ソースが更新される ターゲットの更新

ターゲットへの挿入 ソースに対しては、挿入が行われない

ターゲットの更新 ソースが更新される

Skip Updates and Deletions ソースへの挿入が行われる

ターゲットへの挿入

ソースが更新される ターゲットの更新

ターゲットへの挿入 ソースへの挿入が行われる

ターゲットの更新 ソースに対しては、更新が行われない

Skip Inserts, Updates and Deletions ソースへの挿入が行われる

ターゲットへの挿入

ソースが更新される ターゲットの更新

ターゲットへの挿入 ソースに対しては、挿入が行われない

ターゲットの更新 ソースに対しては、更新が行われない

下表に、ターゲットコネクションの設定値を示します。

ターゲットコネクションの設定 アクション 結果

Skip Insertions and Deletions ソースへの挿入が行われる

ターゲットに対しては、挿入が行われない

ソースが更新される ターゲットの更新

ターゲットへの挿入 ソースへの挿入が行われる

ターゲットの更新 ソースが更新される

Skip Updates and Deletions ソースへの挿入が行われる

ターゲットへの挿入

ソースが更新される ターゲットに対しては、更新が行

Page 255: LEI ユーザーズガイド

われない

ターゲットへの挿入 ソースへの挿入が行われる

ターゲットの更新 ソースが更新される

Skip Inserts, Updates and Deletions ソースへの挿入が行われる

ターゲットに対しては、挿入が行われない

ソースが更新される ターゲットに対しては、更新が行われない

ターゲットへの挿入 ソースへの挿入が行われる

ターゲットの更新 ソースが更新される

Page 256: LEI ユーザーズガイド

第 15 章 REPLICATION アクティビティ

Replication のサンプル

このセクションでは、複製の制限機能を持つ Replication アクティビティのいくつかのサンプルを紹介します。

Skip Insertions

このサンプルでは、ターゲットに「Skip Insertions」が設定されているため、ソースにレコードが挿入されます。ターゲットでは、次回の複製時に挿入が無視されます。

このオプションは、ターゲットへの新規レコードの挿入を禁止する目的に使用します。

Skip Updates

このサンプルでは、「Skip Updates」が設定されています。ソースでレコードが更新されても、ターゲットには複製されません。

このオプションは、オリジナルのデータを残しておくときに使用します。

Page 257: LEI ユーザーズガイド

Skip Deletions

この例では、「Skip Deletions」を設定したときの様子が示されています。ソースでレコードが削除されても、ターゲットでは削除されません。

このオプションは、ソースで削除されたデータをターゲットに残しておくときに使用します。

Page 258: LEI ユーザーズガイド

第 16 章 JAVA アクティビティ

第 16 章 Java アクティビティ

本章では、LEI の Java アクティビティについて説明します。

Page 259: LEI ユーザーズガイド

第 16 章 JAVA アクティビティ

Java アクティビティの概要

Java アクティビティを使用すると、LEI から Java アプリケーションを起動できます。

Java アクティビティの使用方法

Java アクティビティは、LEI を使用して Java アプリケーションを起動するときに使用します。起動する Java アプリケーションは、LEI 専用のアプリケーションに限られません。プログラマは、任意の IDE を選択してアプリケーションの開発と展開を行うことができます。

Java アクティビティを作成するときは、次の点に注意してください。

アプリケーションは、そのアプリケーションを実行するように指定された LEI Server と同じコンピュータ上にある必要!があります。

Java JVM も、同じコンピュータ上に必要です。 !

Java アクティビティは、次のような場合に役立ちます。

データ転送時にソースとターゲットをより綿密に管理する必要がある場合!

アプリケーション固有の条件に応じて、さまざまな種類のデータ操作を行う場合!

メモ Java アクティビティを実行しているコンピュータ上の CLASSPATH 変数は、アクティビティで参照されるクラスを指し

ている必要があります。システムパスは、アクティビティのために使用される JVM の場所を参照している必要がありま

す。

Page 260: LEI ユーザーズガイド

第 16 章 JAVA アクティビティ

Java アクティビティの作成方法

Java アクティビティを作成する一般的な手順を説明します。Java アクティビティ文書のフィールドやオプションの詳細については、本章の「Java アクティビティ文書」を参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator で [Add Activity] を選択します。表示されるリストから [Java] を選択します。

3 Java アクティビティ文書で必須クラスフィールドに情報を入力し、オプションを指定します。

4 アクティビティ文書を保存します。

Page 261: LEI ユーザーズガイド

第 16 章 JAVA アクティビティ

Java アクティビティ文書

Java アクティビティ文書で、LEI の Java アプリケーションを実行するのに必要な情報を指定します。以下に、Java アクティビティ文書を示します。新しく Java アクティビティを作成するには、[Add Activity] をクリックして、表示されるリストから [Java] を選択します。既存の [Java] アクティビティを開くには、[Activities] ビューでアクティビティの名前をダブルクリックします。

メモ アクティビティの実行、スケジューリング、その他のオプションについては、「第5章 LEI アクティビティの概要」を参照

してください。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティ一覧に表示されます。

[Java]

アクティビティ文書のこのセクションでは、アクティビティが使用するメインの Java クラス、CLASSPATH (オプション)、Virtual Machine (オプション) を指定します。

フィールド 説明

Class Name 実行する Java クラスの名前と、そのクラスのコマンドラインパラメータを指定します。[Class Name] フィールドで指定するクラスは、CLASSPATH 環境変数にある必要があります。

Class Path (オプション) Java アプリケーションを実行するサーバーに設定された既存の CLASSPATH 環境変数を、オプションでプリペンドします。

Java VM (オプション) 優先する Java 仮想マシン (JVM) をオプションで指定します。このフィールドを空白のままにすると、java.exe が実行されます。

代替 JVM へのパスを入力して、Java アプリケーションを実行させることもできます。その場合、CLASSPATH の変更が必要な場合があります。

Page 262: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

第 17 章 Scripted アクティビティ

本章では、LEI の Scripted アクティビティについて説明します。

Page 263: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

Scripted アクティビティの概要

Scripted アクティビティは、Lotus Connector LotusScript Extension Classes (LC LSX) コマンドを実行するアクティビティです。LEI では、LEI Administrator とログデータベースをサポートするメソッドが追加され、LC LSX クラスが拡張されます。LC LSX クラスを使用すると、他の LEI Administrator アクティビティのオペレーション (Direct Transfer、Polling、Replication など) で使用できる機能を拡張できます。

ソースとターゲットのデータ転送をより綿密に管理する必要がある場合に、LC LSX と Scripted アクティビティを使用してカスタムルーチンを作成できます。また、Scripted アクティビティを使用して、転送時にデータの操作や評価を実行することもできます。

Scripted アクティビティを作成するには、次の手順に従います。

メモ 「付録 C チュートリアル」には、Scripted アクティビティの作成例が 2 つ記載されています。最初の例では、LEI

Script Vault (leivlt6.nsf) データベース内にある 2 つのエージェントと付属の leipackagetrack.nsf サンプルデータベースを

使用する方法が説明されています。

1 LC LSX クラスにアクセスするために、Notes Client または Domino Designer Client をインストールします。

2 Lotus Notes または Domino Designer のデータベースの Design Agents エディタウィンドウ (Integrated Development

Environment (IDE) とも呼びます) で、スクリプトウィンドウの [options] セクションに次の行を入力します。

Uselsx "*lsxlc"

3 IDE 内で、LC LSX クラスを使用して、LotusScript ルーチンを作成します。

メモ スクリプトを保存して実行すると、LSX と記述がロードされます。次に、LC LSX クラスがスクリプトブラウザのド

ロップダウンリストの [Domino Classes] セクションに自動的に表示されます。

4 [Agent Properties] ボックスで、[Runtime] の [Target] を [None] (このタイプのエージェントでは、@ コマンドを使用で

きます) に設定します。

5 LEI Administrator の [Scripted Activity] で、LotusScript ルーチンが保存されている Lotus Notes データベースとサ

ーバーを指定します。続いて、LEI の Scripted アクティビティのスケジュールを設定して実行します。

LSX の詳細については、『Lotus Connector LotusScript Extensions ガイド』を参照してください。

スクリプトを作成するには、Notes Client、Designer Client または LEI Server (あるいは両方) がインストールされている必要があります。Lotus Notes Client または Designer Client では、LEI 関数を必要とする名前付きのセッションの有無にかかわらず、LC LSX スクリプトを編集、コンパイル、およびテストできます。ただし、Notes Client 上で展開できるのは、名前付きのセッションを持たない LC LSX スクリプトのみです。これは、LEI 関数がバッチジョブで使用するように設計されているためです名前付きセッションを持つスクリプトは Scripted アクティビティとして展開されます。LEI がインストールされている場合は、スクリプトは LEI Administrator からコネクション情報を読み込む必要があります。

LCSession クラスオブジェクトを作成するときに、LEI Administrator の使用とログを設定します。Scripted アクティビティでは、最初に作成される Lotus Connector クラスオブジェクトは LCSession オブジェクトである必要があります。また、LCSession オブジェクトは名前を指定して作成する必要があります。

メモ Scripted アクティビティの場合、アクティビティ名はログで使用されます。セッション名は、アクティビティが手動で

(Scripted アクティビティの一部としてではなく) 実行されたときのみログで使用されます。

LEI Administrator の使用は、LCConnection クラスの動作にも影響します。LEI では、LCConnection オブジェクトを作成するときに指定する名前は、既存のコネクション文書の名前である必要があります。コネクションパラメータは、対応するコネクション文書からロードされます。これとは対照的に、LSX では、LCConnection オブジェクトを作成するときに指定する名前は、Connector のライブラリ名で、すべてのパラメータが明示的に割り当てられている必要があります。

呼び出された Scripted エージェントは、定義されているアクティビティを呼び出します。アクティビティには、指定のコネクション文書が関連付けられている必要があります。その結果、LCConnection オブジェクトが次の呼び出しによってインスタンス化されたときに、<libraryname> はこのコンテキスト内で新しい意味を持つようになります。つまり、スクリプトによって使用されるコネクションの名前になります。

Dim <connectionname> as New LCConnection ( <libraryname> )

Page 264: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

LEI での LotusScript のサポート方法

LEI の LotusScript は、Notes の IDE (総合開発環境) を使用して作成された後、LEI によって実行されます。LC LSX は、完全な LEI プログラミングインターフェースをサポートするように LotusScript 言語を拡張したものです。スクリプトを作成するには、Notes Client、Designer Client または LEI Server (あるいは両方) がインストールされている必要があります。

メモ Lotus Notes Client または Designer Client では、LEI 関数を必要とする名前付きのセッションの有無にかかわら

ず、LC LSX スクリプトを編集、コンパイルおよびテストできます。ただし、Notes Client 上で展開できるのは、名前付きの

セッションを持たない LC LSX スクリプトのみです。これは、LEI 関数がバッチジョブで使用するように設計されているため

です名前付きセッションを持つスクリプトは Scripted アクティビティとして展開されます。

LotusScript エージェントを編集するときに、Notes IDE は LC LSX をロードします。これにより、LotusScript の構文を検証できるようになります。エージェントが実行またはデバッグされるときに、LSX はローカルの LEI Server またはクライアントとの接続を確立し、データベースコネクションを処理してログを記録します。

LEI による LotusScript の機能拡張を使用するには、スクリプトエージェントに LC LSX を含めます。

Notes と LEI のプログラムディレクトリは、両方ともシステムパスにリストされている必要があります。Notes では、IDE がエージェントの作成とテスト用に LSX をロードできるように、LEI のプログラムディレクトリがパス内に必要です。LEI では、Scripted アクティビティの一部として実行されるように、Notes のプログラムディレクトリがシステムパス内にある必要があります。

LCSession クラスと LCConnection クラスの説明を含む、LEI 固有の動作の詳細については、『Lotus Connector LotusScript Extensions ガイド』の「付録 E」を参照してください。また、本章の「Scripted アクティビティの作成方法」を参照してください。本書の「付録 C チュートリアル」も参照してください。

制限のない LotusScript エージェントの実行

制限のない LotusScript エージェントを実行するには、「*」を指定する必要があります。さらに、「デフォルト」またはそれより安全なエージェント署名者は、文書を削除できる LEI Administrator への Editor のアクセス権を持っている必要があります。

Page 265: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

Scripted アクティビティの作成方法

Scripted アクティビティを作成する一般的な手順を説明します。Scripted アクティビティ文書のフィールドやオプションの詳細については、本章の他のセクションを参照してください。

1 LEI Administrator データベース (decsadm.nsf) を開きます。

2 Administrator で [Add Activity] を選択します。表示されるリストから [Scripted] を選択します。

3 Scripted アクティビティ文書で必須フィールドに情報を入力し、アクティビティに必要なオプションを指定します。

メモ アクティビティで参照されるすべてのコネクションが存在し、有効である必要があります。コネクションの有効性

をテストするには、『Lotus Connector 接続ガイド』に説明があるように CONTEST を使用します。

4 アクティビティ文書を保存します。

「付録 C チュートリアル」に、Scripted アクティビティの作成例が 2 つ記載されています。

Page 266: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

Scripted アクティビティ文書

Scripted アクティビティ文書には、実行する LC LSX スクリプトが含まれている Notes エージェントの名前と、すべてのアクティビティに共通な標準のスケジュールオプションが含まれています。

エージェントを表示するには、そのエージェントが格納されている Notes データベースを選択します (デフォルトは LEI Script Vault (スクリプト格納) です)。次に、トップメニューで [View] - [Design] を選択し、ナビゲータで [Agents] を選択します。

以下に Scripted アクティビティ文書を示します。新しく Scripted アクティビティを作成するには、[Add Activity] をクリックして、表示されたリストから [Scripted] を選択します。既存の [Scripted] アクティビティを開くには、[Activities] ビューでアクティビティの名前をダブルクリックします。

[Identification]

[Name] フィールドを使用して、固有のアクティビティ名を指定します。Administrator では、この名前が定義済みアクティビティ一覧に表示されます。また LEI Server コンソールにも、この名前が定義済みアクティビティ一覧に表示されます。

[Script]

このセクションで、アクティビティが使用する LotusScript を指定します。

フィールド 説明

Agent Server スクリプトを含むエージェントが置かれているサーバーを指定します。

Agent Database スクリプトを含むエージェントが格納されている Notes データベースのファイルパスと名前を指定します。

このフィールドの横にある [Agent Database] 参照ボタンをクリックすると、上で選択したサーバー上のデータベースのリストが表示されます。LEI でインストールされる LEI Script Vault (スクリプト格納) データベースは、leivlt6.nsf です。

Agent Name 実行するスクリプトを含むエージェントの名前を指定します。句読点、データの前後に挿入されたスペースは、エージェント名に使用できません。

Page 267: LEI ユーザーズガイド

このフィールドの横にある [Agent] ボタンをクリックすると、選択したデータベースの使用可能エージェントのリストが表示されます。

アクティビティの実行、スケジューリング、その他のオプションについては、「第5章 LEI アクティビティの概要」を参照してください。

Page 268: LEI ユーザーズガイド

第第第第 17171717 章章章章 SCRIPTEDSCRIPTEDSCRIPTEDSCRIPTED アクティビティアクティビティアクティビティアクティビティ

エージェントエージェントエージェントエージェント開発文書開発文書開発文書開発文書

エージェント開発文書を使用して、LotusScript エージェントを作成します。 また、この文書を使用して、次のアクション (シンプルアクション、式、LotusScript、インポートされた Java、Java) のうちのいずれかを実行できます。

1 エージェント開発文書を開くには、Scripted アクティビティ文書で [Create Agent] ボタンをクリックします。

指示に従って、サーバー名とデータベース名を指定します (アクティビティ文書からエントリを削除した場合)。デフォルトは、アクティビティ文書の [Agent Server] フィールドと [Agent Database] フィールドで指定されている名前です。

2 指定されたデータベース (たとえば LEI Script Vault データベース leivlt6.nsf) が Domino Designer で開きます。この

ビューで、[Create Agent] ボタンを選択します。

このデータベースは Scripted アクティビティ文書上の [Agent Server] オプションと [Agent Database] オプションを使用することで、容易に指定できます。

3 新しくエージェントの名前を入力し、他に該当するダイアログボックスのオプションがあれば値を入力します。ダイアロ

グボックスの右上にある [X] をクリックして続行します。

この名前はその後、Scripted アクティビティ文書の [Agent Name] オプションで使用されます。

4 表示される [Agents] ビューで、エージェント構文を作成します。このタスクの実行方法については、Notes ヘルプシス

テムを参照してください。

Page 269: LEI ユーザーズガイド

エージェント作成の詳細については、Notes のオンラインドキュメントを参照してください。

Page 270: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

エージェントが実行されていることの確認

エージェントが実行されているかを確認するには、Domino Server のコンソールで次の Show Task コマンドを入力します。

sh ta

リストされているプロセスのうちの 1 つが Agent Manager です。Agent Manager は、アイドル状態または実行中のタスクの名前として示されます。スクリプトを実行した後にログをチェックするには、そのログが保存されているデータベースを開き、エージェントを選択して、トップメニューで [Agent] - [Log] を選択します。

ログは、エージェントが実行されるたびに上書きされます。ログには、各実行ごとに、選択された文書の数、実行の開始時間と終了時間が表示されます。

Page 271: LEI ユーザーズガイド

第 17 章 SCRIPTED アクティビティ

Scripted アクティビティに関する考慮事項

このセクションでは、Scripted アクティビティで使用される Notes エージェントの作成に関するいくつかのヒントを紹介します。

LotusScript を正しく実行するには、LEI と Notes のディレクトリがパスに表示されている必要があります。 !

エージェントを作成するとき、[Agents] メニューで [Shared] を選択し、[Target] の値を [None] に指定します。!

LEI のエラーと LotusScript のエラーの両方をサポートしてください。 !

Notes の IDE (Integrated Development Environment) を使用してエージェントをテストするには、[File] - [Tools] メニ!ューで [Debug LotusScript] を選択し、メニューからエージェントを実行します。ローカルのコンピュータに LEI Server、Notes Client、または Designer Client がインストールされている必要があります。

また、Notes パスワード入力は許可されません。パスワード不要の Notes ID を使用するか、[Share password with Notes add-ins] オプションを有効にします。Notes のメニューで [File] - [Tools] - [User ID] を選択します。

LEI の Script Vault (スクリプト格納) データベース (leivlt6.nsf) や関連データが格納されている Notes データベース!に、エージェントをまとめることができます。また、他のデータベースにまとめることも可能です。

メモ これらのエージェントは「共有」のため、データベース設計が新しくなった場合や更新された場合には削除され

ます。エージェントを格納する Notes データベースの設計継承を無効にする必要があります。

Scripted アクティビティは、リモートの iSeries サーバーまたは UNIX サーバー上にあるデータベースを開けません。!

Page 272: LEI ユーザーズガイド

付録 A LEI とデータ

付録 A LEI とデータ

付録 A では、LEI のデータ型とデータのマッピングについて説明します。

Page 273: LEI ユーザーズガイド

付録 A LEI とデータ

Notes とリレーショナルデータベース

LEI を使用すると、Notes などのデータソース間でデータを転送できます。これには、Notes オブジェクトとデータベースオブジェクトとの対応を理解しておくと役立ちます。LEI アクティビティのメタデータは、リレーショナルデータベースではデータテーブルにあたり、Notes ではフォームにあたります。LEI、Notes、リレーショナルデータベースで使用される用語の対応を次の表に示します。

LEI の用語 リレーショナルデータベースの用語 Notes の用語

データベース データベース データベース (.nsf ファイル)

メタデータ テーブル、ビュー、ストアドプロシージャ フォームまたはビュー

フィールド 列 フィールドまたは列

レコード 行 文書または行

ステートメント SQL クエリー 選択式

Page 274: LEI ユーザーズガイド

付録 A LEI とデータ

LEI のデータ型

LEI は、データを転送したり操作するときに、次の表に示すデータ型を内部的に使用します。LEI では、元のデータ型の情報を保持したまま、このデータ型を LEI の最も近いデータ型に変換します。このため、必要な場合は元のデータ型に戻すことができます。

データ型 パラメータ

INT 説明 4 バイトの符号付き整数

最大値 2147483647.00

最小値 -2147483647.00

精度 9 桁

FLOAT 説明 8 バイトの浮動小数点 (C の Double 型に相当)

正の最大値 1.7976931348623158e+308

正の最小値 0.00

精度 15 桁

CURRENCY 説明 8 バイトの符号付き整数 (小数点以下 4 桁固定)

最大値 922337203685478.00

最小値 -922337203685478.00

精度 19 桁

スケール 4.00

NUMERIC 説明 高精度パック化数値

正の最大値 9.99...99e126

正の最小値 0.00

最大精度 88 桁

最大スケール 127.00

最小スケール -127.00

DATETIME 説明 タイムゾーンを含む 8 バイトの日付時間値

最大値 12/31/32767

最小値 1/1/1

正確さ 0.01 秒

TEXT 説明 キャラクタセットによるテキストストリーム

プロパティ 固定長/可変長、大文字と小文字の区別あり

最大長 4GB

Page 275: LEI ユーザーズガイド

BINARY 説明 オプションのフォーマット情報を含むバイナリストリーム

使用できる形式 BLOB (未フォーマット)、コンポジット (Notes リッチテキスト)、テキストリスト (複数値テキスト)、数値リスト (複数値の数値)、日時リスト (複数値の日時)

プロパティ 固定長/可変長、大文字と小文字の区別あり

最大長 4GB

NULL の意味

LEI では、NULL は他の値と比較ができない未定義の値として処理されます。NULL は、空の文字列や 0 などの空の値とは異なります。たとえば、データベース内の NULL の値がレプリカ内の空の値に対応する場合は、複製が行われます。このような場合は、SQL 構文を使用して、NULL をデータベースでの対応する値に変換します。

LEI は、Notes データベース内で値が存在しないことを NULL として認識します。

Page 276: LEI ユーザーズガイド

付録 A LEI とデータ

2000 年問題の対応

LEI は、Pivot Date ソリューションを使用し、2000 年の日付の問題に対応しています。

LEI での 2 桁表記の年は、notes.ini ファイルに設定されている世紀の境界の値に基づいて解釈されます。EICenturyBoundary 変数には、0 から 101 までの任意の値を設定できます。

年の下 2 桁が境界の値よりも小さいときは 2000 年代と認識され、この値以上のときは 1900 年代と認識されます。世紀の境界の値が 101 のときは、現在の世紀の年が使用されます。デフォルトの値は 50 です。0 は常に 1900 年代を示し、100 は常に 2000 年代を示します。

以下に例を示します。

2 桁の年がどのように変換されるか

EICenturyBoundary = 0 00 = 1900 55 = 1955 99 = 1999

EICenturyBoundary = 55 00 = 2000 55 = 1955 99 = 1999

EICenturyBoundary = 60 00 = 2000 55 = 2055 99 = 1999

EICenturyBoundary = 100 00 = 2000 55 = 2055 99 = 2099

年の値の 4 桁表記の使用

LEI に、010101 のような MMDDYY フォーマットの 2 桁の年の値で日付を作成した場合、notes.ini に設定した EICenturyBoundary の値によって、2001 年 1 月 1 日または 1901 年 1 月 1 日のいずれかになります。EICenturyBoundary の値にかかわらず、日付を現在の世紀にするには、notes.ini に EINoCenturyBoundary=1 と設定し、日付の年の値を 2 桁ではなく 4 桁表記にする必要があります。4 桁未満の年の値にした場合、先頭に 0 が追加されます。たとえば、MMDDYYYY 形式を使用した場合、010101 は 0001 年 1 月 1 日になり、2001 (または 1901) 年 1 月 1 日とは認識されません。日付を現在の世紀のものにするには、年は 4 桁すべてを使用する必要があります。たとえば、01012001 は 2001 年 1 月 1 日になります。

メモ notes.ini に EINoCenturyBoundary=1 と設定する場合、EICenturyBoundary 変数を無効にして、年の値はすべて 4

桁の値として処理されるようにしてください。

メモ 一部のプラットフォームでは、システム最小の日付として変わった値が使用されます。たとえば iSeries では、システ

ム最小の日付は 1 年 1 月 1 日です。

メモ 関連情報については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』の「初期化ファイルの設定」を参

照してください。

Page 277: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

付録 B エラーメッセージとトラブルシューティング

付録 B では、LEI のトラブルシューティングについて説明します。

Page 278: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

インストールに関するトラブルシューティング

LEI のインストールに関するトラブルシューティングの詳細については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

さらに、次の Web サイトを参照してください。

http://www.lotus.com/ei

http://www.lotus.com/ldd

Page 279: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

LC LSX の基本的なエラー

LCFAIL_MEMORY: Unable to allocate memory.

メモリ割り当て要求を正常に実行できませんでした。必要なメモリ容量を減らすか、システムリソースを解放してください。このエラーは、フィールドリストのレコード数が非常に多い場合や、固定ストリームのサイズが非常に長い場合などに発生します。

LCFAIL_UNAVAILABLE: Requested functionality is not available.

要求を満たすことができません。このエラーは、要求した機能や操作をコネクションがサポートしない場合に発生します。たとえば、読み込み専用のコネクションに対して挿入操作を実行しようとすると、このエラーが返されます。

LCFAIL_END_OF_DATA: The last data value has been retrieved.

反復操作の処理が正常に終了したことを示します。通常はエラー状態と認識されません。結果セットからデータを取得、または複数のフィールドを表示するなどの反復処理を実行すると、最後まで処理した時点でそれを通知するこのステータスコードが返されます。

LCFAIL_INVALID_INDEX: Cannot locate list element.

指定された索引パラメータがオブジェクトの範囲を超えています。たとえば、2 つのレコードで構成されるフィールドリストに 3 番目のレコードを要求すると、このエラーが返されます。

LCFAIL_INVALID_LIST: Invalid list direction.

LCLIST 列挙パラメータが無効です。List パラメータには、いずれかの LCLIST_XXX 定数を指定する必要があります。

LCFAIL_INVALID_CONVERT: Invalid conversion.

指定されたソースとターゲット間ではデータ型を変換できません。たとえば、数値を日時に、または日時を数値にする変換を試みると、このエラーが発生します。

LCFAIL_INVALID_TEXT_LIST: This operation requires a valid text list.

LCTextList 関数を実行するには、LCThisTextList の値として、有効なテキストリスト形式のストリーム (LCSTREAMFMT_TEXT_LIST 形式で長さが 2 以上) または単一のテキスト値 (LEITYPE_TEXT 型) を指定する必要があります。これらの条件が満たされていないか、データが有効なテキストリストではないときに、このエラーが発生します。

LCFAIL_INVALID_NUMBER_LIST: This operation requires a valid number list.

LCNumberList 関数を実行するには、LCThisNumberList の値として、有効な数値リスト形式のストリーム (LCSTREAMFMT_NUMBER_LIST 形式で長さが 4 以上) を指定する必要があります。これらの条件が満たされていないか、データが有効な数値リストではないときに、このエラーが発生します。

LCFAIL_INVALID_DATETIME_LIST: This operation requires a valid datetime list.

LCDatetimeList 関数を実行するには、LCThisDatetimeList の値として、有効な日時リスト形式のストリーム (LCSTREAMFMT_DATETIME_LIST 形式で長さが 4 以上) を指定する必要があります。これらの条件が満たされていないか、データが有効な日時リストではないときに、このエラーが発生します。

LCFAIL_ZERO_INDEX: All index values are one or greater ・an index of zero is not valid.

指定された索引パラメータが 0 です。LEI オブジェクトの索引の値は 1 以上である必要があります。

LCFAIL_ZERO_COUNT: This operation requires a non-zero count.

カウントパラメータとして 0 が指定されましたが、現在のコンテキストでは無効です。通常、カウントパラメータには 1 以上を指定する必要があります。

LCFAIL_ZERO_OFFSET: All offset values are one-based ・an offset of zero is not valid.

オフセットパラメータとして 0 が指定されましたが、LEI オブジェクトのオフセット値は 1 以上である必要があります。

LCFAIL_ZERO_FORMAT: This operation requires a non-zero stream format.

ストリーム形式のパラメータとして 0 が指定されましたが、現在のコンテキストでは無効です。通常、ストリーム形式のパラメータには有効な LCSTREAMFMT_XXX 定数を指定する必要があります。

LCFAIL_NULL_BUFFER: A NULL buffer was provided when one was required.

メモリバッファパラメータとして NULL ポインタが指定されましたが、現在のコンテキストでは無効です。一部のバッファパラメータ (通常は入力バッファ) には、有効なポインタを指定する必要があります。

LCFAIL_NULL_RESULT: A return parameter is required, but none was provided.

出力パラメータとして NULL ポインタが指定されました。作成されたオブジェクトなど、一部の出力パラメータには有効なポインタを指定する必要があります。

LCFAIL_FIXED_LENGTH: A fixed-length stream requires a non-zero length.

LCSTREAMF_FIXED フラグが設定された LCSTREAM オブジェクトが、ストリームの作成時に固定長バッファを割り当てました。長さは、ストリームの最大長プロパティによって決まります。 固定長ストリームの長さは 0 になりません。

LCFAIL_INVALID_FLAGS: The supplied flags are invalid, possibly due to a conflict.

フラグパラメータに、不正なフラグまたは競合するフラグが含まれています。フラグ定数の中には、同時に使用できないものがあります (LCFIELDF_KEY_GT と LCFIELDF_KEY_LT など)。

LCFAIL_TEXT_TRANSLATE: Text translation failure.

Page 280: LEI ユーザーズガイド

テキストストリーム形式間での変換に失敗しました。

LCFAIL_NULL_FIELDNAME: A NULL field name was provided.

フィールド名パラメータとして NULL ポインタが指定されました。有効なポインタを指定する必要があります。

LCFAIL_INVALID_FIELDLIST: Invalid fieldlist.

不正な LCFIELDLIST オブジェクトインスタンス/ハンドルが使用されました。

LCFAIL_INVALID_CONNECT: Invalid connect.

不正な LCCONNECT オブジェクトインスタンス/ハンドルが使用されました。

LCFAIL_EMPTY_FIELDLIST: This operation cannot be performed on a fieldlist with no fields.

フィールドを含まないフィールドリストが使用されましたが、空のフィールドリストに対してこの操作は実行できません。フィールドリストに、1 つ以上のフィールドを追加して再実行してください。

LCFAIL_NAME_FIELDLIST: This operation cannot be performed on a name-only fieldlist.

割り当てレコード数が 0 であるフィールドリストにフィールド名のみ指定されており、フィールドデータがありません。現在のコンテキストでは、このようなフィールドリストを使用できません。1 以上のレコード数が割り当てられているフィールドリストを使用してください。

LCFAIL_FIELDLIST_REF: Cannot alter fields in a multiply-referenced fieldlist.

元のフィールドリストおよびそのフィールドリストの参照コピーとして作成されたフィールドリストが、同じフィールドデータ領域を共有しています。フィールドリストのコピーが存在する間は、元のフィールドリストに対してフィールドの追加や削除を実行できません。

LCFAIL_RECORD_INDEX: An invalid fieldlist record index was encountered.

対応するフィールドリストに対して、無効な lcRecordIndex パラメータが指定されました。レコード索引は、フィールドリスト内のフィールド数を超えられません。

LCFAIL_RECORD_COUNT: Request to transfer more records than allocated in fieldlist.

対応するフィールドリストに対して、無効な lcRecordCount パラメータが指定されました。レコード数は、フィールドリスト内のフィールド数を超えられません。また、レコード索引より小さい数である必要があります。

LCFAIL_LIST_SETUP: Fieldlist iteration requires initial setup.

LCFieldlistList を使用してフィールドリスト内のフィールドを繰り返し処理するときは、最初に LCFieldlistListSetup を呼び出して、反復処理用にフィールドリストを準備する必要があります。特定のフィールドリストインスタンスに対して、LCFieldlistListSetup の前に LCFieldlistList を呼び出すと、このエラーが発生します。

LCFAIL_NO_MERGE_DATA: The data fieldlist in a merge cannot be a name-only fieldlist.

割り当てレコード数が 0 であるフィールドリストにフィールド名のみが指定されており、フィールドデータがありません。このようなフィールドリストは、LCFieldlistMerge または LCFieldlistMergeVirtual 操作の LCDataFieldlist パラメータとして使用できません。

LCFAIL_NO_RESULTSET: This operation requires an active result set.

有効な結果セットのないコネクションに対しては、要求された操作を実行できません。最初に LCConnectExecute、LCConnectSelect、または LCConnectCatalog を使用して、コネクションに結果セットを生成してください。

LCFAIL_NO_WRITEBACK: This operation requires an active writeback result set.

有効なライトバックコンテキストのないコネクションに対しては、要求された操作を実行できません。最初に、コネクションにライトバック結果セット (WRITEBACK プロパティを TRUE に設定) を作成し、フェッチオペレーションを実行して、ライトバックの更新と削除を行えるようにしてください。

LCFAIL_WRITEBACK_COUNT: Writeback operation record counts must be one.

コネクションの結果セットの現在のレコードに対して、ライトバックの更新または削除の操作が実行されました。これらのオペレーションを行うには、lcRecordCount パラメータを 1 に設定する必要があります。

LCFAIL_STATIC_PROPERTY: Static activity properties cannot be used with unnamed activities.

LCActivityAlloc によってアクティビティが起動されましたが、LEI Administrator のコンテキスト外にアクティビティ名が存在しません。静的プロパティは LEI Administrator のアクティビティ文書に格納されるため、アクティビティに名前がないと無効になります。

LCFAIL_LCXINIT: LEI system has not been initialized.

LEI 関数を呼び出す前に、LEI API システムを初期化する必要があります。システムを初期化するには、アクティビティをコマンドラインから実行するか、LCActivityAlloc を呼び出します。システムを初期化する前に LEI API 関数を呼び出すと、このエラーが返されます。

LCFAIL_ACTIVITY_NOT_INIT: The activity must be initialized before performing any operation.

LCActivity 関数を呼び出す前に、アクティビティのコンテキストを初期化する必要があります。アクティビティのコンテキストを初期化するには、アクティビティをコマンドラインから実行するか、LCActivityAlloc を呼び出します。アクティビティのコンテキストを初期化する前にアクティビティ関数を呼び出すと、このエラーが返されます。

LCFAIL_ACTRUN_TIMEOUT: Timeout while running synchronous activities.

LCActivityRunActivity を使用し、タイムアウトを設定して同期アクティビティを実行する場合、すべての同期アクティビティとその子アクティビティが完了する前にタイムアウトになると、このエラーが発生します。

LCFAIL_NOT_CONNECTED: This operation requires a connection to a Connector.このエラーは、LCConnectConnect へのコネクションが、必要な LCConnect 関数から返されます。データを操作する関数や、データを取得する関数を実行する

Page 281: LEI ユーザーズガイド

には、これらすべての関数によるデータソースへの正確なコネクションが必要です。

LCFAIL_CONNECTED: This operation cannot be performed with a valid Connector connection.

このエラーは、LCConnectConnect へのコネクションを確立をする前に、特定の操作の実行が必要なコネクタから返されます。

LCFAIL_EXTERNAL: External error.

このエラーは、LEI の外部でエラーが発生したことを示します。通常、外部エラーコードとエラーメッセージによって、そのエラーの詳細を確認できます。

LCFAIL_ACTIVE_SUBCONNECTION

メタコネクションの subconnection (コネクションプロパティ) は 1 回のみ設定できます。プロパティに有効な値が設定されている場合に、再度値を設定を試みると、このエラーが発生します。

Page 282: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

LC LSX の基本イベント (エラー以外)

LCEVENT_EXTERNAL: External event

この状態コードは、LEI の外部でイベントが生成されたことを示します。これは、情報を通知するためのメッセージです。通常、外部イベントコードとイベントメッセージにより、そのイベントの詳細を確認できます。

Page 283: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

LC LSX の拡張エラー

LCFAIL_INVALID_METADATA: Metadata object <metadata> does not exist.

使用するメタデータオブジェクトは METADATA プロパティで指定します。このプロパティの現在値は、このコネクションの有効なメタデータオブジェクトを表しません。

LCFAIL_TYPE_MISMATCH: Type mismatch for field <fieldname>; LEI: <type>, Connector: <type>.

LEI のフィールドとコネクションのフィールドを一致させる場合、基本的なデータ型が一致している必要があります。つまり、両方とも数値、日時、またはストリームである必要があります。両者のデータ型が一致しない場合にこのエラーが返されます。

LCFAIL_DUPLICATE: Duplicate object <name>.

同じ名前のオブジェクトがすでに存在するため、オブジェクトの作成に失敗しました。

LCFAIL_FIELD_COUNT_MISMATCH: Field count mismatch; LEI: <count>, Connector: <count>.

フィールドをマッピングする場合、特殊なケース以外はフィールドの数が一致する必要があります。通常、ソースフィールドの数がターゲットフィールドの数よりも多いと、このエラーが返されます。

LCFAIL_KEY_COUNT_MISMATCH: Key count mismatch; LEI: <count>, Connector: <count>.

キーフィールドを使用する場合、同数のフィールド名を指定する必要があります。

LCFAIL_STAMPFIELD_TYPE: Timestamp field <fieldname> must be type datetime; Actual: <type>.

タイムスタンプフィールドに指定するフィールドは、日時型と互換性のあるデータ型である必要があります。

LCFAIL_FIELD_TYPE: Type mismatch for field <fieldname>used in this context; Expected: <type>, Actual: <type>.

特定の操作には、特定のデータ型が必要です。フィールドのデータ型がその使用目的に合わない場合に、このエラーが返されます。

LCFAIL_MERGE_FIELD: Field mapping failed due to a missing field <fieldname>.

フィールドをマッピングするには、すべての必須フィールドに、対応する有効なフィールドが存在する必要があります。対応するフィールドが存在しない場合に、このエラーが返されます。

LCFAIL_MISSING_PROPERTY: No value supplied for required property <property>.

要求された操作を実行するには、そのためのプロパティが設定されている必要があります。たとえば、索引を作成する前には INDEX プロパティを指定します。

LCFAIL_PROPERTY_CONFLICT: Conflicting values for properties <property> and <property>.

2 つのプロパティの値が競合しています。プロパティによっては、排他的に使用、または他のプロパティとの関係を保ちながら使用する場合があり、特定の組み合わせが認められないこともあります。詳細については、関連するコネクションまたはアクティビティのドキュメントを参照してください。

LCFAIL_INVALID_PROPERTY: Invalid property <property>.

コネクションまたはアクティビティがサポートしないプロパティが参照されました。

LCFAIL_PROPERTY_VALUE: Invalid property value for property <property>.

プロパティの値が正しくありません。詳細については、関連するコネクションまたはアクティビティのドキュメントを参照してください。

LCFAIL_INVALID_CHARSET

キャラクタセットを示す表現が適切ではありません。キャラクタセットを指定するときは、LEI がサポートするキャラクタセットサフィックスを使用する必要があります。『Lotus Connector LotusScript Extensions ガイド』の「付録 D キャラクタセット」を参照してください。たとえば、LCSTREAMFMT_IBMCP850 の場合は IBMCP850 を使用します。

LCFAIL_READ_ONLY_PROPERTY

読み取り専用のプロパティに値を設定しようとしました。このプロパティにはアクセスできますが、値は割り当てられません。

Page 284: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

LC LSX の拡張イベント (エラー以外)

LCEVENT_CHARACTER_SET: Unsupported connection character set <charset>; using native character set.

この状態コードは、コネクションのキャラクタセットと使用可能な LEI のキャラクタセットとの不一致を示します。通常これはエラーではなく、情報を示すメッセージです。この場合、ローカルコンピュータのキャラクタセットが使用されます。

Page 285: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

LC LSX の拡張フィールド名エラー

LCFAIL_OVERFLOW: Data overflow in field <fieldname>.

フィールドとのデータ交換時に、データのオーバーフローが発生しました。 数値の場合は、値が大きすぎることを示します。日時の場合は、「年」がサポート範囲を超えていることを示します。ストリームの場合は、値が長すぎることを示します。オーバーフローエラーの発生を防ぐには、フィールドフラグ LCFIELDF_TRUNC_DATA またはストリームフラグ LCSTREAMF_TRUNCATE を使用します。

LCFAIL_PRECISION_LOSS: Data precision loss in field <fieldname>.

型チェックによって精度の低下が検出されました。効率を上げるには、精度の低下を型チェックの際にのみ調べるようにします。精度低下エラーの発生を防ぐには、フィールドフラグ LCFIELDF_TRUNC_PREC を使用します。

LCFAIL_INVALID_INT: Invalid integer value in field <fieldname>.

整数として不正な参照、値、またはテキスト表現が検出されました。

LCFAIL_INVALID_FLOAT: Invalid float value in field <fieldname>.

浮動小数点として不正な参照、値、またはテキスト表現が検出されました。

LCFAIL_INVALID_CURRENCY: Invalid currency value in field <fieldname>.

通貨として不正な参照、値、またはテキスト表現が検出されました。

LCFAIL_INVALID_NUMERIC: Invalid numeric value in field <fieldname>.

数値として不正な参照、値、またはテキスト表現が検出されました。

LCFAIL_INVALID_DATETIME: Invalid datetime value in field <fieldname>.

日時として不正な参照、値、またはテキスト表現が検出されました。

LCFAIL_INVALID_STREAM: Invalid stream value in field <fieldname>.

ストリームとして不正な参照または値が検出されました。

LCFAIL_INVALID_FIELD: Invalid field <fieldname>.

不正な LCFIELD オブジェクトインスタンス/ハンドルが使用されました。

LCFAIL_INVALID_TYPE: Invalid data type for field <fieldname>.

不正な型の定数が使用されました。データ型を表す有効な定数は LEITYPE_XXX のみです。

LCFAIL_INVALID_KEY: Invalid key field <fieldname>.

指定されたキーフィールド名に対応するフィールドがありません。キーフィールド名には、メタデータに存在するフィールドを指定してください。

LCFAIL_DUPLICATE_KEY: Duplicate key field <fieldname>.

キーリスト内で同じキーフィールド名が 2 回使用されました。重複する参照を削除してください。

LCFAIL_INVALID_STAMPFIELD: Invalid timestamp field <fieldname>.

指定されたタイムスタンプフィールド名に対応するフィールドがありません。タイムスタンプフィールド名には、メタデータに存在するフィールドを指定してください。

LCFAIL_INVALID_FIELDNAME: Field name <fieldname> is not valid in this context.

指定されたフィールド名は、現在のコンテキストでは正しくありません。コネクションやアクティビティによっては、使用できるフィールド名が制限される場合があります。

LCFAIL_VIRTUAL_FIELD: Unsupported virtual field <fieldname>.

仮想フィールドが検出されましたが、現在のコネクションではこのフィールド名は使用できません。コネクションで使用できる仮想フィールド名については、Connector のドキュメントを参照してください。

LCFAIL_VIRTUAL_VALUE: Invalid data value for virtual field <fieldname>.

仮想フィールドによっては、値が制限される場合があります。コネクションの仮想フィールドの値の詳細については、各コネクタのドキュメントを参照してください。

LCFAIL_INVALID_ORDER: Invalid ordering field <fieldname>

指定されたソートフィールド名に対応するフィールドがありません。ソートに使用するフィールド名には、メタデータに存在するフィールドを指定してください。

Page 286: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

その他の一般的な LEI メッセージ

Monitor failure -- Error: This operation requires an active result set, Connector Notes Method - SetProperty.

このメッセージは、Notes から Notes への Advanced RealTime アクティビティとして作成された文書を LEI が開こうとしていることを示します。しかし、Notes から Notes への Advanced RealTime アクティビティはサポートされません。つまり、Notes の Advanced RealTime アクティビティでは、Notes データベースを外部データベースとして使用できません。

Cannot use a Notes connection to a local database - error: No such database exists:

アクティビティがローカルデータベースに接続し、メタデータの参照を試みましたが、目的のデータベースが見つかりません。LEI Server が管理する LEI Administrator が Domino Server 上にない場合に、このエラーが発生します。

Page 287: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

アクティビティログ

アクティビティログ文書には、役に立つ非表示フィールドがいくつか含まれます。これらのフィールドの説明は、Lotus 社の公式な見解ではなく、将来もこの形式が継続されるかは不明です。また、LEI の以前のバージョンや将来のバージョンで、これらのフィールドが同じものであるかも不明です。

[Error] フィールド:アクティビティがエラー状態で終了した場合、その原因となる初期エラーを示す LEI エラーコード (0 以外の数値) がこのフィールドに格納されます。このフィールドの値が 0、またはフィールドが存在しない場合は、アクティビティの正常終了を意味します (実行が成功したか、エラーが明示的に解消されたことを示します)。

[CountList] フィールド:このフィールドには、内部のコネクタ関数の呼び出し回数または転送レコード数のリストが格納されます。この数値リストには、次の内容が含まれます。

Connect の呼び出し回数

Disconnect の呼び出し回数

Execute の呼び出し回数

Select の呼び出し回数

Fetch の呼び出し回数

Insert の呼び出し回数

Update の呼び出し回数

Remove の呼び出し回数

Action の呼び出し回数

Catalog の呼び出し回数

Create の呼び出し回数

Drop の呼び出し回数

*Execute から返されたレコード数

*Select から返されたレコード数

*Fetch によって取得されたレコード数

*Insert によって挿入されたレコード数

*Update によって更新されたレコード数

*Remove によって削除されたレコード数

*Catalog から返されたレコード数

* -- 数を特定できないときは、値 4294967295 (不確定という意味) 使用されます。

Page 288: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

iSeries 上の LEI に関するトラブルシューティング

ここでは、iSeries で LEI を使用する際の一般的な問題について説明します。

LEI アクティビティの実行時に発生する可能性のある一般的なエラーとその対策を次の表に示します。

ログのエラーメッセージ 考えられる原因 処置

Error: Token was not valid. ... (-104)

Activity Ended With An Error

SQL ステートメントに非表示の文字があります。

SQL ステートメントを確認してください。

通常、このエラーは、SQL ステートメントを他のソースからアクティビティにコピーアンドペーストしたときに発生します。アクティビティでは CR/LF 文字を挿入して、ステートメントを読みやすくできます。SQL ステートメントが正しい場合は、同じステートメントをアクティビティに再入力してください。DB2 コネクションのオプションでは、追跡データをアクティビティログに記録もできます。これにより、その SQL ステートメントの問題箇所を突き止めることができます。

Error: Character conversion cannot be performed.

LEI のジョブの CCSID が、参照先リレーショナルテーブルのキャラクタデータの CCSID に適合していません。たとえば、ジョブ CCSID が 37 で、ソースデータの CCSID が 937 (ダブルバイト CCSID) の場合にこのエラーが発生します。

LOCALE 設定を変更して Domino Server を実行する必要があるかを検討します。

Error: Authorization failed on distributed database connection attempt.

このメッセージは、指定したユーザー名またはパスワードが正しくない場合に表示されます。データソースにより、パスワードの大文字と小文字が区別される場合があります。

リモートの DB2/400 データソースにアクセスするときは、パスワードを大文字で入力します。その他の DB2 データソースにアクセスする場合、パスワードの大文字と小文字が区別されるかは、ターゲットのプラットフォームの仕様によって異なります。

Error: Relational database <database name> is not in relational database directory.

DB2 コネクション文書にデータベース名が正しく指定されていないか (大文字と小文字は区別されません)、RDB ディレクトリにデータベースが登録されていません。

WRKRDBDIRE CL コマンドを実行して、ターゲットデータベースが登録されているを調べます。登録されていない場合は、データベースと必要な接続情報を接続先のデータソースに追加します。ローカルの DB2/400 に接続する場合は、*LOCAL データベースの名前付きエントリを指定する必要があります。

Error: <table name> in <library name> not valid for operation. Function -Execute- (-7008)

ジャーナルの対象となるコネクションまたは DB2 テーブルで、ジャーナルのオプションが正しく設定されていない可能性があります。

それ以外の原因については、QSQLMSG メッセージファイルの SQL7008 を参照してください。

iSeries で DB2 テーブルにジャーナル処理を行わないときは、使用する DB2 コネクションでジャーナルなしのオプションが選択されていることを確認してください。LEI のすべてのアクティビティは、デフォルトでコミット制御付きで実行されるよう設定されています。ジャーナルを行うときは、コミット制御のもとで実行する必要があります。ジャーナルを行うかは、トランザクションに応じて判断する必要があります。

Page 289: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

iSeries ジョブログの検索

LEI Server およびアクティビティのエラーに関する主要な情報は、LEI ログデータベースに保存されます。また、LEI はサーバーのアドインのため、Domino Server のコンソールで Domino 関連の診断情報も参照する必要があります。さらに、場合により、iSeries システムのジョブログの検索が必要な場合もあります。すべての LEI アクティビティは、iSeries のユーザープロファイル QNOTES に基づいて実行されます。

ジョブログを検索するには、次のコマンドを入力します。

WRKSPLF QNOTES

ジョブログが存在しないときは、実行中の Domino Server のジョブ記述を変更してジョブログを生成し、エラーとなる要求を再生成する必要があります。そのためには、実行する Domino Server のサブシステムに対応するジョブ記述を検索します。たとえば、Domino Server が DOMINO01 サブシステムのもとで実行されている場合、この Domino Server に対応するジョブ記述は、QUSRNOTES ライブラリ内の DOMINO01 (*JOBD) となります。

次のコマンドを入力します。

CHGJOBD QUSRNOTES/DOMINO01 LOG(4 10 *SECLVL)

次のジョブ名は、LEI 専用のジョブ名です。

LEI!

LEICSM!

LEIACT!

LEI ジョブは LEI Server 全体を制御し、LEICSM ジョブは LEI コントロールストア (Administrator データベース) と通信します。LEIACT ジョブは、実際にアクティビティを実行するプロセスです。さらに、LEI エージェントは HTTP のもとで実行でき、Advanced RealTime は SERVER または HTTP のもとで実行されます。.

DB2 に接続して iSeries 上でアクティビティを実行する LEI に関して、また別のジョブセットがあります。それが QSQSRVR ジョブです。これらは QSYSWRK サブシステムで事前に起動されるジョブで、アクティビティジョブ (LEIACT)、リアルタイムジョブ (SERVER または HTTP)、LEI エージェントジョブ (AMgr) に代わり、スレッドセーフ環境で DB2 アクセスを実行します。LEIACT によって確立される各 DB2 のコネクションについて、QSYSWRK サブシステムに対応する QSQSRVR ジョブがその接続に割り当てられ、アクティビティジョブに代わりすべての DB2 SQL 要求を実行します。問題を解決する際、場合によっては QSQSRVR ジョブログを調べる必要も生じます。これらのジョブは、QUSER ユーザープロファイルで事前に割り当てられます。必要であれば、QUSER プロファイルのジョブ記述を変更して、ジョブログを生成します。

Page 290: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

iSeries で LEI を使用するためのその他のヒントとテクニック

ここでは、iSeries 上で LEI 使用する際の一般的なヒントを紹介します。

Domino ディレクトリ内のサブディレクトリを指定するアクティビティを作成するときは、そのディレクトリに対する権限!が QNOTES に与えられている必要があります。また、ディレクトリの指定はスラッシュを使って記述します (例 : demodir/mydir/mydoc.nsf)。

[Create Metadata] オプションを選択して DB2 のコネクションを使用する場合、接続先の DB2 テーブルが存在しない!ときは、(Direct Transfer や Replication などのアクティビティを実行すると) DB2 ターゲットで CREATE TABLE が実行されます。ただし、LEI での CREATE TABLE の実行はできる限り避けてください。LEI のテキストフィールドは Notes のテキストフィールドに対応しているため、フィールドサイズが制限されません。したがって、DB2 でフィールドからマッピングされているため、そのサイズが非常に大きくなる可能性があります。サイズが制限されていないすべてのテキストフィールドは、リレーショナルレコードの最大サイズに合わせて展開されます。iSeries では、文字フィールドが 32766 バイトレコードの残りの部分すべてを埋め尽くします。Notes コネクションオプションでテキストフィールドの最大サイズを制限できますが、このテキストフィールドサイズは制限のないすべてのテキストフィールドに適用されます。あらかじめ DB2 テーブルを作成しておくか、または Command アクティビティを使用して、CHAR 型フィールドと VARCHAR 型フィールドの長さが適切に設定されたテーブルを作成してください。

LEI Server のポーリング間隔には、あまり小さい値は設定できません。60 秒程度が適切で、5 秒や 10 秒では小さ!すぎます。

Direct Transfer アクティビティの転送スループットを向上させるため、[Number of Records to Transfer Concurrently] !に 1 以外の値を設定してください。転送するレコードのサイズによりますが、20 から 100 が適切です。

DB2/400 テーブルと Notes データベース間でタイムスタンプ複製を実行するとき、DB2/400 をバックアップから回復!した場合、または APYJRNCHG などを使用して大きな変更を加えた場合は、複製アクティビティを次に実行する前に [Reset Replication Timestamp] ボタンを選択してください。システム操作やユーティリティの実行が原因で 2 つのデータベースが同期していないと思われる場合は、必ずこのリセットオプションを使用してください。

物理ファイルの特定のメンバーを指定しても LEI DB2/400 要求は指定できません。常に、指定した物理ファイル (テ!ーブル) の最初のメンバーが使用されます。

Direct Transfer の上書きオプションを指定して最初にターゲットをクリアするとき、ターゲットが DB2/400 テーブルの!場合は、Command アクティビティを使用して物理ファイルのメンバーを最初にクリア (CLRPFM) し、その後、上書きオプションを指定せずに Direct Transfer を実行します。これにより、非常に長い SQL Delete とジャーナルエントリの発生を防ぎます。さらに、これら 2 つのアクティビティを組み合わせて実行できます (Direct Transfer をクリア要求の従属アクティビティにします)。

この問題を回避するには、Replication アクティビティ文書の [Key Fields] オプションで指定したキーフィールドの順序!に合わせてフォームのフィールドを並べ替えます。または、フォームのフィールドの順序に合わせてキーフィールドの順序を変更します。また、完全なタイムスタンプフィールドをキーフィールドとしては使用できません。フィールドがタイムスタンプとして使用され、固有の参照が保証されないときは、Domino よりも DB2/400 の精度が重要になります。

Direct Transfer で [Try Update Before Insert] を指定する場合、[Key Fields for Update] で指定されているキーフィ!ールドは、ターゲットコネクションではなく、ソースコネクションのキーフィールド名に対応する必要があります。

Direct Transfer 要求または Advanced RealTime アクティビティで使用するストアドプロシージャは、iSeries (LEI) の!呼び出し側のアクティベーショングループで実行する必要があります。プログラムのアクティベーショングループの状態を調べるには、DSPPGM コマンドを使用します。アクティベーショングループの属性が *CALLER でないときは、ログデータベースに異常終了が記録されます。また、ストアドプロシージャは、QNOTES ユーザープロファイルの権限のもとで実行する必要があります。プログラムの公開呼び出しが可能であるか、または QNOTES に権限が与えられていることを確認してください。

DB2 でストアドプロシージャを使用する場合、ストアドプロシージャの呼び出し時には、Notes フォームの NUMBER !フィールドに DOUBLE 型の引数値 (C 言語) が格納されます。ストアドプロシージャの実行時に、適切な SQL 型へ型変換する必要がありません。

Page 291: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

Advanced RealTime の設定、トラブルシューティング、およびエラーメッセージ

ここでは、Advanced RealTime の使用時に発生する可能性がある既知の問題とエラーメッセージについて説明します。Advanced RealTime アクティビティの notes.ini 変数の詳細については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

Page 292: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

アップグレードした後、Virtual Fields アクティビティを使用してデータにアクセスできない

DECS から LEI へのアップグレード後、Virtual Fields アクティビティの実行中にデータを取得できない場合は、各 Virtual Fields アクティビティ文書を開き、そのアクティビティ文書で Domino Server 名が正しく指定されていることを確認してください。

Page 293: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

Advanced RealTime のセキュリティについて

Advanced RealTime では、セキュリティに関する 2 つの問題があります。

Advanced RealTime Administrator (Notes の参照とキーの初期化)!

LC LSX (Notes の Lotus Connector またはファイルシステムの Lotus Connector を使用する場合)!

Advanced RealTime Administrator に関する問題は、アクティビティを作成する際、または [Initialize Keys] 機能を使用する際に、Notes を参照しようとする場合に発生します。この場合、非制限のエージェントへのアクセスに関する LotusScript エラーが生成されます。これらの機能を使用するには、Advanced RealTime アクティビティが非制限のエージェントを実行できるように設定されている必要があります。

LC LSX 問題とは、非制限のエージェントを実行するための権限が与えられた Notes ID を使用して、エージェントや LotusScript コード (Notes の Lotus Connector またはファイルシステムの Lotus Connector を使用) にアクセスする必要があることを指しています。これは、そのコードが使用するすべてのスクリプトライブラリにも適用されます。つまり、これらのコネクタを介するコネクションには、非制限のエージェントを実行する権限が与えられた Notes ID を使用してアクセスする必要があります。それ以外の場合は、エラーが発生して正常に接続できません。

これらの問題は次のいずれかの方法で解決できます。

Domino ディレクトリ (NAB) で、Domino Server のエントリの [Run Unrestricted Agents] フィールドに ID [Enterprise !Connector Products/Lotus Notes Companion Products] を追加します。このフィールドは [Security] タブにあります。

非制限のエージェントを実行する権限がすでに与えられている Notes ID を Advanced RealTime Administrator (LEI) !データベースに割り当て直します。標準の Notes Client ではなく、Domino Administrator を使用して Advanced RealTime Administrator を再設定してください。

Domino ディレクトリの設定手順については、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』で、各プラットフォームの「Domino ディレクトリのアクセス制御を設定する」を参照してください。

Page 294: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

Sybase または OLEDB のストアドプロシージャおよび Advanced RealTime

Sybase または OLE DB のストアドプロシージャを使用する Advanced RealTime アクティビティを作成しようとすると、フィールドをマッピングできずに、次のようなエラーメッセージが表示される場合があります。

Both the Notes and connection data field list must contain at least one value.

プロシージャを選択することはできますが、アクティビティの実行や保存はできません。

通常、Sybase は、ストアドプロシージャから取得した結果セットを返します。この結果セットは、Advanced RealTime アクティビティでは、テーブルまたはビューから取得した結果セットであるかのように見えます。そのため、ストアドプロシージャを使用したアクティビティを設定する場合は、次の手順に従う必要があります。

1 プロシージャではなくテーブルを選択して、Advanced RealTime Sybase コネクション文書を作成します。

2 ストアドプロシージャから返された列名を使用してテーブルを作成し、Advanced RealTime アクティビティのマッピング

処理ではそのテーブルを使用します。

3 [When Intercepting a document] セクションのアクティビティのオプションで、使用するストアドプロシージャを指定しま

す。

イベントの種類 (Open、Create、Update、Delete) ごとにセクションが分かれいるため、監視するイベントごとにストアドプロシージャを指定する必要があります。Advanced RealTime アクティビティを起動すると、指定したストアドプロシージャが実行され、フィールドマッピングが上書きされます。

例: この例では、ストアドプロシージャを使用して、Sybase コネクションの Advanced RealTime アクティビティを設定する方法を示します。ここでは、2 つのフィールド (Key1 および Lastname) が含まれた Notes フォームと、多数のフィールドが含まれた Sybase テーブルを使用します。また、このストアドプロシージャは、1 つの入力パラメータを受け取り、Key1 列と Lastname 列で構成された結果セットを返すものとします。さらに、このアクティビティは、Open イベントに基づいてデータを返します。

この例では、Sybase テーブル、ストアドプロシージャ、および Advanced RealTime アクティビティを作成します。

Sybase テーブル最初に、この後でマッピングする列 (プロシージャで使用する入力パラメータと結果セット) が含まれた Sybase テーブルを作成します。

ここでは、次の列を含むダミーテーブルを作成します。

Key1 VARCHAR(5)

Lastname VARCHAR(25)

ストアドプロシージャプロシージャは入力 (Advanced RealTime キーで選択したものと同じ) を受け取り、Advanced RealTime アクティビティのキーおよびマッピングされるすべてのフィールドで構成された結果セットを返します。

CREATE PROCEDURE dbo.proc1

(@Key1 varchar(5) ) -- Input. This key, matches key in Activity.

AS

BEGIN

select Key1, Lastname from debtest -- Result set. Returns all of

-- the mapped fields, including key(s).

where Key1 = @Key1

END

メモ 通常、Sybase では大文字と小文字が区別されます。ただし、Proc の @var (@Key1) には、Sybase 列および

Advanced RealTime のマッピングキーと同じ名前を指定し、大文字と小文字の違いもこれに合わせる必要がありま

す。SQL ツールから Execute <Procedure> を使用してプロシージャを実行する場合は、名前や大文字と小文字の違いを

必ずしも合わせる必要はありません。ただし、Advanced RealTime では、大文字と小文字の違いを含めて正確に一致す

る名前を指定する必要があります。名前の指定が正しくないと、次のエラーが返されます。

03:48:27 PM ART: Monitor failure -- Error: Procedure proc1 expects parameter @key1, which was not supplied., Connector 'sybase', Method -Call- (201): proctest

メモ この例では、プロシージャではなくテーブルを選択しています。プロシージャが有効なのは、Oracle などのように、出

力パラメータを使用してすべての値を返す場合のみです。

上記の Virtual Fields アクティビティの dbo.proctable は、マッピングに必要なフィールドを設定して特別に作成されたテーブルです。イベントを選択したら、dbo.proc1 に示されているように、[Options] で使用するプロシージャを指定します。アクティビティ文書にプロシージャ名を入力した後、[F9] キーを押してデータを更新し、プロシージャが必要とする入力パラメータ (Key1) を表示します。

Page 295: LEI ユーザーズガイド

この時点で、Virtual Fields は、監視するフォームにマッピングされているフィールドの値を返します。その他のイベントを使用するには、目的のイベントに応じてプロシージャを作成します。

メモ ストアドプロシージャはすべてのキー値を返さないため、この機能では [Initialize keys] を使用できません。ストアド

プロシージャは、テーブルやビューのデータを認識しません。Notes でキー文書が必要な場合は、エージェントを使用して

キー文書を作成するか、別の Virtual Fields アクティビティを実行して、それらのキー値を Notes 文書に取り込みます。

Page 296: LEI ユーザーズガイド

付録 B エラーメッセージとトラブルシューティング

Advanced RealTime アクティビティのエラーメッセージ

ここでは、Advanced RealTime アクティビティ関連のエラーメッセージについて説明します。

Cannot use field ['FIELDNAME'] as both a key and a data field

Advanced RealTime アクティビティで指定するフィールドは、キーフィールドまたはデータフィールドのいずれかである必要があります。同じ Advanced RealTime アクティビティで、1 つのフィールドがキーフィールドとデータフィールドの両方の役割を持つことはできません。キーフィールドとデータフィールドの両方として使用されているフィールドをリストから削除してください。

Failure accessing shared RealTime Activities table

アクティビティ情報へアクセスをしようとした際に、内部エラーが発生しました。エラーが発生した状況をできるだけ詳しく記録し、Lotus カスタマーサポートに連絡してください。

Unexpected internal failure in RealTime monitoring

コンテキスト情報へアクセスしようとしたときに、内部エラーが発生しました。エラーが発生した状況をできるだけ詳しく記録し、Lotus カスタマーサポートに連絡してください。

Update of key field ['FIELDNAME'] is not permitted

文書内のキー値が変更されましたが、Advanced RealTime アクティビティではキーフィールドへの変更が許可されていません。Notes および外部システムへの更新は中止されました。

This record has changed in the back-end database since being opened - action cancelled

Advanced RealTime アクティビティで、変更内容を外部システムに書き込む前に、その外部システムのデータが変更されていないかどうかをチェックするオプションが選択されており、このチェックによって、バックエンドでのデータ変更が検出されました。文書を開いた後、他のシステムまたはクライアントがその外部レコードを変更しています。

Cannot locate corresponding external record

Advanced RealTime アクティビティの監視対象である開かれた文書のキー値が外部システムのレコードに対応していません。このエラーを解消するには、Advanced RealTime アクティビティで、外部レコードが存在しない場合にレコードを新規作成するためのオプションを選択します。このオプションを選択すると、現在の Notes 文書データに対応する新規レコードが作成されるため、エラーが発生しなくなります。

Failure compiling Filter Formula: FORMULA COMPILATION ERROR

Advanced RealTime アクティビティで指定されたフィルタ式のコンパイルに失敗しました。コンパイルエラーが発生し、エラーメッセージが表示されます。Advanced RealTime アクティビティを正常に実行するには、該当するフィルタ式を修正するか、または削除する必要があります。

Failure compiling Pre-Open Formula: FORMULA COMPILATION ERROR

Advanced RealTime アクティビティで指定された pre-open 式のコンパイルに失敗しました。コンパイルエラーが発生し、エラーメッセージが表示されます。Advanced RealTime アクティビティを正常に実行するには、該当する pre-open 式を修正するか、または削除する必要があります。

Failure compiling Post-Update Formula: FORMULA COMPILATION ERROR

Advanced RealTime アクティビティで指定された post-update 式のコンパイルに失敗しました。コンパイルエラーが発生し、エラーメッセージが表示されます。Advanced RealTime アクティビティを正常に実行するには、該当する post-update 式を修正するか、または削除する必要があります。

Failure compiling Post-Create Formula: FORMULA COMPILATION ERROR

Advanced RealTime アクティビティで指定された post-create 式のコンパイルに失敗しました。コンパイルエラーが発生し、エラーメッセージが表示されます。Advanced RealTime アクティビティを正常に実行するには、該当する post-create 式を修正するか、または削除する必要があります。

Failure compiling Post-Delete Formula: FORMULA COMPILATION ERROR

Advanced RealTime アクティビティで指定された post-delete 式のコンパイルに失敗しました。コンパイルエラーが発生し、エラーメッセージが表示されます。Advanced RealTime アクティビティを正常に実行するには、該当する post-delete 式を修正するか、または削除する必要があります。

Unknown OS error: libdecsext.*

Notes が Extension Manager ライブラリを読み込めなかったことを通知する Notes エラーです。LEI が正しくインストールされ、適切に設定されていることを確認してください。問題が解決されない場合は、Lotus カスタマーサポートに連絡してください。

Realtime service addin task initialization failed

LEI アドインタスクの起動時にエラーが発生したことを示します。LEI が正しくインストールされ、適切に設定されていることを確認してください。問題が解決されない場合は、Lotus カスタマーサポートに連絡してください。

Realtime service is unable to allocate addin task resources

Advanced Realtime サービスで追加リソースを割り当てることができません。LEI が正しくインストールされ、適切に設定されていることを確認してください。問題が解決されない場合は、Lotus カスタマーサポートに連絡してください。

Realtime service cannot connect to external system

外部データシステムへのアクセスに必要な接続ソフトウェアがインストールされていない可能性があります。LEI がサポートしている各データソースへの接続に必要なソフトウェアについては、『IBM LEI (Lotus Enterprise Integrator) インストール

Page 297: LEI ユーザーズガイド

ガイド』を参照してください。

Realtime service cannot find external table/metadata

このアクティビティで選択したメタデータが外部データソースに存在しません。

Realtime service cannot find external procedure/transaction

LEI によって検出された文書の Open イベントでエラーが発生しました。エラーの詳細は Domino Server ログに記録されます。

Realtime service error retrieving external record

LEI によって検出された文書の Open イベントでエラーが発生しました。エラーの詳細は Administrator アクティビティログに記録されます。

Realtime service error inserting external record

LEI によって検出された文書の Create イベントでエラーが発生しました。エラーの詳細は Administrator アクティビティログに記録されます。

Realtime service error updating external record

LEI によって検出された文書の Update イベントでエラーが発生しました。エラーの詳細は Administrator アクティビティログに記録されます。

Realtime service error deleting external record

LEI によって検出された文書の Delete イベントでエラーが発生しました。エラーの詳細は Administrator アクティビティログに記録されます。

Realtime service cannot locate the corresponding record in the external system

文書のキーフィールドの値が外部データソースのレコードに対応していません。外部データソースのレコードが削除されている可能性があります。

Realtime service unable to update document due to key field changes; changes to key fields have been disabled

文書を開いた後で、外部データのキーフィールドが変更されています。キーフィールドの変更を許可するには、アクティビティ文書の [Document Update] で [Key Field Updates] オプションを設定します。

Realtime service is unable to update document due to conflict; the external record has been modified since being opened

文書を開いた後、他のアプリケーションによって外部データが変更されています。文書を閉じてから、もう一度開いてください。

Realtime service error storing external attachment

文書の添付ファイル部分を外部データストアに保存する際にエラーが発生しました。

Realtime service error retrieving external attachment

外部データストアから文書の添付ファイル部分を取得する際にエラーが発生しました。

Realtime service cannot locate the attachment in the external system

外部データストアで、文書の添付ファイル部分を検出する際にエラーが発生しました。

Realtime service data overflow accessing external record

文書の Open イベントの場合は、外部フィールドのデータが長すぎることを示します。通常、テキストが 64K より長い場合にこのエラーが発生します。この問題を防ぐには、Notes フィールドをリッチテキストに変更します。オーバーフローが発生したフィールドに関する情報を確認するには、LEI Administrator のアクティビティログのエラーを参照します。

文書を更新または挿入する場合、このメッセージは、文書のデータが外部システムのフィールドより大きいことを示します。大きいサイズのデータを格納できるように、外部システムのデータ型を変更する必要があります。

Realtime service error deleting external attachment

外部データストアから文書の添付ファイル部分を削除する際にエラーが発生しました。

Realtime service error browsing the external system

データベース内のテーブルの名前に関する情報を取得する際にエラーが発生しました。または、特定のテーブルの列のデータ型情報を取得する際にエラーが発生しました。

Realtime service encountered a missing or invalid Data Connection Resource

このメッセージは、Domino Designer Data Connection Resource (DCR) を使用する際に表示されます。フォーム上のフィールドが参照する Data Connection Resource が有効でないか、または見つかりません。

Realtime service error scanning the external system. Some external records may have been ignored

ビューを更新する際、外部データストアから文書情報を取得できませんでした。

Realtime service error loading external agents/design elements

仮想エージェントへのアクセス時にエラーが発生しました。

This application uses a Realtime Service Activity which is currently not running. Contact your Notes administrator.

文書を開くとき、または削除しようとしたとき、必要な Advanced Realtime アクティビティが実行されませんでした。目的のデータベースフォームを監視するアクティビティが実行されていることを確認してください。アクティビティが実行されている場合は、[Shift] + [F9] キーを押してビューを完全に更新してください。外部データソースのレコードが削除されている可能性があります。また、アクティビティログを参照して、その他のエラー情報も確認してください。

Page 298: LEI ユーザーズガイド

付録 C チュートリアル

付録 C チュートリアル

付録 C では、LEI のいくつかのアクティビティの作成方法を順番に説明します。これらのチュートリアルを使用して、LEI の各アクティビティの作成方法を詳しく知ることができます。

Page 299: LEI ユーザーズガイド

付録 C チュートリアル

チュートリアルの概要

この付録に記載されているチュートリアルでは、複数の LEI アクティビティ、およびアクティビティで使用するコネクションの作成方法

を順を追って説明します。各チュートリアルでは、LEI に付属するサンプルの Notes データベースを使用します。

また、既存の Notes データベースをソースコネクションとして使用します。ターゲットコネクションには、指定された環境で任意の Lotus Connector を使用できます。Notes データベースからターゲットデータベースにデータを転送または複製するときに、LEI によって新規のメタデータオブジェクト (テーブルまたは Notes フォーム) が作成されます。

この付録では、次のタスクについて説明します。

Command アクティビティの作成!

SQL ステートメントを設定および実行するアクティビティを作成し、チュートリアルの後半で使用するテーブルを作成します。

Direct Transfer アクティビティの作成!

サンプルの Notes データベースから、指定されたターゲットデータベースにデータを転送するアクティビティを作成します。

Polling アクティビティの作成!

サンプルの Notes データベースをポーリングし、条件に一致したときに Direct Transfer アクティビティを実行するアクティビティを作成します。

Replication アクティビティの作成!

サンプルの Notes データベースが指定されたデータベースに複製するアクティビティを作成します。

Scripted アクティビティの作成!

LEI Script Vault (スクリプト格納) (leivlt6.nsf) に付属の 2 つのエージェントを、leipackagetrack.nsf サンプルデータベースと組み合わせて使用するアクティビティを作成します。

作成するアクティビティは、データ転送機能を拡張する LotusScript コマンドを実行するアクティビティです。

Advanced RealTime アクティビティの作成!

Notes アプリケーションから外部システムのデータをリアルタイムに監視するアクティビティを作成します。

Notes または Web ブラウザから動的なクエリーを行うアクティビティを作成します。

その他の Advanced RealTime の例!

Virtual Attachments を使用する Virtual Fields アクティビティまたは Virtual Documents アクティビティを作成します。

Virtual Fields アクティビティでは、フィルタ式、[Data Storage] オプション、[Monitor Order] オプション、およびストアドプロシージャを使用します。

上記のサンプルの作成後も、アクティビティはスケジュールに従って実行を継続します。チュートリアルの終了後、必要に応じて、アクティビティのスケジュールを無効にするか削除してください。

前提条件

これらのチュートリアルは、Lotus Notes の概要を理解しているユーザーを対象としています。必要に応じて、Notes のオンラインヘルプを参照してください。

また、ご使用のシステムに LEI がインストールされ、システムのデータソースへの接続に必要なソフトウェアがすべてインストールされているものとします。

最後に、チュートリアルは段階を追って進むようになっています。この付録の最初で作成したアクティビティとコネクションに基づいて次のアクティビティを作成します。

始める前に

チュートリアルを始めるには、LEI Administrator データベースおよびログデータベースが Notes Client 上にある必要があります。

また、LEI サンプルデータベースの leiempsamp.nsf、leipackagetrack.nsf、および LEI Script Vault (スクリプト格納) (leivlt6.nsf) がどのサーバーにあるかを把握している必要があります。サンプルデータベースは、LEI とともにインストールされます。これらのデータベースは、LEI Server コンピュータ上にインストールされますが、Notes Server にコピーする必要があります。チュートリアルの演習で変更を加えるため、Notes デスクトップにもこれらのデータベースを追加しておいてください。

LEI Server が実行され、使用するすべての外部データソースと通信できることを確認してください。接続の要件やデータソースへの接続のテストについては、『IBM LEI (Lotus Enterprise Integrator) インストールガイド』を参照してください。

Page 300: LEI ユーザーズガイド

付録 C チュートリアル

Command アクティビティを作成する

このセクションでは、Command アクティビティの作成方法を説明します。また、チュートリアルの後半で使用するテーブルを作成する SQL ステートメントを設定および実行し、一般的な手順を説明します。Command アクティビティを実行する主な手順は、次のとおりです。

1 コネクションを作成します。

2 Command アクティビティを作成します。

3 このアクティビティを実行します。

4 ログを表示します。

手順 1: コネクション文書を作成する

アクティビティを作成する前に、アクティビティが使用するコネクションを作成する必要があります。コネクションは、LEI が通信を行うデータベースへのアクセスを定義します。Command アクティビティでは、ソースデータベースコネクションのみが必要です。

メモ 使用するデータベースへの接続は、先に確立しておきます。手順については、『Lotus Connectors 接続ガイド』を参

照してください。

コネクションを作成する

作成するコネクション文書は、必要になるターゲットデータベースにより決まります。コネクションを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Connection] をクリックします。表示されるリストから、ターゲットデータベースの種類を選

択します。

メモ このターゲットデータベース内に、転送されたデータを格納するメタデータが作成されます。

2 [Name] フィールドに、Sample 1 Destination と入力します。

3 必要に応じて残りの情報を入力し、文書を完成させます。データベースの場所は必ず入力してください。また、アクセ

スに使用するユーザー名とパスワードの入力が必要な場合があります。

4 Samples というカテゴリ名を入力します。

5 文書を保存して閉じます。

これで、このコネクション文書名は、[Connections] ビューで表示されます。

コネクションを表示する

[Activities] ビューと [Connections] ビューには、アクティビティとコネクションが名前別に表示されます。これらをカテゴリ別に表示することもできます。コネクションをカテゴリ別に表示するには、次の手順に従ってください。

1 LEI Administrator のナビゲータパネルで、[Activities] を [By Type] で展開します。[By Category] オプションをクリッ

クして、[Samples] カテゴリタイプを展開します。

2 [Link] サブカテゴリを展開し、作成した Sample 1 Destination コネクションを表示します。

メモ 表示されているコネクションを編集するには、対応するコネクション文書を開くように、コネクション名をダブルクリック

します。[Ctrl] + [E] を押すか、またはコネクション文書をダブルクリックし、編集モードにします。

手順 2: Command アクティビティを作成する

コネクションの定義後、SQL ステートメントを実行する Command アクティビティを作成し、ターゲットのテーブルを作成できます。Command アクティビティを作成するには、次の手順に従ってください。

1 LEI Administrator から作成する場合は、[Add Activity] をクリックし、表示されたリストから Command を選択します。

2 [Name] フィールドにアクティビティ名の Sample Command を入力します。

3 [Connection Name] フィールドの下矢印ボタンをクリックして表示される使用可能なコネクションのリストを使用、また

は [Connection Name] フィールド内にカーソルを置き [Enter] キーを押して、コネクションを選択します。Sample 1

Destination を選択します。

4 [Command Statement] フィールドでは、使用する SQL ステートメントを指定します。このステートメントは、SQL クエリ

ーまたは「cp -p file.txt file2.txt」のようなファイルシステムコマンドになります。たとえば、次の SQL ステートメントで

Page 301: LEI ユーザーズガイド

4 [Command Statement] フィールドでは、使用する SQL ステートメントを指定します。このステートメントは、SQL クエリ

ーまたは「cp -p file.txt file2.txt」のようなファイルシステムコマンドになります。たとえば、次の SQL ステートメントで

選択したターゲットに対応するものを入力します。

DB2 または Oracle の場合。 CREATE TABLE EMPLOYEES (EMPNO INT, ENAME VARCHAR(32), JOB VARCHAR(32), MGR INT, HIREDATE DATE, SAL INT, COMM INT, DEPTNO INT)

SQL Server、MSAccess、または Sybase の場合。 CREATE TABLE EMPLOYEES (EMPNO INT, ENAME VARCHAR(32), JOB VARCHAR(32), MGR INT, HIREDATE DATETIME, SAL INT, COMM INT, DEPTNO INT)

5 SQL ステートメントにより、Notes フォーム Emps に関連し、このステートメントと同じ文書を持つテーブルが作成され

ます。

6 Samples というカテゴリ名を入力します。

7 Command アクティビティ文書を保存して閉じます。

文書を保存して閉じるときにアクティビティのスケジュールを有効にしなかったため、このアクティビティは手動で起動する必要があります。

手順 3: アクティビティを実行する

アクティビティを開始し、[Active] ビューを使用してアクティビティのステータスを表示します。アクティビティを開始して稼働中のアクティビティの一覧を表示するには、次の手順に従ってください。

1 LEI Administrator で、[Activities] を [By Type] オプションで展開します。[By Category] オプションを選択し、ビューで

[Samples] カテゴリタイプを展開します。

2 [Activity] サブカテゴリを展開し、作成したアクティビティを表示します。

3 手順 2 で作成した Sample Command アクティビティを選択して [Start] をクリックします。

開いているアクティビティ文書の先頭で [Start] をクリックして、アクティビティを開始することも可能です。

アクティビティのステータスを表示する

次のいずれかの方法によりアクティビティのステータスを表示できます。

LEI Administrator のナビゲータパネルで、[Activities] の [By Type] オプションをクリックします。既存のすべてのア!クティビティ名と現在のステータスが表示されます。

LEI Administrator のナビゲータパネルで、[Activities] を [By Type] オプションで表示します。[Data Management] を!クリックし、すべてのアクティビティとステータスの詳細リストを表示します。

LEI Administrator のナビゲータパネルで、[Activities] を [By Type] オプションで表示します。[By Category] をクリッ!クします。カテゴリタイプをクリックします。たとえば、[Command] をクリックし、Command アクティビティのステータスのみを表示します。

特定のアクティビティのリストが表示されない場合は、定期的に [F9] キーを押して、そのアクティビティ名がスケジュール設定されたジョブとして表示されるまでビューを更新してください。[F9] キーを押してもアクティビティのリストが表示されない場合は、アクティビティが完了した可能性が考えられます。その場合は、ログを表示して、実行済みのアクティビティについての情報を確認します。

手順 4: ログを表示する

LEI のログには、各アクティビティの処理状況と結果が記録されます。次のいずれかの方法によりアクティビティのログを表示できます。

開いているアクティビティ文書で [View Log] ボタンをクリックする。!

[Activity] ビューでアクティビティを選択し、アクションバーの [Log] ボタンをクリックする。!

LEI Administrator のナビゲータで [Log] オプションをクリックする。!

使用中のアクティビティ文書からログを開くと、LEI はそのアクティビティを最後に実行した際のログ項目を表示します。この例では、アクティビティが完了しているため、[Activities] ビューの [Sample Command] アクティビティを選択した状態で、[Activities] ビューの上部にあるアクションバーの [Log] ボタンをクリックします。

Page 302: LEI ユーザーズガイド

付録付録付録付録 CCCC チュートリアルチュートリアルチュートリアルチュートリアル

Direct TransferDirect TransferDirect TransferDirect Transfer アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

このセクションでは、Direct Transfer アクティビティの作成方法を説明します。Notes データベースから別のデータベースへのデータ転送を設定および実行する一般的な手順を説明します。

Direct Transfer アクティビティを実行する主な手順は、次のとおりです。

1 コネクションを作成します。

2 Direct Transfer アクティビティを作成します。

3 このアクティビティを実行します。

4 ログを表示します。

手順手順手順手順 1111:::: コネクションコネクションコネクションコネクション文書文書文書文書をををを作成作成作成作成するするするする

アクティビティを作成する前に、アクティビティが使用するコネクションを作成する必要があります。コネクションは、LEI が通信を行うデータベースへのアクセスを定義します。Direct Transfer アクティビティには、ソースデータベースコネクションとターゲットデータベースコネクションが必要です。

メモメモメモメモ 使用するデータベースへの接続は、先に確立しておきます。手順については、『Lotus Connectors 接続ガイド』を参

照してください。

ソースコネクションソースコネクションソースコネクションソースコネクションをををを作成作成作成作成するするするする

この例では、ソースコネクションは、ヘルプのディレクトリにあるサンプルの Notes データベース leiempsamp.nsf です。ソースコネクションを作成するには、次の手順に従ってください。

1 Lotus Notes を起動し、LEI Administrator データベースの decsadm.nsf を開きます。

2 LEI Administrator で、[Add Connection] - [Connection to Notes] をクリックします。

3 [Name] フィールドに、コネクションを識別するための名前を入力します。Direct Transfer アクティビティを作成する場

合は、この名前によってコネクションを選択します。ここでは、Sample 1 Source と入力します。

4 Notes データベース leiempsamp.nsf がある Notes Server の名前を入力します。データベースがローカルにある場合

は、このフィールドを空欄にしておきます。

5 Notes データベース名の leiempsamp.nsf を入力します。

6 Samples というカテゴリ名を入力します。サンプル文書にこのカテゴリを割り当てることで、文書をカテゴリ別に管理で

きます。ここでカテゴリ名の使用に慣れておくと、LEI を使用する際に役立ちます。

7 文書を保存して閉じます。

ターゲットコネクションターゲットコネクションターゲットコネクションターゲットコネクションをををを作成作成作成作成するするするする

ターゲットとして選択するデータベースに応じて、作成するターゲットコネクション文書は異なります。コネクションを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Connection] をクリックします。表示されるリストから、ターゲットデータベースの種類を選

択します。

メモメモメモメモ このターゲットデータベース内に、転送されたデータを格納するメタデータが作成されます。

2 [Name] フィールドに、Sample 1 Destination と入力します。

3 必要に応じて残りの情報を入力し、文書を完成させます。データベースの場所は必ず入力してください。また、アクセ

スに使用するユーザー名とパスワードの入力が必要な場合があります。

4 Samples というカテゴリ名を入力します。

5 文書を保存して閉じます。

これで 2 つのコネクション文書が作成できました。文書が作成されていることを [Connections] ビューで確認します。

コネクションコネクションコネクションコネクションをををを表示表示表示表示するするするする

[Activities] ビューと [Connections] ビューには、アクティビティとコネクションが名前別に表示されます。これらをカテゴリ

Page 303: LEI ユーザーズガイド

別に表示することもできます。コネクションをカテゴリ別に表示するには、次の手順に従ってください。

1 LEI Administrator のナビゲータバーで、[Activities] を [By Type] オプションで展開します。[By Category] オプション

をクリックして、[Samples] カテゴリタイプを展開します。

2 [Link] サブカテゴリを展開し、作成した Sample 1 Source コネクションと Sample 1 Destination コネクションを表示させ

ます。

メモメモメモメモ 表示されているコネクションを編集するには、ビュー内の文書名をダブルクリックし、次に [Ctrl] + [E] キーを押す

か、その文書内でダブルクリックして編集モードにします。

手順手順手順手順 2222:::: Direct TransferDirect TransferDirect TransferDirect Transfer アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

ソースとターゲットのコネクションを定義した後は、一方のデータベースから他方のデータベースにデータを転送する Direct Transfer アクティビティを作成できます。Direct Transfer アクティビティを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Activity] をクリックし、表示されたリストから [Direct Transfer] を選択します。

2 [Name] フィールドにアクティビティ名の Sample Transfer を入力します。

3 ソースコネクションおよびターゲットコネクションを指定します。

[Connection Name] フィールドの矢印ボタンをクリックするか、フィールド内にカーソルを置いて [Enter] キー�

を押します。

表示されるコネクションのリストから、[Sample 1 Source] を選択します。�

[Target] の [Connection Name] フィールドでも同様の操作を行い、[Sample 1 Destination] を選択します。�

4 [Source] の [Form] フィールドに、Notes フォーム名 Emps を入力します。

5 [Target] の [Table] フィールドに、テーブル名 Employees を入力します。

6 [Select Statement] フィールドには、転送するデータを選択するステートメントを入力します。ステートメントには、SQL

クエリーまたは選択式 (Notes ソースデータベースの場合) を使用できます。

たとえば、次の Notes の式を入力します。 「SELECT @ALL」

この式により、Notes フォーム Emps と同じ文書を持つ結果セットが作成されます。

7 [Field Mapping] セクションで、[Automatic] を選択し、さらに [By Name] が選択されていることを確認します。

8 [Target Data Options] タブをクリックします。

9 [Existing Data Options] セクションで、[Create Target Metadata] オプションを有効にし、転送されたデータを格納する

新規テーブルを作成します。これ以外のオプションはそのままにしておきます。

10 Samples というカテゴリ名を入力します。

11 文書を保存して閉じます。

これで、Direct Transfer アクティビティの作成が完了しました。

文書を閉じるときにアクティビティのスケジュールを有効にしなかったため、このアクティビティは手動で起動する必要があります。

手順手順手順手順 3333:::: アクティビティアクティビティアクティビティアクティビティをををを実行実行実行実行するするするする

次に、アクティビティを手動で起動し、[Active] ビューを使用してアクティビティのステータスを表示します。アクティビティを起動して稼働中のアクティビティの一覧を表示するには、次の手順に従ってください。

1 LEI Administrator で、[Activities] を [By Type] オプションで展開します。[By Category] オプションをクリックし、

ビューで [Samples] カテゴリタイプを展開します。

2 [Activity] サブカテゴリを展開し作成したアクティビティを表示します。

3 手順 2 で作成した Sample Transfer アクティビティを選択して [Start] をクリックします。

実際のアクティビティ文書の先頭で [Start] をクリックしても、アクティビティを実行できます。

アクティビティアクティビティアクティビティアクティビティののののステータスステータスステータスステータスをををを表示表示表示表示するするするする

アクティビティのステータスを表示するには、主に次の 3 通りの方法があります。

LEI Administrator のナビゲータパネルで、[Activities] の [By Type] オプションをクリックします。既存のすべてのア�

Page 304: LEI ユーザーズガイド

クティビティ名と現在のステータスが表示されます。

LEI Administrator のナビゲータパネルで、[Activities] を [By Type] オプションで展開します。[Data Management] を�

クリックし、既存のすべてのアクティビティと現在のステータスの詳細リストを表示します。

LEI Administrator のナビゲータパネルで、[Activities] を [By Type] オプションで展開します。[By Category] をクリッ�

クします。カテゴリタイプ (Direct Transfer など) をクリックすると、Direct Transfer アクティビティのみの現在のステータスを表示できます。

特定のアクティビティのリストが表示されない場合は、定期的に [F9] キーを押して、そのアクティビティ名が表示されるまでビューを更新してください。[F9] キーを押してもアクティビティのリストが表示されない場合は、アクティビティが完了した可能性が考えられます。その場合は、ログを表示して、実行済みのアクティビティについての情報を確認します。

手順手順手順手順 4444:::: ログログログログをををを表示表示表示表示するするするする

LEI のログには、各アクティビティの処理状況と結果が記録されます。

ログを表示するには、次の 3 通りの方法があります。

個々のアクティビティ文書で [View Log] ボタンをクリックする。�

[Activity] ビューでアクティビティを選択し、アクションバーの [Log] ボタンをクリックする。�

LEI Administrator のナビゲータで [Log] オプションをクリックする。�

メモメモメモメモ アクティビティ文書からログを開くと、そのアクティビティを最後に実行したときのログ項目が表示されます。

この例では、アクティビティが完了しているので、[Activities] ビューの [Sample Transfer Direct Transfer Activity] を選択した状態で、[Activities] ビューの上部にあるアクションバーの [Log] ボタンをクリックします。

Page 305: LEI ユーザーズガイド

付録付録付録付録 CCCC チュートリアルチュートリアルチュートリアルチュートリアル

PollingPollingPollingPolling アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

このセクションでは、Polling アクティビティの作成方法を説明します。ポーリングとは、ある条件に基づいて 1 つまたは複数のアクティビティを開始する方法です。Polling アクティビティを実行すると、指定されたデータベースが定期的にチェックされ、特定の条件が満たされているかが調べられます。条件が満たされている場合は、Polling アクティビティによって他のアクティビティが実行されます。Polling アクティビティは、他のアクティビティに対してトリガーとして作動します。

このチュートリアルでは、Polling アクティビティを Direct Transfer アクティビティのトリガーとして使用します。

手順手順手順手順 1111:::: PollingPollingPollingPolling アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

Polling アクティビティには、ポーリングするデータベースを指定するコネクションが必要です。ここでは、新しいコネクションは作成せずに、既存のコネクション Sample 1 Source を使用します。

Polling アクティビティを毎日午前 8 時から午後 5 時まで実行するようスケジュールを設定します。この時間内に、1 分ごとにデータベースをポーリングします。

Polling アクティビティを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Activity] をクリックします。表示されたリストから [Polling] を選択します。

2 [Name] フィールドにアクティビティ名の Sample Polling を入力します。

3 Sample 1 Source という名前のコネクションを選択して、ポーリングするデータベースを指定します。

メモメモメモメモ このコネクションは、前の「Direct Transfer アクティビティを作成する」というセクションで作成したものです。まだ

作成していない場合は、前のセクションの手順に従って作成してください。

4 [Connection Name] フィールドのすぐ下の [Table] または [Form Name] セクションに、Emps と入力します。

5 [Trigger Statement] に SELECT HIREDATE=@TODAY を入力します。現在はこの条件を満たすレコードはありません

が、アクティビティを作成した後にこの条件を満たすレコードを追加します。

6 1 分ごとにポーリングを行う場合、[Polling Frequency] の設定は変更しません。

メモメモメモメモ この値は、Polling アクティビティが実際に実行される日時を指定するものではありません。いつ実行するかは、

他のアクティビティと同じようにスケジュールによって設定します。

7 [Activities to Execute] で、Sample Transfer という名前のアクティビティを選択します。このアクティビティは、コマンド

ステートメントで指定した条件に一致した場合に実行されます (たとえば、新しいレコードを追加すると条件に一致し

た状態になります)。

メモメモメモメモ このアクティビティは、前の「Direct Transfer アクティビティを作成する」というセクションで作成したものです。ま

だ作成していない場合は、前のセクションの手順に従って作成してください。

8 この例では、[Reset Trigger] はそのままにしておきます。

9 [Error Handling Options] タブをクリックして、[Maximum Event Count] に 1 を入力します。他のオプションは変更しま

せん。

メモメモメモメモ この値は、指定した条件に一致した場合、アクティビティが終了するまでにそのアクティビティが実行される最

大回数を指定します。条件の一致に伴ってアクティビティを実行することを 1 回のイベントと数えます。0 を指定した

場合は、イベントの実行回数に上限はありません。

10 必要に応じて、[Activity Execution Options] タブをクリックし、アクティビティを実行する LEI Server を指定します。そ

の他のオプションは変更しません。

11 [Scheduling] タブをクリックし、[Schedule] フィールドを [Schedule Enabled] に設定します。

メモメモメモメモ Polling アクティビティの場合、スケジュールの作用が、他のアクティビティとは多少異なります。他のアクティビ

ティは、処理が完了したときに終了します。Polling アクティビティは、特に設定しない限り、一度開始されると実行 (お

よびポーリング) を継続します。このため、[Repeat Interval] (アクティビティを実行する頻度) の値を、スケジュールの

期間よりも短く設定する必要がありません。この例では、スケジュールの期間を次の手順に従い、毎日午前 8 時か

ら午後 5 時までと定義します。

Page 306: LEI ユーザーズガイド

12 デフォルトでは、[Repeat Interval] は 60 分に設定されています。これを 1 日に変更します。

13 [Run at Times] フィールドに 8:00 AM - 5:00 PM と入力します。アクティビティは、この時間に実行されます。[Repeat

Interval] を 1 日に設定すると、アクティビティは、ポーリングを午前 8 時に開始し、午後 5 時に終了します。また、前

に設定した [Polling Frequency] に従って、ポーリングは 1 分ごとに行われます。

メモメモメモメモ 上記以外の時間を指定する場合は、現在の時刻を含む範囲を使用してください。

14 Samples というカテゴリ名を入力します。

15 文書を保存して閉じます。

16 [By Category] 表示オプションを使用して Samples Polling アクティビティを表示します。

次のセクションでは、新規レコードを作成します。このレコードによりポーリング条件が満たされ、Sample Transfer が実行されます。

手順手順手順手順 2222:::: ポーリングポーリングポーリングポーリングのののの条件条件条件条件をををを満満満満たすたすたすたす

ポーリングの条件を満たして、Polling アクティビティに他のアクティビティを起動させるには、次の手順に従ってください。

1 ヘルプのディレクトリに格納されたサンプルデータベース leiempsamp.nsf を開きます。

Page 307: LEI ユーザーズガイド

2 Notes のメニューから [Create] - [Emps] を選択して、サンプルデータベースに新規文書を作成します。

3 次の情報をフォームに入力します。

EMPNO7790

ENAMENNOTES

JOBENGINEER

MGR7791

HIREDATE9/12/01 (今日の日付を入力)

SAL1000

COMM

DEPTNO72

メモメモメモメモ この文書を作成すると、次のポーリング条件が満たされます。 SELECT HIREDATE = @TODAY.

4 フォームを保存して閉じます。

5 アクティビティを開始します。

6 アクティビティによって Sample Transfer が正しく開始されたかを、LEI Administrator で確認します。 また、ログを表

示して、アクティビティのステータスを確認します。

メモメモメモメモ Polling アクティビティは手動で停止し、スケジュールが無効になるまで実行され続けます。

手順手順手順手順 3333:::: サンプルサンプルサンプルサンプルををををクリーンアップクリーンアップクリーンアップクリーンアップするするするする

作成したコネクションとアクティビティは、上記の例を十分に試した後で削除できます。また、アクティビティを無効にして、後で再利用もできます。

SamplesSamplesSamplesSamples カテゴリカテゴリカテゴリカテゴリののののコネクションコネクションコネクションコネクション文書文書文書文書ととととアクティビティアクティビティアクティビティアクティビティ文書文書文書文書をををを削除削除削除削除するするするする

1 LEI Administrator で、[By Category] を表示します。

2 [Samples] の矢印をクリックして、その内容を表示します。サンプルアクティビティの名前が表示されるまで、サブカテ

ゴリを表示します。

3 削除する文書を選択し、[Delete] キーを押すか、[Ctrl] + [X] キーを押します。

Page 308: LEI ユーザーズガイド

4 ビューを終了すると、文書が削除されます。

SampleSampleSampleSample アクティビティアクティビティアクティビティアクティビティ文書文書文書文書をををを無効無効無効無効にするにするにするにする

1 LEI Administrator で、[By Category] を表示します。

2 [Samples] の矢印をクリックして、その内容を表示します。サンプルアクティビティの名前が表示されるまで、サブカテ

ゴリの表示を続けます。

3 無効にする最初のアクティビティを選択します。

4 [Ctrl] + [E] キーを押し、文書を編集します。

5 [Scheduling] タブで、[Schedule] フィールドを [Schedule Disabled] に変更します。

6 アクティビティを保存して閉じます。

Page 309: LEI ユーザーズガイド

付録付録付録付録 CCCC チュートリアルチュートリアルチュートリアルチュートリアル

ReplicationReplicationReplicationReplication アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

このセクションでは、データベース複製の設定と実行の手順について説明します。ここでは、LEI サンプルデータベース leiempsamp.nsf ともう 1 つ任意のデータベースを使用します。

この例の複製のタイプは、「1 次キー」と呼ばれます。この複製方法では、複製元データベース (ソース) の 1 つまたは複数のキーフィールドと複製先 (ターゲット) のキーフィールドを比較します。この複製では、キーフィールドを使ってレコードを比較し、複製の際に更新、挿入、削除のいずれのオペレーションを行うかを判断します。双方のレコードの 1 次キーが一致する場合は、レコードの更新が行われます (ただし、他のフィールドのデータは一致しないものとします)。1 次キーがソース側にのみ存在する場合は挿入が行われ、ターゲット側にのみある場合は削除が行われます。

手順手順手順手順 1111:::: データベースデータベースデータベースデータベースをををを準備準備準備準備するするするする

この例では、前のチュートリアル (「Polling アクティビティを作成する」) と同じデータベースを使用します。サンプルの Notes データベースに文書を追加し、複製がどのように機能するかを確認します。レコードは、もう一方のデータベースに複製されます。

1 Notes デスクトップを使用して、付属のサンプルデータベース leiempsamp.nsf を開きます。

2 Notes のメニューから [Create] - [Emps] を選択して、サンプルデータベースに新規文書を作成します。

3 次の情報をフォームに入力します。

EMPNO6627

ENAMEJNOTES

JOBENGINEER

MGR6628

HIREDATE今日の日付

SAL1000

COMM0.05

DEPTNO70

4 フォームを保存して閉じます。

手順手順手順手順 2222:::: コネクションコネクションコネクションコネクションをををを作成作成作成作成するするするする

Notes データベースともう 1 つのデータベースへのコネクションを作成します。Replication アクティビティを作成する際の、

Page 310: LEI ユーザーズガイド

ソースデータベース (このデータベースを複製) を指定します。

ソースコネクションソースコネクションソースコネクションソースコネクションのののの作成作成作成作成

この最初のコネクションは、ソースデータベースへのコネクションです。コネクションを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Connection] - [Connection to Notes] をクリックします。

2 [Name] フィールドに Sample 2 Master と入力します。

3 サンプルデータベースがある Domino Server 名を入力します。

4 ヘルプのディレクトリにあるサンプル Notes データベース leiempsamp.nsf の名前を入力します。

5 [Category] フィールドに Samples と入力します。

6 他のすべてのオプションは、デフォルト値のままにしておきます。

7 文書を保存して閉じます。

ターゲットコネクションターゲットコネクションターゲットコネクションターゲットコネクションをををを作成作成作成作成するするするする

この 2 番目のコネクションは、ターゲットデータベースを識別します。この例では、複製の結果としてターゲット内のデータが更新されます。コネクションを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Connection] をクリックします。

2 表示されるリストから、使用するデータベースの種類を選択して、[OK] をクリックします。

3 [Name] フィールドに Sample 2 Updated DB と入力します。

4 ソースデータベースの情報に基づいて更新するデータベースの名前を入力します。この例では、このデータベースの

名前は CurrentEmployeeData.nsf になります。このデータべースは、付属のサンプルデータベース leiempsamp.nsf

のコピーとして作成されたもので、ローカルの LEI Server にあります。

5 [Category] フィールドに Samples と入力します。

Page 311: LEI ユーザーズガイド

6 他のすべてのオプションは、デフォルト値のままにしておきます。

7 文書を保存して閉じます。

手順手順手順手順 3333:::: ReplicationReplicationReplicationReplication アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

2 つのコネクションを作成した後は、ソースデータベースを複製するアクティビティを作成します。データは、テーブルレベル (Notes の場合はフォームレベル) で複製されます。

この例では、限定された時間帯に 1 時間おきにアクティビティが実行されるようにに設定します。

Replication アクティビティを作成するには、次の手順に従ってください。

1 LEI Administrator で、[Add Activity] をクリックします。表示されたリストから [Replication] を選択します。

2 [Name] フィールドに Sample Replication と入力します。

3 [Source Connection] フィールドに Sample 2 Master と指定します。

4 [Target Connection] フィールドに Sample 2 Updated DB と入力します。

5 両方のコネクションのフォーム名を指定します。ソースコネクションには Emps、ターゲットコネクションには Sample1 と

入力します。

6 自動フィールドマッピングのオプションを有効にします。

7 ソースキーの値として Empno と入力します。

8 ターゲットキーの値として Empno と入力します。

9 [Name] オプションでマッピングを有効にします。

10 指定したデータベースで、レコードの変更日時がタイムスタンプフィールドに保存されている場合は、そのフィールドを

識別して、1 次キー/タイムスタンプ複製を実行できます。この例では、[Timestamp Replication] は選択しないままと

Page 312: LEI ユーザーズガイド

します。

11 [Data Options] タブをクリックし、[Reduced-precision Comparison] を選択します。

メモメモメモメモ 日時または浮動小数点の値の精度がソースデータベースとターゲットデータベースで異なる場合は、正しい比

較が行われない可能性があります。このオプションを選択すると、精度の共通する部分のみを使用して比較が行わ

れます。つまり、日付は秒まで、浮動小数点の値は 10 桁まで比較されます。

12 [Conditional Clause for Source] には、結果セットを絞り込む Notes の式または SQL の WHERE 節を入力します。こ

の例では、このフィールドを空欄のままにしておきます。条件節は入力しません。

13 必要に応じて、[Activity Execution Options] タブをクリックし、アクティビティを実行する LEI Server を指定します。指

定しない場合は、これらのオプションをデフォルト値のままにしておきます。

14 [Scheduling] タブをクリックし、[Run Activity Once and Disable] を選択します。このオプションを選択すると、複製が

1 回のみ実行され、その後自動的に無効になります。

15 [Schedule] フィールドを [Schedule Enabled] に変更します。

16 アクティビティを実行する日時を指定します。たとえば、次のように指定します。

[Run at Times] フィールドに 7:00 AM - 5:00 PM と入力します。アクティビティは、この時間に実行されます。�

複製を 1 時間おきに実行するように設定します。[Repeat Interval] フィールドに 60 を入力し、[Minutes] を選�

択します。

[Days of Week] フィールドで矢印ボタンをクリックして今日と明日の曜日の選択を解除します。�

この設定により、明後日の午前 7 時までアクティビティは実行されません。

17 [Category] フィールドに Samples と入力します。

18 他のすべてのオプションは、デフォルト値のままにしておきます。

Page 313: LEI ユーザーズガイド

19 文書を保存して閉じます。

アクティビティアクティビティアクティビティアクティビティののののステータスステータスステータスステータスをををを確認確認確認確認してしてしてしてアクティビティアクティビティアクティビティアクティビティをををを実行実行実行実行するするするする

LEI Administrator でアクティビティのステータスを確認します。

1 LEI Administrator のナビゲータで、[Active] を選択します。

2 作成したアクティビティ (Sample Replication) を検索します。

3 そのアクティビティを選択します。

4 LEI Administrator で [Start] を選択します。

メモメモメモメモ アクティビティ文書内の [Trial Run Replication] を選択すると、実際にアクティビティを実行する前に、アクティビ

ティと指定したスケジュール設定をテストできます。

5 アクティビティが完了するまで、定期的に [F9] を押してビューを更新してください。

メモメモメモメモ アクティビティが完了すると、明後日 (この例では木曜日) の午前 7 時に実行するようスケジュールが設定され

ます。[Run Activity Once and Disable] オプションは、スケジュール設定による実行の場合のみ関係します。

6 ターゲットデータベースを開いて、ソースデータベースの内容に基づいて変更されたデータを確認します。

Page 314: LEI ユーザーズガイド

付録付録付録付録 CCCC チュートリアルチュートリアルチュートリアルチュートリアル

ScriptedScriptedScriptedScripted アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

このセクションでは、Scripted アクティビティの作成方法を説明します。LSX エージェントを実行するアクティビティを設定および実行する方法について説明します。

エージェントは、データベース内のデータを扱う 1 つ以上のシンプルなアクションまたは式、さまざまな関数を実行するカスタム LotusScript コマンド、Java ステートメントで構成でき、作成する LEI アクティビティに高度な機能を追加できます。

メモメモメモメモ LEI のインストール完了後、NotesPump (LEI) R3.n のスクリプトを LEI LSX 形式から LC LSX 形式に移行していな

い場合は、旧バージョンのスクリプトを使用する前に、移行を行う必要があります。LEI LSX 形式は廃止され、この形式の

スクリプトは LEI では使用できなくなりました。

例例例例 1111

この例では、LEI Script Vault (スクリプト格納) (leivlt6.nsf) に格納されている付属の 2 つのスクリプト (エージェント) へのアクセス方法、編集方法、および使用方法を説明します。どちらのスクリプトも、LEI に付属の Package Tracking サンプルデータベース (leipackagetrack.nsf) にアクセスします。

最初のスクリプトは、leipackagetrack.nsf 内の DATA フォームからの直接転送を実行し、このデータを作成して、新しいフォームまたはテーブル (ターゲットに応じて異なります) に挿入します。

2 番目のスクリプトは、Direct Transfer アクティビティの 2 つのテーブルの間のキーによる複製を実行します。

スクリプトが記述されている付属のエージェントにアクセスするには、次の 2 つの方法があります。

Notes デスクトップから LEI Script Vault (スクリプト格納) の leivlt.nsf を開く。 �

右クリックして、表示されるメニューから [Open] を選択します。サーバーを選択して、LEI Script Vault (スクリプト格納) (leivlt6.nsf) を選択します。デスクトップにアイコンが表示されます。そのアイコンを右クリックし、[Open in Designer] を選択します。

Notes のトップバーから [File] - [Database] - [Open] を選択します。表示されたメニューで、サーバー名と .nsf ファイルの名前 (またはデータベースアイコン) を指定して、[Open] をクリックします。データベースが開いたら、[View] - [Design] を選択して Domino Designer を開きます。Domino Designer のナビゲータで [Agent] を選択します。

Domino Designer を起動して、LEI Script Vault (スクリプト格納) を開く。�

Domino Designer のトップバーから [File] - [Database] - [Open] を選択します。表示されたメニューで、サーバー名と .nsf ファイルの名前 (またはデータベースアイコン) を指定して、[Open] をクリックします。[Shared Code] セクションを展開し、Domino Designer のナビゲータで [Agent] を選択します。

エージェントのコードを確認するには、Domino Designer でエージェント名をダブルクリックします。コードは、「Options」、「Declarations」、「Initialize」および「Terminate」の各カテゴリに分類されます。

手順手順手順手順 1111:::: コネクションコネクションコネクションコネクション文書文書文書文書のののの作成作成作成作成

この手順では、ソースデータベースとターゲットデータベースへのコネクション文書を作成します。この場合、ソースデータベースは Package Tracking データベース (leipackagetrack.nsf) で、ターゲットデータベースはサンプルの Employee データベース (leiempsamp.nsf) です。

ソースコネクションソースコネクションソースコネクションソースコネクションのののの作成作成作成作成 1 LEI Administrator で、[Add Connection] - [Connection to Notes] をクリックします。

2 [Name] フィールドに Packagetracking と入力します。

3 必要に応じて、[Notes Server] フィールドにサーバーの名前を入力します。ローカルのサーバーを使用する場合は、

空欄のままにしておきます。

4 Notes データベースファイル名の leipackagetrack.nsf を指定します。

5 他のすべてのオプションは、デフォルト値のままにしておきます。

6 文書を保存して閉じます。

ターゲットコネクションターゲットコネクションターゲットコネクションターゲットコネクションをををを作成作成作成作成するするするする 1 LEI Administrator で、[Activities] - [Add Connection] - [Connection to Notes] - [OK] をクリックします。

2 [Name] フィールドに myNotes と入力します。

3 必要に応じて、[Notes Server] フィールドにサーバーの名前を入力します。ローカルのサーバーを使用する場合は、

空欄のままにしておきます。

4 Notes データベースファイル名の leiempsamp.nsf を入力します。

Page 315: LEI ユーザーズガイド

5 文書を保存して閉じます。

手順手順手順手順 2222:::: Direct TransferDirect TransferDirect TransferDirect Transfer アクティビティアクティビティアクティビティアクティビティをををを作成作成作成作成するするするする

1 Notes のトップバーから [File] - [Database] - [Open] を選択し、Package Tracking データベースを開きます。表示さ

れるメニューからサーバー名と leipackagetrack.nsf ファイル名を指定して、[Open] をクリックします。

2 [All Documents] ビューをクリックします。「data」キーの情報を使用します。

3 Domino Designer で LEI Script Vault (スクリプト格納) (leivlt6.nsf) を開きます。

Page 316: LEI ユーザーズガイド

4 [PackageTrack Direct Transfer] エージェントをダブルクリックします。

メモメモメモメモ 指定したエージェントのコードは、[Options]、[Declarations]、[Initialize] および [Terminate] の各カテゴリに分

類されます。[Declarations] セクションには、エージェントが正しく実行されるために必要なすべての関連情報が含ま

れます (ソースコネクション文書の名前など)。スクリプト自体は、[Initialize] セクションに記述されます。必要に応じて

コメントが付け加えられます。

5 ここで、LSX エージェントを呼び出すための Scripted アクティビティを作成します。LEI Administrator で、[Add

Activity] - [Scripted] を選択します。

6 [Name] フィールドに、Direct Transfer と入力します。

7 [Agent Server] フィールドに、使用しているサーバーの名前を入力します。サーバーがローカルにある場合は、この

フィールドを空欄にしておきます。

8 [Agent Database] フィールドに、leivlt6.nsf と入力します。leivlt6.nsf は、LEI Script Vault (スクリプト格納) データベー

スです。

9 [Agent Name] フィールドに、Package Tracking Direct Transfer と入力します。

10 [Category] フィールドに Samples と入力します。

11 他のすべてのオプションは、デフォルト値のままにしておきます。

Page 317: LEI ユーザーズガイド

12 文書を保存して閉じます。

13 アクティビティを開始します。

14 LEI のログをチェックして、すべてのコネクション (ソース) から 8 レコードが取得され、すべてのコネクション (ターゲッ

ト) に 8 レコードが挿入されたことを確認します。

StepStepStepStep 3333::::1111 次次次次キーキーキーキー複製複製複製複製をををを実行実行実行実行するするするする

このスクリプトでは、leipackagetrack.nsf データベースから leiempsamp.nsf データベースへの複製を行います。この手順

Page 318: LEI ユーザーズガイド

で使用するスクリプトは、「PackageTrack Primary Key Replication」という名前で、Domino Designer で表示できます。

1 Notes Client で leipackagetrack.nsf データベースを開きます。

2 [Create] - [Package] を選択します。

次のフォームが表示されます。

3 [Package Tracking Data] 入力フォームに情報を追加します。

4 文書を保存して閉じます。

5 LEI Administrator で [Add Activity] - [Scripted] を選択し、このスクリプトを呼び出す Scripted アクティビティを作成

します。

6 [Name] フィールドに Replication と入力します。

7 [Agent Server] フィールドに、使用しているサーバーの名前を入力します。サーバーがローカルにある場合は、この

フィールドを空欄にしておきます。

8 [Agent Database] フィールドに、leivlt6.nsf と入力します。

9 [Agent Name] フィールドに、Package Tracking Primary Key Replication と入力します。

10 [Category] フィールドに Samples と入力します。

11 他のすべてのオプションは、デフォルト値のままにしておきます。

Page 319: LEI ユーザーズガイド

12 文書を保存して閉じます。

13 アクティビティを開始します。

14 LEI のログをチェックします。すべてのコネクション (ソースとターゲット) から 17 レコードが取得され、すべてのコネク

ション (ターゲット) に 1 レコードが挿入されたことを確認します。

Page 320: LEI ユーザーズガイド

例例例例 2222

この例では、Scripted アクティビティを使用してサンプルデータベース leiempsamp.nsf のデータに対してシンプルアクションを実行する方法について説明します。

手順手順手順手順 1111:::: エージェントエージェントエージェントエージェントをををを作成作成作成作成するするするする

データベース leiempsamp.nsf でエージェントを作成するには、2 通りの方法があります。leiempsamp.nsf で Notes のメニューから [Create] - [Agent] を選択するか、Scripted アクティビティ文書の作成時に [Create Agent] ボタンを選択します。ここでは、アクティビティの作成時にエージェントを作成します。

1 LEI Administrator を使用して新しい Scripted アクティビティを作成します。

2 [Name] フィールドに Scripted ActivityA と入力します。

3 文書の一番上にある [Create Agent] ボタンをクリックします。

4 デフォルトのサーバー名が削除されている場合は、ダイアログボックスが表示されます。このダイアログボックスに、

データベース leiempsamp.nsf があるサーバーの名前を入力します。

5 エージェントを作成するデータベース名を入力するためのダイアログボックスが表示されます。leiempsamp.nsf と入力

します。

6 新規のエージェントのウィンドウが表示されます。

7 [Name] フィールドに Job Script と入力します。

8 [Runtime] の [Target] フィールドに、データベース内のすべてのドキュメントを指定します。

Page 321: LEI ユーザーズガイド

9 プロパティボックスを閉じます。

10 ウィンドウの一番下の [Add Action] ボタンをクリックします。[Add Action] ボックスが表示されます。

11 [Action] フィールドで [Modify Field] を指定します。

12 [Field] フィールドで、[JOB] を指定します。

13 [Value] フィールドで、[ENGINEER] を指定します。

14 [Replace value] を選択します。

これで、leiempsamp.nsf データベース内の各文書の JOB フィールドの値が変更されます。

15 [OK] をクリックします。

16 エージェントを保存して閉じます。leiempsamp.nsf データベースは開かれたままです。

手順手順手順手順 2222:::: ScriptedScriptedScriptedScripted アクティビティアクティビティアクティビティアクティビティ文書文書文書文書をををを完成完成完成完成させるさせるさせるさせる

1 [Esc] キーを押して、作成中の Scripted アクティビティに戻ります。

2 [Agent Name] フィールドのボタンをクリックし、リストから [Job Script] を選択します。

メモメモメモメモ 特定の LEI Server にこのアクティビティを実行させる場合は、[Activity Execution Options] タブの [Designated

Server] でサーバーを指定します。

3 [Category] フィールドに SamplesSamplesSamplesSamples と入力します。

4 他のすべてのオプションは、デフォルト値のままにしておきます。

5 文書を保存して閉じます。

手順手順手順手順 3333:::: アクティビティアクティビティアクティビティアクティビティをををを開始開始開始開始するするするする

アクティビティを実行してビューで確認するには、次の手順に従ってください。

1 LEI Administrator でアクティビティの Samples カテゴリを表示します。

2 作成した Scripted アクティビティ (Scripted ActivityA) を選択します。

3 LEI Administrator で [Start] をクリックします。

4 Scripted ActivityA の実行が開始したことを確認できます。

手順手順手順手順 4444:::: ログログログログととととアクティビティアクティビティアクティビティアクティビティのののの結果結果結果結果をををを表示表示表示表示するするするする

Page 322: LEI ユーザーズガイド

1 アクティビティが完了したら、LEI Administrator でそのアクティビティの名前を選択して [Log] をクリックします。アク

ティビティのログは、「起動時」と「終了時」に記録されます。

2 leiempsamp.nsf データベースを開き、[Job] フィールドを確認します。各インスタンスが、値「ENGINEER」に置換されて

います。

Page 323: LEI ユーザーズガイド

付録 C チュートリアル

Advanced RealTime Virtual Fields アクティビティを作成する

Advanced RealTime Virtual Fields アクティビティの主な用途は、Notes ユーザーが外部システムのデータベース (DB2、Oracle、Sybase など) にアクセスできるようにすることです。

ここでは、Notes ユーザーに社員情報を提供する方法を例に説明します。社員情報は、外部システムデータベースに保存されており、LEI に付属の leiempsamp.nsf サンプルデータベースに類似しています。この例では、EMPNO キーフィールド、および ENAME、HIREDATE、SAL、JOB、DEPTNO データフィールドを使用します。

Notes のデータを外部システムデータベースに転送していない場合は、Direct Transfer アクティビティを使用してこれを転送すると、このチュートリアルに従って操作できます。Direct Transfer アクティビティの作成手順については、本章で前述した「Direct Transfer アクティビティを作成する」のセクションを参照してください。

メモ Advanced RealTime アクティビティを実行するには、Notes データベース (Notes のエンドユーザーが Advanced

RealTime の参照を行うためにアクセスするデータベース) があるる Domino Server に LEI Server がインストールされて

いる必要があります。

簡単な Advanced RealTime Virtual Fields アプリケーションを作成するには、次の手順に従ってください。

手順 1. 必要な情報を収集する

外部システムデータベースのテーブル名、記述 (メタデータ)、必要なユーザー名とパスワードを確認します。前述の Direct Transfer のチュートリアルを実行した場合は、テーブル名は Employees、フィールド名は上記のとおりです。また、外部システムデータベースに必要なユーザー名とパスワードを確認してください。

手順 2. Notes データベースのフォームを作成する

キーフィールドとデータフィールドに対応するフィールドを持つ、Notes データベースにフォームを作成します。フィールド名は、外部システムのデータベースで使用されているものと一致する必要はありませんが、データ型は一致する必要があります。

選択したフォーム名を入力します。

後で文書を選択するためのビューを作成します。ここでは、「Employee Lookup」というビューを使用します。

手順 3. コネクション文書を作成する

手順 1 で収集した情報を使用して、外部システムデータベースへのコネクション文書を作成します。またはこの付録の前半のチュートリアルで作成した、Sample 1 Destination を再利用します。

手順 4. Virtual Fields アクティビティを作成する

上記の Connector を使用して、LEI Administrator で Virtual Fields アクティビティを作成します。対応するキーフィールドとデータフィールドをマッピングします。この Virtual Fields アクティビティは、[Document Open] イベントを監視します。エンドユーザーが、キーフィールドの EMPNO のみが作成されている EMPS フォームを開くと、このアクティビティによって DB2 テーブルの EMPLOYEE が参照されます。

Page 324: LEI ユーザーズガイド

Step 5. ステップ 5. Notes データベースのキーを初期化する

Virtual Fields アクティビティ文書の [Initialize Keys] ボタンをクリックします。外部システムデータベースのレコードを参照するキーを含むキー文書を作成して、上記の Notes データベースを初期化する必要があります。そのために、キーを初期化します。

手順 6. Virtual Fields アクティビティを起動する

1 LEI Administrator データベースに戻り、[Activities] ビューを使用してアクティビティを検出します。

2 [Start] を選択するか、またはアクティビティを開き、Notes のエンドユーザーが Virtual Fields アクティビティを使用す

る時間を設定します。

3 このスケジュールを有効にし、文書を保存します。

メモ Virtual Fields アクティビティは、[Stop] を選択して停止するか、スケジュールが終了するまで、実行が継続され

ます。

4 アクティビティのステータスアイコンの表示が変わるまで [Activities] ビューを更新します。このアイコンは、アクティビ

ティが実行中であることを示します。

手順 7. Virtual Fields アクティビティを使用する

監視対象の Notes データベースを開き、キーの値を含む文書の 1 つを開いて、アプリケーションを使用します。

最初に開くときは時間がかかりますが、これは外部システムデータベースとのコネクションの確立が必要なためです。次に、データフィールドのデータが、Virtual Fields アクティビティによって、外部システムデータベースから取り込まれます。

これで、Virtual Fields Advanced RealTime アクティビティのチュートリアルは完了です。

Page 325: LEI ユーザーズガイド

付録 C チュートリアル

Notes または Web のクライアントの Advanced RealTime Virtual Fields によって動的なクエリーを作成する

このセクションでは、Notes Client または Web ブラウザから、ユーザーが入力したキー値を受け取る Virtual Fields アクティビティを起動し、外部データソースにクエリーを行う方法について説明します。この例では、Advanced RealTime アクティビティに動的クエリー機能を追加する方法を示します。

サンプルの内容とセットアップ

LEI のインストールディスクには、サンプルデータベース leipackagetrack.nsf が収録されています。このデータベースには、例で使用する Lookup フォームと Status フォームが用意されます。また、例で使用する、外部システムデータベースに取り込むサンプルデータも含まれます。

概要

Advanced RealTime Virtual Fields の Notes ベースまたは Web ベースのクエリーの作成には、次の要素が必要です。

Notes のユーザーに提供する情報が含まれる外部システムデータベース!

Domino Server 上の Notes データベース (leipackagetrack.nsf など) !

同じ Domino Server 上にあり、2 つをコネクトする Virtual Fields (または Virtual Documents) アクティビティ!

このチュートリアルを実行するには、サンプルデータを外部システムデータベースにコピーし、Notes データベースに 2 つのフォームと 1 つのビューを作成します。次に Notes データベースを監視する Virtual Fields アクティビティを作成します。このサンプルデータベースに用意されているフォームとビューを使用すると、独自でこれらを作成する必要はありません。

手順 1. セットアップ

leipackagetrack.nsf データベースを LEI がインストールされている Domino Server のディレクトリにコピーします。

メモ フォームを変更するには、Domino Designer で leipackagetrack.nsf を開きます。

手順 2. 監視対象の外部システムデータベースを作成または選択する

leipackagetrack.nsf データベースには、外部システムデータベースに転送できるデータがパッケージで格納されています。これらの文書またはレコードは、[Package] フォームで作成されており、[Packages] ビューで表示できます。LEI を使用してこのデータを外部システムデータベースへ移動、独自による類似テーブルの選択または作成ができます。ここでは、「CODE」という名前のキーフィールドが重要です。独自のテーブルを使用する場合は、参照に使用するキーフィールドを指定し、後の手順で指示された場所で使用します。フィールド名は両方のデータベースで同じである必要はありません。これを示すために、ここでは Notes 側で PackageID を使用します。

Direct Transfer アクティビティを使用してこのデータを Oracle に転送する場合、コネクション文書で [No Long Column] のオプションを選択します。これを選択しないと、1 番目のテキスト列が Oracle 側で LONG 型になります。

手順 3. Notes データベースの Lookup フォームを作成する

leipackagetrack.nsf を使用する場合は、このデータベースに含まれる [Lookup] フォームを使用できます。LEI が参照に使用するキーフィールドは重要な項目です。この例では、PackageID です。ユーザーへの説明のために、このフォームに情報を追加できます。

メモ 次の式では、[Query] というビューを参照します。このビューは、[Lookup] フォームの作成後に作成する必要があり

ます。

「Lookup Package」のフォームには、次の式を含むボタンがあります。

@PostedCommand ([FileSave]);

@PostedCommand ([FileCloseWindow]);

@PostedCommand ([FileOpenDatabase]; @DbName; "Query"; @Text(PackageID));

@PostedCommand ([OpenDocument])

このコードは、Notes からアプリケーションを実行する場合に使用されますが、Web から実行する場合には無視されます。

メモ 動的なクエリーの実行時には、文書の作成イベントは監視できません。これにより、外部システムに不必要なデータ

が挿入される、または「duplicate key value specified」エラーが発生する可能性があります。

1 PackageID を入力して、文書を保存します。

2 ウィンドウを閉じます。

メモ ウィンドウを閉じない場合、孤立した「Untitled」文書が残ります。

3 [Query] ビュー内で、索引付きキーフィールド PackageID が今保存したものと同じ文書を検索します。

Page 326: LEI ユーザーズガイド

4 文書を開きます。ビューの選択式によって、[Status] フォームが表示されます。

動作説明

Web 経由の場合、Domino では、ボタンを POST コマンドとして処理してデータベースに文書を作成し、$$Return フィールド (通常、非表示) の式に応答します。$$Return フィールドは、Notes Client 経由の場合と同様に、Query と呼ばれるビュー内に新しく作成された文書を開く URL を生成します。

この例では、$$Return フィールドには次の構文が含まれます。

@If (PackageID="";

"Please supply a tracking number before pressing the LOCATE button";

"[/" + @Subset (@DbName; -1) + "/Query/" + PackageID + "?OpenDocument]"

Step 4. ステップ 4. Notes データベースに Status フォームを作成する

ユーザーに情報を返すためのフォームを作成します。この例では、Status です。このフォームでも PackageID というキーフィールドを使用する必要があります。Virtual Fields アクティビティで [Monitor Any Forms] を選択すると、ユーザーが作成したオリジナルの文書を [Query] ビューで開くときに、この Status フォームが開かれます。フォームのフィルタ式 (手順 7 で説明) を使用すると、2 つの重要なフォームのみが Virtual Fields アクティビティのトリガーとなります。

Page 327: LEI ユーザーズガイド

Step 5. ステップ 5. Notes データベースに Query ビューを作成する

最後の手順で作成された文書を検索するために、ビューを作成する必要があります。このビューでは、キーフィールド (例では PackageID) に索引を作成する必要があります。

ビューの選択式は、次のとおりです。

SELECT (@Contains(Form; "Lookup"))

[View Properties Advanced] タブで、次の式を入力します。

@If(@IsNewDoc;"Lookup"; "Status")

この式により、Lookup フォームを使用して保存された文書が開く際に、使用されているフォームが Status フォームに切り替えられます。

Step 6. ソースデータべースと外部システムデータベースへの Connector を作成する

LIE コネクションが 2 つ必要です。最初のコネクションは、以下のように外部データベースに使用します。

Page 328: LEI ユーザーズガイド

Notes データベースに使用されるコネクションは、以下のように Advanced RealTime により監視されます。

Step 7. Virtual Fields アクティビティを作成する

1 LEI Administrator で、Notes データベースの Open イベントを監視する Virtual Fields アクティビティを作成します。

このアクティビティは、コネクション文書で指定したキーフィールドを使用して、外部システムデータベースを Notes 文書にリンクします。このコネクション文書は、前のチュートリアル「Advanced RealTime Virtual Fields アクティビティを作成する」の手順 3 で作成したものです。

この場合、Notes 側のキーフィールドは PackageID、外部システムデータベース側は CODE です。

2 データフィールドをマッピングするために、Status フォームを選択します。

3 Open イベントを監視するには Lookup フォームを監視する必要があるため、[Monitor Any Forms] を選択します。

4 サンプルデータベースにはこのアプリケーションの機能に関係ないフォームもあるため、フィルター式に「FORM =

"Lookup" | "Status"」を入力してこれらを除外します。下の図を参照してください。

Page 329: LEI ユーザーズガイド

5 [Post-Open Formula] を次のように指定します。

Select @ALL;

FIELD Form := "Status"

Step 8. 最終手順での操作

1 前述したように、外部システムソースに leipackagetrack.nsf のサンプルデータが取り込まれていることを確認します。

これには Direct Transfer アクティビティを使用します。

2 一定の時間間隔で実行するように作成した Advanced RealTime アクティビティのスケジュールを有効にするか、また

はアクティビティ文書の [Start!] ボタンをクリックして手動で閉じるまで実行し続けます。

3 ビューを更新して [Active] アイコンを確認し、アクティビティがアクティブであることを確認します。[Error] アイコンが

表示された場合は、戻って手順を確認します。

Page 330: LEI ユーザーズガイド

4 Notes Client の [アクション] メニューから Lookup 文書を作成し、PackageID フィールドに追跡番号を入力します。追

跡番号のサンプルは、leipackagetrack.nsf データベースを参照してください。

5 [Locate] ボタンをクリックし、Lookup 文書をデータベースに保存します。

同じ文書がビューで再び開きます。文書が以前に保存されていたことが確認されると、ビューの選択式によって、フォームが [Status] に切り替えられます。

6 Web ブラウザーからは、次のような URL を使って [Lookup] フォームにアクセスします。

http://servername/leipackagetrack.nsf/Lookup?OpenForm

メモ この URL は、ご使用の Domino Server 名およびアプリケーションで使用する名前に加えた変更などを反映す

るためにカスタマイズが必要です。

7 [PackageID] フィールドに追跡番号を入力します。追跡番号のサンプルは、leipackagetrack.nsf データベースを参照し

てください。

8 [Locate] ボタンをクリックします。

[Locate] ボタンをクリックすると、Lookup 文書がデータベースに保存され、$$Return テキストが Domino HTTP プロセスに渡されます。これにより、新しい文書が再び開かれます。Advanced RealTime アクティビティが起動して [Lookup] フォームに送信された値が取得され、これが Advanced RealTime アクティビティの定義と [Status] フォームにマッピングされます。次に、PackageID の値が外部システムソースに送信され、この値に基づいてテーブルのレコードが検索されます。検索の結果は、Lookup フォームで指定された URL で示された Web アプリケーションに返されます。

Page 331: LEI ユーザーズガイド

付録 C チュートリアル

その他の Advanced RealTime の例

このセクションでは、以下の項目について説明します。

Virtual Attachments を使用する Virtual Fields アクティビティまたは Virtual Documents アクティビティの作成!

Virtual Fields アクティビティでの、フィルタ式、[Data Storage] オプション、[Monitor Order] オプション、およびストアド!プロシージャの使用

Virtual Fields アクティビティまたは Virtual Documents アクティビティ用の Notes アプリケーションを作成す

Virtual Fields アクティビティまたは Virtual Documents アクティビティによって監視される Notes アプリケーションには、外部データソースのデータフィールドにマッピングするデータフィールドが必要です。

また、Virtual Fields アクティビティには、外部データソースのキーフィールドにマッピングするフィールドが、少なくとも 1 つ必要です。キーフィールドは、データを固有に識別するための 1 つ以上のフィールドです。Virtual Fields アクティビティには、複数のキーフィールドを含むことができます。

次のセクションでは、Virtual Fields アクティビティまたは Virtual Documents アクティビティで使用できるアプリケーションの例を示します。

サンプルアプリケーション

次に示すのは、外部データソース内の社員情報を監視する Notes アプリケーションです。このアプリケーションの設計ビューは、次のセクションを参照してください。

アプリケーションの設計ビューの例

次の図は、サンプルアプリケーションの設計ビューです。このアプリケーションには、データフィールドの横にラベルがあります。これらのデータフィールドは、このアプリケーションによって監視される外部データソースのデータフィールドにマッピングされます。このアプリケーションを使用する Virtual Fields アクティビティまたは Virtual Documents アクティビティでは、アクティビティ文書のマッピングセクションでもフィールドマッピングを定義します。

Page 332: LEI ユーザーズガイド

Virtual Fields アクティビティの例

次に示すのは、サンプルアプリケーションを使用する Virtual Fields アクティビティの例です。文書の [Mapping] セクションのフィールドマッピングでは、前述のサンプルアプリケーションにマッピングされています。

メモ 作成した Notes アプリケーションにデータを取り込むには、Virtual Fields アクティビティのフィールドを初期化する必

要があります。フィールドは、Virtual Fields アクティビティを開いて [Initialize Keys] ボタンをクリックして初期化します。

Page 333: LEI ユーザーズガイド

Virtual Documents アクティビティの例

Virtual Documents を機能させるには、外部システムのデータベースに 4 つのフィールドを追加する必要があります。これらのフィールドは、Notes ID 情報フィールドにマッピングする必要があります。詳細については、「第 13 章 Virtual Documents アクティビティ」の「Virtual Documents アクティビティで使用する外部システムの必須フィールド」を参照してください。

メモ これらのフィールドは、[Create Table Utility] アクションボタンを使用して自動的に作成できます。詳細については、

「第 13 章 Virtual Documents アクティビティ」を参照してください。

メモ 次に示すのは、本章の前半で作成したサンプルアプリケーションを使用する Virtual Documents アクティビティの例

です。文書の [Mapping] セクションのフィールドマッピングでは、サンプルアプリケーションにマッピングされています。

Virtual Documents では、キーの初期化は不要です。初期化は自動的に行われます。

Page 334: LEI ユーザーズガイド
Page 335: LEI ユーザーズガイド

付録付録付録付録 CCCC チュートリアルチュートリアルチュートリアルチュートリアル

Virtual AttachmentsVirtual AttachmentsVirtual AttachmentsVirtual Attachments をををを使用使用使用使用するするするする

[Virtual Attachments] は、Notes を使用して外部システムデータベースに添付ファイルを追加するための機能です。添付したファイルには仮想ビューからアクセスできます。

Virtual Attachments 機能を使用するには、テーブルを作成して、Virtual Attachments を受け入れる外部システムにフィールドを作成する必要があります。外部システムに作成するフィールドは、これらのフィールドのみを保持するために明示的に作成されたテーブル内に位置する必要があります。

メモメモメモメモ [Table Creation Utility] ボタンを使用すると、添付ファイルテーブルを自動的に作成できます。詳細については、第

12 章または第 13 章の「仮想添付ファイルテーブルを作成する」を参照してください。

Virtual Attachment の必須フィールド名は、次のとおりです。

EIDBID�

EIFILEID�

EIFILESIZE�

EIUNID (これまでは EINOTEID と呼ばれていました) �

EIFILENAME�

EICONTENTS�

各フィールドのデータ型は次のテーブルで説明されるように、外部システムごとに異なります。

メモメモメモメモ Sybase では、列名は大文字である必要があります (EINOTEID など)。

メモメモメモメモ この情報は DB2 では、最高 1MB の添付ファイルからなるデータ型に関連します。

外部外部外部外部システムシステムシステムシステム EIDBIDEIDBIDEIDBIDEIDBID のののの外部外部外部外部システムデータシステムデータシステムデータシステムデータ型型型型

Oracle VARCHAR2 (16) or CHAR (16)

Informix CHAR (16)

Sybase CHAR (16)

DB2 CHARACTER (16)

SQL Server CHAR (16)

MS Access NUMBER, INTEGER

メモメモメモメモ テーブルが複数のデータベース型をサポートする場合は、パフォーマンスの効率を上げるために、これらのフィール

ドに索引を作成してください。

外部外部外部外部システムシステムシステムシステム EIFILEIDEIFILEIDEIFILEIDEIFILEID ののののデータデータデータデータ型型型型

Oracle NUMBER

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT (16)

メモメモメモメモ パフォーマンスの効率を上げるために、これらのフィールドに索引を作成してください。

Page 336: LEI ユーザーズガイド

外部外部外部外部システムシステムシステムシステム EIFILESIZEEIFILESIZEEIFILESIZEEIFILESIZE ののののデータデータデータデータ型型型型

Oracle NUMBER (8)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access NUMBER、LONG、INTEGER

メモメモメモメモ EIFILESIZE 列の長さは調整可能ですが、整数 (X,0) を維持する必要があります。

外部外部外部外部システムシステムシステムシステム EIUNIDEIUNIDEIUNIDEIUNID ののののデータデータデータデータ型型型型

Oracle NUMBER (10)

Informix INT

Sybase INT

DB2 INTEGER

SQL Server INT

MS Access TEXT (32)

メモメモメモメモ EIUNID は、DWORD または 32 ビットの符号なし整数です。式 2^n - 1 によって算出される最大 EIUNID は

4,294,967,295 になるので、全体で 10 桁が必要です。

外部外部外部外部システムシステムシステムシステム EIFILENAMEEIFILENAMEEIFILENAMEEIFILENAME ののののデータデータデータデータ型型型型

Oracle VARCHAR2 (255)

Informix VARCHAR2 (255)

Sybase VARCHAR2 (255)

DB2 VARCHAR2 (255)

SQL Server VARCHAR2 (255)

MS Access TEXT (255)

外部外部外部外部システムシステムシステムシステム EICONTENTSEICONTENTSEICONTENTSEICONTENTS ののののデータデータデータデータ型型型型

Oracle BLOB (8i 以降を推奨)LONG RAW (8.0.5 以前を推奨)

Informix BYTE

Sybase IMAGE

DB2 BLOB (1048576)

Page 337: LEI ユーザーズガイド

SQL Server IMAGE

MS Access OLE OBJECT

Virtual AttachmentsVirtual AttachmentsVirtual AttachmentsVirtual Attachments フィールドフィールドフィールドフィールドがががが存在存在存在存在するするするするテーブルテーブルテーブルテーブルのののの指定指定指定指定

アクティビティ文書の [Attachment table] フィールドにテーブルの名前を入力して、上記のフィールドがあるテーブルを指定します。次の図では、添付ファイルに使用するテーブルの名前は MY_ATTACH です。

メモメモメモメモ SQL コマンドを使用してテーブルを作成できます。

メモメモメモメモ Virtual Attachment による処理によって外部システムに追加されていない添付ファイルは、Virtual Fields および

Virtual Documents のアクティビティ文書からアクセスできません。たとえば、SQL コマンドなど、他の処理方法で外部シ

ステムデータベースに添付ファイルを追加した場合は、Virtual Fields および Virtual Documents のアクティビティ文書か

らそれらの添付ファイルにアクセスできません。

Page 338: LEI ユーザーズガイド

付録 C チュートリアル

Virtual Fields のオプションを使用する

このセクションでは、Virtual Fields アクティビティで、フィルタ式、[Data Storage] オプション、[Monitor Order] オプション、およびストアドプロシージャを使用する例を示します。

フィルタ式を使用する

このセクションでは、[Filter Formula] オプションを [Monitor Order] オプションと組み合わせて使用し、特定の結果を取得する方法について説明します。

外部データシステムにデータを保存する

シナリオ: 文書データが確定したため、DB2 や Oracle データベースなどの外部データシステムに Notes 文書のデータを保存するとします。

各文書の内容が確定して外部システムに保存可能になったら、その文書のステータスを「under review」から「publish」に変更します。

設定方法: この場合は、Notes アプリケーションを監視する Virtual Fields アクティビティを設定します。

Virtual Fields アクティビティで、フィルタ式を使用して「Published」とマークされた文書のみを選択します。

これで、Notes 文書の情報が、DB2 データベースに書き込まれます。このデータベースは、他のアプリケーションからも利用できます。「under review」の文書は DB2 に保存されません。

同じ Notes アプリケーションを使用して異なる外部ソースにアクセスする

シナリオ 1:単一の Notes フロントエンドを使用して、2 つの異なるテーブルにある情報を操作します。たとえば、北東地域の販売情報は、南西地域とは異なるテーブルに格納されます。

この場合、外部データソースが異なっていても単一の Notes 文書をフロントエンドとして使用しているそれぞれの地域のために、1 つずつ Virtual Fields アクティビティを設定します。

地域情報またはアカウント要求を検出するフィルタ式を使用して、該当する外部ソースデータを検索できます。

シナリオ 2:異なるデータベースに 2 つの製品カタログがあり、同一のフロントエンド Notes アプリケーションを使用してデータを提示するとします。単一の Notes フロントエンドを使用しますが、フィールドによっては、データの出所を確認するとします。

単一の Notes アプリケーションを監視する同一の Virtual Fields アクティビティを設定し、それぞれのアクティビティで、要求の一部を処理するフィルタ式を使用します。

Page 339: LEI ユーザーズガイド

付録 C チュートリアル

[Data Storage] オプションを使用する

このセクションでは、Virtual Fields アクティビティにおける [Data Storage] オプションの使用例を示します。

ビューを作成する

ビューの作成に使用するデータはすべて、Notes 文書に存在している必要があります。 文書の [Leave Selected real-time Fields in Document] オプションを使用します。このオプションを選択すると、使用可能なフィールドのリストからビューで参照するフィールドを選択できます。

外部データの静的コピーを保存する

外部データの静的コピーを保存する場合は、[Leave All real-time Fields in Document] を選択します。保存された文書内のデータは、外部ソースのデータが変化しても、文書が再び開かれるまで更新されないため注意してください。

Page 340: LEI ユーザーズガイド

付録 C チュートリアル

[Monitor Order] オプションを使用する

このシナリオでは、Notes 人事情報システムの外部データが複数のテーブルに格納されます。これらのテーブルを 1 つに連結して単一の Employee Information フォームを Notes アプリケーションに取り込むには、データの「結合」が必要です。場合によっては、データベースからの結合が不可能な場合もあります。これは、テーブルが異なるデータベースにあるためです (1 つは Oracle、もう 1 つは Sybase など)。Employee Information フォームには、社員名、部門名、場所の情報が格納されます。次の表に、フィールドと各テーブルとの関係、およびこれらの Notes フォームとの関連を示します。

Employee Information フォーム

EMPLOYEE テーブル DEPARTMENT テーブル

(監視の順序 2 でのアクセス)

LOCATION テーブル

(監視の順序 3 でのアクセス)

EmpID EmployeeID

EmpName EmployeeName

DepartmentNo (may be hidden)

DeptNo DeptNo

Department DeptName

DepartmentLoc (may be hidden)

DeptLoc LocCode

Location LocName...

この結合を行うには、それぞれが別々のテーブルを監視する 3 つの Virtual Fields アクティビティを作成します。これらのアクティビティは、Employee テーブル、Department テーブル、Location テーブルをそれぞれ監視します。最初のアクティビティ (監視の順序 1 を使用) は、他のアクティビティ (監視の順序 2 と 3 を使用) がテーブルへの「キー」として使用するデータを提供します。このように、Notes フォーム「Employee Information」には、第 2 のテーブルへの「キー」として機能するフィールドが必要です。これらのフィールドは、通常は「非表示」になります。これらの第 2 のテーブルの更新を Notes アプリケーションから行う場合は、[Leave selected real-time fields in Documents] オプションを選択し、外部ソースへのキーとして使用されるフィールド (DeptmentNo、DepartmentLoc) をすべてリストします。

メモ 監視の順序が「2」以降のアクティビティは、Open イベントを監視する必要があります。その他のイベントも監視でき

ますが、そのうち 1 つは必ず Open イベントである必要があります。アクティビティの内容によっては、監視の順序が「1」

のアクティビティも Open イベントを監視する必要があります。

1 Employee テーブル、Department テーブル、Location テーブルの各外部データソースに対してそれぞれコネクション

文書を作成します。

2 Employee Information フォームと Employee テーブルに基づいて Virtual Fields アクティビティを作成します。フォーム

で使用される、または別のフィールドに対するキーとして使用される (あるいはその両方の) フィールドをすべて選択

します。この場合は、少なくともEmployeeName と DepartmentNo を選択します。

Notes Employee テーブル

EmpID (キー) EmployeeID (キー)

DepartmentNo DeptNo

3 Employee Information フォームと Department テーブルに基づいて 2 つ目の Virtual Fields アクティビティを作成しま

す。次のフィールドを選択します。

Notes Department テーブル

DepartmentNo (キー) Deptno (キー)

Department DeptName

Page 341: LEI ユーザーズガイド

このアクティビティの監視の順序を 2 に設定します。この結果、最初のアクティビティは、Employee テーブルから情報を取得してから Department テーブルの [DeptName] フィールドを調べるようになります。

4 3 つ目のアクティビティは 2 つ目のアクティビティと同じ機能ですが、Location テーブルを監視する点が異なります。

このアクティビティの参照は、2 つ目のアクティビティから提供される情報に依存するため、監視の順序には 3 を設

定します。

Notes Location テーブル

DepartmentLoc (キー) LocCode (キー)

Location LocName

Page 342: LEI ユーザーズガイド

付録 C チュートリアル

Sybase/SQL でストアドプロシージャを使用する

このセクションでは、Sybase 外部データソースまたは SQL (Sybase を使用) 外部データソースでストアドプロシージャを使用する Virtual Fields アクティビティの例を示します。

この例には、Sybase の addrbook テーブルに対するストアドプロシージャが 4 つ提供されます。これらのストアドプロシージャを使用する場合、使用するキーフィールドは FirstName とそれに続く LastName である必要があり、またマッピングフィールドは (MailDomain、MailServer、MailAddress、CompanyName、State) である必要があります。Sybase では大文字と小文字が区別されるため、ストアドプロシージャ、テーブル名、フィールドは正確に入力してください。

ストアドプロシージャを使用するには、Virtual Fields アクティビティ文書の該当するイベントのオプションのセクションに、ストアドプロシージャの名前を入力します。この例では、次のストアドプロシージャの名前を使用します。

Create: QEInsertaddrbook

Open: QESelectaddrbook

Update: QEUpdateaddrbook

Delete: QEDeleteaddrbook

以下の図は、Virtual Fields アクティビティの各イベントオプションの [Stored Procedure] フィールドにストアドプロシージャが入力された様子を示したものです。次のセクションでは、データベースクライアントから SQL のストアドプロシージャを直接テストする方法の例を示します。

Page 343: LEI ユーザーズガイド
Page 344: LEI ユーザーズガイド

付録 C チュートリアル

SQL のストアドプロシージャをテストする

次の例で、データベースクライアント (この場合は Sybase) から SQL のストアドプロシージャを実行する方法を示します。ストアドプロシージャを次のように直接実行し、正しく機能するかをテストできます。

メモ この例では、次の列を持つ「addrbook」テーブルが存在すると想定します。

execute QEInsertaddrbook 'OurDomain', 'ThisServer', 'OurAddress', 'Open Research', 'NH', 'Adelino', 'Fontes'

execute QESelectaddrbook 'Adelino', 'Fontes'

execute QEUpdateaddrbook 'OurDomain', 'ThisServer', 'OurAddress', 'Open Research', 'NH', 'Adelino', 'Fontes'

execute QEDeleteaddrbook 'Adelino','Fontes'

ストアドプロシージャ定義次に示すのは、前の例で使用した実際のストアドプロシージャ定義です。このプロシージャは Sybase のプロシージャです。他のデータソースの場合はこれとは異なります。

create procedure dbo.QEInsertaddrbook(

@FirstName varchar(20),

@LastName varchar(20),

@MailDomain varchar(20),

@MailServer varchar(20),

@MailAddress varchar(20),

@CompanyName varchar(20),

@State varchar(20)

)

as

INSERT INTO addrbook

(FirstName,LastName,

MailDomain, MailServer,

MailAddress, CompanyName,State)

VALUES

(@FirstName, @LastName,

@MailDomain, @MailServer,

@MailAddress, @CompanyName, @State)

create procedure dbo.QESelectaddrbook(

@FirstName varchar(20),

@LastName varchar(20)

)

as

select FirstName,LastName,

MailDomain, MailServer, MailAddress,

CompanyName,State from addrbook

WHERE FirstName = @FirstName and

LastName = @LastName

create procedure dbo.QEUpdateaddrbook(

@FirstName varchar(20),

@LastName varchar(20),

@MailDomain varchar(20),

@MailServer varchar(20),

@MailAddress varchar(20),

@CompanyName varchar(20),

@State varchar(20)

Page 345: LEI ユーザーズガイド

)

as

UPDATE addrbook SET

MailDomain=@MailDomain, MailServer=@MailServer,

MailAddress=@MailAddress,

CompanyName=@CompanyName, State=@State

WHERE

FirstName=@FirstName and LastName=@LastName

create procedure dbo.QEDeleteaddrbook(

@FirstName varchar(20),

@LastName varchar(20)

)

as

DELETE FROM addrbook

WHERE FirstName=@FirstName and LastName=@LastName

Page 346: LEI ユーザーズガイド

付録 C チュートリアル

DB2 ストアドプロシージャを使用する

DB2 では、Notes のデータ型がパラメータ型に変換されます。たとえば、Notes キーフィールドが数値の場合、DB2 パラメータ型は DOUBLE になります。ストアドプロシージャは入力タイプの相違を識別する必要があります (または、少なくとも入力タイプをチェックする必要があります)。

次のサンプルに基づいて独自のストアドプロシージャを作成してください。

/* Stored procedure Example */

#include <memory.h>

#include <string.h>

#include <c:\sqllib\include\sql.h>

#include <c:\sqllib\include\sqlda.h>

SQL_API_RC SQL_API_FN sf_proc (void *reserved1,

void *reserved2,

struct sqlda *inout_sqlda,

struct sqlca *ca)

{

/* Declare a local SQLCA */

EXEC SQL INCLUDE SQLCA;

/* Declare Host Variables */

EXEC SQL BEGIN DECLARE SECTION;

char *select_stmt = "SELECT NUMBER2, TEXT1, TEXT2, MODIFIED, NUMBER1 FROM SIMPLE WHERE NUMBER1 = ?";

long int number1;

EXEC SQL END DECLARE SECTION;

if (inout_sqlda)

{

if ((inout_sqlda->sqlvar[0].sqltype == SQL_TYP_INTEGER) ||

(inout_sqlda->sqlvar[0].sqltype == SQL_TYP_NINTEGER))

number1 = *((long int *) (inout_sqlda->sqlvar[0].sqldata));

else if ((inout_sqlda->sqlvar[0].sqltype == SQL_TYP_FLOAT) ||

(inout_sqlda->sqlvar[0].sqltype == SQL_TYP_NFLOAT))

number1 = (long int) *((double *) (inout_sqlda->sqlvar[0].sqldata));

else

number1 = 0;

EXEC SQL WHENEVER SQLERROR GOTO ext;

EXEC SQL PREPARE stmt FROM :select_stmt;

exec sql DECLARE curs CURSOR FOR stmt;

exec sql OPEN curs using :number1;

}

ext:

memcpy(ca, &sqlca, sizeof(struct sqlca));

if (inout_sqlda)

*(inout_sqlda->sqlvar[0].sqlind) = -128;

return(SQLZ_DISCONNECT_PROC);

}

Page 347: LEI ユーザーズガイド

付録 C チュートリアル

Oracle ストアドプロシージャを使用する

Oracle ストアドプロシージャは、Virtual Fields アクティビティまたは LC LSX スクリプトで使用できます。ただし、ストアドプロシージャを呼び出すときは、パラメータを正しく設定する必要があります。

コネクション文書でストアドプロシージャを参照する場合は、外部システムデータベース内のストアドプロシージャがすべて一覧表示されたダイアログボックスが表示されます。その中からストアドプロシージャを選択すると、そのストアドプロシージャのパラメータがコネクション文書に自動的に一覧表示されます。コネクション文書でストアドプロシージャを指定しない場合は、ストアドプロシージャおよびこのプロシージャに関連するパラメータを Virtual Fields アクティビティ文書から選択できます。いずれの場合も、ストアドプロシージャは、ストアドプロシージャフィールドのアクティビティのイベントにデフォルトのストアドプロシージャとして入力され、その後にパラメータのリストが続きます。多くの場合、戻り値は、外部システムデータベース側で処理されます。Oracle の場合、Lotus Connector for Oracle 7 または 8 によって返された情報が処理されます。これは一般のユーザーには関係ありませんが、Oracle ストアドプロシージャを作成するユーザーは、理解しておく必要があります。

入力値と名前付きパラメータ

入力値は、名前付きのパラメータとして Oracle プロシージャに渡されます。したがって、Oracle では、入力値として渡したフィールドと同じ名前のパラメータを使用する必要があります。キーによるオペレーション (選択、更新、削除) の場合、入力にはキー値を指定し、必要な場合 (挿入または削除) はデータの値を指定します。Lotus コネクションによって提供される入力値のデータ型は、LEI のデータ型に最も近いものが選択され、Oracle が変換をサポートしている場合は、Oracle によってプロシージャパラメータ定義データ型に変換されます。

出力パラメータを使用して結果を返す

Oracle は、他の RDBMS の Connector と違い、プロシージャからの結果セットを返す方法がありません。このため、Lotus Connector for Oracle 7 または 8 では、ストアドプロシージャの結果を返す方法として出力パラメータをサポートします。これには、プロシージャの呼び出し時にコンテキストや出力パラメータの名前などの追加情報が必要となります。これらの情報は、Virtual Fields アクティビティによって自動的に提供されますが、LC LSX スクリプトから Oracle プロシージャを呼び出すときは手動で指定する必要があります。コンテキストはプロシージャが出力パラメータを必要かどうかを示すもので、出力パラメータは Oracle コネクションへのプロシージャ呼び出し要求のプロパティとして与えられます。出力パラメータは、標準のデータ型である必要があります (行のセットは返せません)。これにより、Oracle プロシージャからの結果セットは 1 行に制限されます。入力パラメータとして示され、出力パラメータリストに含まれるパラメータは、入出力パラメータとして渡されます。

Oracle ストアドプロシージャのサンプル

以下に示すのは、Oracle ストアドプロシージャの本体部分のサンプルです。これは、Virtual Fields Notes アクティビティで、キーフィールドが NUMBER1、データフィールドが NUMBER2、TEXT1、TEXT2 のとき (3 つ)、Open イベントを使用するのに必要な書式を示します。このサンプルでは、キーフィールドは入力パラメータで、結果セットにはデータフィールドとキーフィールドが両方含まれます。出力パラメータの名前の 1 つが、選択ステートメントのキー値と一致する必要があるため、プロシージャ内でパラメータのキーをローカル変数にコピーし、スコープの問題を回避している点に注目してください。

(NUMBER2 out tablename.number2%TYPE,

TEXT1 out tablename.text1%TYPE,

TEXT2 out tablename.text2%TYPE,

NUMBER1 in out tablename.number1%TYPE)

IS

BEGIN

DECLARE number1_request tablename.number1%TYPE := number1;

BEGIN

SELECT t.NUMBER2, t.TEXT1, t.TEXT2, t.NUMBER1

INTO number2, text1, text2, number1

FROM tablename t

WHERE t.NUMBER1 = number1_request;

END;

END;

Page 348: LEI ユーザーズガイド

付録 D DOMINO クラスタの VIRTUAL アクティビティの使用

付録 D Domino クラスタの Virtual アクティビティの使用

付録 D では、Virtual Fields アクティビティおよび Virtual Documents アクティビティでサポートされる、Domino クラスタの使用方法ついて説明します。ここでは、これら 2 つのアクティビティに精通していることが前提となります。

Page 349: LEI ユーザーズガイド

付録 D DOMINO クラスタの VIRTUAL アクティビティの使用

Virtual アクティビティと Domino クラスタ

Virtual Documents アクティビティと Virtual Fields アクティビティはどちらも Domino クラスタをサポートしていますが、その度合いは異なります。Virtual Fields アクティビティは、Domino クラスタにより提供されるフェイルオーバーと負荷分散の機能を完全にサポートします。一方 Virtual Documents は、Domino クラスタで機

能はしますが、現在のところ、クラスタによる機能を完全には活用していません。以下のセクションで、Domino クラスタ内で Virtual アクティビティを設定して使用する方法や制約について説明します。

Domino クラスタとは、レプリカデータベース (「レプリカ」ともいいます) を管理する指定された一連の Domino サーバーを指し、Domino クラスタの複製が有効化されています。ここでは、Domino クラスタの構成および使用方法に精通していることを前提として説明します。クラスタ内のレプリカはすべて、イベント起動型複製モデルを使用して同期が維持されます。クラスタ内のレプリカデータベースのデータの変更は、ほぼ同時にクラスタ内の他のレプリカに複製されます。サーバーとそのレプリカデータベースがわずかな時間でもオフラインになった場合は、トラフィックが別のサーバーに自動的にルーティングされます。オフラインになったサーバーがオンラインに戻ると、他のサーバーを複製して、レプリカデータベースを現在のデータで「更新」できます。クラスタ内のサーバー間の負荷分散も、同様のメカニズムによって実現します。

Page 350: LEI ユーザーズガイド

付録 D DOMINO クラスタの VIRTUAL アクティビティの使用

Virtual Fields の Domino クラスタのサポート

Domino クラスタで Virtual Fields アクティビティを完全に機能させるには、クラスタ内の各サーバーを、そのサーバーのレプリカデータベースを監視する Virtual Fields アクティビティで設定します。つまり、クラスタ内の各サーバーは、ローカルのレプリカデータベースに対して実行される独自の Virtual Fields アクティビティを持つことになります。クラスタ内の各サーバーは、独自の LEI Administrator のコピーを、各 LEI Administrator データベースで保持されているアクティビティの設定と実行のコピーと共に管理する必要があります。LEI Administrator はクラスタ複製ができません。そのため、サーバーごとに、レプリカではなく、独自の LEI Administrator のコピーを管理する必要があります。

すべての Virtual Fields アクティビティは、同じ外部データソースを使用するように設定できます。このように設定すると、各 Virtual Fields アクティビティが外部データにアクセスし、それらを更新できるという事実に基づき、クラスタのフェイルオーバーおよび負荷分散がサポートされます。1 台を除くすべてのサーバーがオフラインになったとしても、外部データは引き続きアクセス可能で、現状を維持できます。 オフラインであった他のサーバがオンラインに戻ると、現在の外部データは、直ちに外部データソースからこれらのサーバーで直接使用できるようになります。

Page 351: LEI ユーザーズガイド

付録 D DOMINO クラスタの VIRTUAL アクティビティの使用

Virtual Documents の Domino クラスタのサポート

Virtual Documents の Domino クラスタのサポートと Virtual Fields の Domino クラスタのサポートの主な違いは、1 つの外部データテーブルにマッピングできる Domino データベースまたはフォームが、1 つのみに制限されることです。クラスタ内に各レプリカデータベースを監視する Virtual Documents アクティビティを設定することは可能ですが、Virtual Fields で一般的に行われる方法を使用して、レプリカデータベースの各インスタンスを同じ外部テーブルにマッピングはできません。そのため、一般的な構成では、仮想文書と外部データの接続を管理する 1 台の Domino サーバーをクラスタ内に指定することが必要になります。

Virtual Documents アクティビティは、この 1 台のサーバーにあるレプリカデータベースとフォームを監視しながら、外部データにマッピングします。このアクティビティは、クラスタ内の外部データへのアクセスと更新をすべて請け負います。クラスタ内の他のレプリカはこの仮想データを見ることができます。仮想データは通常の方法でクラスタ内に複製されますが、ネイティブとして他のレプリカデータベースに保持されます。Virtual Documents アクティビティを実行するクラスタ内のレプリカは 1 つのみで、仮想文書が「保持」されます。他のレプリカには、ネイティブのレプリカ文書が保持されます。以下の図では、外部データソースがクラスタ内のもう一方のノードになり、Virtual Documents アクティビティを実行するサーバーが切断された場合に、クラスタからの切り離しが可能です。ただし、他のノードと同様に、クラスタのレプリカに行ったデータの変更は、サーバーがオンラインに戻った時点でサーバーに伝達され、最終的に外部データソースに渡されます。

Page 352: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

付録 E Virtual Documents アクティビティでの Virtual Fields アクティビティの使用

付録 E では、Virtual Fields および Virtual Documents アクティビティの使用方法について説明します。ここでは、これら 2 つのアクティビティに精通していることが前提となります。

Page 353: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

概要

付録 E の内容は、本書の「第 13 章 Virtual Documents アクティビティ」および「第 12 章 Virtual Fields アクティビティ」で紹介した概念に基づいています。これらのアクティビティの詳細については、上記 2 つの章を参照してください。

Virtual Document は、ネイティブの Notes 文書と多くの面で共通しており、基本的に同じです。ただし、Virtual Document は NSF には保存されず、すべてのデータが NSF の外部に保持されます。これにより、Virtual Fields の Virtual Document への追加が可能になります。Virtual Fields を Virtual Document に追加するには、Virtual Documents アクティビティが監視するフォームと同じものを監視する Virtual Fields アクティビティを作成します。これにより、すでに仮想化されている文書に、仮想フィールドが効果的に追加されます。

最初のうちはこの概念の理解が難しいかもしれませんが、仮想文書全体に仮想フィールドのレイヤーを作成できることにより、Virtual Documents のみの使用では実現不可能な展開性と機能性が実現します。一方、この方法は、複雑性が増すと共に思いがけないエラー確認が発生する可能性もあるため、事前に十分な検討を行う必要があります。各自のニーズを理解し、この方法がそれぞれの問題を解決するのに適しているか、また、Virtual Fields と Virtual Documents を単独で使用する場合よりも簡単に解決できるかどうかを判断してください。ここでは、解決方法に役立つ情報と、高度な解決方法を適切に実行する方法について説明します。

Page 354: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

Virtual Documents アクティビティと Virtual Fields アクティビティを組み合わせて使用する利点

Virtual Fields を Virtual Document に追加することには、次の 2 つの利点があります。

他の外部データソース、場合によっては完全に異なる外部のデータソースシステムから、Virtual Document にデータ!を追加できる。

Virtual Documents アクティビティでは本来使用できない Virtual Fields アクティビティの機能の一部を、Virtual !Document 内で使用できる。

理解しておく必要があるのは、Virtual Document は独立したものであり、そのため、すべてのフィールドが仮想であると定義されていることです。これらの仮想フィールドが、Virtual Documents アクティビティにマッピングされるフィールドです。Virtual Documents アクティビティは 1 つの Notes フォームを監視し、そのフォームにマッピングされるフィールドはすべて仮想化され、1 つのテーブルに存在すると認識されます。したがって、各テーブルの行は、1 つの Virtual Document に対応します。さらに、Notes 文書を構成する他の多様な要素もすべて、外部データソーステーブルで仮想化されます。そのため、文書全体も仮想であると認識されます。

本質的に、Virtual Documents アクティビティは Notes 文書全体をインスタンス化します。また、Notes 文書のすべてのコンポーネントとデータは Domino NSF の外部に存在します。Virtual Documents アクティビティと Virtual Fields アクティビティの根本的な違いはここにあります。Virtual Documents が文書全体を仮想化するのに対し、Virtual Fields は個々のフィールドを仮想化します。また、Virtual Fields は NSF に格納されたキー文書を使用して、文書レベルの情報と、特定の外部データソースのテーブル行に文書をマッピングするための重要なキーフィールドを保持します。

Virtual Documents では、スタブ文書を保持して管理する必要がありません。しかし、その代償として、単一文書内の多様なフィールドを異なる外部データソースにマッピングができない他、一部のフィールドをネイティブ (仮想でないもの) として保持もできません。言い換えれば、Virtual Documents の文書レベルの特徴は、Virtual Document 内のすべてのフィールドが、常に文書を総体的に記述する 1 つの外部データテーブル行にマッピングされることです。これとは対照的に、複数の Virtual Fields アクティビティを使用すると、複数の外部ソースの外部データを、単一文書内の多様な仮想フィールドに挿入できます。Virtual Fields アクティビティを使用して Virtual Documents アクティビティと同じフォームを監視すると、本質的に仮想文書の一部である仮想フィールドに、仮想フィールドを追加することになります。Virtual Field アクティビティで、他のサポートされる外部システムから Virtual Field 自身のフィールドをマッピングすると、複数の外部システムからデータにアクセスする Virtual Document を作成する機能が追加されたことになります。これは、Virtual Documents が単独では実行できない機能です。

Virtual Field のキー文書への影響

キーを提供するキー文書をまだ作成していない場合は、どのように Virtual Fields を使用できるのでしょうか。簡単にいえば、キー文書はすでに作成されています。つまりキー文書は、Virtual Documents 自身です。これについては後で詳しく説明しますが、最も重要な条件は、Virtual Documents アクティビティでマッピングされた Virtual Document のフィールドが、Virtual Fields アクティビティのキーとして使用できることです。Virtual Documents を Virtual Fields キー文書の代用と考えたり、ネイティブのスタブ文書の管理や同期が不要な Virtual Fields の 1 つの使用方法と考えることは、必ずしも得策ではありません。実際のところ、キー文書は仮想化されているため、これらの課題は解決しません。また、オーバーヘッ

Page 355: LEI ユーザーズガイド

ドも増加する場合があります。Virtual Fields は、さまざまな外部ソースのデータを追加したり、いくつかの付加機能を取り入れるために、Virtual Documents の外部データへのアクセス機能を展開する方法として考えてください。つまり、Virtual Documents によって Virtual Fields の使用が容易になるのではなく、Virtual Fields によって Virtual Documents の機能が強化されるのです。

追加機能

Virtual Field の一部の機能は、Virtual Fields アクティビティを Virtual Documents アクティビティと同じフォームを監視するように構成することにより、Virtual Documents に組み込むことができます。その最も注目すべき機能は、Virtual Document 内で複数値のデータフィールドを使用できる機能です。これは、Virtual Documents アクティビティによってマッピングされたフィールドは、複数値のフィールドにはならないためです。Virtual Documents アクティビティによって監視されるフォームの複数値のフィールドは、代わりに Virtual Fields アクティビティによって適切な複数値のパラメータセットを使用してマッピングされます。Virtual Document を表示すると、Virtual Documents アクティビティでマッピングされたフィールドが、複数値のフィールドおよび Virtual Fields アクティビティによってマッピングされた他のフィールドと共に表示されます。

Virtual Fields にも、監視順序に関する概念があります。そのため、同じフォームを監視する複数の Virtual Fields アクティビティを、特定の順序で「実行」するように設定できます。一般的なケースでは、「キー文書」から渡されたキーを使用する 1 つ目の Virtual Field アクティビティが、文書内に一連の仮想フィールドを生成します。1 つ目のアクティビティで生成された仮想フィールドは、監視順序の次にあたる 2 つ目の Virtual Field アクティビティにキーを渡します。このように、監視順序に従ってキーが渡されていきます。状況によっては、順番にアクティビティを実行するこの機能が非常に有用な場合があります。しかし、この機能は Virtual Documents のみでは実現しません。フォームに 1 つの Virtual Documents アクティビティしか存在しないためです。複数の Virtual Fields アクティビティを Virtual Documents に追加することによって、1 つ目の監視順序の Virtual Fields でマッピングされたフィールドから 2 つ目のアクティビティに、そしてまた次のアクティビティに、というようにキーを渡すことができます。唯一の違いは、Virtual Document からは監視順序の 1 つ目の Virtual Fields のみにキーが渡されることです。監視順序の処理では、Virtual Documents アクティビティの監視順序が常に 0 になると考えてください。つまり、常に最初に実行されます。

Page 356: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

仮想フィールドの仮想文書への追加

仮想フィールドを仮想文書に追加するという表現は、少し不適切な言い方です。なぜなら、Virtual Document アクティビティによってマッピングされたフィールドは、すでに仮想化されているためです。ここで実際に行うことは、1 つ以上の Virtual Fields アクティビティでマッピングされた複数の仮想フィールドを追加する操作です。これは、Virtual Documents アクティビティで監視されるものと同じ Notes フォームを監視する Virtual Fields アクティビティを作成するのみで実行できます。ここでは、Virtual Documents および Virtual Fields アクティビティの作成にすでに精通していることを前提に説明します。

Virtual Fields アクティビティの作成で最も重要な部分には、キーフィールドの選択が伴います。「通常の」 Virtual Fields アクティビティでは、キーフィールドがキー文書に存在していることが要求されますが、ここではさらに、キーフィールドが Virtual Documents アクティビティによってマッピングされることも要求されます。キーは両方のアクティビティによってマッピングされるため、両方の外部システムテーブルに共通している必要があります。Virtual Documents アクティビティにはキーの概念がないため、Virtual Document のマッピングセクションでは、キーは他のデータフィールドとして表示されます。しかし、その後の Virtual Fields アクティビティでは、キーとしてマッピングされます。

上の図に示す例では、empno が 他の社員情報と共に Virtual Documents アクティビティでデータフィールドとしてマッピングされています。これらのフィールドはすべて外部システムの社員情報テーブルにマッピングされます。Virtual Fields アクティビティでは、同じ empno フィールドが、その社員の部門に関連する他のデータと共に、別の外部システムテーブルにマッピングされます。empno フィールドは、これら 2 つのテーブルと対応するアクティビティのマッピング間で共通している必要のある唯一のフィールドです。これらのアクティビティを実行すると、Virtual Documents アクティビティは最初に Virtual Document を構築します。この Virtual Document は基本的に、Virtual Fields が外部システムテーブルにアクセスするのに必要なキーを提供します。最終的な結果は、コンポジット仮想文書である Notes 文書になります。つまり、これには、2 つの異なる外部システムテーブルを使用して Virtual Documents アクティビティと Virtual Fields アクティビティの両方から提供された仮想フィールドが含まれます。

Page 357: LEI ユーザーズガイド

この例は、Virtual Fields アクティビティの数を追加することにより、さらに展開できます。これらのアクティビティは、同じ empno フィールドをキーとして使用、または他の Virtual Fields アクティビティから渡され、Virtual Fields の監視順序機能を使用している別のフィールドをキーとしても使用できます。監視順序の詳細については、「第 12 章 Virtual Fields アクティビティ」を参照してください。

多少の注意は必要ですが、キー文書を使用する通常の Virtual Fields アクティビティで実行できる多くのことは、Virtual Fields アクティビティと Virtual Documents アクティビティを組み合わせて使用した場合にも実行できます。次のセクションでは、この 2 つのアクティビティを組み合わせて使用する場合の、特別な留意点を説明します。

Page 358: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

さまざまなシナリオでのキーフィールドの管理

前述のように、Virtual Documents テーブルに存在する Virtual Fields アクティビティのキーは、Virtual Fields テーブルにも存在する必要があり、存在しない場合は、Virtual Fields テーブルの検索を失敗し、仮想文書にアクセスできなくなります。つまり、開こうとしている仮想文書のキー値が Virtual Fields に存在しない場合は、Notes でその文書を開けません。このような現象は通常の状況では発生しませんが、特定の不適切な構成やエラー状況では起こる可能性があります。

シナリオ 1:1 対多数のレコード対応

この現象は、Virtual Documents テーブルのレコードと Virtual Fields テーブルのレコードが、厳密に 1 対 1 で対応していない場合に発生します。このようなケースを「1 対多数のレコード対応」と呼びます。

たとえば、1 つの外部システムテーブルに 100 名の社員のデータが含まれているとします。このテーブルは、通常の方法で Virtual Documents アクティビティを使用すると、Domino 環境に簡単に仮想化ができます。このテーブルの列の 1 つには、社員が所属する部門のコードが指定されています。2 つ目の外部テーブルには、この会社に 12 個ある各部門のデータが含まれており、部門コードを固有のキーとして使用しているとします。各部門には、少なくとも 1 人の社員が在籍しているため、これは 1 対多数の関係になります。目的は、社員情報とその社員の現在の部門についての情報を 1 つの Note フォームにまとめることです。1 つの Notes 文書として表示される統合された文書を作成し、通常の Notes 文書を Domino 環境で操作する場合とまったく同じ方法で操作できるようにします。

前述のように、仮想フィールド (部門データ) を仮想文書 (社員データ) に追加する唯一の方法は、Virtual Documents アクティビティが監視するものと同じ Notes フォームを監視する Virtual Fields アクティビティを使用して、部門コードフィールドをキーとして Virtual Fields アクティビティにマッピングすることです。

しかし、Virtual Fields アクティビティが、作成、更新、削除などのすべての Notes イベントを監視している場合は、社員が退職、または別の部門に移動になる場合、あるいは、新しい社員が雇用された場合に問題が発生します。以下に、その例を示します。

部門 4 の社員だった Fred Waters が退職しました。Notes アプリケーションが在籍中の社員のみを保持するように設計されている場合は、Fred の文書を削除すると、次のことが発生します。

1 Virtual Documents テーブルの Fred のレコードに、削除されたことを示すマークが付けられます。これにより、Domino

では、他に存在する可能性のあるデータベースのレプリカに、この文書の削除を複製できます。

2 Virtual Fields アクティビティは削除イベントを監視しているため、Fred の以前の部門レコードが Virtual Fields の部門

データテーブルから削除されます。このとき、コード 4 がキーとして使用されます。

3 部門 4 に在籍する Fred の同僚のレコードは Notes からアクセスできなくなります。これは、仮想文書を開くと、この

部門データに対する Virtual Fields の検索に失敗するためです。

Fred が部門 4 から部門 7 に移動になりました。このとき、Fred の文書を更新すると、次のことが起こります。ただしこれは、キーフィールドが Virtual Fields アクティビティで更新できる (デフォルトで [BLOCKED] に設定されている) 場合に限ります。

4 Virtual Documents の社員情報テーブルの Fred の部門コードが、4 から 7 に更新されます。

5 Virtual Fields アクティビティは更新イベントを監視しているため、このアクティビティがキーフィールドを更新できるよう

に設定されている場合は、Virtual Fields の部門情報テーブルの部門コードレコードも、4 から 7 に更新されます。

6 キーフィールドが新しい値に更新されると、さまざまな障害が発生する可能性があります。たとえば、まだ部門 4 に在

籍している他の社員の文書がアクセス不能になったり、外部システムテーブルのキーの重複エラーが発生します。

Fred が部門 4 を出た後、代わりの社員として Bob Smith が新たに雇われました。この場合は、次のことが発生します。

7 Bob Smith のレコードが部門コード 4 として Virtual Documents のテーブルに挿入されます。

8 Virtual Fields アクティビティは作成イベントを監視しているため、Virtual Fields の部門情報テーブルの部門 4 に新し

い行が作成されます。

9 部門 4 はすでに存在しているため、キーの重複エラーが起こる可能性があります。また、部門 4 の部門情報を再入

力するのではなく、部門 4 に新しく雇われた社員を追加しようとしているため、これでは意味を成しません。

解決法

このシナリオで実際に行うことは、Virtual Fields アクティビティを読み取り専用のアクティビティに設定し、部門情報テーブルを単に検索テーブルとして使用して、各社員の文書が開かれたときに、部門情報を提供することです。このような 1 対多数のシナリオでは、Virtual Fields アクティビティが常にオープンイベントのみを監視するように設定すると、この目的を容易に達成できます。このように設定すると、社員の文書を削除および更新しても、Virtual Documents の社員テーブルの社員レコードに対してのみ影響します。新しい社員レコードを作成する場合は、部門コードを含む社員情報を入力するだけです。その後、新しい社員のレコードを開くと、正しい部門情報が社員情報と共に表示されます。

社員の仮想文書から部門情報を更新できるようにする場合は、特別な対応が必要です。この場合は、Virtual Fields アクティビティが更新イベントを監視できるようにし、[Key Field Updates] の更新イベントオプションを [Block] (デフォルト) に設定します。これにより、上記のような問題を引き起こすことなく社員を別の部門に移動できる一方で、部門情報も編集できます。この場合、部門コードキーは更新の一部として部門情報テーブルで変更されます。

Page 359: LEI ユーザーズガイド

Virtual Fields アクティビティの「通常の」使用方法にすでに精通している場合なら、この 1 対多数のシナリオについても理解しているでしょう。これは一般に、複数の Virtual Fields アクティビティを指定の監視順序で使用すると起こります。このシナリオでは、監視順序の最初の Virtual Fields アクティビティが 2 番目の Virtual Fields アクティビティにキーを渡します。この 2 番目の Virtual Fields アクティビティは、上記の部門情報テーブルのような読み取り専用の検索テーブルをアクセスします。このケースにも、上記と同じ問題が発生し、同じ解決方法を使用できます。仮想文書の場合の唯一の相違点は、Virtual Documents アクティビティが、Virtual Fields アクティビティにキーを渡すことによって、基本的に 1 つ目のアクティビティの役割を果たすという点です。

シナリオ 2:1 対 1 のレコード対応

状況によっては、Virtual Fields テーブルを読み書き可能なユーザーが望ましい場合があります。2 つのテーブルのレコードが 1 対 1 の関係になるケースもこれに含まれます。たとえば、Virtual Fields テーブルに、部門情報ではなく、仕事の業績に関する社員固有の情報が含まれているとします。キーは社員の社員番号です。この場合、社員が退職し、その社員の文書が Notes アプリケーションから削除されたときに、この社員のすべてのレコードを両方のテーブルから削除することが望まれます。また、業績データなど、Virtual Fields テーブルのこの社員に関する情報も更新できる必要があります。同様に、新しい社員は常に新しいレコードとして両方のテーブルに作成されるとします。

この場合、2 つのテーブル間に 1 対 1 の関係が作成されるため、キーフィールドの更新を禁止する必要はありません。複数の社員に共有される部門コードをキーとした前の例と異なり、この場合のキーは、1 人の社員を固有に識別するためです。この例では、間違った社員番号が変更され、キーフィールドの更新が Virtual Fields アクティビティで禁止されている場合、社員のレコードを開こうとすると失敗します。これは、キーが更新によって影響されず、Virtual Fields テーブルの検索が失敗するためです。

Page 360: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

キーの初期化

Virtual Fields アクティビティによるキーの初期化の概念およびプロセスには、通常、「キー文書」の作成が必要となります。このキー文書は、Notes データベースに格納されるネイティブの Notes 文書です。キー文書には一般に、Virtual Fields アクティビティが対応する外部システムテーブル行へのアクセスに使用するキーフィールドデータのみが含まれます。したがって、テーブルには、行ごとに作成されたキー文書が 1 つずつあります。前のセクションで説明したように、Virtual Fields アクティビティを Virtual Documents アクティビティで使用してコンポジット文書を作成する場合は、キーの初期化の概念が目的の機能と多少矛盾します。通常、Virtual Documents アクティビティで使用される外部テーブルは、すでに「仮想化」されていると認識されます。外部システムテーブルの仮想化の詳細については、「第 13 章 Virtual Documents アクティビティ」を参照してください。この場合、Virtual Fields アクティビティのキー文書の役割をする文書はすでに存在します。Virtual Fields アクティビティによって追加される仮想フィールドには、前の例で説明したように、共通のキーフィールドとテーブル列のみが必要です。このシナリオでは仮想文書がすでに存在しているため、初期化するキーはありません。

Virtual Documents アクティビティの透過性により、従来の Virtual Fields アクティビティのキーの初期化を Virtual Documents アクティビティと組み合わせて使用することも可能です。両アクティビティが同じ Notes フォームを監視するように設定されており、Virtual Fields アクティビティのキーとして機能する共通のフィールドがある場合は、Virtual Fields アクティビティでキーの初期化プロセスを開始すると、基本的に仮想キー文書が作成されます。「通常の」キーの初期化では、Virtual Fields テーブルの各行に 1 つずつ仮想キー文書が作成されます。それぞれの新しい仮想キー文書は、新しく作成される Virtual Documents テーブルの行に順番に対応していきます。この Virtual Documents テーブルには、Virtual Fields アクティビティで使用されるキーごとに、少なくとも 1 つの列が存在します。

メモ Virtual Documents アクティビティはキーの初期化中に実行される必要があり、これを行わない場合、従来の非仮想

文書が作成されます。

上記のテクニックは、Virtual Documents を使用する際の柔軟性を表しています。この方法は、Virtual Fields アクティビティで使用される既存のテーブルを使用し、基本的に Virtual Documents アクティビティにマッピングされる別のテーブルを生成するため、仮想キー文書を作成できます。ただし、本章の最初に述べたように、仮想文書をネイティブのキー文書を削除する方法として単独で使用することは、NSF のサイズを最小限に抑える際、またはすべてのデータを Notes データベースの外部に保持する際に必要な場合を除き、適切な方法ではありません。しかし、これが必要な場合は、まず Virtual Fields アクティビティをピクチャーから一斉に削除し、Virtual Documents アクティビティのみを使用して既存の Virtual Fields テーブルを仮想化してから、Notes フォームを監視することをお勧めします。

Page 361: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

バックグラウンドでの自動仮想化とキーの同期の問題

仮想化は、Virtual Documents アクティビティが外部システムテーブルを受け入れる際に、各行が Notes 文書を表すために使用するプロセスです。このプロセスは、Notes Client で新しい仮想文書を作成すると、自動的かつ即時に実行されます。対応する行は、文書が保存される際に外部テーブルに挿入されます。仮想化は、バックグラウンドプロセスによリ自動に実行もできます。この場合は、Notes 文書として仮想化されていない外部テーブルの既存の行がスキャンされ、Domino からアクセスできるように変換されます。この機能は、外部テーブルにすでにデータが入っており、そのデータを Domino からアクセスできるように自動的に変換する場合に便利です。外部データソーステーブルも定期的にスキャンされ、非 Notes Client またはプロセスから追加された行や、NSF に仮想化して保存する必要のある行が検索されます。詳細については、「第 13 章 Virtual Documents アクティビティ」を参照してください。

Virtual Fields アクティビティが同じフォームを監視している場合、仮想化は Virtual Fields アクティビティやそれに関連付けられた外部テーブルに直接影響しません。しかし、前述のように、仮想文書は Virtual Documents アクティビティの共通のデータフィールドであると同時に、Virtual Fields アクティビティのキーとして機能する必要があります。外部テーブルが仮想化され、Virtual Fields テーブルに存在しないキー値の行が含まれている場合は、その仮想文書にアクセスしようとすると、エラーが発生します。これは、Virtual Fields テーブルの検索が失敗するためです。この問題が単なるキーデータの誤りによる場合は、Virtual Documents アクティビティを実行したまま、Virtual Fields アクティビティをシャットダウンします。これで、不正な仮想文書の削除、および正しいキーデータの仮想文書を開いて更新できるようになります。その後で、Virtual Field アクティビティを再起動します。反対に、問題が Virtual Fields テーブルのキーデータの誤りによる場合は、SQL クライアントなどを使用して、手動で外部データソーステーブルを正しいキーデータに更新するか、または必要な行を追加して、Virtual Documents テーブルのデータと一致させる必要があります。

Virtual Documents テーブルのレコードに、Virtual Fields テーブルに該当しないデータがある場合は、特別な処置が必要になることがあります。たとえば、Virtual Documents テーブルに全社員のデータが含まれており、社員の部門コードが Virtual Fields テーブルの部門情報を検索するためのキーとして使用されているとします。しかし、一部の社員はどの部門にも所属しておらず、部門番号がありません。つまり、Virtual Documents テーブルの値が NULL になっています。このような場合は、Virtual Fields テーブルの検索ができないため、この文書にアクセスすると明らかに問題が発生します。

重要なことは、常に Virtual Fields テーブルの固有のキーとして機能するデータ値を Virtual Documents テーブルで指定することです。このケースを簡単に修正するには、Virtual Fields の部門情報テーブルに 0 などの特殊な部門番号キーが入る新しい行を追加して、他のすべての部門情報を NULL に設定します。その後、特殊な部門番号を、Virtual Documents の社員情報テーブルの該当する各社員レコードに割り当てます。また、高度な方法として、Virtual Documents アクティビティで、仮想文書が開かれた際に部門番号が NULL の場合、常にその部門番号を 0 に設定するオープン後の式を使用することも可能です。

前述のように、Notes Client から仮想文書を作成した場合は、文書を保存するときに、Virtual Documents アクティビティによって対応する外部の行が外部テーブルに自動的に挿入され、仮想化されます。Virtual Fields アクティビティが作成イベントを監視している場合は、このアクティビティによってマッピングされたフィールドの Virtual Fields テーブルにも、新しい行が挿入されます。この 2 つの処理は同時に実行されるため、同期の問題はありません。Virtual Fields アクティビティが作成イベントを監視していない場合は、入力したキーが Virtual Fields テーブルにすでに存在すると認識されます。

Page 362: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

エラー状況とキーフィールドの同期の問題

Virtual Documents アクティビティが使用する外部テーブルと Virtual Fields アクティビティが使用するテーブルが初めから同期しており、Virtual Documents テーブルのすべての行に Virtual Fields テーブルに対する有効な固有のキーが含まれる場合、特定のエラー状況で問題が発生する可能性があります。ただし、問題は Virtual Fields アクティビティが Create、Open、Update、Delete などのイベントを監視している場合のみ発生します。Virtual Field アクティビティは、使用する書き込みアプリケーションに応じて、読み取りまたは書き込み形式で使用できます。Virtual Fields アクティビティを Open イベントのみを監視することによって読み取り専用として使用する場合は、このセクションで説明するエラー状況は該当しません。詳細については、「さまざまなシナリオでのキーフィールドの管理」のセクションを参照してください。

文書を作成または更新する際に、Virtual Fields テーブルまたは Virtual Documents テーブルでレコードを挿入または更新したときにエラーが発生した場合は、文書は作成されず、エラーメッセージが返されます。

たとえば、Domino と Virtual Fields テーブルの外部システムとの接続が切断された場合は、接続エラーがダイアログボックスに表示され、Virtual Fields アクティビティのログに記録されます。Virtual Document アクティビティのプロセスは実行されず、Virtual Document テーブルに対するレコードの挿入または更新は行われません。仮想文書の挿入、更新、または削除では、すべての Virtual Fields アクティビティの処理が Virtual Document アクティビティの処理の前に実行されます。このエラーも、Virtual Fields アクティビティがこれらのイベントを 1 つでも監視している場合に限り、発生します。

Virtual Document の処理中にエラーが発生した場合は、問題が起こる可能性があります。これは常に Virtual Fields アクティビティの処理がすべて終了した後に起こります。この結果、イベントにより異なりますが、Virtual Field テーブルが更新されるか、テーブルに新規の行が挿入、または削除される可能性があります。しかし、前で述べた接続問題の例と同様に、Virtual Documents テーブルに対応する操作は失敗します。この時点では、Virtual Fields テーブルの操作に関するロールバックはありません。以下に、各状況におけるエラーの制御について説明します。ここでは、1 つの Virtual Fields テーブルに 1 つのキーのみが含まれているものとします。

新しい文書を作成している場合は、Virtual Fields テーブルに新しい行が挿入されます。エラー状況が修復されても、!文書の作成は失敗する場合があります。これは、Virtual Fields アクティビティが同じキーを使用して再び行を挿入しようとし、そのキーがすでに存在しているために、キーの重複エラーが発生するためです。この問題を解決するには、文書の作成を再び試行する前に、Virtual Fields テーブルの新しい行を削除するか、Virtual Fields アクティビティをシャットダウンします。Virtual Fields アクティビティをシャットダウンした場合は、その後、再起動します。

文書の更新中は、新しい文書を作成している場合と同じ問題が発生します。まず、Virtual Fields アクティビティがテ!ーブルを変更後のデータに更新します。同期の問題は、Virtual Fields アクティビティでキーフィールドの更新が許可されている場合 (通常はデフォルトで禁止されています)、および Virtual Documents の行を新しいキー値に更新しているときにエラーが発生した場合のみ起こります。この問題の後で Virtual Document を開こうとすると、すでにキーが削除された Virtual Fields テーブルをアクセスするため、この操作は失敗します。これは、Virtual Fields テーブルではすでにキーが変更されているにもかかわらず、Virtual Documents テーブルではまだ変更されていないために生じます。この状況を修正するには、まず、Virtual Fields アクティビティのみをシャットダウンします、その後、文書を開いて正しいキーでキー値を更新してから、文書を保存して閉じます。Virtual Fields アクティビティを再起動して、文書を再び開くと、正しいデータがすべて表示されます。

文書を削除している場合は、Virtual Fields アクティビティによって Virtual Fields テーブルの対応する行が削除され!ます。エラー状況が修復されると、文書を正常に削除できます。また、Virtual Fields テーブルの行もすでに削除されるため、エラーは表示されません。しかし、最初のエラーが発生した後に文書を開こうとすると、Virtual Fields のレコードがすでに削除されているため、そのレコードに対する検索が失敗し、エラーになります。

Page 363: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

キー以外のデータフィールド

ここまでのセクションでは、Virtual Field のキーフィールドに危険を及ぼす可能性、およびキーに重点を置いたアクティビティの設定方法について説明してきました。では、キー以外の他のデータフィールドはどのように制御するのでしょうか。これまでに説明してきたように、両方のアクティビティにマッピングする必要のあるフィールドは、Virtual Field アクティビティのキーとして機能するフィールドのみです。これらのフィールドには、Virtual Fields テーブルと Virtual Documents テーブルの両方に対応する列がある必要があります。それ以外は、両方のアクティビティに必須としてマッピングするフィールドはありません。他のデータフィールドをマッピングする必要があるかどうかは、使用するアプリケーションと、外部システムテーブルの設定および使用方法により決まります。

これまでに使用した例のうち、仮想化された Virtual Documents テーブルに社員情報を格納し、Virtual Fields テーブルで検索を使用して社員の部門情報にアクセスした例をみると、これは、2 つのテーブル間に部門コードキー以外の共有データが存在しないケースになります。部門コードキーフィールドは、両方のアクティビティによってマッピングされます。

Virtual Fields テーブルに社員固有の業績データが保持されている例の場合は、固有の社員 ID (社員番号など) をキーとして使用すると、2 つのテーブル間に 1 対 1 の関係ができるため、状況は変化します。厳密には、2 つのテーブル間に重複する情報が存在する場合もあります。たとえば、両方のテーブルに社員の姓名と電話番号が含まれているとします。そのうち、たとえば電話番号を更新する必要がある場合、これが片方のアクティビティによってのみマッピングされているとすると、そのアクティビティのテーブルのみが更新されるため、予期せぬ結果を招く可能性があります。たとえば、その電話番号は更新済みであるが、電話番号フィールドが Virtual Documents アクティビティのみでマッピンッグされている場合は、Virtual Documents テーブルのみが更新されます。従って、Virtual Fields テーブルはその新しい電話番号では更新されません。Notes アプリケーションに限り、これにより問題が生じることはありません。Virtual Fields テーブルのマッピングされていない電話番号の列はアクセスされないためです。しかし、外部アプリケーションの中には、Virtual Fields アクティビティが変更および更新に使用するテーブル内のすべての情報に依存しているものがあります。一般的な経験則として、一方のアクティビティにマッピングされる共通のデータ列は、そのフィールドが読み取り専用でない限り、もう一方のアクティビティによってもマッピングされる必要があります。

一方のアクティビティで実行される PRE または POST イベント式が、もう一方のアクティビティに自動的には適用されないことに注意してください。たとえば、Virtual Fields アクティビティで更新前の式を実行して電話番号フィールドの市外局番を必ず確認し、事前に保留にしておく場合は、Virtual Documents アクティビティでもこの式を実行して、同じ結果が得られることが必要です。

Page 364: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

仮想フィールドの [Data Storage] オプション

「通常の」 Virtual Fields アクティビティにおけるこのオプションの目的は、外部システムテーブルの他に、NSF にもキー以外のフィールドデータを保存可能にすることです。一般に、キーフィールドは「ネイティブとして」 NSF に保存されます。このオプションを [leave all (or selected) real-time fields in documents] に設定すると、外部のキー以外のフィールドのすべて、または指定したものを、場合によってアクティビティが実行されない際に表示できます。一般に、Notes ビューの場合は、キー以外のデータフィールドを表示できます。ただし、仮想フィールドは、文書に保存されない限り、Notes ビューに表示できません。キーフィールドが常にビューに表示されるのは、これらが常に文書に保存されるためです。

ここでは、ネイティブのキー文書ではなく、仮想文書を使用しているため、NSF にデータがネイティブに保存されることはありません。しかし、キー以外の仮想フィールドの Notes での表示を妨げる制約は他にもあります。キー以外の仮想フィールドをビューに表示させるには、[Data Storage] オプションを [leave all (or selected) real-time fields in documents] に設定します。この場合、このオプションの "documents" は仮想文書を指します。したがって、このオプションに指定されるフィールドはすべて、Virtual Documents アクティビティにもマッピングされる必要があるという追加条件が伴います。つまり、Virtual Documents テーブルにも対応する列が存在する必要があります。これは必ずしも実現可能であり、望ましいとは限りません。ビューに表示されるフィールドを指定したもののみに制限し、それらのフィールドを Virtual Documents アクティビティでマッピングされるように設定もできます。

キー以外のフィールドが、他の理由によって Virtual Fields アクティビティと Virtual Documents アクティビティの両方でマッピングされており、[Data Storage] オプションが [remove all real-time fields from the document] に設定されている場合、これらのフィールドに対する更新は Virtual Documents テーブルで NULL に設定されます。これらのフィールドを両方のテーブルで更新させる場合は、Virtual Fields アクティビティの [Data Storage] オプションで、これらのフィールドを [leave selected real-time fields in documents] にリストするか、または単にこのオプションを [leave all real-time fields in documents] に設定します。また、この設定を行わないと、指定したフィールドに NULL を使用できない外部システムからエラーが通知される場合があります。

要約すると、仮想文書そのものは完全に仮想化された Notes 文書であるため、Virtual Documents アクティビティでマッピングされるフィールドはすべて Notes ビューに常に表示できます。しかし、Virtual Fields アクティビティでマッピングされる仮想フィールドは、いずれも [Data Storage] オプションが [leave all (or selected) real-time fields in documents] に設定され、Virtual Documents アクティビティでもマッピングされない限り、ビューに表示はできません。

Page 365: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

Virtual Field の [Form Override] オプション

この Virtual Fields アクティビティのオプションを使用すると、Virtual Fields アクティビティで NSF のすべてのフォームを監視できます。Virtual Documents アクティビティは常に 1 つのフォームのみを監視するため、Virtual Fields アクティビティで Virtual Documents アクティビティと同じフォームを監視する場合、このオプションは一般的に有効化しないことをお勧めします。デフォルトでは無効に設定されています。

特別に高度な環境では、このオプションを有効にした方が望ましい場合もあります。このオプションを有効にすると、仮想文書と「ネイティブ」文書が混在する可能性があり、そのすべてに同じ Virtual Fields アクティビティでマッピングされた仮想フィールドが含まれる場合があります。たとえば、Virtual Documents アクティビティで監視されているフォームを使用して文書を作成すると、Virtual Documents テーブルに対応する挿入が行われて仮想文書が作成されます。また、行も Virtual Fields アクティビティテーブルに作成されます。しかし、Virtual Documents アクティビティで監視されていないフォームを使用して文書を作成すると、ネイティブ文書が作成され、Virtual Fields アクティビティでは、このアクティビティによってマッピングされた仮想フィールドの Virtual Fields テーブルに行が挿入されます。

Page 366: LEI ユーザーズガイド

付録 E VIRTUAL DOCUMENTS アクティビティでの VIRTUAL FIELDS アクティビティの使用

[Virtual Attachments] オプション

[Virtual Attachments] オプションは、Virtual Documents アクティビティと Virtual Fields アクティビティの両方で使用できます。このオプションを使用すると、NSF ではなく、外部システムテーブルに添付ファイルを保存できます。Virtual Fields アクティビティで Virtual Documents アクティビティと同じ Notes フォームを監視する場合、このオプションは Virtual Documents アクティビティのみによって有効に設定される必要があります。

Virtual Documents アクティビティで [Virtual Attachments] オプションを有効にすると、すべてのフォームのリッチテキストフィールドに含まれるすべての添付ファイルが、外部システムのテーブルに仮想化されて保存されます。

添付ファイルが挿入されているリッチテキストフィールドは、Virtual Documents アクティビティでも、Virtual Fields アクティビティでもマッピングできます。つまり、Virtual Documents アクティビティで [Virtual Attachments] を有効にした場合でも、添付ファイルへのリンクが含まれるリッチテキストフィールドでは、そのフォームを監視するどちらのアクティビティでもマッピングできます。

Page 367: LEI ユーザーズガイド

著作権著作権著作権著作権

特記事項特記事項特記事項特記事項

本書は、参照のみを目的に提供されています。本書の情報の完全性および正確性については最善の努力を払いましたが、本書の内容は現状のままで提供されるものであり、LOTUS および IBM は法律が許す限り、第三者の権利の不侵害の保証、商品性の保証および特定目的適合性の保証を含むいかなる明示もしくは黙示の保証責任を負いません。LOTUS および IBM は本書およびその他の文書の使用もしくはそれらに関連して発生した直接的、間接的、結果的あるいは偶発的損害を含むいかなる損害についても責任を負いません。本書またはその他の文書は、LOTUS および IBM (またはその他の供給者やライセンサー) にいかなる保証責任を負わせるものではなく、本ソフトウェアの使用に際するライセンス契約の内容も一切変更しないものとします。

著作権著作権著作権著作権

本書またはソフトウェアの使用に関する該当のライセンス契約に記載されている場合を除き、IBM Corporation の文書による同意なく、本書およびソフトウェアの一部または全部を、複写、複製、再生、翻訳、または電子媒体もしくは機械可読形式へ置き換することは著作権法により禁止されています。

(c) Copyright 1985 - 2003 Lotus Development Corporation

(c) Copyright IBM Corporation

Lotus Software, IBM Software Group

One Rogers Street

Cambridge, MA 02142

All Rights Reserved.

商標のリスト商標のリスト商標のリスト商標のリスト

1-2-3、cc:Mail、Domino、Domino Connectors、Domino Enterprise Connection Services、IBM Lotus Enterprise Integrator for Domino (LEI)、Freelance、Freelance Graphics、Lotus、Lotus Notes、LotusScript、Notes、NotesBench、Notes/FX、Notes Mail、NotesSQL、NotesView、Organizer、SmartIcons、および SmartSuite は、Lotus Development Corporation および IBM Corporation の商標です。AIX、DB2、DB2/2、DB2/400、IBM、iSeries、OS390、OS/2 Presentation Manager、OS/2 Warp、PowerPC、pSeries、RS/6000、SNA、および zSeries は、IBM Corporation の商標です。Tivoli/Courier は、Tivoli Systems, Inc. および IBM Corporation の商標です。

他の会社名、製品名およびサービス名等はそれぞれ各社の商標または登録商標です。

LLEUG65000LLEUG65000LLEUG65000LLEUG65000