Update the Custom Field in Success Factors

Hello everyone, I currently update the UserName and Email fields of Success after filling them out in iiq (version 8.4) using a rule. However, I need to update a custom field within success. Below is the rule I use. Can you tell me which method I use to update the custom field?

import sailpoint.object.ProvisioningPlan.AccountRequest;
 import sailpoint.object.ProvisioningPlan.AttributeRequest;
 import sailpoint.object.ProvisioningPlan.ObjectOperation;
 import sailpoint.object.ProvisioningPlan.AccountRequest.Operation;
 import sailpoint.connector.successfactors.SuccessFactorsConnectorImpl;
 import sailpoint.tools.Util;
 import sailpoint.connector.successfactors.SuccessFactorsConstants;
 import sailpoint.object.ProvisioningResult;
 import sailpoint.tools.Util;
 /**
  * ecEmailType for Business Email.
  */
 String BUSINESS_EMAIL_TYPE = "59894";

 ProvisioningResult result = new ProvisioningResult();
 result.setStatus(ProvisioningResult.STATUS_COMMITTED);
 boolean isPrimary = true;
 Map map = new HashMap();

 /**
  * This method would provision a given business phone, business email and username.
  */
 public void doProvision() throws Exception {
   String accNativeIdentity = request.getNativeIdentity();

   //Get handle of the implementation object.
   SuccessFactorsConnectorImpl sfObj = connector.getImplObject();

   if (Util.isEmpty(provisionMap)) {
     throw new Exception("Empty provisionMap detected");
   }
   try {
     updating username
     if (null != provisionMap.get(SuccessFactorsConstants.ATTR_USERNAME)) {
       sfObj.provisionUsername(accNativeIdentity, provisionMap.get(SuccessFactorsConstants.ATTR_USERNAME), provisionMap);
       log.warn("Updating the ATTR_USERNAME SapSuccess: " + accNativeIdentity + "  MAP: " + provisionMap);
     }

     // Here, what is the method?
     //if (null != provisionMap.get("custom-string4")) {
     //  sfObj.provisionCustomField(accNativeIdentity, provisionMap.get("custom-string4"), provisionMap);
     //log.warn("Updating the custom-string4 SapSuccess: " + accNativeIdentity + "  MAP: " + provisionMap);
     //}
     
     //updating business email
     if (null != provisionMap.get(SuccessFactorsConstants.ATTR_PRIMARY_EMAIL_ADDRESS)) {
       sfObj.provisionEmail(accNativeIdentity, isPrimary, provisionMap.get(SuccessFactorsConstants.ATTR_PRIMARY_EMAIL_ADDRESS), BUSINESS_EMAIL_TYPE, provisionMap);
       log.warn("Updating the ATTR_PRIMARY_EMAIL_ADDRESS SapSuccess: " + accNativeIdentity + "  MAP: " + provisionMap);
     }

   } catch (Exception e) {
     log.error("Exception during provisioning ", e);
     throw e;
   }
 }
 doProvision();
 return result;

@PauloFerrari You do not need to call success factor API , you can simply use attribute Sync or u can use Plan with Account Request if success factor .You can use in rule also and then call provisioner api to provision and execute