Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

TicketOrder オブジェクトの取得

AddShow メソッドの本文に以下のコードを追加します。

メソッドは、最初に TicketOrder オブジェクトを取得します。これが新規の注文の場合、新規の TicketOrder オブジェクトを生成する必要があります。また、このユーザに対する処理中の場合、このオブジェクトは既にデータベース内に存在します (その Complete プロパティは 0 (False) に設定されています)。

TicketOrder オブジェクトを既に生成してある場合、そのオブジェクト ID は %session オブジェクト (%CSP.SessionOpens in a new tab クラスのインスタンス) に格納されます。(その参照方法については後で説明します。)前に使用した %request オブジェクトのように、%session オブジェクトは Caché から提供され、名前と値の組み合わせを保存します。しかし、要求ごとに異なる %request オブジェクトとは違い、%session オブジェクトではユーザのセッションが継続している限り、要求全体のデータが保存されます。 (セッションの詳細は後で説明します。)

—Utils.AddShow—
Utils.AddShow
ClassMethod AddShow(ShowID As %String)
{
    // Get an order object
    If $data(%session.Data("Order")) {
        Set ord = ##class(Cinema.TicketOrder).%OpenId(%session.Data("Order"))
    }
    Else {
        Set ord=##class(Cinema.TicketOrder).%New()
        // ...
    }

    // ...

    // Save incomplete order and remember its Id in %session.
    Do ord.%Save()
    Set %session.Data("Order") = ord.%Id()
}
FeedbackOpens in a new tab