CompleteOrder の呼び出し
これまで、CompleteOrder メソッドの変更方法について学習してきましたが、最後にもう 1 つ変更が必要なところがあります。通常 CompleteOrder メソッドは、TicketConfirm ページの OnPage メソッドから呼び出されます。
しかしここでは、OnPage メソッドから呼び出されません。その理由を理解するために、次ページではページ・リクエストの処理方法について学習します。
—TicketConfirm.OnPage—
TicketConfirm.OnPage
ClassMethod OnPage() As %Status
{
    Write "<HTML>",$C(13,10)
    Write "<HEAD>",$C(13,10)
    Write "</HEAD>",$C(13,10)
    Write "<BODY>",$C(13,10)
    If (%session.IsDefined("OrderID")) {
        Do ..CompleteOrder(%session.Data("OrderID"))
        Write "Thank you for using Caché Cinema!<br>",$C(13,10)
        If ($G(%request.Data("OrderEmail",1)) '=""){
            Do ..SendEmail( 
                    %request.Data("OrderEmail",1), 
                    "Your tickets have been ordered"
                    )
        } 
    }
    Else {
        Write "Your order expired before it was completed."
    } 
    Write "</BODY>",$C(13,10)
    Write "</HTML>",$C(13,10),!
    Quit $$$OK
}