Skip to main content

 

 

 

Template:OutSystems/Documentation_KB/Breadcrumb_New_Layout

 

 

Template:OutSystems/OSLanguageSwitcher

 

 

 

OutSystems

コードの再利用性とモジュール化

OutSystemsでアプリケーションを開発する場合は、モジュール内の至る所で要素の実装と再利用ができます。また、いくつかの要素は、公開することで他のモジュールでも再利用が可能です。これにより、特定の機能(要素)を実装および公開し、モジュラーアプリケーションを構築するモジュールを持つことが可能になります。

OutSystemsでは、要素を実装および公開するモジュールを「Producerモジュール」と呼びます。その一方で、公開された要素を再利用するモジュールを「Consumerモジュール」と呼びます。

モジュール内で作成された要素は、デフォルトでは公開されません。公開する場合は、Publicプロパティを使用します。拡張機能の場合は、すべての要素が公開されます。

他のモジュールや拡張機能が公開した要素を再利用するには、モジュールに移動して[Manage Dependencies]ウィンドウで要素を選択します。これにより、モジュール内の要素と同じように使用できるようになります。

Consumerモジュールでは、他のモジュールから再利用している要素を変更できません。モジュール要素の変更は、要素が実装および公開されたモジュール(Producerモジュール)でのみ行えます。行った変更は、Consumerモジュールに影響を及ぼします。詳細については、「モジュール間で再利用されているコードを更新する」をご覧ください。

公開可能な要素

モジュールで公開可能なすべての要素を以下の表に示します。

|タブ |要素 |詳細 | |-------------------------------------------|--------------------------| |インターフェイス |Web画面 | | | |Webブロック |詳細 | | |テーマ |詳細 | | |画像 | | |ロジック |アクション |詳細 | | |ロール |詳細 | |データ |エンティティ |詳細 | | |ストラクチャ |詳細 | |プロセス |プロセス |詳細 | | |プロセスアクティビティ |詳細 |

公開Webブロック

以下の場合、Webブロックは公開できません

  • 公開されていないエンティティまたはストラクチャを使用して定義されたパラメータがある場合。
  • 他のモジュールから再利用されているエンティティまたはストラクチャを使用して定義されたパラメータがある場合。
  • Linkウィジェット、Buttonウィジェット、またはBinary Data、Record、Listの各データ型のいずれかの引数を持つ使用中のWeb画面を含む場合。

公開Webブロックを実行すると、同じコンテキスト、つまり同じデータベース、セッション変数、サイトプロパティなどを持つモジュール間でデータがハンドリングされます。ただし、Consumerモジュールのトランザクションで実行されます。

ProducerモジュールとConsumerモジュールが異なるユーザープロバイダで実行されている場合、モジュールは異なるセッションを持ちます。この場合、セッションに関連付けられている変数はモジュールごとに異なる値を保持できます。

公開テーマ

以下の場合、テーマは公開できません

  • 公開されていないエンティティまたはストラクチャを使用して定義されたパラメータを持つWebブロックがある場合。
  • 他のモジュールから再利用しているエンティティまたはストラクチャを使用して定義されたパラメータを持つWebブロックがある場合。
  • Linkウィジェット、Buttonウィジェット、またはBinary Data、Record、Listの各データ型のいずれかの引数を持つ使用中のWeb画面を含む場合。

公開アクション

以下の場合、アクションは公開できません

  • 公開されていないエンティティまたはストラクチャを使用して定義されたパラメータがある場合。
  • 他のモジュールから再利用されているエンティティまたはストラクチャを使用して定義されたパラメータがある場合。

公開アクションを実行すると、同じコンテキスト、つまり同じデータベース、セッション変数、サイトプロパティなどを持つモジュール間でデータがハンドリングされます。ただし、Consumerモジュールのトランザクションで実行されます。

ProducerモジュールとConsumerモジュールが異なるユーザープロバイダで実行されている場合、モジュールは異なるセッションを持ちます。この場合、セッションに関連付けられている変数はモジュールごとに異なる値を保持できます。

上記の動作は、関数として設定された公開アクションに適用されます。

公開ロール

公開ロールにチェックを入れた場合、Consumerモジュールのトランザクションに例外が発生します。

公開エンティティ

公開エンティティのエンティティアクション(Create、Update、CreateOrUpdateなど)を実行すると、同じコンテキスト、つまり同じデータベースのモジュール間でデータがハンドリングされます。ただし、Consumerモジュールのトランザクションで実行されます。

公開エンティティは、エンティティのExpose Read Onlyを[Yes]に設定することで、変更からレコードが保護されます。

公開ストラクチャ

以下の場合、ストラクチャは公開できません

  • 公開されていないエンティティまたはストラクチャを使用して定義されたアトリビュートがある場合。
  • 他のモジュールから再利用しているエンティティまたはストラクチャを使用して定義されたアトリビュートがある場合。

公開プロセス

公開プロセスを実行すると、同じコンテキスト、つまり同じデータベース、セッション変数、サイトプロパティなどを持つモジュール間でデータがハンドリングされます。ただし、Consumerモジュールのトランザクションで実行されます。

公開プロセスアクティビティ

プロセスアクティビティ内のプロセスが公開されていないか、モジュールがマルチテナントである場合、そのプロセスアクティビティは公開できません

公開可能なプロセスアクティビティは以下のとおりです。

  • Human Activity
  • Wait
  • Conditional Start

Consumerモジュールはプロセスアクティビティのシステムアクションを通してのみ、プロセスアクティビティを処理できます。フロー内でプロセスアクティビティの再利用はできません。

  • Was this article helpful?