最近のアクセス:
ビジネスコンポーネントの例

Attraction トランザクションをビジネスコンポーネントとして定義する ([ Business Component ] プロパティを True に設定する) とします:
イメージ:23736.png
定義が完了すると、Attraction という名前のビジネス コンポーネント データ タイプがナレッジベースに自動的に作成されます。そうすると、新しいデータタイプに基づいて、任意のオブジェクトで変数を定義できるようになります。
Attraction データタイプに基づいて、特定のオブジェクト (たとえば、Web パネルなどのオブジェクト) で &Attraction 変数を定義し、対応するオブジェクト (イベント、ソースなど) のセクションに次のような基本的なサンプルのコードを記述するとします:

サンプル a - 挿入

Attraction を挿入するためのコードは次のとおりです:
   &Attraction.AttractionName = "Eiffel Tower"
   &Attraction.CountryId = 2                          //フランス
   &Attraction.CityId = 1                             //パリ
   &Attraction.Save()
   Commit 
注:
  • CategoryId は省略されていますが、この外部キーは null を許可するため、レコードを挿入してもエラーは発生しません。
  • AttractionId の [ Autonumber ] プロパティが True に設定されているため、データベースによる自動ナンバリングが行われます。
  • Save() メソッドの実行後、&Attraction.Mode() は Update ("UPD") に設定され、すべての項目属性がインスタンス化されます。

サンプル b - 更新

Attraction (この例ではカテゴリ) を更新するためのコードは次のとおりです:
   &Attraction.Load(1)
   &Attraction.CategoryId = 1      //モニュメント
   &Customer.Save()
   Commit

サンプル c - 削除

Attraction を削除するためのコードは次のとおりです:
   &Attraction.Load(1)
   &Attraction.Delete()
   Commit 

サンプル d - 挿入または更新

次のコードでは、Attraction の特定のレコードのロードを試行します。レコードが存在しないために操作が失敗すると、Attraction が挿入されます。一方、レコードがロードされると、Attraction にカテゴリが割り当てられます:
 
   &Attraction.Load(1)
   If &Attraction.Fail()
      &Attraction.AttractionName = "Eiffel Tower"
      &Attraction.CountryId = 2                      //フランス
      &Attraction.CityId = 1                         //パリ
      &Attraction.CategoryId = 1                     //モニュメント     
   Else
      &Attraction.CategoryId = 1                     //モニュメント
   Endif
   &Attraction.Save()
   Commit
以降では、次の画像に示すように Attraction トランザクションが 2 つのレベルに分かれているとします:
イメージ:23767.png
第 2 レベルでは、各観光スポット (Attraction) を訪問するための (特性や価格などが異なる) 個別のチケットを格納できます。
トランザクションの [ Business Component ] プロパティには True の値が設定されているので、第 1 レベルのトランザクションに関連付けられた Attraction データタイプは GeneXus によって作成済みです。第 2 レベルのトランザクションについては、行 (第 2 レベル) に関連付けられた Attraction.Ticket データタイプも GeneXus によって作成済みです。この例では観光スポット (Attraction) のチケットに対応します。
次に、特定のオブジェクトで次の変数を定義します:
  • &Attraction: Attraction タイプの変数
  • &Ticket: Attraction.Ticket タイプの変数

サンプル e - 2 つの行 (チケット) を含む Attraction の挿入

2 つの行を含む Attraction を挿入するためのコードは次のとおりです:
&Attraction.AttractionId = 100
&Attraction.AttractionName = "Louvre Museum"
&Attraction.CategoryId = 2
&Attraction.CountryId = 2
&Attraction.CityId = 1

&Ticket.AttractionTicketId=1
&Ticket.AttractionTicketDescription="Without tour guide"
&Ticket.AttractionTicketPrice=100
&Attraction.Ticket.Add(&Ticket) 

&Ticket = new()
&Ticket.AttractionTicketId=2
&Ticket.AttractionTicketDescription="With tour guide"
&Ticket.AttractionTicketPrice=150
&Atraction.Ticket.Add(&Ticket)

&Attraction.Save()
If &Attraction.success()
   commit
else
   rollback
endif

サンプル f - Attraction の行の更新 (2 つのケース)

     1.最初の行の価格を更新するためのコードは次のとおりです:
  &Attraction.load(100)
  &Attraction.Ticket.Item(1).AttractionTicketPrice = 130
  &Attraction.Save()
  Commit
     2.Description="Without tour guide" のチケットの価格を更新するためのコードは次のとおりです:
  &Attraction.load(100)
  For &Ticket in &Attraction.Ticket
      If &Ticket.AttractionTicketDescription="Without tour guide"
          &Ticket.AttractionTicketPrice=110
      Endif
  Endfor
  &Attraction.Save()
  commit

サンプル g - Attraction の行の削除

Attraction の最初のチケットを削除するためのコードは次のとおりです:
  &Attraction.load(15)
  &Attraction.Ticket.Remove(1)
  &Attraction.Save()
  Commit 
 

サンプル f - SOAP でビジネスコンポーネントの wsdl を呼び出す方法/ wsdl の URL について

次の URL を試すことができます。これらは Ev2 の既定です。
http://localhost:8080/basename/servlet/invoce_bc_ws?wsdl
http://localhost/basename/invoce_bc.aspx?wsdl
 












サブページ
Created: 15/01/07 22:48 by Admin Last update: 21/05/21 03:31 by Admin
カテゴリ
Powered by GXwiki 3.0