オブジェクトの保存とクローズ
Film オブジェクトを更新した後、その %Save メソッドを呼び出して、データベース内に保存します。
次にこの注文が完了し、保存されたことを示すために TicketOrder オブジェクトの Complete プロパティを 1 (True) に設定します。TicketItem オブジェクトを保存したり、終了する必要はありません。関連する TicketOrder オブジェクトが保存されるとき、Caché は自動的に以上のことを行います。
—Utils.CompleteOrder—
Utils.CompleteOrder
ClassMethod CompleteOrder()
{
If $data(%session.Data("Order")) {
// Open the current order object
Set ord = ##class(Cinema.TicketOrder).%OpenId(%session.Data("Order"))
// Update the number of tickets sold for each film in the order
For i = 1:1:ord.Items.Count() {
Set itm = ord.Items.GetAt(i)
Set flm = itm.Show.Film
Set flm.TicketsSold = flm.TicketsSold +
itm.AdultTickets + itm.ChildTickets
Set cat = flm.Category.%Id()
Do flm.%Save()
}
// Mark order as complete and save
Set ord.Complete=1
Do ord.%Save()
// ...
}
}