Get worker information in D365fo x++
Get worker information in D365fo x++
public static void createUser(HcmWorker _hcmWorker)
{
DSAPDisprzUsers disprzUsers;
DirPerson dirPerson = DirPerson::find(_hcmWorker.Person);
DirPersonName dirPersonName = DirPersonName::find(dirPerson.RecId);
CompanyInfo CompanyInfo = HcmWorkerHelper::getLegalEntity(_hcmWorker.RecId);
OMOperatingUnit department = HcmWorkerHelper::getPrimaryDepartment(_hcmWorker.RecId);
HcmPositionWorkerAssignment positiont = HcmWorkerHelper::getWorkerPrimaryPositionAssignment(_hcmWorker.RecId);
HcmWorker currentWorkerManager = HcmWorkerHelper::getManagerForWorker(_hcmWorker.RecId);
hcmEmployment hcmEmployment = hcmEmployment::find(_hcmWorker.RecId);
disprzUsers.PersonnelNumber = _hcmWorker.PersonnelNumber;
disprzUsers.UserName = _hcmWorker.email();
disprzUsers.Password = '123456789';
disprzUsers.LegalEntity = CompanyInfo.DataArea;
disprzUsers.CompanyId = CompanyInfo.DataArea;
disprzUsers.CompanyName = CompanyInfo.name();
disprzUsers.Creater = curUserId();
disprzUsers.CreaterEmail = HcmWorker::find(HcmWorker::userId2Worker(curUserId())).email();
disprzUsers.Dim_CostCentre = DSAPDisprzUsers::getDimension(hcmEmployment.DefaultDimension, 'CostCentre');
disprzUsers.Dim_Department = DSAPDisprzUsers::getDimension(hcmEmployment.DefaultDimension, 'Department');
disprzUsers.Dim_Division = DSAPDisprzUsers::getDimension(hcmEmployment.DefaultDimension, 'Division');
disprzUsers.Dim_Location = DSAPDisprzUsers::getDimension(hcmEmployment.DefaultDimension, 'Location');
disprzUsers.Dim_Project = DSAPDisprzUsers::getDimension(hcmEmployment.DefaultDimension, 'Project');
disprzUsers.Name = _hcmWorker.name();
disprzUsers.FirstName = dirPersonName.FirstName;
disprzUsers.MiddleName = dirPersonName.MiddleName;
disprzUsers.LastName = dirPersonName.LastName;
disprzUsers.DepartmentName = department.Name;
disprzUsers.EmploymentId = hcmEmployment.EmploymentId;
disprzUsers.EmploymentType = enum2Str(hcmEmployment.EmploymentType);
disprzUsers.JobTitle = _hcmWorker.primaryJobId();
disprzUsers.StartDate = hcmEmployment.ValidFrom;
disprzUsers.EndDate = hcmEmployment.ValidTo;
disprzUsers.WorkerPosition = positiont.description();
disprzUsers.PositionValidFrom = positiont.ValidFrom;
disprzUsers.PositionValidTo = positiont.ValidTo;
disprzUsers.Manager = currentWorkerManager.PersonnelNumber;
disprzUsers.ManagerName = currentWorkerManager.name();
disprzUsers.Gender = enum2Str(dirPerson.Gender);
disprzUsers.MaritalStatus = enum2Str(dirPerson.MaritalStatus);
disprzUsers.PrimaryAddress = _hcmWorker.primaryAddress();
disprzUsers.PrimaryEmail = _hcmWorker.email();
disprzUsers.MobileNumber = _hcmWorker.phone();
//disprzUsers.LicenseType =
disprzUsers.WorkerStatus = NoYes::Yes;
disprzUsers.NotifyUser = NoYes::No;
disprzUsers.TriggerDefaultSkillAssignment = NoYes::No;
disprzUsers.insert();
}
public static str getDimension(int64 _dimension, str _name)
{
DefaultDimensionView DefaultDimensionView;
select DefaultDimensionView
where DefaultDimensionView.DefaultDimension == _dimension
&& DefaultDimensionView.Name == _name;
return DefaultDimensionView.dimensionDiscription();
}
Comments
Post a Comment