Search your query

Wednesday, July 12, 2017

Fetch CostCenter, Department Dimensions based on Worker's Position


// 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