前のトピック     次のトピック

第 20 章 VISIO ソリューションとデータの統合

セクション 5   Visio ソリューションとデータベースの統合

Visio® ソリューションとデータベースを統合するには、図面とデータベースとを同期させるための計画を作成する必要があります。どのデータベースを使用するのか、何を、いつ、どのように変更するのかは非常に重要な要素となります。

たとえば、各マスタシェイプがメーカーのカタログにある部品番号のついたコンポーネントと対応するソリューションを開発する場合を考えてみましょう。部品番号を各マスタシェイプのカスタム プロパティとして保存することにより、データベースとして保存された部品カタログの情報は簡単に調べることができます。ただし、図面に同じ部品番号のマスタシェイプのインスタンスが複数ある場合も考えられるため、データベースとソリューションによって作成された図面との対応は必ずしも 1 対 1 ではありません。図面内の図形を削除してもデータベースからその部品のレコードを削除する必要はありませんが、データベースを更新したときには、図面内の使用できなくなったコンポーネントが特定できるようにする必要があります。

一方、図面が正しいかチェックするために、ソリューションの開発者はコンポーネントとその接続関係を表す外部モデルを作成し、このモデルをデータ レポジトリに保存したり、一時的にメモリに保存することもできます。モデルは部品の目録であると同時に、その相互の接続関係をも表す必要があるため、複数のリンク表で構成されます。このモデルでは、図面で使用されている同一のコンポーネントをモデル上で相互に区別するため、部品番号のほかに各コンポーネントに一意な ID が必要になります。ユーザーが図面にコンポーネントのシェイプを追加したときにソリューションが対応するノードをモデルに追加し、ユーザーがシェイプや接続を削除したときには同様に適切な処理が行われるように、外部モデルと図面は同期させる必要があります。

しかし、シェイプを削除する処理の場合、すべてのコンポーネントを記録した表からレコードを削除するだけでは不十分です。コンポーネント間の接続関係を記録している表も同じように修正する必要があります。一般的に、図面でのアクションは、単純なレコードの挿入や削除処理ではなく、データベース全体で実行される処理に対応付けられます。

同様に、部署の組織のソリューションの場合、ある管理者の組織図から従業員を削除しても、新しい組織が作成され経営者から承認されるまで (場合によっては承認されても)、企業の人事リソース データベースから従業員のレコードは削除されません。その代わり、組織図を、再編成中の組織を表現する中央のデータ モデルに同期させることができます。

ソリューションとデータベース間の相互処理の設計後、ソリューションでは以下の方法で変更処理を行うことができます。

Visio 製品のデータベース ウィザードでは、ユーザー定義セルを追加し、カスタム プロパティ セルにデータベース フィールドをリンクさせることで単純なソリューションを作成したり、より複雑なソリューションのプロトタイプとして利用することができます。Microsoft 社から提供されている DAO (Data Access Objects) ライブラリを使用すると、ODBC (Open Database Connectivity) 経由、または Jet エンジンを使用してデータベースにアクセスできます。またデータベースの整合性をより高く保つために、Visio ソリューションからデータベースを実際に更新し同期させるオートメーション サーバを呼び出すこともできます。

Top