Multiple Forms in LCM Create and Update

Currently, our implementation uses the standard Create Identity form in SailPoint IIQ, and it has been functioning well for our existing requirements. However, we now have a new use case: we need to collect additional information after the first form is submitted. This requires displaying a second form immediately after the first one is completed and submitted.

Challenge Encountered

To address this, I created second form in the LCM Create and Update workflow. While I was able to trigger the first form as expected, the second form did not appear immediately as desired. Instead, it was routed as a WorkItem, which breaks the continuity and simplicity of the process for the end-user.

Key Questions

  1. Is this achievable with the OOTB (Out-of-the-Box) Create Identity form functionality? I haven’t seen any clear documentation or example that supports sequential form rendering directly using standard configuration.
  2. Plan Behavior in LCM Workflows: LCM Create and Update workflow requires a plan. However, it’s unclear when this plan is generated, how it is passed into the workflow, and where we can hook into it. if we wanted to insert additional steps or forms.
  3. Avoiding Custom Workflows: While I’m aware this could be accomplished with a fully custom workflow, I’m trying to keep the solution as simple and maintainable as possible

You can begin with a custom input workflow that gathers the required data through multiple forms;
once all information is captured, build the identity object and call the standard LCM create/update workflow.

Yes, I agree with you 100% that we can do it that way. However, problem is we have to define each form in custom workflow then generating a plan and using custom models to store data. making it complex.

I was asking for multiple forms for create identity OOTB. Is it possible? or can we add form in LCM create and update, it will pop up directly after submitting the create identity form.

I agree this will be complex since it requires a custom workflow.

We can display all the forms without submitting, then perform the actual submission only on the final form. I’ll send you a sample shortly.

Here is a sample snippet of the workflow which calls multiple forms and in the final form, the requester/user submit.

<Step icon="Start" name="Start" posX="28" posY="10">
    <Transition to="Init Identity Model"/>
  </Step>
  <Step name="Init Identity Model" posX="98" posY="10" resultVariable="identityModel">
    <Script>
      <Source><![CDATA[
      	return termInitIdentityModel(context, workflow);
      ]]></Source>
    </Script>
    <Transition to="Init Use Entry Form"/>
  </Step>
  <Step name="Init Use Entry Form" posX="204" posY="9" resultVariable="useEntryForm">
    <Script>
      <Source><![CDATA[
      	return initUseEntryForm(context, workflow);
      ]]></Source>
    </Script>
    <Transition to="Show Options Form"/>
  </Step>
  <Step name="Show Options Form" posX="318" posY="12">
    <Approval mode="serial" owner="ref:launcher" return="terminationType, termDate, termHours, isCancelled" send="identityName,identityDisplayName">
      <Arg name="workItemType" value="Form"/>
      <Arg name="workItemForm" value="QHS Terminate Identity Options Form"/>
      <Arg name="workItemDescription" value="Termminate Identity Options Form"/>
    </Approval>
    <Transition to="Stop" when="ref:isCancelled"/>
    <Transition to="Show Entry Form" when="ref:approved"/>
  </Step>
  <Step name="Show Entry Form" posX="386" posY="94">
    <Approval mode="serial" owner="ref:launcher" return="identityModel, isCancelled" send="identityModel,identityName,identityDisplayName">
      <Arg name="workItemType" value="Form"/>
      <Arg name="workItemForm" value="ref:entryForm"/>
      <Arg name="workItemDescription" value="Terminate Identity Entry Form"/>
      <Arg name="workItemFormBasePath" value="identityModel"/>
    </Approval>
    <Transition to="Stop" when="ref:isCancelled"/>
    <Transition to="Show Confirm Form" when="ref:approved"/>
    <Transition to="Show Options Form"/>
  </Step>
  <Step name="Show Confirm Form" posX="451" posY="177">
    <Approval mode="serial" owner="ref:launcher" return="identityModel, isCancelled,emergencyTerminationComments" send="identityModel,identityName,identityDisplayName">
      <Arg name="workItemType" value="Form"/>
      <Arg name="workItemForm" value="ref:confirmForm"/>
      <Arg name="workItemDescription" value="Terminate Identity Confirmation Form"/>
      <Arg name="firstname" value="$(identityModel.lastname)"/>
      <Arg name="lastname" value="$(identityModel.firstname)"/>
      <Arg name="name" value="$(identityModel.name)"/>
    </Approval>
    <Transition to="Stop" when="ref:isCancelled"/>
    <Transition to="Set TaskResult Name" when="ref:approved"/>
    <Transition to="Show Entry Form"/>
  </Step>

Thank you so much for code snippet. That’s what I mentioned in my previous reply either we need to work on custom identity model or identity model and then compile a plan. At the end send that to the LCM create and update.

As I can see from your comments, I think it is not possible with create identity form?

The reason i am looking something like this is because our customer is already familiar with this workflow along with it’s working. Changing everything just for a simple form is not an ideal solution, we can expand this form if not possible.

If updating the workflow is too complex, the only viable alternative is to merge all forms into a single form—though this will degrade the user experience

It’s not about complexity; it’s about user preference. I was just trying to find a way, if there is a way we should know about it. Dont we?

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