Injecting a value into a custom column that is created in in Certification item table

Which IIQ version are you inquiring about?

Version 8.3

Please share any images or screenshots, if relevant.

Certification_Item_Table.png

Share all details related to your problem, including any error messages you may have received.

Greetings, Experts I hope that everything is going well for everyone.

In the “spt_certification_item” table, I created a column named “lohith1” using the Alter command. I’ve been attempting to assign a value to the column using the “certification_item_customization” function (something like CertificationItem.setCustom1(),setExtended1() - Which could be done only for custom and extended attribute).Is there a comparable method I can use to add a value to my custom column called lohith1?

1 Like

Hi Lolith,
Generaly in IIQ if you just extend database schema / table - it will have no impact to the data model available to the application. Reason behind that is that IIQ is using Hibernate as data access layer and actualy order of operations to extend schema is slightly different.

  1. You have to modify respective HBM file to add additional attribute to the model
  2. You generate update scripts via /$IIQ_HOME/WEB-INF/bin/iiq command
  3. You execute generated script on the database

Then everything is in order and you can use it.

I believe this document might be usefull for you

Hello Kamil, Thanks for the swift response

I’ve followed the entire process mentioned in document.I can see “lohithattribute1” is created & populated as well.But i don’t see the value injected into the db

Could you please help me on this

1 Like

@LohithHarish

What is the method you used to update the attribute in Certification Item table, the above mentioned article is written by myself and I implemented this personally.

Using the below method, you should be able to populate the value, assuming you have the CertificationItem Object already in certItemObj

certItemObj.setAttribute(“attr_name”,attval);
context.saveObject(certItemObj);
context.commitTransaction();

1 Like

Hello Satish Good evening,

I’ve been trying to insert this piece of code into my certification_item_cust rule . Could you please validate my screenshots and correct me




@LohithHarish
Is this your CertificationEntityCustomization Rule tied to the Certification?

Is this mapped in the Config

<entry key="certificationItemCustomizationRule" value="Certification Item Customization Rule"/>

1 Like

Hi Lolith,
I see you execute
item.setAttribute("lolithattribute1", "Value");
this will not save data to the database
you have to add after that this 2 lines

context.commitTransaction();

@iamksatish yes satish i’ve done mapping in my system config

@kjakubiak i tried adding
context.saveObject(item);
context.commitTransaction();

I’m facing below error

  • An unexpected error occurred: The application script threw an exception: sailpoint.tools.GeneralException: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: sailpoint.object.CertificationEntity BSF info: Lohith Test CertificationItem Customisation-New at line: 0 column: columnNo
1 Like

Aaaa… sorry - missed you do that in the item customization rule - then you can’t save this object.

Could you please paste your complete xml with the rule - I will check it in my lab.

Sure Kamil
Cert_Item_Cust_Rule.txt (8.9 KB)

1 Like

@LohithHarish

Is the attribute getting saved to attributes column xml and only the Named column is not getting updated or is it not updating the Attributes as well

Also can you remove all other conditions and test with just setting that attribute code

Note - You shouldn’t use save object and commit transaction in customization rule.

1 Like
  • use item.setAttribute.(“attributename”, “value”); CertificationItem extended attributes should match Link extended attributes. This allows those extended Link attributes to be included in the detail records of certification access reviews. CertificationItem extended attributes which do not correspond to Link extended attributes will not be populated (unless done so manually through a rule) since there is no way to declare a source for those attributes other than through a Link extended attribute of the same name.
  • do not save and commit in customization rule
1 Like

Hi there to all of you.I appreciate your assistance; the problem has been fixed. The value is being populated in extendedAttribute 4 rather than my custom attribute because of additional Account attributes, which is the reason for this. Everything went smoothly when I removed it.

2 Likes

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