掲示板一覧   -   トピック一覧
   EA API
     Project.GeneratePackageでクラス要素がない場合にダイアログが表示されてしまう


フラット表示 前のトピック | 次のトピック
投稿者 トピック
sugimoto
投稿日時: 2010-8-6 10:55
EA Administrator
投稿: 1895

Project.GeneratePackageでクラス要素がない場合にダイアログが表示されてしまう

○ご指摘

パッケージ構成によりProject.GeneratePackage実行時にダイアログが表示されて
しまうことがあります。

ダイアログはキャンセルボタンを押せば閉じますが、バッチファイルから
自動生成を行いたいため、ダイアログが表示されてしまいますとバッチ処理が
途中で止まってしまいます。

例)
プロジェクトルート
 クラスモデル  ・・・1)
  Package1   ・・・2)
   Package3
  Package2   ・・・3)
   Class1
   Class2

オプションに"recurse=0;overwrite=1;dir=ファイルパス"を指定し、
1)~3)のGUIDを指定した場合:

・1),2):直下にクラス要素が存在しないので、コード生成ダイアログが
   表示された状態で処理が止まってしまう。
・3) :直下にクラス要素が存在するので、コード生成されバッチ処理も
   最後まで実行される。

オプションに"recurse=1;overwrite=1;dir=ファイルパス"を指定し、
1)~3)のGUIDを指定した場合:

・1),3):配下のパッケージにクラス要素が存在するので、コード生成され
   バッチ処理も最後まで実行される
・2) :配下のパッケージにクラス要素が存在しないので、コード生成ダイアログが
   表示された状態で処理が止まってしまう。


○回答

上記ダイアログが表示される現象について確認いたしました。

なお、現時点でダイアログを表示させない手段はございませんが、
1点確認させていただきたいことがございます。

上記例において「クラスモデル」パッケージから一括してソースコード生成を行わず、
各パッケージごとにソースコード生成されるのには何か理由がございますでしょうか?

もしパッケージごとにフォルダを作成したい、ということが理由でしたら、
以下の対応により、ダイアログが表示されることなく自動的にソースコード
生成が可能になります。

対応案
---
1) あらかじめ「クラスモデル」パッケージからソースコード生成を行っておく。
2) 1)によりパッケージごとにフォルダが作成される。
 また、各クラス要素にソースコードのファイルパスが記憶される。
3) APIのExtraOptionsから"dir"の部分を削除する。
 このことにより、すでに記憶されたファイルパスに生成されるようになる。
4) APIのExtraOptionsでrecurse=1に設定し、アドインにおいて「クラスモデル」
 パッケージからのみソースコード生成するように作成する。
---

上記内容について、ご確認・ご検討のほど、よろしくお願いいたします。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » Project.GeneratePackageでクラス要素がない場合にダイアログが表示されてしまう sugimoto 2010-8-6 10:55