Q14:発注依頼複合コンポーネント内の参照ボタンを押した後の処理の流れについて
Q14-1:
題名のチュートリアルに関して質問があります。
発注依頼複合コンポーネント内の参照ボタンを押した後の処理の流れについてです。
SQL文を実行するためにイベント生成(送信イベント)にてデータ生成イベントを発生させています。
(アクションイベントではSQL文を送れないというのは前回教えて頂きました)
そして送信イベントから上位階層にイベント番号3とSQL文を伝播させローカルMySQL管理GUI複合コンポーネントにてSQL文を実行させています。
ここまでは、おおよそ問題ないと思いますが、その後悩みます。
ローカルMySQL管理より発注依頼複合内のイベント生成(受信イベント)のメソッドを用いてデータ生成イベントを発生させています。
ここではSQL文の実行結果、データを生成しているという理解で良い気がしますが大丈夫でしょうか?<質問1>
そして、ここからさらにイベント生成(受信イベント)よりデータ生成イベントが発生していますが、これが良く分かりません。
さきほどSQL文の実行で生成されたデータもあるのに、2度も生成しているのでしょうか?<質問2>
その後もサブルーチン(参照データ取得)からまたデータ生成イベントが発生しています。
なんか生成しまくりですが、これって以前教えて頂いたアクションイベントの代わりのようなものなのでしょうか…。
A14-1:
> 発注依頼複合コンポーネント内の参照ボタンを押した後の処理の流れについてです。
>
> SQL文を実行するためにイベント生成(送信イベント)にてデータ生成イベントを発生させています。
> (アクションイベントではSQL文を送れないというのは前回教えて頂きました)
>
> そして送信イベントから上位階層にイベント番号3とSQL文を伝播させローカルMySQL管理GUI複合コンポーネントにてSQL文を実行させています。
>
> ここまでは、おおよそ問題ないと思いますが、その後悩みます。
>
> ローカルMySQL管理より発注依頼複合内のイベント生成(受信イベント)のメソッドを用いてデータ生成イベントを発生させています。
> ここではSQL文の実行結果、データを生成しているという理解で良い気がしますが大丈夫でしょうか?<質問1>
このご理解で間違いございません。このデータ生成イベントの内包データは、SQL文の実行結果であるテーブルデータです。
> そして、ここからさらにイベント生成(受信イベント)よりデータ生成イベントが発生していますが、これが良く分かりません。
> さきほどSQL文の実行で生成されたデータもあるのに、2度も生成しているのでしょうか?<質問2>
イベント生成(受信イベント)によるデータ生成イベントの発生について誤解されているのではないかと思います。このデータ生成イベントは、トップ階層に公開されている「データ生成イベントの発生(Object,int)」メソッドの実行によって発生するものです。
すなわち、トップ階層で「データ生成イベントの発生(Object,int)」を実行した結果として「発注依頼」複合コンポーネント内のイベント生成(受信イベント)からデータ生成イベントが発生するということです。
トップ階層で「データ生成イベントの発生(Object,int)」を実行してデータ生成イベントが発生した後、さらに「発注依頼」複合コンポーネント内で、このデータ生成イベントとは別のデータ生成イベントが新たに発生するということではございません。
> その後もサブルーチン(参照データ取得)からまたデータ生成イベントが発生しています。
> なんか生成しまくりですが、これって以前教えて頂いたアクションイベントの代わりのようなものなのでしょうか…。
アクションイベントの代わりのようなものとご理解いただいて差し支えございません。この部分は、イベントをバケツリレー方式で伝えていると考えると、ご理解しやすいのではないかと存じます。
イベント生成(受信イベント)が発生するデータ生成イベントは、内包データとしてSQL実行結果のテーブルデータを保持しています。サブルーチン(参照データ取得)以降の処理では、このテーブルデータを利用します。サブルーチンの処理では、通常、「処理を呼び出す()」メソッドを用いますが、このメソッドで発生するイベントはアクションイベントですので、必要なテーブルデータを伝えることができません。そこで、このテーブルデータをサブルーチン以降の処理で利用できるように、イベント生成(受信イベント)が発生するデータ生成イベントをそのまま渡してしまうという手段を用いています。