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;
2 Likes

@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

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.