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.

43 Responses to Picklist in Siebel – An Overview

  1. 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. 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. 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. 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. 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.

  6. 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.

  7. 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?????

  8. 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?????

  9. 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

  10. 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

  11. 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.

  12. 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.

  13. 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?

    • 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?

  14. 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?

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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…

  22. 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…

  23. 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!

  24. 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!

  25. 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.

  26. 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

  27. 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.

  28. 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.

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

    Swetha

  30. 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.

  31. How to make the text field(2) to be populated Automatically when choosing a Picklist field(1) who has just been selected, I already have a pick map on the picklist and the field(2) is populated correctly but I need to STEP OFF first/Clicked Outside in order for the field(2) to be populated.Is there a configuration way to make field(2) automatically populated once I have chosen the picklist field(1)?? Thank you

Leave a Reply

Contribute