DAXSPOT

Showing posts with label HCMWorker. Show all posts
Showing posts with label HCMWorker. Show all posts

Wednesday, August 3, 2022

Department for the current user in X++ select statement

Hi All,

Below you will find a snippet to get department for the current user.


select OMOperatingUnit 

            join HcmPositionDetail

                where OMOperatingUnit.RecId == HcmPositionDetail.Department

            join HcmPosition 

                where HcmPositionDetail.Position == HcmPosition.RecId

            join HcmPositionWorkerAssignment

                where HcmPosition.RecId == HcmPositionWorkerAssignment.Position

            join HcmWorker 

                where HcmPositionWorkerAssignment.Worker == HcmWorker.RecId

            join DirPerson 

                where HcmWorker.Person == DirPerson.RecId

            join DirPersonUser 

                where DirPersonUser.PersonParty == DirPerson.RecId 

                && DirPersonUser.User == curUserId();

Wednesday, May 15, 2019

Get terminated employees or worker from payroll module - X++ Code

Hi,

Today i got a scenario while working in payroll module, to get the terminated workers only using x++ query or adhoc query.

Below code helped me to achieve the requirement.

subQuery       =   new Query();
qbdsEmployment = subQuery.addDataSource(tableNum(HcmWorker));
qbdsEmployment.addSelectionField(fieldNum(HcmWorker, PersonnelNumber));
qbdsEmployment = qbdsEmployment.addDataSource(tableNum(HcmEmployment));
qbdsEmployment.joinMode(JoinMode::InnerJoin);
qbdsEmployment.relations(true);
qbdsEmployment.addLink(fieldNum(HcmEmployment,Worker),fieldNum(HcmWorker,RecId));
//workerRange  =   qbdsEmployment.addRange(fieldNum(HcmEmployment, Worker));
validFromRange = qbdsEmployment.addRange(fieldNum(HcmEmployment, ValidFrom));
validToRange   = qbdsEmployment.addRange(fieldNum(HcmEmployment, ValidTo));
subQuery.validTimeStateDateTimeRange(DateTimeUtil::minValue(), DateTimeUtil::utcNow());
validFromRange.value(SysQuery::valueUnlimited());
validToRange.value(SysQueryRangeUtil::lessThanUtcNow());
qbdsEmployment.addSelectionField(fieldNum(HcmEmployment,Worker));
qbdsEmployment.addSelectionField(fieldNum(HcmEmployment,ValidFrom));
qbdsEmployment.addSelectionField(fieldNum(HcmEmployment,ValidTo));

How to execute SQL directly form Dynamics AX X++

How to execute Sql directly form Dynamics AX X++ Reference by : alirazazaidi Dynamics Ax provide many other ways to communicate with databas...