0

与えられた:

  • B という名前のクラス。
  • クラス B の 2 つの永続レコード、id = {"B1", "B2"}。
  • A という名前のクラス:

    class A Extends %Persistent
    {
     Property rB As B;
     ForeignKey FKB(rB) References B();
    }
    
  • objA.rB = "B3" の objA という名前のクラス A のインスタンス (B には "B3" 永続レコードがないため、これは無効な値です)

それが欲しいです:

objA を保存する場合 (objA.%Save())、rB の無効な値を空の文字列に置き換えて保存します。

ここのところ:

コールバック メソッド ( %OnBeforeSave) を使用して置換を試みましたが、以前に %ValidateObject が呼び出されたようです。

コールバック メソッドを使用して %ValidateObject の前に値の変更を行う方法はありますか?

前もって感謝します。

4

1 に答える 1

2

コールバック メソッド %OnAddToSaveSet でオブジェクトを変更できます: http://docs.intersystems.com/cache201511/csp/docbook/DocBook.UI.Page.cls?KEY=GOBJ_callbacks#GOBJ_cb_onaddtosaveset

于 2015-07-15T14:07:16.403 に答える