Skip to main content

 

OutSystems 11オンラインヘルプ

 

OutSystems

公開された機能の変更を処理する

要素を再利用する利点の1つは、1箇所(プロデューサモジュール)で実装とシグネチャを変更すると、すべてのコンシューマモジュールに新しい実装の効果を適用できることです。

プロデューサモジュールで行った変更は、実行中のコンシューマモジュールにすぐに適用される場合と、依存関係の最新の実装を使用するためにコンシューマモジュールを再パブリッシュする必要がある場合があります。

プロデューサモジュールで機能を変更する

プロデューサモジュールで公開している機能を変更してその変更をパブリッシュすると、すべてのコンシューマモジュールでそれらの変更の影響分析が実行されます。

それらの変更が実行中のコンシューマモジュールに及ぼす影響は、実行された変更の種類やプロデューサモジュールとコンシューマとの間の依存関係の種類によって異なります。

プロデューサで機能を変更し、変更したモジュールをパブリッシュすると、実行中のコンシューマモジュールは以下のいずれかの状況になります。

  • No impact in Consumer: プロデューサで実行した変更が実行中のコンシューマモジュールに及ぼす影響はありません。コンシューマはただちに最新の実装の使用を開始します。例: シグネチャの変更を伴わないWebScreen(弱い依存関係)のコンテンツの変更。

  • Outdated Consumer: プロデューサモジュールで実行した変更がコンシューマと互換性があります。つまり、コンシューマの手動修正は不要ですが、現在コンシューマでは古いバージョンのプロデューサが実行されています。例: シグネチャの変更を伴わない公開されたサーバーアクション(強い依存関係)のロジックの変更。

    この場合、プロデューサモジュールの最新の実装の使用を開始するため、コンシューマモジュールを再パブリッシュする必要があります。プロデューサの依存関係をリフレッシュする必要はありません。

  • Potential Incompatible Consumer: 公開された要素のシグネチャに対してコンシューマモジュールと互換性がなくランタイムエラーが発生する可能性のある変更を実行しました。例: 公開されたサーバーアクションまたはWeb画面へのオプションの入力パラメータの追加。

    この場合、実行された変更の互換性を検証するため、コンシューマモジュールを再パブリッシュする必要があります。互換性がある変更の場合、コンシューマモジュールでプロデューサの依存関係をリフレッシュする必要はありません。

  • Incompatible Consumer: 公開された要素のシグネチャに対してコンシューマモジュールと互換性がなくランタイムエラーが発生する可能性が高い変更を実行しました。例: 公開された要素がパブリックとして設定されていません。

    この場合、Service Studioでコンシューマモジュールの依存関係をリフレッシュし、必要に応じて変更を処理して再パブリッシュする必要があります。

コンシューマモジュールで依存関係を処理する

他のモジュールの機能を再利用する場合、コンシューマモジュールにはそのプロデューサモジュールへの依存関係があります。プロデューサモジュールにおいて要素名、説明、入出力パラメータなどの公開された要素のシグネチャが変更されるたびに、モジュールはそれらの変更の影響を受ける可能性があります。コンシューマモジュールで依存関係をリフレッシュすると、プロデューサのパブリック要素のシグネチャが更新されます。

Manage Dependencies]ウィンドウでは、依存関係で公開された要素のシグネチャが変更されたかどうかを確認し、依存関係をリフレッシュして最新のシグネチャを取得することができます。

公開された要素のシグネチャは、以下のいずれかにより変更されます。

  • 要素のシグネチャは変更されていますが、その変更はコンシューマモジュールの既知の情報と互換性があります。
  • 要素のシグネチャはコンシューマモジュールの既知の情報と互換性がありません
  • 要素は存在しません。

変更されたシグネチャ

公開された要素のシグネチャが変更されていますが、コンシューマモジュールには影響がありません。つまり、依存関係をリフレッシュする必要はありません。例: サーバーアクションへのオプションの入力パラメータの追加。変更された要素は、[Manage Dependencies]ウィンドウで青色の情報記号付きでマークされます。

この場合、依存関係をリフレッシュする必要はありません。新しく追加されたオプションの入力パラメータに値を渡すときなど、最新バージョンのプロデューサのシグネチャをロジックで使用する場合にのみ、依存関係をリフレッシュする必要があります。

プロデューサで以下の変更を行っても、コンシューマモジュールには影響がありません。

シナリオ 要素
オプションの入力パラメータを追加する
必須の入力パラメータをオプションに変更する
入力パラメータを削除する
入力パラメータを並べ替える
サーバーアクション、サービスアクション、Webブロック、Web画面
出力パラメータを追加する
未使用の出力パラメータを削除する
サーバーアクション、サービスアクション
オプションのアトリビュートを追加する
必須のアトリビュートをオプションに変更する
未使用のアトリビュートを削除する
アトリビュートを並べ替える
エンティティ(データベースおよびローカルストレージ)、静的エンティティ、ストラクチャ
レコードを追加する
未使用のレコードを削除する
静的エンティティ
名前を変更する すべての要素(エンティティアトリビュート、リソース、スクリプトを除く)
説明を変更する すべての要素

互換性のないシグネチャ

公開された要素のシグネチャが変更されており、その変更がコンシューマモジュールに影響を及ぼします。例: サーバーアクションへの必須の入力パラメータの追加。変更された要素は、[Manage Dependencies]ウィンドウで互換性なしとしてマークされます。

この場合、依存関係をリフレッシュして、ロジックを最新バージョンのプロデューサに適合させる必要があります。

プロデューサに対する依存関係が強い依存関係である場合、依存関係をリフレッシュせずにコンシューマモジュールを再パブリッシュしたときにのみ、変更によるランタイムエラーが発生します。一方、プロデューサに対する依存関係が弱い依存関係である場合、依存関係をリフレッシュしてコンシューマモジュールを再パブリッシュするまでの間、変更によるランタイムエラーが発生します。

存在しないシグネチャ

以前に公開されていた要素が使用できなくなっており、コンシューマモジュールに影響を及ぼします。例: サーバーアクションがプロデューサモジュールから削除されています。要素は、[Manage Dependencies]ウィンドウで存在しないとしてマークされます。

この場合、依存関係をリフレッシュして、モジュールから要素を削除し、ロジックを最新バージョンのプロデューサに適合させる必要があります。

プロデューサに対する依存関係が強い依存関係である場合、依存関係をリフレッシュせずにコンシューマモジュールを再パブリッシュしたときにのみ、変更によるランタイムエラーが発生します。一方、プロデューサに対する依存関係が弱い依存関係である場合、依存関係をリフレッシュしてコンシューマモジュールを再パブリッシュするまでの間、変更によるランタイムエラーが発生する可能性があります。

この動作は、以下のいずれかの状況で発生する可能性があります。

  • 要素がプロデューサモジュールから削除された。
  • 公開された要素がパブリックとして設定されていない。
  • プロデューサモジュールが接続中のOutSystems環境に存在しない。
  • 公開された要素を再利用する権限がない。

依存関係をリフレッシュする

コンシューマモジュールで依存関係をリフレッシュするには、以下の手順を実行します。

  1. [Manage Dependencies]ウィンドウを開きます。

  2. プロデューサ名の近くにあるリフレッシュアイコンをクリックして1つの依存関係をリフレッシュするか、[REFRESH ALL]ボタンを使用してすべての依存関係をリフレッシュします。

  3. プロデューサモジュールでの変更が自分のモジュールに影響を及ぼしており、それに応じてロジックを適合させる必要がある場合、ロジックの更新が必要な状況が[TrueChange]タブで強調表示されます。

  • Was this article helpful?