How can I override the getter for serial property?
I want to override getter for a serial property as a whole, because getter code depends on a class in which a property is defined.
Let's say I have CS.Serial as a serial class:
Class CS.Serial Extends %SerialObject
{
Property Year As %Integer;
Property Month As %Integer;
}
And CS.Persistent as a persistent class:
Class CS.Persistent Extends %Persistent
{
Property data As CS.Serial [ SqlComputeCode = {set {*} = ##class(CS.Persistent).dataGetStatic()}, SqlComputed, Transient ];
/// data getter method in object context
Method dataGet() As CS.Serial
{
return ..data2GetStatic()
}
/// data getter method in SQL context
ClassMethod dataGetStatic() As CS.Serial
{
return $lb($lb("2017","01"),"CS.Serial")
}
}
But compiling it gives me an error:
ERROR #5502: Error compiling SQL Table: CS.Persistent Table CS.Persistent has the following unmapped (not defined on the data map) fields: data_Month, data_Year %msg: Table CS.Persistent has the following unmapped (not defined on the data map) fields: data_Month, data_Year [CompileTable+36^%ocsSQLRTDict:TIME] > ERROR #5030: An error occurred while compiling class 'CS.Persistent' [CreateTable+7^%occCompile:TIME]
Is there way to override getter for a serial property?
Code.