Skip to main content

Get Position and Department of an employee | AX 2012

A simple job to get position/designation and department of an employee using employee id:

static void WorkerPositionDepartment(Args _args)
{
    HcmWorker                       hcmWorker;
    HcmPositionWorkerAssignment     hcmPositionWorkerAssignment;
    OMOperatingUnit                 oMOperatingUnit;
    HcmPositionDetail               hcmPositionDetail;
    HcmJob                          hcmJob;
    HcmPosition                     hcmPosition;
    DirPerson                       dirPerson;

    select Person, RecId from hcmWorker
        where hcmWorker.PersonnelNumber == "ABC-0000043";

    select Position from hcmPositionWorkerAssignment
        where hcmPositionWorkerAssignment.Worker == hcmWorker.RecId;

    select JobId from hcmJob
        join hcmPositionDetail
        where hcmJob.RecId == hcmPositionDetail.Job &&
              hcmPositionDetail.POSITION == hcmPositionWorkerAssignment.POSITION &&
              //hcmPositionDetail.Position == hcmWorker.RecId &&
              hcmPositionDetail.ValidTo > DateTimeUtil::utcNow();

    //select Name from oMOperatingUnit
        //join hcmPositionDetail
        //where hcmPositionDetail.Department == oMOperatingUnit.RecId &&
                //hcmPositionDetail.Position == hcmWorker.RecId &&
                 //hcmPositionDetail.ValidTo > DateTimeUtil::utcNow();
    select Name from oMOperatingUnit
        join hcmPositionDetail
        where hcmPositionDetail.Department == oMOperatingUnit.RecId &&
                hcmPositionDetail.Position == hcmPositionWorkerAssignment.Position &&
                 hcmPositionDetail.ValidTo > DateTimeUtil::utcNow();

    select Name from dirPerson
        where dirPerson.RecId == hcmWorker.Person;

    //IhlVisitorsLog_ds.object(fieldNum(IhlVisitorsLog,Host)).setValue(dirPerson.Name);
    //IhlVisitorsLog_ds.object(fieldNum(IhlVisitorsLog,JobId)).setValue(hcmJob.JobId);
    //IhlVisitorsLog_ds.object(fieldNum(IhlVisitorsLog,Department)).setValue(oMOperatingUnit.Name);
    //IhlVisitorsLog_ds.research(true);

    info("Name:"+dirPerson.Name);
    info("Designation:"+hcmJob.JobId);
    info("Department:"+oMOperatingUnit.Name);
}

Comments

Popular posts from this blog

Run SSRS report using x++ code | AX 2012

This post describes how to run an SSRS report through x++ code and passing report parameters as well. Its a simple code and comments are added for further ease in code understanding! public static void runSSRSReport() {     SrsReportRunController controller;             controller = new SrsReportRunController();     controller.parmLoadFromSysLastValue(false);      // write report name and its design in quotes that you want to run     controller.parmReportName("ReportName.DesignName");      // set additional, optional properties like setting landscape to true     controller.parmReportContract().parmPrintSettings().landscape(true);          // set print destination screen/printer/file etc.     controller.parmReportContract().parmPrintSettings().printMediumType (SRSPrintMediumType::S...

Creating BOM journal using code AX 2012

courtesy: http://www.andesoft.net/creating-bom-journal-using-x-code-ax-2009-ax-2012/ https://community.dynamics.com/ax/f/33/t/96262.aspx http://learnax.blogspot.com/2010/01/x-code-to-create-and-post-inventory.html static void createBomJournal_working(Args _args) {     InventJournalTable      journalTable;     InventJournalTrans      journalTrans;     InventJournalTableData  journalTableData;     InventJournalTransData  journalTransData;     InventTable             inventTable;     InventDim               inventDim;     Counter                 cnt;     InventJournalCheckPost  journalCheckPost = new InventJournalCheckPost();     InventTransId           inventTransId, inventTransIdFather;     InventBat...