fugitiva
(Sara La Madrid)
October 9, 2023, 6:18pm
1
Dear community
I have a question what do i need to import ONLY a ProvisioningForms
I already has the application, but i want to upload the ProvisioningForms via global setting โ import file so i dont do that manually
do i need to add
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<!--gear -> import file-->
<sailpoint>
<ImportAction name="merge"> --> not sure
<Application connector="sailpoint.connector.JDBCConnector" featuresString="DISCOVER_SCHEMA, PROVISIONING, SYNC_PROVISIONING, DIRECT_PERMISSIONS, SEARCH, ENABLE, UNLOCK" icon="databaseIcon" name="Bug Tracking" profileClass="" type="JDBC">
<ProvisioningForms>
<Form name="Bug Tracking" objectType="account" type="Create">
<Attributes>
<Map>
<entry key="pageTitle" value="Bug Tracking"/>
</Map>
</Attributes>
<Section name="Section 1">
<Field displayName="First Name" name="firstname" required="true" type="string">
<Script>
<Source>return identity.firstname;</Source>
</Script>
</Field>
<Field displayName="Last Name" name="lastname" required="true" type="string">
<Script>
<Source>return identity.lastname;</Source>
</Script>
</Field>
<Field displayName="Username" name="username" required="true" type="string">
<Script>
<Source>return identity.displayName;</Source>
</Script>
</Field>
<Field displayName="Status" name="status" type="string" value="A"/>
<Field displayName="Locked" name="locked" type="string" value="N"/>
<Field displayName="Employee ID" name="id" required="true" type="string">
<Script>
<Source>return identity.getAttribute("employeeId");</Source>
</Script>
</Field>
</Section>
</Form>
</ProvisioningForms>
<Application/>
<ImportAction/>
</sailpoint>
Hey @fugitiva , you can import the form separately ( a separate form object) then refer that form in the app.xml. Meaning you can add the reference to the newly imported form in your application.
2 Likes
fugitiva
(Sara La Madrid)
October 10, 2023, 8:10am
3
Hi @aishwaryagoswami thank you for your answer, if I follow your answer:
1.upload the form
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<sailpoint>
<Form name="Bug Tracking" objectType="account" type="Create">
<Attributes>
<Map>
<entry key="pageTitle" value="Bug Tracking"/>
</Map>
</Attributes>
</Form>
<sailpoint/>
add reference in the application
<Application connector="sailpoint.connector.JDBCConnector" featuresString="DISCOVER_SCHEMA, PROVISIONING, SYNC_PROVISIONING, DIRECT_PERMISSIONS, SEARCH, ENABLE, UNLOCK" icon="databaseIcon" name="Bug Tracking" profileClass="" type="JDBC">
<ProvisioningForms id=123 name=Bug Tracking>
<ProvisioningForms/>
<Application/>
Please check the tags in the application, not sure there if this correct, and thanks in advance
It should be something like this.
Form:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Form name="Bug Tracking" objectType="account" type="Create">
<Attributes>
<Map>
<entry key="pageTitle" value="Bug Tracking"/>
</Map>
</Attributes>
<Section name="Section 1">
<Field displayName="First Name" name="firstname" required="true" type="string">
<Script>
<Source>return identity.firstname;</Source>
</Script>
</Field>
<Field displayName="Last Name" name="lastname" required="true" type="string">
<Script>
<Source>return identity.lastname;</Source>
</Script>
</Field>
<Field displayName="Username" name="username" required="true" type="string">
<Script>
<Source>return identity.displayName;</Source>
</Script>
</Field>
<Field displayName="Status" name="status" type="string" value="A"/>
<Field displayName="Locked" name="locked" type="string" value="N"/>
<Field displayName="Employee ID" name="id" required="true" type="string">
<Script>
<Source>return identity.getAttribute("employeeId");</Source>
</Script>
</Field>
</Section>
</Form>
Application.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<app specific tags>
<ProvisioningForms>
<Reference class="sailpoint.object.Form" name="Form Name"/>
</ProvisioningForms>
<Application/>
fugitiva
(Sara La Madrid)
October 10, 2023, 9:46am
5
Hi @aishwaryagoswami thank you for your answer, uploading the form from debug page is not working
fugitiva
(Sara La Madrid)
October 10, 2023, 9:47am
6
also adding the reference in the application fails
@fugitiva Sorry! i was wrong, try this:
application.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<app specific tags>
<ProvisioningForms>
<Form name="Bug Tracking" objectType="account" type="Create">
<Attributes>
<Map>
<entry key="pageTitle" value="Bug Tracking"/>
</Map>
</Attributes>
<FormRef name = "Name of your form"/>
</Form>
</ProvisioningForms>
<Application/>
For the Form xml remove the objectType=โaccountโ
fugitiva
(Sara La Madrid)
October 10, 2023, 11:39am
8
Thank you :), this solve the issue
fugitiva
(Sara La Madrid)
October 10, 2023, 2:10pm
9
Hi @aishwaryagoswami do i need to run anything to see the form in the application?
from now it does not show it
@fugitiva i missed the end form tag < / Form> right before the < / ProvisioningForms> tag. Make sure you have added that.
Updated the code snippet
fugitiva
(Sara La Madrid)
October 10, 2023, 2:46pm
11
I did it, otherwise give an error, but sitll i dont see the form in the provision policies
It should work, can you try to request something and see if the provisioning policy attributes are populated in the provisioning plan?
fugitiva
(Sara La Madrid)
October 10, 2023, 3:39pm
13
no it does not working, so i copy paste the form in the application adding the provisioning tag and restart the server, then i see it
There are two ways to add the provisioning form, the way you have done it now is the most common way. Having the form directly into the app.xml another way is to reference the form.
This is how its defined in community - https://community.sailpoint.com/t5/Technical-White-Papers/Forms-7-0-and-later/ta-p/79191
This sample < Form> definition provides examples of fields slotted into separate sections, assigned to different owners (by value or by script), with an allowed values set, and with a validation script. Application provisioning policies are specified within a < ProvisioningForms> element that wraps all of the specified forms together.
<ProvisioningForms>
<Form name="New Acct Policy" objectType="account" type="Create">
<Field displayName="Name" name="name" required="true" reviewRequired="true" type="string">
<OwnerDefinition value="IIQApplicationOwner"/>
</Field>
<Field displayName="Phone" name="phone" required="true" section="Extra Info" type="string">
<OwnerDefinition value="IIQApplicationOwner"/>
</Field>
<Field displayName="Office Number" name="off_no" required="true" section="" type="integer">
<OwnerDefinition>
<Script>
<Source>return identity.getManager();</Source>
</Script>
</OwnerDefinition>
<ValidationScript>
<Source>
try {
int number=Integer.parseInt(value);
if (number < 100) {
return "Office numbers are all 100 or greater.";
} else{
return null;
}
} catch (NumberFormatException e) {
return "Non-numeric value provided; must be numeric.";
}
</Source>
</ValidationScript>
</Field>
<Field displayName="Region" name="region" required="true" type="string">
<AllowedValues>
<String>Americas</String>
<String>EMEA</String>
<String>APAC</String>
</AllowedValues>
</Field>
</Form>
</ProvisioningForms>
A reference to an application provisioning policy form (created in the centralized form UI and pointed to by the application) looks like this in the application definition:
<Application name="UX24ACC" โฆ>
โฆ
<ProvisioningForms>
<Form name="UNIX create form" objectType="account" type="Create">
<FormRef id="ff808081567f24710156c24f6644053c" name="UNIX create form"/>
</Form>
</ProvisioningForms>
</Application>
Not sure why the other way didnt work for you though
fugitiva
(Sara La Madrid)
October 11, 2023, 1:52pm
15
it was missing the id in the app.xml, thank you for your help
1 Like
Remold
(Remold Krol)
October 11, 2023, 2:54pm
16
For each xml you want to import, use:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE TAG PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<TAG
where TAG
is the tag of the xml element you want to import. The TAG
should be an element in the sailpoint.dtd.
So this could be like Form
or Application
.
For example:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Form PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Form
If the TAG
is sailpoint
, than the full path of the elements must be added like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<sailpoint>
<Form
When you want to merge an element (object) use:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sailpoint PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<sailpoint>
<ImportAction name="merge">
<TAG
where TAG
is again an element from the sailpoint.dtd
(to get the sailpoint.dtd use the iiq console, see IIQ Console Commands )
โ Remold
1 Like
system
(system)
Closed
December 10, 2023, 2:54pm
17
This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.