Scripted Decision StringAttributeInputCallback

Here’s an example of how I have used it before

if(callbacks.isEmpty()){
    callbacksBuilder.stringAttributeInputCallback("attrib","Enter your attribute",null,true,null,false)
} else {
    logger.error(callbacks);
    input = callbacks.getStringAttributeInputCallbacks().get(0);
	outcome = "true";
}

If you want to send the data for Policies or Failed Policies instead of null, you can use the below functions. I’ve written the functions in such a way that it maintains the structure of policies and failed policies sent by out of the box node Attribute Collector.

function getPoliciesForAProperty(property, managedObjectContainer) {


	// Call to IDM to get policy details for all properties of giveb managed object
	var response = openidm.read("policy/" + managedObjectContainer + "/*");
	
	
	var properties = response? response.get("properties"): null;
	
	if(!properties || !properties.length){
		return false
	}
	
	for (var i = 0; i<properties.length; i++){
		if (properties[i].name === property){
			return { "policyRequirements" : properties[i].policyRequirements,
                     "name": properties[i].name,
                     "policies" : properties[i].policies,                     
                     "conditionalPolicies" : properties[i].conditionalPolicies,
                     "fallbackPolicies" : properties[i].fallbackPolicies                    
					}
		}	
	}
  return false
}


function validateProperty(propertyMap, managedObjectContainer, managedObject) {

	
	var response = openidm.action("policy/" + managedObjectContainer + "/" + managedObject, "validateProperty", propertyMap);
	
	var policyValidationStatus = response? response.get("result"): true;
	
	if(policyValidationStatus){
		return null
	}else {
		var failedPoliciesArray = []
		var failedPolicyRequirements = response.get("failedPolicyRequirements")
		for (var i = 0; i < failedPolicyRequirements.length; i++){
			failedPoliciesArray[i] =  failedPolicyRequirements[i].policyRequirements.toString().slice(1,-1)
		}
		return failedPoliciesArray
	}
}

Reference for failed policy validation: Manage policies over REST :: IDM 7.4.1 (forgerock.com)

1 Like