Picklist in Siebel – An Overview

I think every Siebel developer gets to create a Picklist in his siebel carrer.This is one of the basic configuration that we do in siebel. In this post I will try to give overview of Picklist by answering few basic questions.

What is Picklist?


Picklist in Siebel allows user to select values from of either drop down list (Static Picklist)  or Select record from an Popup Applet (Dynamic Picklist) rather than letting user type in the value in the field.

What Type of Picklists are available in Siebel?

Two Types of Picklists are available

  • Dynamic Picklist (Also known as Pick Applet)
  • Static Picklist

What is difference between Dynamic Picklist and Static Picklist?

  • Static Picklist is based on Picklist Generic BC and gets it values from List of Values table (S_LST_OF_VAL)
  • Dynamic Picklist can be based on any business component and basically used while creating Pick Applets which allows us to pull information across entities with the help of joins. To explain it better with the help of an example.

I want to allow user to choose an account for an opportunity. To accomplish that I will create a dynamic Picklist based on account BC and use it in opportunity BC

Bounded VS Unbounded Picklist?

Picklist can be

  • Bounded: User can only choose from the provided set of values. User cannot enter his own values.
  • Unbounded: User can enter any values he desires.

How to define a Picklist as Unbounded?

A Picklist property called bounded is responsible for making Picklist as bounded or unbounded. If you set it to false (which it is by default) the Picklist will act as unbounded and if we set it as true then it will act as bounded. Image below shows the bounded property of Picklist.

In next posts we will discuss how to create static and dynamic Picklists.

41 Responses to Picklist in Siebel – An Overview

  1. Amol Tandon says:

    very well explained
    One thing that I want to add is in the case of static pick List if you create unbounded it will accept values other than defined.
    But what if you create unbounded in dynamic picklist?

    Here siebel will allow you to enter the value but won’t save it. That is when you will again query that you will find that there is not change in the record

  2. Amol Tandon says:

    very well explained
    One thing that I want to add is in the case of static pick List if you create unbounded it will accept values other than defined.
    But what if you create unbounded in dynamic picklist?

    Here siebel will allow you to enter the value but won’t save it. That is when you will again query that you will find that there is not change in the record

  3. Amogh says:

    I want to select a value from a dropdownlist which will populate another dropdownlist with the values as against the original value selected.For example if i select USA in a particular list the other list should display states against it.

  4. Amogh says:

    I want to select a value from a dropdownlist which will populate another dropdownlist with the values as against the original value selected.For example if i select USA in a particular list the other list should display states against it.

  5. Amol Tandon says:

    Hi Amogh,
    I have written post which can solve your problem
    visit
    http://siebelunleashed.com/constraining-the-siebel-picklist/

  6. Amol Tandon says:

    Hi Amogh,
    I have written post which can solve your problem
    visit
    http://siebelunleashed.com/constraining-the-siebel-picklist/

  7. Nimmy says:

    Hi,

    I have a Requirement like in Accounts Screen which has 3 BCs.1. Account BC,Contact Log BC(For Interactions),Service Request BC .I want to create a Service Request record in this view and prepopulate certain fields from Account BC(Fields like Contact Lst Name/First Name where Contact Last Name is an MVG and contact Log BC(Some fields) and move to a new Screen Service Request with this new record created and with some fields prepopulated.I have scripted to get some fields from Contact Log BC . Can u help me how i can get the Primary Contact Record from Account BC and populate the same in the newly created SR BC.

  8. Nimmy says:

    Hi,

    I have a Requirement like in Accounts Screen which has 3 BCs.1. Account BC,Contact Log BC(For Interactions),Service Request BC .I want to create a Service Request record in this view and prepopulate certain fields from Account BC(Fields like Contact Lst Name/First Name where Contact Last Name is an MVG and contact Log BC(Some fields) and move to a new Screen Service Request with this new record created and with some fields prepopulated.I have scripted to get some fields from Contact Log BC . Can u help me how i can get the Primary Contact Record from Account BC and populate the same in the newly created SR BC.

  9. Amogh Gupta says:

    Hi i need some help , I have a service request screen in which there is a field called resolution. Now when i create a new service request and set the resolution to Reimbursmnet and i save the record ok now if i again open this record and try to change the resolution parameter to something else it should prompt an error message saying that a new service request must be created . How to do this?????

  10. Amogh Gupta says:

    Hi i need some help , I have a service request screen in which there is a field called resolution. Now when i create a new service request and set the resolution to Reimbursmnet and i save the record ok now if i again open this record and try to change the resolution parameter to something else it should prompt an error message saying that a new service request must be created . How to do this?????

  11. Amol Tandon says:

    Hi Amogh
    For this requirement you can write code on pre-setField value of the Business component

    sample code look like this

    function BusComp_PreSetFieldValue (FieldName, FieldValue)
    {
    if(FieldName == “Name” && this.GetFieldValue(“Name”) == ’3Com Amol’)
    {
    TheApplication().RaiseErrorText(“Please insert another value”);
    }

    return (ContinueOperation);
    }

    you can substitute fieldname with your requirement field name and value with your requirement value

  12. Amol Tandon says:

    Hi Amogh
    For this requirement you can write code on pre-setField value of the Business component

    sample code look like this

    function BusComp_PreSetFieldValue (FieldName, FieldValue)
    {
    if(FieldName == “Name” && this.GetFieldValue(“Name”) == ’3Com Amol’)
    {
    TheApplication().RaiseErrorText(“Please insert another value”);
    }

    return (ContinueOperation);
    }

    you can substitute fieldname with your requirement field name and value with your requirement value

  13. Amogh gupta says:

    Hi Amol Iam facing 2 problems in the Preset field value event.
    1) I have to apply the code at the applet level not at the bc level so i need the corresponding event.

    2)Secondly the one important thing is i need an event which captures the previous value of the field and no the latest value , as i had tried with preset field it was taking the current value so can u please tell me any method for that.

  14. Amogh gupta says:

    Hi Amol Iam facing 2 problems in the Preset field value event.
    1) I have to apply the code at the applet level not at the bc level so i need the corresponding event.

    2)Secondly the one important thing is i need an event which captures the previous value of the field and no the latest value , as i had tried with preset field it was taking the current value so can u please tell me any method for that.

  15. neel says:

    Hi Amogh,

    Regarding 2 point.
    PreSet Field Value gives you both new and old values.

    FieldValue stores the new choosen value
    this.GetFieldValue will give you old value.

    regarding 1 point is there any specific reason you need to write the code at applet level?

    • Dudesiebel says:

      A quick solution needed, I created a picklist on a base table field and used pickmap to display the values from diff table, not join and then created a pick applet using the second BC, everything is fine but the field on the UI is unbounded, when user enters a value it doesnt pop up the pick applet(since no join), that is creating some problems. Is there a work around to pop up pick applet all the time?

  16. neel says:

    Hi Amogh,

    Regarding 2 point.
    PreSet Field Value gives you both new and old values.

    FieldValue stores the new choosen value
    this.GetFieldValue will give you old value.

    regarding 1 point is there any specific reason you need to write the code at applet level?

  17. Amogh Gupta says:

    Neel there are other validations there on the same
    BC so without disturbing those validations i want to apply my own validation at a particular applet, wen i applied it at the bc level i noticed that all the other validations were overwriiten ,so i needed something at the applet level.I was confused in this

  18. Amogh Gupta says:

    Neel there are other validations there on the same
    BC so without disturbing those validations i want to apply my own validation at a particular applet, wen i applied it at the bc level i noticed that all the other validations were overwriiten ,so i needed something at the applet level.I was confused in this

  19. Amogh says:

    Hi i need some more help,
    Requirement: there is a SAP order number field in products exchange screen , i want this field shoulb be numeric only ie. it should accept only numbers, and if users enters something else it should pop out an error.

    PROBLEMS IAM FACING:
    1) I cannot find this field at the applet level but this field name is there at th BC level, so how to trace this at the applet level

    2) How to implement this , whether thru configuration of tools or through scripting at the bc level or at the applet level, Iam totally a rookie in siebel

  20. Amogh says:

    Hi i need some more help,
    Requirement: there is a SAP order number field in products exchange screen , i want this field shoulb be numeric only ie. it should accept only numbers, and if users enters something else it should pop out an error.

    PROBLEMS IAM FACING:
    1) I cannot find this field at the applet level but this field name is there at th BC level, so how to trace this at the applet level

    2) How to implement this , whether thru configuration of tools or through scripting at the bc level or at the applet level, Iam totally a rookie in siebel

  21. Amol Tandon says:

    Hi Amogh,
    For this requirement, you can perform by both the ways

    By configration :- Goto BC Object expand it and select field object change “Type” property to DTYPE_NUMBER
    know when the user insert value other than number digit siebel will give error

  22. Amol Tandon says:

    Hi Amogh,
    For this requirement, you can perform by both the ways

    By configration :- Goto BC Object expand it and select field object change “Type” property to DTYPE_NUMBER
    know when the user insert value other than number digit siebel will give error

  23. SiebPaul says:

    Fields are found in the column label “FIELD” in List Columns under Lists for List applets or Controls in the column labelled FIELD.

    Review Controls and List Columns in the Object Reference for Display Format.

    Code is the method of LAST resort…

  24. SiebPaul says:

    Fields are found in the column label “FIELD” in List Columns under Lists for List applets or Controls in the column labelled FIELD.

    Review Controls and List Columns in the Object Reference for Display Format.

    Code is the method of LAST resort…

  25. kiran says:

    pls provide the full view about siebel picklist

  26. kiran says:

    pls provide the full view about siebel picklist

  27. SiebelQuery says:

    Hi Amol,
    I have one query regarding the field level validation.
    My requirement is ‘in a particuler field, if I want the first character should always be an alphabate.If any vlaue entered in the field has, a number at the first Charachter, it should throw an error message.

    One more question:
    lets say, one field is not exposed in an applet & I want to use that field in browser script,how can we do it?
    (as per my understanding, if the field is not exposed in an applet;we can’t use it in Browser Script, but we need to pass the control to the Sever script, where we can query the BC Field).

    Please reply…
    Thanks!

  28. SiebelQuery says:

    Hi Amol,
    I have one query regarding the field level validation.
    My requirement is ‘in a particuler field, if I want the first character should always be an alphabate.If any vlaue entered in the field has, a number at the first Charachter, it should throw an error message.

    One more question:
    lets say, one field is not exposed in an applet & I want to use that field in browser script,how can we do it?
    (as per my understanding, if the field is not exposed in an applet;we can’t use it in Browser Script, but we need to pass the control to the Sever script, where we can query the BC Field).

    Please reply…
    Thanks!

  29. Ekta says:

    please explain the configuration of dynamic pick applet ..

  30. Ekta says:

    please explain the configuration of dynamic pick applet ..

  31. siebel2k9 says:

    Hi, We have the requirement to update one flag = true in picklist record when the record is picked from picklist and also to change flag = false when picklist record is deleted in parent applet.

    I can update the flag when record is choosed but when its deleted I am facing issue to get the rowid of picklist record when its deleted in parent applet.

    Please let me know if you aware of anything that can help to retrive the row_id of deleted record.

  32. neelmani says:

    You need to us PreDelete event in the picklist BC to capture the row_id.
    You can set it is as profile attribute and use it later

  33. Kumar says:

    Hi Friends

    I have one requirement in one Static pick list I have 2 values whenever I choose one Option below form applet should show 15+fields its already configured. but whenever I choose second option below form applet should display 10 Fileds Only.
    How we do achieve this requirement Dynamically? can any post answer.

  34. Marc says:

    Hi I am trying to get this unbound picklist to work on a User Registration form and it seemed simple enough but it isn;t working. I have a picklist for province that I need the the user to be able to enter any value they want and be able to choose from the drop down. The picklist Bounded property is false so I'm not sure what the issue is. It currently just works as a dropdown but I am not able to enter values as freeform.

  35. dileep says:

    HI..what us 'Dependent Picklist' in Siebel

  36. Swetha Jammigumpula says:

    Hi, there is no concept about unbounded dynamic picklist in siebel.
    in Static pick list only we have Bounded and UnBounded options.

    Swetha

  37. Pavansgallery says:

    Pick Applet, Dynamic Picklist: which will be better if performance issue is considered.

  38. Subbu Chunduri says:

    how the Dynamic pick list behave if the BC of the Pick Applet is different than the BC of the Picklist defined for the field.

    it is working fine for me. but how.
    Pick Applet BC is on S_PARTY_PER
    Pick List BC is on (Employee/Contact ) S_PARTY.

    The Query it is making is on S_PARTY with a where clause combined from Pick Applet search spec and Constrain property from Pick List.

    this looks wiered behaviour.
    anybody has explanation for this.

  39. nagesh says:

    hi i have a requirement when we click a button(order entry orders) pick applet(order line items) field values null

Leave a Reply

Contribute