Tuesday, February 17, 2026

Add approvers at runtime using Assignment provide class in D365fo

 Step1:-Create a class code as follows

Code;- 

        class CustomworkflowAssignmentProviderClass implements WorkflowParticipantprovider

{
    public WorkflowParticipantTokenList getParticipantTokens()
    {
        WorkflowParticipantTokenList tokens = WorkflowParticipantTokenList::construct();

        tokens.add("Level1","Level 1");
        return tokens;
    }

 

    public WorkflowUserList resolve(WorkflowContext _context,
                                    WorkflowParticipantToken _participantTokenName)
    {
        WorkflowUserList    userList = WorkflowUserList::construct();

 

        EmployeeTable emptable;
        UserGroupInfo usergroupinfo;
        UserGroupList usergrouplist;

 

       

 


        switch(_participantTokenName)
        {
            case "Level1" :
                select * from emptable
            where emptable.RecId == _context.parmRecId();

 

                if(emptable.AssigneeType == AssigneeType::User)
                {
                    userList.add(emptable.User);

 

                }
                else
                {
                    while select usergrouplist
               where usergrouplist.groupId == emptable.User
                    {
                        userList.add(emptable.User);
                    }

                }
                break;

 


        }


        if (userList.getCount() == 0)
        {
            throw error(strFmt("User can not found"));
        }
        return userList;
    }

 

}

Step2:-Add Workflow participant provide and give AssignmentProviderClass in properties and add

Workflow type with new element give workflow type as shown in below

Step3:-Build and sync then add this assignment provide in assignment section in Workflow configurator

That's all

Thankyou


No comments:

Post a Comment

Run some logic in workflow at particular step using WorkflowAutomatictask

 Scenario:- If you want to run some logic in workflow at particular we can use WorkflowAutomatictask Step1:- create a class   Code:-        ...