Tuesday, 26 February 2019

update project categories (Remain to Select) through batch process in D365

class INTC_ProjCategoryUpdateBatchJob   extends SysOperationServiceController
{
    public static void main(Args args)
    {
        INTC_ProjCategoryUpdateBatchJob  controller;
   
        controller              = new INTC_ProjCategoryUpdateBatchJob();
        controller.startOperation();
    }

    public void new()
    {
        super();
 
        this.parmClassName(classStr(INTC_ProjCategoryUpdateBatchJob));
        this.parmMethodName(methodStr(INTC_ProjCategoryUpdateBatchJob, projCategory));
   
        this.parmDialogCaption("Assign Category to Project");
    }

    public void ProjCategory()
    {
        ResourceRecId                       resourceRecId;
        ProjTable                           projTable;
        ProjValProjCategorySetUp            projValProjCategorySetUp;
        ProjCategory                        projCategory;



        ProjParameters                      projParm;
        projParm    = ProjParameters::find();
        if(projParm.INTC_AssignCatProj   == NoYes::Yes)
        {
            while select ProjTable
                where ProjTable.INTC_BillableProject    == NoYes::Yes
            {
                while select projCategory
                {
                    select forupdate projValProjCategorySetUp
                        where projValProjCategorySetUp.ProjId       == ProjTable.ProjId
                        &&    projValProjCategorySetUp.CategoryId   == projCategory.CategoryId;

                    if(!projValProjCategorySetUp)
                    {
                        projValProjCategorySetUp.ProjId         =  ProjTable.ProjId;
                        projValProjCategorySetUp.CategoryId     =  projCategory.CategoryId;
                        projValProjCategorySetUp.insert();
                    }
                    else
                    {
                        ttsbegin;
                        projValProjCategorySetUp.ProjId         =  ProjTable.ProjId;
                        projValProjCategorySetUp.CategoryId     =  projCategory.CategoryId;
                        projValProjCategorySetUp.update();
                        ttscommit;
                    }
                }
            }
        }
    }

}

No comments:

Post a Comment