Plugin or Generic workItemType?

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:

  1. A full page plugin
  2. 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