コマンドを学ぼう: コール

多くの場合、子タスクやサブプログラムをコールする場合に使います。
Magic以外のモジュール(dll、ActiveX、Webサービス等)をコールする機能もありますが、V10では、その部分は外部コールという別コマンドになりました。
ここでは、Magicのタスクをコールすることについて説明しておきます。

コマンド コール
タイプ
T=タスク 子タスクの番号を指定してコールします。
P=プログラム サブプログラムの番号を指定してコールします。
E=式 サブプログラムの番号を式で指定することによってコール先を可変にできます。式では「PROG」リテラルを使います。
B=公開プログラム サブプログラムの公開名を指定してコールします。別のMCF(MFF)のプログラムをコールすることも可能です。
U=ユーザPRC 外部のDLLを式を使ってコールします。但し、どんなDLLでも使えるわけではありません。
C=COM ActiveXやOLEをコールします。
R=リモート MRBを経由してサーバ上のMagicプログラムをコールします。
W=Webサービス Webサービスをコールします。
パラ ズームしてパラメータを設定します。必須ではありません。
フォーム コール先のタスクを表示するフォーム番号を指定できますが、普通は、あまり使いません。
戻り値を設定できますが、ほとんど使いません。
フロー ズームアクションでコールするときに、よく設定します。
オンラインタスクのフロー設定欄を参照してください。
条件 コマンドが起動される条件を設定します。
ここで設定される条件の戻り値は「True」か「False」です。

コール特性次にコマンド特性について、少し触れておきます。 コールコマンド上で、「Ctrl+P」を押すとコマンド特性が表示れます。 実は、ここに重要な設定があります。 それは「ロック」設定です。

これが、「Yes」のとき、現在のレコードにロックをかけて、子タスクやサブプログラムのコールを行います。
「No」のときは、現在のレコードにロックをかけずに、コールします。
現在のタスクが照会モード等、リードオンリーで使われるときは意識する必要はありませんが、 レコードロックを考慮して動作するタスクの場合は、この設定は確認しておいた方が良いでしょう。

スタンドアロンで実行して、「このレコードは他のユーザが更新しました」というメッセージが出るときは、この設定が関係していることもあります。