How to provision accounts in Target MySQL application?

Thanks a lot, two problems here :

  1. Request account button is gray in my version of IIQ although I am spadmin

  1. Role based provisioning I have tried but no row is getting inserted in target table, I have tried changing rule n no of times using chatgpt and copilot but no use,

Here is the rule which I am using :

import sailpoint.object.Identity;
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.AccountRequest;
import sailpoint.object.AttributeRequest;

public ProvisioningPlan buildProvisioningPlan(Identity identity) {
ProvisioningPlan plan = new ProvisioningPlan();
AccountRequest accReq = new AccountRequest();

accReq.setOperation(AccountRequest.Operation.Create);
accReq.setApplication("TargetMySQL");

accReq.addAttributeRequest(new AttributeRequest("EmpID", identity.getName(), ProvisioningPlan.Operation.Set));
accReq.addAttributeRequest(new AttributeRequest("Fname", identity.getAttribute("firstName"), ProvisioningPlan.Operation.Set));
accReq.addAttributeRequest(new AttributeRequest("Lname", identity.getAttribute("lastName"), ProvisioningPlan.Operation.Set));

plan.add(accReq);
return plan;

}