How can we write a jdbc provisioning Rule that target integrate another application

I have a jdbc application. By provisioning rule I want to target integrate another application. This is the rule I have written but not working.

import sailpoint.api.Provisioner;
import sailpoint.object.Application;
import sailpoint.object.ProvisioningPlan;
import sailpoint.object.ProvisioningPlan.AccountRequest;
import sailpoint.object.Identity;
import sailpoint.object.ProvisioningResult;
import sailpoint.tools.util;

public ProvisioningResult provision(ProvisioningPlan plan, Identity identity){
ProvisioningResult result=new ProvisioningResult();

if(plan==null||Util.isEmpty(plan.getAccountRequests())){
return result;
}

ProvisioningPlan bmcPlan= new ProvisioningPlan();
for(AccountRequest accreq:plan.getAccountRequests()){

ProvisioningPlan.AccountRequest bmcReq= new ProvisioningPlan.AccountRequest();
bmcReq.setApplication("TargetApplicationName");
bmcReq.setNativeIdentity(identity.getName());
bmcReq.setOperation(ProvisioningPlan.Operation.Create);

bmcReq.addArgument("RequestedEntitlement", accreq.getNativeIdentity());
bmcReq.addArgument("Description","Access request for"+ accreq.getApplication());

bmcPlan.add(bmcReq);

}

sailpointContext context =plan.getContext();
Provisioner provisioner = new Provisioner(context);
result = provisioner.provision(bmcPlan);

if(result !=null){
log.error("Provisioning Status: "+ result.getStatus());

}

return result;

}

In Provisioning Transaction I have to get like this

<AccountRequest application="JdbcApplication" op="Create" targetIntegration="Target Application">

Didn’t you consider injecting this account request into the provisioning plan i beforeprovisioning rule? This looks like more appropriate place to do it instead of operation rule.