Change value action in Constellation 25

I need to implement a feature and I’m not sure how to do it in Constellation 25.

In the case type, I have an embedded list of existing Data type. This list initially has no records, and the user who has to enter them manually. One of the properties of this Data type is a Picklist of 3 elements, and the user can select one of them. If they select the first record, only some fields are displayed; if they select the other, other fields are displayed. The problem is that I don’t know how to clear the values ​​entered in the previously selected fields.

In the Traditional UI, this could be achieved with the Change Value action and clearing the entered values ​​in a data transform. However, Constellation doesn’t offer anything like that.

Any suggestions would be greatly appreciated.

The Constellation approach is to use form refresh settings so that when the picklist changes, pyRefreshData runs and clears the no-longer-relevant properties on the current embedded page.

For your embedded data row-

  • Use visibility conditions to show the relevant fields based on the picklist value
  • Add a form refresh trigger on that picklist field so changing it runs refresh logic
  • In the refresh data transform you can clear the fields.

Because this is an embedded list, make sure the logic is applied in the data class of the embedded property so the current row’s properties are the ones being cleared.

The recommendation to achieve this requirement with the following steps.

  1. Modal dialog for your Add/Edit records
  2. Configure the View using (Data Type → Actions → Update Details Action → Configure View)
  3. Form Refresh settings on the flow action rule for your data type instance
  4. Visibility conditions based on your business rules on Step2
  5. if you need ot prefill values based on the selection, then use form Refresh Settings to pre populate

Is it necessary to clear the values “on change”?

@RameshSangili and @RaviChandra have outlined the Form Refresh setting as one way to do this BUT you could also implement this. If you are on Infinity '25, it supports Embedded Data tables support Views or Actions. You could clean this up in post processing - slightly less problematic in that you don’t get stuck in a huge event driven UI (aka “action sets”) that has conflicting logic or calls to the server.

Most likely Form Refresh settings will be your solution but worth considering post-processing on the flow action too.

First of all thanks for your response.

I can see that in the embedded table there are two options for Add/edit: View and Action. What is the difference? Action only allow the Flow actions and View any view, even flow action view. So, if you choose View option and select any view, there is not pre/post processing. Right?

Correct. View is just the view - the underlying flow action would never be called.

No pre/post processing, no validation, no relabeling flow action buttons. It was introduced in '25, and more details can be found in this Pega Docs page. We also have a Constellation 101 running through it in more details: Pre & Post Processing for Embedded Data .

Thanks so much @MarcCheong .

Post processing works for me, to clean all the simple values on the page. But I have Page list property configured as multiselect and it allows selecting multiple values. In the run time the selected values are saved in the list and should also be cleared, but I can’t find the way to do it? I don’t know if it is possible or not. If it is not possible, how could I implement the required solution to offer select multiple values for an item.

Thanks in advance.

You could just remove property page?

I was trying to search for step by step instructions, Maybe this helps? How to Remove Items from a Page List in a Data Transform

@MarcCheong Thank you for the suggestion, but it doesn’t work for me.

I remember that in traditional Pega version this method of deleting an embedded list worked perfectly. But apparently Constellation has a different approach.

I have an embedded list of an existing Data Type. The user needs to add records to this list in the table. Each record is added using an Action (a Flow Action created in the record’s Data Type). However, the issue is complicated because one of the record’s data elements is a multi-select list of type Data Reference, allowing the user to select multiple values ​​from this list for that record. Adding records works fine, but if I want to modify a value, I’ve added a refresh with a corresponding data transform to delete previously entered values, but it doesn’t work well. There’s no way to delete the selected values ​​from the multi-select list.

I don’t fully understand how lists work in Constellation. The list property is of type Data Reference. In the view, this property is configured with a data page to offer selection values ​​and Multi-Select mode. After the user selects all the necessary options from the list provided by the data page, only these values ​​remain in the property list. I understand that this is controlled by .pySelected or something similar. Perhaps to remove these selected values, it’s necessary to remove this selection flag. But I can’t find this flag anywhere.

On the other hand, I’ve noticed that in Constellation, when working with tables using flow actions (edit/add), only the values ​​present in the view are considered.

Constellation was supposed to simplify development, but it’s making things much more complicated for me.

@HalynaK2

I have tried the scenario you mentioned. Rendering the view with the data works on the pageInstructions. I have even tried to update the pageInstructions using the pyDefault DT of the data class, but no luck.

Basically, even if you clear the property reference value in pyRefreshData DT or pyDefault DT during the pageInstructions parsing, the DOM still has that value and does not get cleared in the view. This applies both for View and Action type of modal.

Still searching and thinking, how can we crack this use case.

Constellation is evolving with every version and hopefully things will get better and efficient in future.

Regards

JC

@JayachandraSiddipeta I have a feeling the issue is related to the property that controls the selection, it might be .pySelected. We’d need to simulate the action that occurs when one of the selected items is removed from the multi-list view, but I don’t know how.