// Fetch CostCenter, Department Dimensions based on Worker's Position //
public static Name workerPositionCostCenter(HcmWorker _this)
{
HcmPositionWorkerAssignment workerAssignment;
HcmPosition hcmPosition;
HcmPositionDefaultDimension hcmPositionDefaultDimension;
DimensionAttributeValueSet dimensionAttributeValueSet;
DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
OMOperatingUnit omOperatingUnit;
select firstonly worker, Position from workerAssignment
where workerAssignment.Worker == _this.RecId
join recid from hcmPosition
where hcmPosition.RecId == workerAssignment.Position;
select firstonly DefaultDimension from hcmPositionDefaultDimension
where hcmPositionDefaultDimension.Position == hcmPosition.RecId
join RecId from dimensionAttributeValueSet
where dimensionAttributeValueSet.RecId ==
hcmPositionDefaultDimension.DefaultDimension
join DimensionAttributeValueSet, DisplayValue from dimensionAttributeValueSetItem
where dimensionAttributeValueSetItem.DimensionAttributeValueSet ==
dimensionAttributeValueSet.RecId
join Name from omOperatingUnit
where omOperatingUnit.OMOperatingUnitNumber ==
dimensionAttributeValueSetItem.DisplayValue
&& omOperatingUnit.OMOperatingUnitType ==
OMOperatingUnitType::OMCostCenter; // You can change Operating Unit Type based on your requirement.
return omOperatingUnit.Name;
}
No comments:
Post a Comment