0

鉴于:

  • 一个名为 B 的类。
  • 2 条 B 类持久记录,id = {"B1", "B2"}。
  • 一个名为 A 的类:

    class A Extends %Persistent
    {
     Property rB As B;
     ForeignKey FKB(rB) References B();
    }
    
  • 一个名为 objA 的类 A 的实例,其中 objA.rB = "B3"(这是一个无效值,因为 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 回答