Hello Sailors
I need to build a custom HTML-page for a customer where I need input from IIQ (eg selected user) and output (eg user selected some options in the custom form that needs to go back to IIQ).
I see two options:
- A full page plugin
- Build the HTML-page and show it as an Approval with workItemType=Generic
I have no experience with either (I know HTML and some basic JS/Angular).
What are the pros and cons of the two routes?
Bonus question: Can you point me to any resources / guides on option 2?
Best regards
Stefan
Im not sure you need a plugin for that if the form is in SailPoint UI. but that a basic form development in a workflow. I would build custom quicklink that calls a custom workflow and steps into a form and take it from there. You would need to know how IIQ API works and stuff . If it’s a website out-side of SailPoint, then you need to make REST calls to IIQ.
https://community.sailpoint.com/t5/IdentityIQ-Product-Guides/8-3-IdentityIQ-Forms-Guide/ta-p/214146
Thank you alfi.
I am looking into facelets and that seems to give me a lot of functionality.
Any pointers on how to get a variable from the IIQ workflow to the form?
#{msgs.user}
works, but I can not access the variable username from the workflow
<Variable initializer="Toaster01" name="username"/>
Best regards
Stefan
Just to help you help me, here is my workflow and form at their current stages:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Workflow PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Workflow explicitTransitions="true" name="CustomHTML">
<Variable initializer="true" name="transient"/>
<Variable initializer="true" name="trace"/>
<Variable name="formModel"/>
<Step icon="Start" name="Start" posX="28" posY="21">
<Transition to="Build Form Model"/>
</Step>
<Step icon="Analysis" name="Build Form Model" resultVariable="formModel">
<Script>
<Source><![CDATA[//CustomHTML.buildFormModel
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
Log log = LogFactory.getLog("CustomHTML.buildFormModel");
log.debug("***** Enter *****");
HashMap result = new HashMap();
try{
String username = "tuser01";
result.put("username", username);
String rolename = "zone1";
result.put("rolename", rolename);
} catch(NullPointerException ex) {
log.warn(ex.getLocalizedMessage());
} catch(Exception ex) {
log.error(ex.getLocalizedMessage(), ex);
}
log.trace("result: " + result);
log.debug("***** Exit *****");
return result;
]]></Source>
</Script>
<Transition to="Show Custom Form"/>
</Step>
<Step name="Show Custom Form">
<Approval name="Show Custom Renderer" owner="ref:launcher" renderer="CustomHTML.xhtml" send="quickLinkIdentityId,username,launcher">
<Arg name="workItemType" value="Generic"/>
<Arg name="workItemFormBasePath" value="formModel"/>
</Approval>
<Transition to="Stop"/>
</Step>
<Step icon="Stop" name="Stop" posX="348" posY="36"/>
</Workflow>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets">
<body>
<ui:composition template="/customHTMLTemplate2.xhtml">
<ui:define name="title">Happy Happy</ui:define>
<ui:define name="body">
<ul>
<li>#{msgs.user}</li>
<li>#{sp:escapeHTML(base.loggedInUser.displayableName, false)}</li>
<li>#{username}</li>
<li>#{rolename}</li>
</ul>
</ui:define>
</ui:composition>
</body>
</html>
take a look at this link : it show how to pass values to the form. there a lot but basically you can do this i think document.getElementById(‘editForm:username’).value);
https://community.sailpoint.com/t5/IdentityIQ-Forum/Passing-values-from-cutom-form-JSF-in-approval-renderer-to/m-p/121453