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?

モデル・クラスの作成 : メソッド

次に、いくつかの %ZEN.DataModel.ObjectDataModelOpens in a new tab コールバック・メソッドを実装します。コントローラは、フォーム (ビュー) イベントに応答して、これらのサーバ側メソッドを実行します。

以下の 4 つのメソッドを ZenTutorial.ContactModel に追加します。

  1. 
    Method %OnOpenSource(pID As %String) As %RegisteredObject
    {
      Quit ##class(ZenTutorial.Contact).%OpenId(pID)
    }
    

    dataController は、このメソッドを呼び出して既存のデータベース・オブジェクトを開きます。

  2. 
    Method %OnSaveSource(pSource As ZenTutorial.Contact) As %Status
    {
       Set tSC = pSource.%Save()
       Set ..%id = pSource.%Id()
       Quit tSC
    }
    

    dataController は、データベース・オブジェクトを保存するときにこのメソッドを呼び出します。

  3. 
    Method %OnNewSource(Output pSC As %Status = {$$$OK}) As %RegisteredObject
    {
      Quit ##class(ZenTutorial.Contact).%New()
    }
    

    dataController は、このメソッドを呼び出して新しいデータベース・オブジェクトを作成します。

  4. 
    ClassMethod %OnDeleteSource(pID As %String) As %Status
    {
      Quit ##class(ZenTutorial.Contact).%DeleteId(pID)
    }
    

    dataController は、このメソッドを呼び出してデータベース・オブジェクトを削除します。

次に、以下のメソッドを ZenTutorial.ContactModel に追加します。このメソッドは、データベース・オブジェクト (ZenTutorial.Contact) からモデル・オブジェクト (ZenTutorial.ContactModel) にデータをロードします。


Method %OnLoadModel(pSource As ZenTutorial.Contact) As %Status
{
    Set ..Name = pSource.Name
    Set ..ContactType = pSource.ContactType
    Set ..Street = pSource.Address1.Street
    Set ..City = pSource.Address1.City
    Set ..State = pSource.Address1.State
    Set ..Zip = pSource.Address1.Zip  
    Quit $$$OK
}

最後に、以下のメソッドを ZenTutorial.ContactModel に追加します。このメソッドは、モデル・オブジェクト (ZenTutorial.ContactModel) からデータベース・オブジェクト (ZenTutorial.Contact) にデータを書き込み、データベース・オブジェクトを保存します。


Method %OnStoreModel(pSource As ZenTutorial.Contact) As %Status
{
    Set pSource.Name = ..Name
    Set pSource.ContactType = ..ContactType
    Set pSource.Address1.Street = ..Street
    Set pSource.Address1.City = ..City
    Set pSource.Address1.State = ..State
    Set pSource.Address1.Zip = ..Zip
    Quit pSource.%Save()
}
FeedbackOpens in a new tab