掲示板一覧   -   トピック一覧
   EA API
     APIでシーケンスメッセージを作成する場合にタグ付き値operation_guidを追加する具体的な方法


フラット表示 前のトピック | 次のトピック
投稿者 トピック
mogass
投稿日時: 2013-9-30 10:40
EA Administrator
投稿: 171

APIでシーケンスメッセージを作成する場合にタグ付き値operation_guidを追加する具体的な方法

サポートに頂きましたご質問と回答の要約です。

○ご質問

(ご質問の前提:)
シーケンス図に既存のクラスのインスタンスを配置し、
メッセージ作成時に宛先クラスのメソッド一覧からメソッドを
選択して作成したシーケンスメッセージは、
タグ付き値operation_guidが追加され、この値として
操作のGUIDを保持している。


APIでメッセージ作成する場合に
タグ付き値operation_guidを追加する具体的な方法を
教えていただけますか。
よろしくお願いします。

○回答

シーケンス図の接続(メッセージ)に操作のタグ付き値"operation_guid"を
追加する方法につきましては、具体的には以下のような記述を行います。

------------------------------------------------------------
connectorTag = connector.TaggedValues.AddNew("operation_guid", method.MethodGUID);
------------------------------------------------------------

AddNewの第一引数はタグ付き値の名前、第二引数には値を設定します。
この場合、名前に"operation_guid"、値には操作のGUIDを設定します。

但し、既存で"operation_guid"の名前を持つタグ付き値が存在する
場合は、既存のタグ付き値を取得し、以下のように操作のGUIDを値に
再設定します。

------------------------------------------------------------
connectorTag.Value = method.MethodGUID;
------------------------------------------------------------


接続に関するAPIでの具体的な操作方法に関しましては、
ヘルプの「接続を追加する」もご参考にご覧ください。

また、接続のタグ付き値に関しましては、
ヘルプの「ConnectorTag」をご参考にご覧ください。


また何かございましたら遠慮なくご連絡ください。

今後ともよろしくお願いいたします。


●返信

回答ありがとうございました。
------------------------------------------------------------
connectorTag = connector.TaggedValues.AddNew("operation_guid",
method.MethodGUID);
------------------------------------------------------------
上記で、シーケンス図の接続(メッセージ)に操作のタグ付き値"operation_guid"が
設定されることを確認しました。

AddNewメソッドですが、引数に設定する文字列値("operation_guid"等)について
ヘルプ等に載っているのでしょうか。
(オブジェクトによっては説明がありますが。)
よろしくお願いします。

●回答

お忙しい中ご連絡いただき誠にありがとうございます。

ご確認いただけたとのことで、安心致しました。

AddNewメソッドの引数に設定する文字列値("operation_guid")に
つきまして、今回の"operation_guid"に関しましては
記載されておりません。

あまり汎用的でない使い方をする情報の場合(今回のように、
シーケンス図のメッセージのみで使用する情報など)は、
ヘルプには記載されていないこともございます。

この点に関しましてはご不便をお掛けし誠に申し訳ございません。

今後、ヘルプへの追記を社内で検討させていただきます。


また何かございましたら遠慮なくご連絡ください。

今後ともよろしくお願いいたします。


★返信

connectorTagについての回答ありがとうございました。

------------------------------------------------------------
connectorTag = connector.TaggedValues.AddNew("operation_guid", method.MethodGUID);
------------------------------------------------------------
上記で、シーケンス図の接続(メッセージ)に操作のタグ付き値"operation_guid"が
データとしては設定されることを確認しましたが、EAのメッセージプロパティー画面
(操作のプロパティー画面)でタグ付き値が表示される場合とされない場合があります。
すでに画面からメッセージの操作を選択したことがある操作はタグ付き値が表示されますが、
APIで上記を実行しただけではメッセージの操作はタグ付き値が表示されないようです。

APIでEA画面の接続で操作を選択した状態にするには、下記を実行することにより、
EA画面で確認できましたがよろしいでしょうか。
文字列値("ea_guid")はデータから予想しました。
------------------------------------------------------------
methodTag = (EA.MethodTag)method.TaggedValues.AddNew("ea_guid", method.MethodGUID);
------------------------------------------------------------

★回答

EAのメッセージプロパティ(GUI)で、メッセージにクラスの操作を関連付けた
場合、ご指摘のように、connectorのタグ付き値とmethodのタグ付き値両方を
追加していることを確認いたしました。

EA の GUI で追加した時と同じ動作になるようにする場合は、
同じ情報になるように追加する必要があります。

今後ともよろしくお願い致します。
フラット表示 前のトピック | 次のトピック

題名 投稿者 日時
 » APIでシーケンスメッセージを作成する場合にタグ付き値operation_guidを追加する具体的な方法 mogass 2013-9-30 10:40