掲示板一覧 - トピック一覧 EA API
ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
| 投稿者 | トピック |
|---|---|
| 未登録ゲスト | 投稿日時: 2009-4-4 10:42 |
ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。VisualBasic 2005 で、ステートマシン図を生成するアドインを作成しています。 State1とState2(ともにElement)を追加して、両者を"遷移"Connectorでつないだあと EAから接続のプロパティを見ると「定義済みのトリガ」という欄がありますが、 その欄に同じPackage内のElement(Type="Trigger")を追加する方法がわからず困っています。 アドインからこの参照を追加することは可能でしょうか? |
|
| sugimoto | 投稿日時: 2009-4-6 10:04 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。現在、どのビルド番号をご利用でしょうか?
最新版EA7.5 ビルド843の遷移のプロパティ画面には、 「定義済みのトリガ」という欄はございません。 最新版の「トリガ」欄への設定として、回答させていただきます。 現状のヘルプを確認しましたが、トリガを設定するAPIの用意がございません。 そのため、SQL文にて情報を書き込んでいただく必要がございます。 この内容詳細は、「ステートマシン図の遷移に関するAPI」に記載がありますので、ご確認下さい。 また、以下の情報も更新してください。 t_connectorのPDATA1:トリガ名を設定 この点につきましては、APIで対応するよう引き続き、開発元に改善を依頼します。 ご確認のほど、よろしくお願いいたします。 |
| 未登録ゲスト | 投稿日時: 2009-4-9 10:40 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。回答ありがとうございます。
使用しているEAのバージョンは以下になります。 バージョン: 7.0.818 (ビルド:818) - Unicode 教えていただいた方法を試してみたのですが、SQL文をいうものを書いたことがなく、どうもうまくいきません..orz ステートマシン図の遷移にトリガを追加する際の Repository.Execute() の簡単なサンプルコードを提示していただけないでしょうか? EAのアドインAPIからは外れた質問で恐縮ですが どうぞよろしくお願いします。 |
|
| sugimoto | 投稿日時: 2009-4-9 10:58 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。以下のような例で参考になりますでしょうか?
string sql = "UPDATE t_xref SET Description =" + triggerGUID + " WHERE Client=" + elementGUID + ";"; Repository.Execute(sql); |
| 未登録ゲスト | 投稿日時: 2009-4-20 21:26 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。レスポンスが悪くて申し訳ありません。
教えていただいたサンプルを参考にいろいろ試しているのですが、まだうまくいっていません。。 このようなコードを書いてみたのですが、、 Dim state1 As EA.Element = package.Elements.AddNew("state1", "State") state1.Update() Dim state2 As EA.Element = package.Elements.AddNew("state2", "State") state2.Update() Dim trigger As EA.Element = package.Elements.AddNew("trigger", "Trigger") trigger.Update() package.Elements.Refresh() Dim transition As EA.Connector = state1.Connectors.AddNew("", "StateFlow") transition.SupplierID = state2.ElementID transition.Update() state1.Connectors.Refresh() Dim query As String = "UPDATE t_xref SET Description = " & trigger.ElementGUID.ToString() & " WHERE Client = " & transition.ConnectorGUID.ToString() & ";" Me.m_rep.Execute(query) Execute()を呼んだタイミングで DAO.Database [3075] クエリー式'{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX}'の GUIDの指定が不正です。 と書かれたダイアログが表示されてしまいます。 どこがおかしいのでしょうか。。。 お忙しいところ申し訳ないですがどうぞよろしくお願いします。 |
|
| sugimoto | 投稿日時: 2009-4-21 11:04 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。遷移にトリガを設定したタイミングで、t_xref に情報が追加されますので、
上記内容ですとまだ存在しない情報に対してUPDATEしているため、 エラーが発生していることが考えられます。 t_xrefテーブルに情報を追加することが必要です。 ご確認のほど、よろしくお願いいたします。 [2009/4/22追記] SQL文のサンプルです。 先日のサンプルでは、すでに要素などの情報があることを前提にしていました。 今回のように要素などを新規作成される場合は、以下のような情報追加・ 設定が必要になります。参考になりましたら幸いです。 1.t_connector string query = "update t_connector SET PDATA1='" + trigger.Name + "' where ea_guid='" + transition.ConnectorGUID + "';"; Repository.Execute(query); 2.t_xref string query = "INSERT INTO t_xref (XrefID,Name,Type,Visibility,Behavior,Description,Client)" + " VALUES (" + guid +",'MOFProps', 'connector property','Public','trigger'," + trigger.ElementGUID + "," + transition.ConnectorGUID + ")" + ";"; Repository.Execute(query); |
| 未登録ゲスト | 投稿日時: 2009-4-23 10:57 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。サンプルありがとうございます。
非常に助かります。 早速使ってみたのですが、 "2.t_xref"のコードで「・・・ + " VALUES (" + guid +",'MOFProps'・・・」とありますが、こちらの guid を新規に生成する必要があると思い "{" + Guid.NewGuid().ToString() + "}" としたところ、やはり 「クエリー式'{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXX}'の GUIDの指定が不正です。」 というダイアログが出てしまいます。 XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXXXの値は NewGuid()で生成した値になっています。 新規に指定するguidに何か制約等ありますでしょうか? 何度も申し訳ないですが、 どうぞよろしくお願いします。 |
|
| sugimoto | 投稿日時: 2009-4-23 11:06 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。サンプルのguidの箇所で詳細を記載していませんでしたが、
おそらくguidを「'」で囲むとエラーはでなくなると思います。 この点につきましては、環境により相違がある場合があるようです。 ご確認のほど、よろしくお願いいたします。 |
| 未登録ゲスト | 投稿日時: 2009-4-23 13:36 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。DUID を ' で囲むようにしたところ、
エラーダイアログも出なくなりtriggerとtransitionがひも付けできるようになりました! これで当初の目的は果たせました。 長々とありがとうございました。 m(_ _)m |
|
| sugimoto | 投稿日時: 2009-4-23 13:40 |
EA Administrator ![]() ![]() 投稿: 1895 |
Re: ステートマシン図で"StateFlow"Connectorと"Trigger"Elementをひも付けしたい。無事ひも付けができるようになり安心いたしました。
このたびはお手数をお掛けし、申し訳ございませんでした。 triggerとtransitionのひも付けは、APIで対応できるように 改善を依頼しておりますが、それまでは現在の方法での ご対応をお願いいたします。 今後ともよろしくお願いします。 |
| スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |




