掲示板一覧   -   トピック一覧
   Enterprise Architect 全般
     RTF出力でエラー発生


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2008-4-2 14:03
EA Administrator
投稿: 1895

RTF出力でエラー発生

○ご指摘

RTF出力しようとした際に、下記エラーが発生しました。

------------------
DAO.QueryDef[3219]
無効な処理です。
------------------

○回答

お送りいただいた DBError.exe(EAインストールフォルダ以下に出力される
ファイル)から、「複製機能」をご利用になっていることが分かりました。

以下の手順で、正しくRTF出力できるかご確認いただけますでしょうか?

[確認事項]
RTFドキュメント生成ができないパッケージにおいて、XMIを出力し、
それを「複製機能」を使用していないプロジェクトブラウザに読み込んで、
RTFドキュメント出力する。

手順は、以下になります。

1. 新規プロジェクトファイルを作成しておく

2. 現在のプロジェクトで、RTF出力できないパッケージを選び、
 右クリック→「読み込みと出力」→「パッケージをXMIファイルへ出力」
 を実行する。「EAで読み込む場合はチェック」を有効にし、ファイル名
 を指定して、出力する。

3. 新規プロジェクトファイルにおいて、あるパッケージを選び、
 右クリック→「読み込みと出力」→「パッケージをXMIファイルから
 読み込み」にて、2.で出力したファイルを読み込む。

4. 新規プロジェクトファイルに読み込んだパッケージにて、
 RTFドキュメント出力を実行する。


○ご報告1

XMIを出力し、複製を利用していないプロジェクトにXMIを読み込んで、
RTF出力することで、無事出力できたとのご報告をいただいています。

この問題の原因として、EA内部の要素はすべてIDで管理されており、
通常IDは1から始まる数値なのですが、「複製機能」を利用した場合は、
このIDが大きい値で扱われます。この結果、SQL文全体が長くなり、
データベースがその長いSQL文に対してエラーを発行しています。

このため、どのようなモデルの場合はこの問題が発生するという条件は
特定できず、「複製機能」の使用により問題が発生する可能性が高くなる
という状況です。

○ご報告2

複製を使用していないプロジェクトでも、同エラーが発生したとの
ご報告をいただきました。

送っていただいたDBError.txtから、各要素のIDは通常のプロジェクトの
ため、数値は小さいですが、要素の数が多いため、「複製機能」利用時と
同様に、SQL文が長いという理由でエラーが発生しているようです。
要素は8000個ほど存在しています。



○原因と解決策

本件につきまして、EAがバックエンドとして利用しているデータベース
(JETデータベース)の制限上、直接EA側で対応可能な方法はありません。

解決策として考えられるのは次の3つとなります。
このうち、現実的な解決策は3番となります。お時間のあるときにご検討ください。

1. 以下のオプションをONにすることで、この問題が回避できるかもしれません。
 ただし、複製を利用しているプロジェクトファイルでは動作しませんので、
 XMIファイルで複製機能を利用していないプロジェクトファイルに転送したもので
 RTFドキュメント出力をお試しください。

 メインメニューから「ツール」→「オプション」を選択し、
 表示されるオプションダイアログで「JET4.0を利用(再起動が必要)」に
 チェックを入れ、EAを再起動してからRTFドキュメントを出力する

2. SQLServerやOracleにリポジトリを作成し、そこでRTFドキュメント出力を行う

3. バージョン7.1で追加された新機能「マスタードキュメント」機能を利用する。
  この機能は、現在回避方法として行っていただいている
  ”パッケージごとの RTFドキュメントを作成し、結合する”という作業を
  自動的に行うことができるものです。


 以下の手順でお試しください。
 
  1) プロジェクトファイル内に、適当なパッケージとダイアグラムを作成
  2) 「ツールボックス」の上にある「別のグループ...」のリンクから
   「Extended」→「ドキュメント」を選択する
  3) 「マスタードキュメント」オブジェクトを配置する
  4) 「マスタードキュメント」をダブルクリックして、ダイアグラムを開く
  5) そのダイアグラムに、先ほどの「ドキュメント」グループから
    「リンクドキュメント」オブジェクトを配置する。今回は、この
    オブジェクトを、ドキュメント出力するパッケージの個数だけ作成します。
    (例:現在3つの子パッケージに対してRTFドキュメントを出力し、手作業で
    結合しているとすれば、3個の「リンクドキュメント」を作成する)
  6) それぞれの「リンクドキュメント」オブジェクトに対して、RTFドキュメント
    を出力しているパッケージをプロジェクトブラウザから探し、ドラッグする。
    (例:子パッケージが3つ(A,B,C)あるとした場合、ダイアグラム内の
    リンクドキュメント1にパッケージAをプロジェクトブラウザから
    ドラッグ&ドロップする。同様にしてリンクドキュメント2にパッケージBを
    リンクドキュメント3にパッケージCをドロップする)
  7) メインメニューから「表示」→「タグ付き値」を選択して「タグ付き値
   サブウインドウ」を表示する。ダイアグラム内の「リンクドキュメント」を
   選択するとこのサブウインドウにいくつかの項目が表示されますので、
   「RTFTemplate」の値として、出力する際に利用している
   ドキュメントのテンプレートを選択します。
   (全てのリンクドキュメントに対して設定する)
  8) 手順1番のダイアグラムに戻り、「マスタードキュメント」を選択して
    「タグ付き値サブウインドウ」で「RTFTemplate」の値を指定する。
    ここでは「モデルドキュメント:マスターテンプレート」を指定してください。
  9) 「マスタードキュメント」が選択された状態でF8キーを押して
    RTFドキュメントの生成ダイアログを表示し、出力を実行する
 
となります。個々の手順については、ヘルプファイルの「マスタードキュメントの
作成」などのページもご覧ください。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » RTF出力でエラー発生 sugimoto 2008-4-2 14:03