Conversation
instasmart software solutions
NL
Last activity: 6 Jan 2026 10:37 EST
Dropdown control issue in a page list
Hello everyone,
I'm working on a constellation project (24.2). I'm facing an issue related to the dropdown control.
I have a list called subscriptions. In this list, I will first select the ticket type from the dropdown. Based on the selected ticket type, I need to display the corresponding set of events in the dropdown below.
I referred to a data page in the events property and passed the ticket type as a parameter to the data page.
During runtime, the events dropdown remains empty even after selecting a ticket type. I attempted to debug using Inspect, but the selected ticket type is not being passed to the referred data page.
I believe this is a common use in most scenarios. Does anyone have any idea how to solve this issue, or any other approaches to implement
Thanks,
Lakshman.
-
Reply
-
Share this page Facebook Twitter LinkedIn Email Copying... Copied!
Pegasystems Inc.
PL
@LakshmanKumarThotathis functionality should work just fine. Have you done configuration from Data Model tab or directly on a property level.
It is advised to use Data Model tab, please attach screenshots from config on DM tab
instasmart software solutions
NL
Hi @Kamil Janeczek, A minor adjustment: I have a page list named Events, which includes a property called Event Name. I need to pass the selected ticket type to the Event Name property.
I have a property called "subscriptions" that includes a "Ticket Type" field. Based on the selected "Ticket Type," I want to display the corresponding values in the "Event Name" property.
Subscriptions-- Page list Property--class-ABC-Work-Contact, Referred class is-- ABC-Data-Contact
Ticket Type-- Property--class-- ABC-Data-Contact
Events-- Page List Property--class-- ABC-Data-Contact, Referred class is-- ABC-Data-Contact-Events
Event Name-- Property-class-- ABC-Data-Contact-Events.
Please refer to the screenshot.
Novitates
IN
@LakshmanKumarThotaWe have encountered the same situation in one of our application.
There are two ways to solve this problem
Option1 : Using pyDefault
You can write a pyDefault data transform in you embedded data class (Event) and set the .ParentTicketType = pyWorkPage.TicketType
This data transform will execute when you click the Add Event button on the embedded table and pull the Workpage TicketType property and set it to your new data object context which you can use a parameter to send to the Events data page to fetch the relevant events.
If you directly pass pyWorkPage.TicketType to the Events data page on the property definition, it will not work. So you have to rely on the pyDefault DT.
Pitfall in this approach is that you have to hardcode the pyWorkPage to get the work case context. There is a parameter "workPage" with value "pyWorkPage" passed to your DT automatically, but somehow i was not able to get the work case context page using that param. You can explore more here and if you find a solution without hardcoding, let us know.
You may want to write conditions before you use pyWorkPage for its existence using PageExistsWithClass(Param.workPage, tools) so that you don't face null pointer exceptions.
Option 2 : Using Declare Expression
@LakshmanKumarThotaWe have encountered the same situation in one of our application.
There are two ways to solve this problem
Option1 : Using pyDefault
You can write a pyDefault data transform in you embedded data class (Event) and set the .ParentTicketType = pyWorkPage.TicketType
This data transform will execute when you click the Add Event button on the embedded table and pull the Workpage TicketType property and set it to your new data object context which you can use a parameter to send to the Events data page to fetch the relevant events.
If you directly pass pyWorkPage.TicketType to the Events data page on the property definition, it will not work. So you have to rely on the pyDefault DT.
Pitfall in this approach is that you have to hardcode the pyWorkPage to get the work case context. There is a parameter "workPage" with value "pyWorkPage" passed to your DT automatically, but somehow i was not able to get the work case context page using that param. You can explore more here and if you find a solution without hardcoding, let us know.
You may want to write conditions before you use pyWorkPage for its existence using PageExistsWithClass(Param.workPage, tools) so that you don't face null pointer exceptions.
Option 2 : Using Declare Expression
You can create a declare expression on the property .ParentTicketType and get the parent work case context's TicketType value using the below function,
@pxGetValueFromParentPageOfProperty(StepPage, "TicketType")
Then use the .ParentTicketType property as the parameter to your Events data page. This should fetch the events for that ticket type.
Pitfall in this approach is that every time you create an entry in the embedded data table or any where in the application, your declare expression will execute. But atleast there will not be any hardcoding.
You may want to guard your declare expression with certain conditions on the existence of parent context (pyWorkPage) before you access the function and ensure the execution won't break.
Both the approaches will give you expected result. Choose the best one which suits your requirement after discussing with your LSA.
We went with Option 1 as we had just one screen where we utilized this embedded pagelist functionality. I know it's not a good thing to hardcode but it is what it is until what we did.
Any other approaches/ideas to this solution from community members is highly appreciated.
Hope this helps. Happy Coding!!!
Thanks
JC
-
Marc Cheong
instasmart software solutions
NL
@JayachandraSiddipeta, Thank you so much for your time and suggestions.
I need to pass the ticket type value from a page list. Will the two approaches above work?
We have a page list called "Subscription." Within this page list, there are two properties: one is "Ticket Type" (a text property), and the other is "Events" (a page list property). Within the "Events" page list property, there is a text property called "Event Name."
Please refer to the response above to understand the class structure.
Now I want to pass the ticket type from the subscriptions page list to the event name in the events page list.
Please refer to the attached screenshots.
Thanks,
Lakshman.
Novitates
IN
@LakshmanKumarThota Yes you can pass the ticket type to any level as its a scalar property even though you choose from a list in the dropdown.
This is your structure, Work case --> Subscription --> Event
So get the ticket type first to subscription level and then write the same logic in event level also to get it from subscription level to event level.
Try to implement the logic in my post and let us know.
Regards
JC
instasmart software solutions
NL
@JayachandraSiddipeta, The Ticket Type is a scalar property, but it's inside a page list (Subscriptions). I can still refer to the ticket type property in the Event Name property, but the problem is at runtime. The event type is not being passed from the subscriptions page list property to the Event Name property in another page list property called Events.
The Events page list property is created inside the subscriptions.
Subscriptions-- Page list Property--class-ABC-Work-Contact, Referred class is-- ABC-Data-Contact
Ticket Type-- Property--class-- ABC-Data-Contact
Events-- Page List Property--class-- ABC-Data-Contact, Referred class is-- ABC-Data-Contact-Events
Event Name-- Property-class-- ABC-Data-Contact-Events.
Thanks,
Lakshman.
Novitates
IN
@LakshmanKumarThota Please find attached document having similar implementation as per your requirement,
- Work class (Parent)
---- Configuration Source (Child) (Data)
-------- Configuration Item (Grand Child) (Data)
From grand child context, if you want to retrieve the top level properties below is how you do,
- From Child - @pxParentProperty("ImageType")
- From Parent - @pxParent2Property("TopView")
The implementation of retrieving the child and parent level properties from grand child context depends on how you are entering the information in the embedded pages,
- If Inline editing - use pyDefault DT in the grand child class
- If Modal window - In v25, you have an option of Action as well, where you can create a flow action in grand child class and retrieve parent/child information in the pre-processing DT. For v24, this action option is not available.
- Regardless of above both options a generic solution would be to create a declare expression on a grand child property and use the above mentioned function to retrieve values
Hope this helps.
Regards
JC