Sunday, August 23, 2015

Retrieve worker email address through X++

Below code snipet is one of the way to retrieve employee/worker's primary email address.

private LogisticsElectronicAddressLocator getInstructorEmail(HcmWorkerRecId  _workerRecId)
{
    LogisticsElectronicAddress  logisticsElectronicAddress;
    HcmWorker                   hcmWorker;
    DirPerson                   dirPerson;
    DirPartyTable               dirPartyTable;

    select hcmWorker
        where hcmWorker.RecId == _workerRecId
    join dirPerson
        where dirPerson.RecId == hcmWorker.Person
    join dirPartyTable
        where dirPartyTable.RecId == dirPerson.RecId
    join logisticsElectronicAddress
        where dirPartyTable.PrimaryContactEmail == logisticsElectronicAddress.RecId;

    return logisticsElectronicAddress.Locator;
}