最近のアクセス:
モジュール - 並行トランザクションとオブジェクトの表示

GeneXus X Evolution 3 以降ではモジュールオブジェクトを使用できます。そのため、異なるモジュールで並行トランザクションを定義することが可能になりました。ここでは、並行トランザクションを使用する場合に予想される動作と、項目属性へのアクセスに対する [ Object Visibility ] プロパティの効果 (1 つのトランザクションのみを使用する場合にも有効) について説明します。
まず、モジュールオブジェクト機能で並行トランザクションの定義がサポートされることを理解する必要があります。
: 名前は同じでも主キーが異なる複数のトランザクションを定義した場合は、それぞれに異なるテーブルが作成されます。作成されるテーブルの名前の最後には、それぞれを区別できるように番号が付加されます。たとえば、Customer という名前の 2 つのトランザクションをそれぞれ異なる主キーで作成した場合は、Customer と Customer1 というテーブルが作成されます。

項目属性、テーブル、およびトランザクションの [ Object Visibility ]

データへのアクセスが拒否される粒度は、テーブルで決まります。つまり、同じテーブルの項目属性に Public と Private を使用することはできません。これは、すべての項目属性が Public か Private であるためです。
次の場合、すべてのテーブル項目属性へのアクセスが拒否されます:
  • すべての並行トランザクションの [ Object Visibility ] プロパティが Private に設定されている場合。
  • すべての並行トランザクションのモジュール (およびその子モジュール) とは異なるモジュールを持つオブジェクトが、その項目属性を使用する場合。
つまり、1 つの並行トランザクションのみが [ Object Visibility ] を Public に設定して定義されている場合に、ナレッジベース内のすべてのオブジェクトについてテーブルの任意の項目属性にアクセスできます。
アクセスが拒否されると、次のエラーで分析に失敗します。
error: spc0209: Table '%1' cannot be accessed.'

Wiki の並行トランザクションに関するドキュメントで定義されているトランザクションの構造を使用します。並行トランザクション
また、次のモジュール編成を使用します。

イメージ:25345.png

例 1

すべてのトランザクション (Company、Supplier、および Client) の [ Object Visibility ] プロパティが Public に設定されている場合は、Company テーブルに格納されているすべての項目属性に、ナレッジベース内の任意のオブジェクトからアクセスできます。

例 2

すべてのトランザクション (Company、Supplier、および Client) の [ Object Visibility ] プロパティが Private に設定されている場合は、Company テーブルに格納されているすべての項目属性に、モジュール A または B (および、存在する場合はそれらの子モジュール) からのみアクセスできます。モジュール C またはルートモジュールからのアクセスは拒否されます。

例 3

いずれかのトランザクション (Company、Supplier、または Client) の [ Object Visibility ] プロパティが Public に設定されている場合は、Company テーブルに格納されているすべての項目属性に、ナレッジベース内の任意のオブジェクトからアクセスできます。

参考情報

並行トランザクション
[ Object Visibility ] プロパティ




サブページ
Created: 19/03/25 17:53 by Admin Last update: 21/05/21 03:33 by Admin
カテゴリ
Powered by GXwiki 3.0