並行実行のプログラムを呼び出した後に処理を行う
いつもお世話になっております。
イベントを呼び出した際、
1. コール プログラム(並行実行)
2. 上記プログラムのタスク後に実行したい処理
というような順番で処理したいのですが、1の終了を待たずして2の処理にいってしまい、どのように対処したらいいか悩んでいます。
具体的にどういった処理をしたいのかというと、元のタスクにテーブルがあり、呼び出したタスクでの処理に応じて元のタスクのテーブルが変化するので、終了後にビュー再表示を行うといった処理です。
並行実行でなければ、パラメータを渡したり戻り値を設定したりなどで対処できそうなのですが並行実行の場合の処理が思いつきません。
ご教授いただけますでしょうか。よろしくお願いいたします。
ver4.8
-
呼出側のCtxGetName()を、呼出先PGへパラメータ渡ししてあげます。
呼び出された側は、ビュー再表示の出力先コンテキストをもらったコンテキスト名
にするといいと思います。 -
呼出側にV_時刻変数を用意し
V=項目 C=変更 V_時刻変数
ビュー再表示
呼ばれた側で、V_時刻変数を書き換える。
みたいな事をする事があったかもしれません。
入力画面を並行実行。マルチモニターであっち側は数秒遅れでデータ表示など。 -
nkmtさん
いつもお世話になっております。
上記の方法を試してみたところ、理想通りの動きをしてくれました。
コンテキストを使用した処理は行ったことがなかったので、勉強になりました。
以前にも何回か悩んでいた処理だったので大変助かりました。
ありがとうございました。
-
nkmtさん
時刻を変数に持つ方法は、時刻の変数をパラメータで渡して、呼ばれた側でパラメータを更新するというやり方で最初に試してみたのですが、パラメータの変更が反映されず諦めました。
-
KM様、理想通りの動きが出来たようで良かったです。
時刻変数の件は、勘違いをしておりました。
並行実行伝票入力PGでの値入力により
別の並行実行表示PGが再表示される処理を作った事がありましたが
それは伝票入力PG側でデータへ再表示依頼の書き込みをし、
別の並行実行表示PG側もそのデータを見に行く恰好でした。 -
「並行実行」というのは、新しいコンテキストIDを発行するかどうかの違いだけですので、それを意識しておくと、障害の切り分けが楽になりますよ。
-
tandaさん
>「並行実行」というのは、新しいコンテキストIDを発行するかどうかの違い
そういった動きをしているのですね。なんとなくで使っていましたが、理解が深まりました。
いつもありがとうございます。
-
KMさん、
はい、RIAとかWebClientになってきますと、コンテキストの概念の理解なしにはプログラムが作れませんので、いまのうちに理解を深めておかれると便利ですよ。
サインインしてコメントを残してください。
コメント
8件のコメント