Auto Approve the workflow if a user already approve it in an hierarchy of Wotkflow

public void insert()

{

    next insert();


    switch(this.RefTableId)

    {

        case tableNum(PurchReqTable):

        case tableNum(PurchTable):

        {

            if(this.CheckForApproval(this.CorrelationId, this.UserId))

            {

                WorkflowWorkItemActionManager::dispatchWorkItemAction(this, 'Auto Approve', this.UserId, WorkflowWorkItemActionType::Complete, this.MenuItemName);

            }

        }

    }


}


public workflowtrackingtable CheckForApproval(WorkflowCorrelationId _correlationId, UserId _UserId)

{

    Workflowtrackingstatustable workflowtrackingstatustable;

    Workflowtrackingtable       workflowtrackingtable;


    select firstonly  workflowtrackingstatustable

    join workflowtrackingtable

    where  workflowtrackingstatustable.RECID == workflowtrackingtable.WORKFLOWTRACKINGSTATUSTABLE

    && workflowtrackingtable.TrackingContext == workflowtrackingcontext::WorkItem

    && workflowtrackingtable.TrackingType == workflowtrackingtype::Approval

    && workflowtrackingstatustable.CorrelationId == _correlationId

    && workflowtrackingtable.User == _UserId;

       

    return workflowtrackingtable;

}

Comments

Popular posts from this blog

How to Bypass Next in COC in D365 X++

create movement journal through code in d365 FO x++