Wednesday, August 19, 2009

Siebel LOV data mystery in 8.x !!!

I was working on one requirement in which there was a need to have two LOV record with same Display Values but different Language-Independent Code (LIC). If you have came across this kind of requirement earlier then you must be knowing that we can create two LOV records with same Display Value / LIC via providing some different value in "Sub Type" field. This is due to that fact that we have two indexes (User Keys) defined on "S_LST_OF_VAL" table, i.e. S_LST_OF_VAL_U1 & S_LST_OF_VAL_U2.

So, I went to "Application -> Administration - Data -> List of Values" view and tried creating the LOV records. Here is data I needed :





And here is what I got when I tried saving the second record.
Found another LOV record with the same display value but different language independent code 'First'. (SBL-SVC-52160)








Surprise !!!! I have specify the different Sub Type and still I am getting this error.

Now it seems that you cannot create two LOV records with the same Display Value. I checked it into metalink and found the same that you cannot do this if you are working in 8.x. I remember we used to create these kind of LOV records in 7.7 and 7.8. And the reason what Siebel says behind this behaviour is that LookupValue() and LookupName() function will return unique value.

Anyways, but this is what my requirement and I need to have these LOV records created, and as per the analysis I did with the user key indexes of S_LST_OF_VAL table, we can have it in database. So here below is way you can create the two LOV records with same Display Value :


"Instead of Copying the LOV record, if you create each record by clicking "New" button and specify different Sub Type then Siebel allows you to create." (May be a loophole what metalink says but this is how I created the two records)






I don't know why is behaving this way and this is what I observed. Anyways I got what I want to achieve. And this is FYI, when I used LookupName() function in Calc Field, it was returning the value of first record. i.e. LookupName("Test", "SiebelMantra") = First.

Your comments are welcome in case you see problem earlier and used some different workarounds.

.

6 comments:

  1. Hi Gaurav,

    Thanks for this amazing post. Its really intresting and helpfull. :)

    ReplyDelete
  2. Hi..

    Field:Sub Type is not exposed in UI.Even if we expose in local and enter value through dedicated client.. How are we goign to migrate this data into prod..

    Thanks

    ReplyDelete
  3. This does not work the way stated in the Post.

    ReplyDelete
    Replies
    1. I agree it does not work.

      Delete
  4. I agree. Solution in this post doesn't work.l There is Oracle ticket (doc id 843895.1) describing this problem. Their solution is to add a new Business Component user property to the List of Values BC.
    Name: DisableComplianceCheck Value: Y

    ReplyDelete
  5. hi plz help me i am stuck in big problem

    ReplyDelete