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?

Cookie の保存

Cookie は %CSP.ResponseOpens in a new tab オブジェクトの SetCookie メソッドによって送信されます。これまで使用してきた %session オブジェクトや %request オブジェクトと同様、%response は Caché から自動的に提供されます。Caché は、実際のコンテンツではなく、ブラウザへのサーバの応答を制御します。

ここでは、Cookie に “CacheCinemaLastCategory” という名前を付けました。また、ユーザが注文した映画の FilmCategory オブジェクト ID を示す値、変数 Expires で指定された有効期限、およびこの Cookie をサイトの全 Web ページで使用できるようにする “/” パス情報を、この Cookie に設定します。

—Utils.CompleteOrder—
Utils.CompleteOrder
ClassMethod CompleteOrder()
{
    // For each film, update the number of tickets sold
    Set ItemList = 
            ##class(%Library.ResultSet).%New("Cinema.TicketItem:ShowItem")
    Do ItemList.Execute(OrderID)
    While ItemList.Next() {
        Set Film=##class(Cinema.Film).%OpenId(ItemList.Get("Film"))
        Set Film.TicketsSold = Film.TicketsSold 
            + ItemList.Get("AdultTickets") + ItemList.Get("ChildTickets")
        Set ItemID = ItemList.Get("ID")

        Do Film.%Save()
        Set Film = ""
    }
    Set ItemList = ""
    // Put a cookie on the users computer
    Set Item = ##class(Cinema.TicketItem).%OpenId(ItemID)
    Do %response.SetCookie("CacheCinemaLastCategory", 
        Item.Show.Film.Category.%Id(), Expires, "/") 
    Set Item = ""
    // End the session
    Set %session.EndSession = 1
    Quit
}
FeedbackOpens in a new tab