Data propagation in pega (Case Management)

What is data propagation in pega?

Propagating data (mapping some important/required properties) from parent case to child case and child case to parent case. It can save time, properties will be available to complete case type easily and fast.

Parent case to child case data propagation

Mapping properties on the parent case type rule. If we open the case type rule (pyDefault) for Parent case, on the Process tab we can see the number of child cases attached to this parent case and after each child case there is a button "Data propagation".

Click on the button to map properties. We can map properties here or we can use data transform to map props.
data propagation parent to child
We need to know the work pages on the clipboard when we open Parent case and child case.
If we open the Parent casework page will be pyWorkPage but if we open the child case Parent case's work page will be pyWorkCover and the child case's work page will be pyWorkPage. Cover and Cover object relation.
parent-child-workpages

Created parent case Assistance Request and in the process pega created child case "FullService" and we can see the clipboard mapped properties (Vehicle Information and ServiceAddress), data is propagated.
data propagation tracer

parent-to-child-data-propagation

We can use the "Update case" shape from the "Automation" category, to update a single case or specific child case, or All child cases.

update case shape

Child case to parent case data propagation

There is no OOTB utility or shape to map data from child case to parent case.
Mapping data from child case to parent in some scenarios like when we finish child case process or any other possible situations how to propagate data from child case to parent case. We have multiple options to achieve this.
  1. Use Data transform
  2. Call Activity and save the parent page (activities are not recommended by pega)
  3. Use "Update Case" shape(With ID)
1. Data transform: In the child case life cycle we can use the Data transform rule to map values from child case to parent case. Below is the sample data transform mapping.  We need to write our own data transform to propagate data from child case to parent.
child-to-parent-data-mapping

Make sure to save the parent work page (pyWorkCover) after mapping the data in the process. We know that we can not save in data transform so we need to call data to transform from a Utility shape or using connector shape where we have the option to call data transform.
2. Activity: Pega is not recommending to use activities and in this scenario, we can use data transform or "Update case" shape. However we can use the property-set method and do the mapping and save the parent work page.
3. Update case shape: We can use the "Update case" shape to propagate data to child case by selecting the "A Single-case" option and providing parent case id as ".pxCoverInsKey ", write own data transform and map the properties. At run time With ID is .pyCaseID property.
update-case-background

At run time, Pega will call pzUpdateCase data to transform and get all the values from the "Update case" shape properties and pass them to "ACTIVITY WORK-COVER- PZUPDATEWRAPPER" which is responsible to call Data to transform used in the "Update case" shape. We need to make sure to save the parent work page (pyWorkCover) after mapping.

Difference between Data Propagation and Data transformation?

Data transform is a rule whereas data propagation is not a rule, it is the process to propagate data from parent to child case vice versa. To achieve the data propagation process we may use data transform.

Hope you have full insight into data propagation. Please share your comments/questions.


3 comments:

  1. Hi,
    Helpful post.
    It really helpful.
    Can you post topic on property qualifier, linked properties

    ReplyDelete
  2. Thank you. Will post on those topics.

    ReplyDelete
  3. Can you please explain a scenario where it is required to propagate data from parent to child instead of referring to pyWorkCover.

    ReplyDelete