I want to get the employee under a specific manager in position hierarchy and the following sql code is used to achive it. Iam new with X++ i want to convert the following sql query to X++ query, but the code that I have writen is not compiling and showing an error message that join is illegal, need your help please.
This is the sql code that I want to convert into x++ code.
select top 1 name from DIRPARTYTABLE
inner join HcmWorker ON HcmWorker.PERSON = DIRPARTYTABLE.RECID
AND HcmWorker.RECID =
(select top 1 worker from HCMPOSITIONWORKERASSIGNMENT
INNER JOIN HCMPOSITION ON HCMPOSITIONWORKERASSIGNMENT.POSITION = HCMPOSITION.RECID
AND HCMPOSITION.RECID =
(select TOP 1 ParentPosition from hcmPositionHierarchy
INNER JOIN hcmPositionHierarchyType on hcmPositionHierarchy.PositionHierarchyType = hcmPositionHierarchyType.RECID AND hcmPositionHierarchyType.HierarchyType = 0
where hcmPositionHierarchy.Position =
(select top 1 POSITION from HCMPOSITIONWORKERASSIGNMENT
INNER JOIN HCMPOSITION ON HCMPOSITIONWORKERASSIGNMENT.POSITION = HCMPOSITION.RECID
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM AND HCMPOSITIONWORKERASSIGNMENT.VALIDTO
AND HCMPOSITIONWORKERASSIGNMENT.WORKER =
(select TOP 1 WORKER from hcmEmployment where hcmEmployment.RECID = 5637152077)))
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM AND HCMPOSITIONWORKERASSIGNMENT.VALIDTO);
Following is x++ code that I have writen.
HcmPositionWorkerAssignment HCMPOSITIONWORKERASSIGNMENT;
DirPartyTable DIRPARTYTABLE;
HcmPosition HCMPOSITION;
HcmWorker HcmWorker;
HcmPositionHierarchy hcmPositionHierarchy;
HcmPositionHierarchyType hcmPositionHierarchyType;
HcmEmployment hcmEmployment;
select firstonly name from DIRPARTYTABLE
join HcmWorker where HcmWorker.PERSON == DIRPARTYTABLE.RECID
&& HcmWorker.RECID ==
(select firstOnly worker from HCMPOSITIONWORKERASSIGNMENT
JOIN HCMPOSITION where HCMPOSITIONWORKERASSIGNMENT.POSITION == HCMPOSITION.RECID
&& HCMPOSITION.RECID ==
(select firstOnly ParentPosition from hcmPositionHierarchy
JOIN hcmPositionHierarchyType where hcmPositionHierarchy.PositionHierarchyType = hcmPositionHierarchyType.RECID && hcmPositionHierarchyType.HierarchyType == 0
where hcmPositionHierarchy.Position ==
(select firstOnly POSITION from HCMPOSITIONWORKERASSIGNMENT
JOIN HCMPOSITION where HCMPOSITIONWORKERASSIGNMENT.POSITION == HCMPOSITION.RECID
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM && HCMPOSITIONWORKERASSIGNMENT.VALIDTO
&& HCMPOSITIONWORKERASSIGNMENT.WORKER ==
(select firstOnly WORKER from hcmEmployment where hcmEmployment.RECID == 12345678)))
where GETDATE() between HCMPOSITIONWORKERASSIGNMENT.VALIDFROM && HCMPOSITIONWORKERASSIGNMENT.VALIDTO);