2016-04-18 11 views
1

を構築現在、私は、Enterprise Architectでの私のモデルのコンテキストメニューCode Engineering > Import Source Directoryを経由して私のコードベースを手動でインポートを実行します。トリガーのインポートが完了

これを自動化し、ビルドプロセスが成功するとすぐにTeam Foundation Server 2015でこのインポート処理を実行します。

これは可能ですか?それをどうすれば実現できますか?

EDIT:私たちのコードベースはC#で書かれており、サブディレクトリを再帰的にインポートしています。パッケージごとに論理図は必要ありません。EAのプライベートメンバーを見たいと思っています。既存のクラスの同期を選択したので、コードに見つからないクラスを削除する必要があります。

+1

Enterprise Architectをコマンドラインから自動化する方法はありますか?またはAPIを介して?これを行うにはTFSに組み込まれているものはないので、何かを構築する必要があります。 [エンタープライズアーキテクトオブジェクトモデル] @jessehouwing – jessehouwing

+0

(http://www.sparxsystems.com/enterprise_architect_user_guide/12/automation_and_scripting/theautomationinterface.html)は、有望な... – David

答えて

1

大きな質問、ほとんど大きすぎます。しかし、はい、それは可能です、そしてここに全体的なポインタがあります。あなたのためにこれを行うためにEAやTFSには何もないので、全体的なポインタは私が与えることができるすべてです。

あなたは、TFSのコンテキスト内で実行されるトリガーを記述し、EAのAPIを使用するか、適切なEAリポジトリに接続し、そこに必要なインポートを行います。

それとも、いくつかのTFSのイベントをサブスクライブし、インポートを行う(EAのコンテキストで実行される)EAアドインを書くことができます。

EAのAPIは、合理的に十分に文書化、しかしどこEAが転倒することは、良いサーバー側の自動化を持っていないということです - それは、基本的にすべてのセッションは、常にユーザーを持っていることを前提としています。ですから、あなたのソリューションをEAではなくTFSに統合することをお勧めします。

EAプロジェクトをセットアップし、インポートされたコードを保持するパッケージを作成する必要があります。

あなたはEA.Repositoryオブジェクトを作成し、Repository.OpenFile()を呼び出すことにより、EAプロジェクトに接続します。

Repository.GetProjectInterface()を呼び出して、Project.ImportDirectory()というEA.Projectオブジェクトを取得します。

+0

ビッグ答えを探します:)と私はそれが私を取得すると思いますし、非常に短い時間で走っています...私はそれを見てみましょう。 – David

+0

「ImportDirectory」に渡すパラメータの詳細はどこにありますか([EAのプロジェクトクラス参照](http://www.sparxsystems.com/enterprise_architect_user_guide/9.3/automation/project_2.html)はこれらについて簡潔ではありません)私の場合(編集を参照)? – David

+0

これは、APIのドキュメントにあるものです。いずれかのコールの詳細については、[ユーザーフォーラム](http://sparxsystems.com/forums/smf/index.php/)またはSOが最良の賭けです(ただし、この質問を編集しないでください。代わりに新しい質問をしてください) )。現在のバージョンは12.1ですが、リンクはバージョン9.3のドキュメントを指しています。 – Uffe

関連する問題