| # セッションの同期 同期セッションの概要 Infor LN には、1 つのセッションから別のセッションを開始する仕組みがあります。ズームフィールド、同期セッション、および 4GL の start.session() 関数がこれに相当します。このトピックでは、同期セッションおよびそれに関連する機能について説明します。2 つのセッションが同期されている場合、一方のセッションウィンドウで実行される処理は、他方のセッションウィンドウに直接影響を及ぼします。Infor LN は 2 つの同期モデルを実装します。 ダイアログ同期 子同期 ダイアログ同期 これは、複数表示の親セッションを単一表示のダイアログセッションに同期します。両セッションは同じメインテーブルで動作します。親セッションは、モードレス複数表示フォームまたはモーダル複数表示ズームウィンドウです。 ユーザが親セッションでレコード表示をダブルクリックすると、4GL エンジンが自動的に同期ダイアログ (詳細) セッションを (まだ開始されていなければ) 開き、選択されたレコードの情報を使用して更新します。ダイアログが編集モードと表示モードのどちらで開くかは、ユーザ権限の設定に依存します。ユーザがレコードの挿入、レコードの編集、レコードの複製のいずれかの処理を開始した場合にも、同期ダイアログが自動的に開きます。 レコードが同期ダイアログで保存されると、4GL エンジンが親ウィンドウのレコード表示を自動的に更新します。 同期は概要セッションで定義する必要があります。2 とおりの指定ができます。 UI スクリプトの before.program セクションで、関数 set.synchronized.dialog (｢詳細セッションコード｣) を定義します セッション (ttadv2100s000) セッションの同期ダイアログ フィールドで詳細セッションコードを定義します。 注意 概要セッションと詳細セッションが同じセッションの場合があります。 例: 概要セッションと詳細セッションが別 取引先: 概要セッション: tccom4500m000 詳細セッション: tccom4100s000 例: 概要セッションと詳細セッションが同じセッション 従業員: 概要セッション: tccom0101m000 詳細セッション: tccom0101m000 子同期 通常、異なるメインテーブルで動作するセッションの同期に使用されます。この場合、親のメインテーブルの主キーは、子のメインテーブルの主キーのサブセットでなくてはなりません。 たとえば、顧客オーダを一覧表示するオーダテーブルと、オーダごとにオーダラインを一覧表示するオーダラインテーブルを考えます。オーダセッションの主キーは orderno です。オーダラインセッションの主キーは orderlines.orderno です。オーダラインセッションにおいて、orderno はオーダテーブルを参照する外部キーです。 子同期を使用して、オーダテーブルを使用する親セッションを、オーダラインテーブルを使用する子セッションに同期できます。ユーザはフォームコマンドを選択して、親セッションから子セッションを開きます。これでユーザは、親セッションに一覧表示されたオーダに関連するオーダラインを表示できます。 関連トピック セッション同期についての詳細は、ERP LN 6.1 Programmer's Guide (`progguide.chm` ヘルプファイル) の ｢同期セッションの概要｣ を参照してください。この文書は、Infor BW クライアントのインストールフォルダの `help` フォルダに保存されています。注意: `progguide.chm` ヘルプファイルはダイナミックフォームエディタ (DFE) で配布されます。このファイルがご使用の PC に存在しない場合は、最初に Infor LN インストール CD から DFE をインストールする必要があります。 |