To get financial dimension value from worker position, add a new method in hcmWorker Table with script like below:
public static str getDimensionValue
(HcmWorkerRecId _workerRecId,
Name _DimensionName,
utcdatetime _asOfDate = DateTimeUtil::utcNow())
{
DimensionAttributeValueSetStorage dimStorage;
str dimValue;
Counter Counter;
HcmPositionDefaultDimension _HcmPositionDefaultDimension;
RecId _DefaultDimension;
;
select _HcmPositionDefaultDimension where
_HcmPositionDefaultDimension.Position == HcmWorker::getPrimaryPosition(_workerRecId);
dimStorage = DimensionAttributeValueSetStorage::find
(_HcmPositionDefaultDimension.DefaultDimension);
for (Counter=1 ; Counter<= dimStorage.elements() ; Counter++)
{
if(DimensionAttribute::find(dimStorage.getAttributeByIndex(Counter)).Name == _DimensionName)
{
dimValue = dimStorage.getDisplayValueByIndex(Counter);
}
}
return dimValue;
}
After it, if we wanna make display method to show financial dimension, we can use method above. In example we wanna display dimension site from a worker who have PersonnelNumber = "00001". The script is like below :
display str Site()
{
return hcmWorker::getDimensionValue(
hcmWorker::findByPersonnelNumber("00001").recid, "Site");
}
public static str getDimensionValue
(HcmWorkerRecId _workerRecId,
Name _DimensionName,
utcdatetime _asOfDate = DateTimeUtil::utcNow())
{
DimensionAttributeValueSetStorage dimStorage;
str dimValue;
Counter Counter;
HcmPositionDefaultDimension _HcmPositionDefaultDimension;
RecId _DefaultDimension;
;
select _HcmPositionDefaultDimension where
_HcmPositionDefaultDimension.Position == HcmWorker::getPrimaryPosition(_workerRecId);
dimStorage = DimensionAttributeValueSetStorage::find
(_HcmPositionDefaultDimension.DefaultDimension);
for (Counter=1 ; Counter<= dimStorage.elements() ; Counter++)
{
if(DimensionAttribute::find(dimStorage.getAttributeByIndex(Counter)).Name == _DimensionName)
{
dimValue = dimStorage.getDisplayValueByIndex(Counter);
}
}
return dimValue;
}
After it, if we wanna make display method to show financial dimension, we can use method above. In example we wanna display dimension site from a worker who have PersonnelNumber = "00001". The script is like below :
display str Site()
{
return hcmWorker::getDimensionValue(
hcmWorker::findByPersonnelNumber("00001").recid, "Site");
}
No comments:
Post a Comment