Default parameters can be wrapped In extension classes
In Build-8.1 you can override the default parameter by using class extension COC.
Code reference
There is the method in HCMWORKER table isEmployee in which you can see the default value set with _validFrom & _validto.
public HcmIsEmployee isEmployee(
utcdatetime _validFrom = DateTimeUtil::utcNow(),
utcdatetime _validTo = _validFrom
)
{
HcmIsEmployee hcmIsEmployee = NoYes::No;
HcmEmployment hcmEmployment;
unchecked(Uncheck::XDS)
{
if (prmisDefault(_validFrom) &&
prmisDefault(_validTo))
{
select firstonly RecId from hcmEmployment
where hcmEmployment.Worker == this.RecId
&& hcmEmployment.EmploymentType == HcmEmploymentType::Employee;
}
else if (_validFrom == _validTo)
{
select firstonly ValidTimeState(_validFrom)
RecId from hcmEmployment
where hcmEmployment.Worker
== this.RecId
&& hcmEmployment.EmploymentType == HcmEmploymentType::Employee;
}
else
{
select firstonly ValidTimeState(_validFrom,
_validTo) RecId from hcmEmployment
where hcmEmployment.Worker
== this.RecId
&& hcmEmployment.EmploymentType == HcmEmploymentType::Employee;
}
if (hcmEmployment.RecId != 0)
{
hcmIsEmployee = NoYes::Yes;
}
return hcmIsEmployee;
}
}
So we created extension class of Hcmworker with name of Demo_Extension and override the method using COC.
[ExtensionOf(tableStr(HcmWorker))]
final class Demo_Extension
{
public HcmIsEmployee isEmployee(
utcdatetime _validFrom,
utcdatetime _validTo
)
{
HcmIsEmployee hcmIsEmployee = NoYes::No;
HcmEmployment hcmEmployment;
next isEmployee(_validFrom,_validTo);
unchecked(Uncheck::XDS)
{
if (_validFrom == _validTo)
{
select firstonly
ValidTimeState(_validFrom) RecId from hcmEmployment
where hcmEmployment.Worker
== this.RecId
&& hcmEmployment.EmploymentType == HcmEmploymentType::Employee;
}
else
{
select firstonly
ValidTimeState(_validFrom, _validTo) RecId from hcmEmployment
where hcmEmployment.Worker
== this.RecId
&& hcmEmployment.EmploymentType == HcmEmploymentType::Employee;
}
if (hcmEmployment.RecId != 0)
{
hcmIsEmployee = NoYes::Yes;
}
return hcmIsEmployee;
}
}
}
Now perform build & Sync on your module..