コード・テンプレートは、クライアントへのプッシュ機能を使用してリモート・システムにエクスポートし、クライアントに配布できる Eclipse 設定の中にあります。 コード・テンプレートを作成したり編集したりする前に、そのコード・テンプレートがローカル・テンプレート (ワークスペース上で作成されたもの) なのかリモート・テンプレート (クライアントへのプッシュを使用してワークステーションに配信されたもの) なのかを把握しておく必要があります。 リモート・テンプレートを編集しても固有の名前を付けなかった場合は、リモート・システムに接続したときに編集内容が上書きされる可能性があります。
クライアントへのプッシュ機能が有効になっているリモート・システムに接続すると、モデル・ワークスペースからエクスポートされた Eclipse の設定が、クライアント・ワークスペースにダウンロードされます。 クライアント・ワークスペースにダウンロード可能な設定の中で、はCOBOL、ジョブ制御言語、および PL/I コード・テンプレートで、はジョブ制御言語テンプレートです。 Developer for z/OS® は、クライアント・ワークスペースで作成されたテンプレート (ローカル・テンプレート) とリモート・システムで作成されたテンプレート (リモート・テンプレート) を判別できます。 Developer for z/OS は、ローカル・テンプレートを保持し、リモート・テンプレートを更新します。
Developer for z/OS は、物理ロケーションとテンプレート名の組み合わせを使用して、どのテンプレートがローカルか、どのテンプレートがリモートか、およびクライアントへのプッシュ操作中にそれらをマージする方法を判別します。
Developer for z/OS は、テンプレートの内容を検査しません。 ローカル・テンプレートをリモート・テンプレートに置き換えるかどうかは、テンプレート名のみに基づいて決定されます。
ヒント: クライアントへのプッシュ環境でダウンロードされるリモート・テンプレートを作成する場合は、そのテンプレートがリモート・システムのものであることが分かるように規約を定義することを検討してください。 例えば、テンプレート名に「REMOTE」という接尾部を付けたり、「sample.systemz.connection.com からダウンロード」や「リモート・テンプレート: 編集不可」といった説明を加えたりします。
このような規則によって、ローカル・テンプレートとリモート・テンプレートのマージを制御します。
- ローカル・テンプレートがリモート・テンプレートと同じ名前である場合、ローカル・テンプレートはリモート・テンプレートによって上書きされます。
- 複数のローカル・テンプレートと 1 つのリモート・テンプレートの名前が同じ場合、それらのローカル・テンプレートは破棄され、1 つのリモート・テンプレートに置き換えられます。
- クライアントへのプッシュ操作で行えるのは、クライアント・ワークスペースのテンプレートの追加および置換のみです。 テンプレートを削除することはできません。 テンプレート名がリモート・システムからは削除されたが、クライアント・ワークスペースからは削除されていない場合、クライアントへのプッシュ操作の後も、そのテンプレートはワークスペース上に残ります。
- リモート・テンプレートの名前がダウンロード後にクライアント・ワークスペースで変更され、リモート・テンプレートのいずれとも一致しない名前になった場合は、クライアントへのプッシュ操作の際に上書きされません。
例
以下の例では、クライアントへのプッシュ操作の際にローカル・テンプレートとリモート・テンプレートがマージされるシナリオをいくつか説明します。 例ごとに、クライアント・ワークスペース上のテンプレート名、リモート・システム上のテンプレート名、クライアントへのプッシュ操作後のワークステーション上にあるマージされたテンプレート名を一覧にして示しています。
これらの例では、同じ名前を持つテンプレートをプライム記号 (′)、二重プライム記号 (′′)、および三重プライム記号 (′′′) で区別します。 以下の例には、A という名前の 3 つのテンプレートが登場します。A はクライアント・ワークスペース上のもので、A′および A′′はリモート・システム上のものです。 クライアントへのプッシュ操作の後、テンプレート A は、テンプレート A′と A′′に置き換えられます。 ユーザー・インターフェースでテンプレートを閲覧中のユーザーには、クライアント・ワークスペースに A という名前の 2 つのテンプレートを含むようになったということだけが表示されます。 これらのテンプレートの内容は、リモート・システム上のテンプレートの内容で置き換えられます。
| ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| A |
A′、A′′ |
A′、A′′ |
例 1: ローカル・テンプレートなし
クライアント・ワークスペースには、テンプレートが定義されていません。 リモート・システムに接続すると、リモート・テンプレート A と B がクライアント・ワークスペースにダウンロードされます。
表 1. ローカル・テンプレートなし
| ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| [定義されていない] |
A、B |
A、B |
例 2: マージ
クライアント・ワークスペースに、テンプレート C が定義されています。 リモート・システムには、テンプレート A および B が定義されています。 リモート・システムに接続すると、クライアント・ワークスペースにテンプレート A および B が追加されます。
表 2. マージ
| ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| C |
A、B |
A、B、C |
例 3: マージおよび置換
クライアント・ワークスペースに、テンプレート A が定義されています。 リモート・システムには、テンプレート A および B が定義されています。 リモート・システムに接続すると、以下が行われます。
- クライアント・ワークスペース上のテンプレート A は、リモート・システム上のテンプレート A に置き換えられます。
- クライアント・ワークスペースにテンプレート B が追加されます。
表 3. マージおよび置換
| ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| A |
A '、B |
A '、B |
例 4: マージおよび置換
クライアント・ワークスペースには、テンプレート B および C が定義されています。 リモート・システムには、テンプレート A および B が定義されています。 リモート・システムに接続すると、以下が行われます。
- クライアント・ワークスペースにテンプレート A が追加されます。
- クライアント・ワークスペース上のテンプレート B は、リモート・システム上のテンプレート B に置き換えられます。
- クライアント・ワークスペース上のテンプレート C は残ります。
表 4. マージおよび置換
| ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| B、C |
A、B ' |
A、B′、C |
例 5: リモート・システムへの再接続
クライアント・ワークスペースには、テンプレートが定義されていません。 リモート・システムには、テンプレート A および B が定義されています。
- リモート・システムへの最初の接続の際に、テンプレート A および B がクライアント・ワークスペースにダウンロードされます。
- ユーザーは、テンプレート B を BB に名前変更し、テンプレート C および D を作成します。 リモート・システムでは、テンプレート A が削除され、テンプレート C が作成されます。
- リモート・システムとの接続を切断します。
- リモート・システムに再接続すると、以下が行われます。
- テンプレート A はクライアント・ワークスペースに残ります。
- テンプレート B がクライアント・ワークスペースにダウンロードされます。
- テンプレート BB はクライアント・ワークスペースに残ります。
- クライアント・ワークスペースのテンプレート C は置き換えられます。
- テンプレート D はクライアント・ワークスペースに残ります。
表 5. 2 つの接続
| 接続 |
ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| 第 1 の接続 |
[定義されていない] |
A、B |
A、B |
| 第 2 の接続 |
A、[B (BB に名前変更される)]、C、D |
[A (削除される)]、B、C′ |
A、B、BB、C′、D |
例 6: リモート・システムへの再接続の際、重複するテンプレートが置き換えられる
クライアント・ワークスペースには、テンプレートが定義されていません。 リモート・システムには、A という名前のテンプレートが 1 つと、B という名前のテンプレートが 2 つ定義されています。
- リモート・システムに接続すると、テンプレート A、B、および B′ がクライアント・ワークスペースにダウンロードされます。
- ユーザーは、B という名前の 2 つの追加テンプレートと C という名前のテンプレートを作成します。 リモート・システムでは、テンプレート B が削除され、テンプレート B'''' および D が作成されます。
- リモート・システムとの接続を切断します。
- リモート・システムに再接続すると、以下が行われます。
- クライアント・ワークスペース上のテンプレート A、B、B′、B′′、および B′′′が、テンプレート A、B、および B′′′′に置き換えられます。
- クライアント・ワークスペース上のテンプレート C は残ります。
- テンプレート D がクライアント・ワークスペースに追加されます。
表 6. 2 つの接続: 重複するテンプレートが置き換えられる
| 接続 |
ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| 第 1 の接続 |
[定義されていない] |
A、B、B′ |
A、B、B′ |
| 第 2 の接続 |
A、B、B′、B′′、B′′′、C |
A、B、[B′ (削除される)]、B′′′′、D |
A、B、B′′′′、C、D |
注意: ユーザー・インターフェースでは、B という名前の複数のテンプレートが表示されます。 これらの例には、リモート・システムに作成されたテンプレートをクライアント・ワークスペースに作成されたテンプレートと区別することを唯一の目的として、基本シンボルが含まれています。
例 7: リモート・システムへの再接続の際、テンプレートが削除される
クライアント・ワークスペースには、テンプレートが定義されていません。 リモート・システムには、テンプレート A および B が定義されています。
- リモート・システムに接続すると、テンプレート A と B がクライアント・ワークスペースにダウンロードされます。
- ユーザーがテンプレート A を削除します。 リモート・システムでは、テンプレート B が削除されます。
- リモート・システムとの接続を切断します。
- リモート・システムに再接続すると、以下が行われます。
- テンプレート A がクライアント・ワークスペースにダウンロードされます。
- テンプレート B はクライアント・ワークスペースに残ります。
表 7. 2 つの接続: テンプレートが削除される
| 接続 |
ローカル・テンプレート |
リモート・テンプレート |
マージ後のテンプレート |
| 第 1 の接続 |
[定義されていない] |
A、B |
A、B |
| 第 2 の接続 |
[A (削除される)]、B |
A、[B (削除される)] |
A、B |