呼び出しを定義する際に、項目属性、ドメイン、オブジェクトなどを参照するかどうかを明示的に指定する必要がある場合があります。
att: |
項目属性を指定します。 |
dom: |
ドメインを指定します。 |
obj: |
呼び出し可能なオブジェクトを指定します。 |
image: |
画像オブジェクトを指定します。 |
type: |
静的メソッドを使用する場合にタイプを指定します。 |
次の
トランザクション構造と、オブジェクトの一部のセクションで定義されたイベントを確認してください。CustomerName 項目属性と、CustomerName という名前の
Procedure オブジェクトもあります。
Customer
{
CustomerId*
CustomerName
CustomerPhone
}
Event 'Gets Customer Name'
&CustomerName=obj:CustomerName(CustomerId)
Endevent
注: これは obj: という接頭語の例ですが、プロシージャーに分かりやすい名前を付けることもできます (ReturnsCustomerName など)。
説明
接頭語は競合を避けるために使用されます。接頭語は必要な場合にのみ使用する必要があります。
一般的に、接頭語は必要ありません。
項目属性と写真の名前が同じであっても、競合は発生しません。文法にはエクスプレッションのタイプを自動で識別するためのルールがいくつかあります。たとえば、画像オブジェクトと列挙型ドメインが同じ「xxx」という名前の場合、xxx.MethodName() と記述すると、GeneXus はこのメソッドがドメインにのみ適用されることを確認し、明示的に「dom:」という接頭語を指定しなくても問題を解決できます。
競合は、 [ Allow non-standard functions ] プロパティを True に設定した場合によく発生します。この場合、xxx.yyy() が標準的なエクスプレッションを指しているか非標準的なエクスプレッションを指しているかわからないため、文法の自動解決機能はほとんど役に立ちません。そのため、このような場合には、接頭語を使用することで競合を回避できます。