Understanding pxPages in Pega What is pxPages? `pxPages` is a special property in Pega that is used to reference embedded pages within a clipboard page. It allows you to create and manage complex data structures by embedding other pages (data objects) within a parent page. `pxPages` is essentially a Page List property that can contain multiple instances of other pages. Use Cases for pxPages `pxPages` is useful in scenarios where you need to manage related data objects as part of a single entity. Here are some common use cases: 1. **Nested Data Structures:** - When you need to model complex hierarchical data, such as an order with multiple line items, each line item can be an embedded page within the order page. 2. **Referencing Related Data:** - To reference related data objects from another part of the application, such as customer details associated with an order. 3. **Data Aggregation:** - When you need to aggregate data from multiple sources or pages into a single structure for processing or display purposes. 4. **Complex Forms and Data Capture:** - When capturing data that has a nested or related structure, such as a form that includes multiple sections with their own sub-sections. How pxPages Works `pxPages` works by creating a container within a parent clipboard page that holds references to other pages. Each entry in the `pxPages` list is itself a clipboard page with its own properties and potentially other nested pages. Here is how it typically works: 1. **Define the pxPages Property:** - In your data class, define a `pxPages` property. This property is a Page List, and you need to specify the class of the pages it will contain. ```plaintext .pxPages(OrderItems) [Page List of class OrderItem] ``` 2. **Add Pages to pxPages:** - You can add pages to the `pxPages` property programmatically using activities, data transforms, or through user actions. 3. **Accessing pxPages:** - You can access the pages within `pxPages` using standard Pega property references. For example, `.pxPages(1).ProductName` would access the `ProductName` property of the first page in the `pxPages` list. Example Scenario: Order with Line Items Let's consider an example where you have an `Order` object that contains multiple `OrderItem` objects. 1. **Defining the Structure:** - Define the `Order` class with a `pxPages` property to hold the `OrderItem` objects. ```plaintext Order class: - OrderID (Text) - CustomerName (Text) - pxPages(OrderItems) [Page List of class OrderItem] ``` - Define the `OrderItem` class with its own properties. ```plaintext OrderItem class: - ProductName (Text) - Quantity (Integer) - Price (Decimal) ``` 2. **Adding Order Items:** - Use a data transform or an activity to add `OrderItem` pages to the `OrderItems` `pxPages` property. ```plaintext Data Transform: AddOrderItems - Append to .pxPages(OrderItems) - Set .ProductName = "Product A" - Set .Quantity = 2 - Set .Price = 100.00 - Append to .pxPages(OrderItems) - Set .ProductName = "Product B" - Set .Quantity = 1 - Set .Price = 50.00 ``` 3. **Accessing Order Items:** - In your UI or processing logic, you can access and iterate over the `OrderItems` `pxPages`. ```plaintext .pxPages(OrderItems)(1).ProductName // "Product A" .pxPages(OrderItems)(1).Quantity // 2 .pxPages(OrderItems)(1).Price // 100.00 ``` Summary - **Purpose:** `pxPages` is used to manage embedded pages within a parent clipboard page, allowing for complex data structures. - **Use Cases:** Nested data structures, referencing related data, data aggregation, and complex forms. - **How It Works:** Define a `pxPages` property, add pages to it, and access the nested pages using standard property references. - **Example:** An `Order` object with multiple `OrderItem` objects, each represented as a page within the `pxPages` property. By using `pxPages`, you can effectively manage complex data relationships and structures within your Pega application.
HI Harash,I have three local list values in radio control. If one selects, the next screen will refer to the same property, but the selected one will be disabled. how will implented
HI, I have two questions:-1. In Pega is there any Best practice instead of using DSS(Dynamic System settings)?. 2. We have table which is 100 records in production, so i need to modify or add new primary keys, Is there any configuration to change primary keys with out losing 100 records?. Those are above questions asked in interview.
1st Question Answer 1. Alternatives to Dynamic System Settings (DSS) in Pega Dynamic System Settings (DSS) are used to store global settings that can be changed without requiring a system restart. However, there are other best practices and alternatives for managing configuration settings in Pega: A. Data Pages Data Pages are a good alternative to DSS for storing and managing configuration data. They provide the following advantages: Data Security: Data Pages can have security policies applied to them. Dynamic Configuration: Data Pages can be sourced from data tables, allowing dynamic configuration without a restart. Caching and Refresh Strategies: Data Pages can be configured with caching and refresh strategies to optimize performance. B. Data Tables Data Tables can be used to store configuration settings. These tables can be updated without requiring a restart and can be managed through the Pega UI: Advantages: Easy to manage and update; supports bulk updates. Use Case: Suitable for storing lists, mappings, or configuration settings that need to be frequently updated. C. Rule-Admin-Product (RAP) For settings that change infrequently, you can use RAP to package and deploy the settings across environments. This approach ensures that settings are version-controlled and can be rolled back if necessary.
2nd Question Answer 2. Modifying or Adding Primary Keys Without Losing Records When modifying or adding primary keys to a table with existing records, it's essential to ensure data integrity and prevent data loss. Here are the steps you can follow to safely make these changes: A. Backup the Table Before making any changes, create a backup of the table to prevent data loss: Backup Data: Export the table data to a file or copy the data to a new table. B. Add the New Primary Key You can add a new primary key to the table using SQL or the database administration tools. Here’s how you can do it: Identify Unique Columns: Identify columns that will form the new primary key. Add Primary Key Constraint: Use the following SQL command to add a primary key: sql Copy code ALTER TABLE your_table_name ADD CONSTRAINT your_new_primary_key_name PRIMARY KEY (column1, column2, ...); C. Remove Existing Primary Key If you need to remove the existing primary key, use the following SQL command: sql Copy code ALTER TABLE your_table_name DROP CONSTRAINT your_old_primary_key_name; D. Update Pega Data Classes After modifying the database table, ensure that the corresponding Pega data classes are updated to reflect the changes: Update Data Classes: Update the data classes to include the new primary key properties. Re-save Rules: Re-save any rules that depend on the data class to ensure they are correctly referencing the new primary key. E. Testing Thoroughly test the changes in a non-production environment to ensure that the modifications do not cause any issues with data integrity or system functionality. Summary Alternatives to DSS: Data Pages: For dynamic configuration with security and caching. Data Tables: For easily managed and frequently updated settings. RAP: For infrequent changes with version control. Modifying Primary Keys Without Losing Records: Backup: Ensure data is backed up. Add Primary Key: Use SQL to add the new primary key. Remove Existing Key: If necessary, drop the old primary key. Update Pega: Reflect changes in Pega data classes. Test: Validate changes in a non-production environment. These steps should help you manage configuration settings effectively and safely modify primary keys in your production tables.
1. **Use Performance Analyzer (PAL):** PAL is a tool within Pega that helps you analyze performance issues. Here's how to use it: - **Start PAL:** Navigate to **Dev Studio > System > Operations > Performance**. - **Add Readings:** Click on **Add Reading** to capture performance data. - **Download PAL Data:** After performing the actions you want to analyze, add another reading, then download the PAL data to review the performance metrics. 2. **Use Tracer:** Tracer helps you trace and debug the processing of rules and activities in Pega. - **Start Tracer:** Navigate to **Dev Studio > System > Operations > Tracer**. - **Configure Tracer:** Set up the tracer settings based on what you need to capture. - **Run Tracer:** Execute the actions you want to trace and observe the detailed logs to find performance bottlenecks. 3. **Database Query Performance:** Check the performance of database queries executed by your application. - **DB Trace:** Enable DB trace from the Tracer tool to capture SQL queries. - **Analyze Queries:** Look at the execution time of queries to identify slow-running queries. 4. **Performance Profiler:** Performance Profiler provides detailed information about the time taken by each rule execution. - **Start Profiler:** Navigate to **Dev Studio > System > Operations > Performance Profiler**. - **Run Profiler:** Execute the application actions you want to profile. - **Analyze Data:** Review the profiler data to identify performance issues. 5. **Log Files:** Review Pega log files for any performance-related issues. - **Access Logs:** Navigate to **Dev Studio > System > Operations > Logs**. - **Analyze Logs:** Look for errors, warnings, and performance-related messages. 6. **AES (Autonomic Event Services):** If you have Pega AES (though not typically available in Personal Edition), it can provide advanced monitoring and alerting. - **Setup AES:** Configure your Pega application to send data to AES. - **Monitor Alerts:** Use AES dashboards to monitor and analyze performance metrics. 7. **System Reports:** Use built-in reports to monitor application performance. - **Access Reports:** Navigate to **Dev Studio > Reports > System Reports**. - **Run Reports:** Execute reports like "Slowest Interactions," "Top SQL Statements," etc., to get insights into performance issues. 8. **Custom Performance Reports:** Create custom reports tailored to your application's needs. - **Create Report Definition:** Define a report in **Dev Studio > Reports**. - **Configure Report:** Add the necessary filters and columns to capture performance data. - **Analyze Results:** Use the report to identify performance trends and issues. By combining these tools and techniques, you can comprehensively monitor and analyze the performance of your Pega Personal Edition application.
Hello Harsha , I am your student PEGA 571 batch. I have been trying for multiple positions outside. The below are the questions which i experienced as part of interview for USA postion , if possible can you please create separate video for this : (1) How to improve performance of Pega Application ? Especially while Using RD's for project? (2) When user logins in to the screen , before operator naviagates to case creation , application should hit 5 different API's and get data and post on screen. But here the page should login immediately within 15 to 20 seconds only. How you will manage this? how you will handle exception handling? (3) Pega Application has 1 TB data with attachments to case. How to take the back of all the 1TB data and place it in Sharepoint folder? (4) How to configure Data pages for cascading drop downs without hitting DB? We need to get the Data on every drop down selection without hitting DB? (5) How to configure Asynchronus in pega application? (6) What are the backend features realted to PEGA constalation? (7) How to handle load balancing in PEGA ? For eg , if there is huge load on node or server then how can we handle in routing to other nodes or servers ? (8) How do you analyze the slow page load in prod ? (9) How do you see if a page is loading so slow in dev which has a lot of integration data? (10) How do you report on embedded page structures? (11) Which authentication is used in pega while operator login? (12) What is the background process involved while operator logging to pega application? (13) How to customize login screen in pega? (14) What is security policy ? different security policys used in pega ? (15) What is the difference between Authentication and Authrization in pega ?
Very good information with clear explanation
Thanks a lot
Q. What is use of pxPages? Which scenario we can use. How it is working?
Understanding pxPages in Pega
What is pxPages?
`pxPages` is a special property in Pega that is used to reference embedded pages within a clipboard page. It allows you to create and manage complex data structures by embedding other pages (data objects) within a parent page. `pxPages` is essentially a Page List property that can contain multiple instances of other pages.
Use Cases for pxPages
`pxPages` is useful in scenarios where you need to manage related data objects as part of a single entity. Here are some common use cases:
1. **Nested Data Structures:**
- When you need to model complex hierarchical data, such as an order with multiple line items, each line item can be an embedded page within the order page.
2. **Referencing Related Data:**
- To reference related data objects from another part of the application, such as customer details associated with an order.
3. **Data Aggregation:**
- When you need to aggregate data from multiple sources or pages into a single structure for processing or display purposes.
4. **Complex Forms and Data Capture:**
- When capturing data that has a nested or related structure, such as a form that includes multiple sections with their own sub-sections.
How pxPages Works
`pxPages` works by creating a container within a parent clipboard page that holds references to other pages. Each entry in the `pxPages` list is itself a clipboard page with its own properties and potentially other nested pages.
Here is how it typically works:
1. **Define the pxPages Property:**
- In your data class, define a `pxPages` property. This property is a Page List, and you need to specify the class of the pages it will contain.
```plaintext
.pxPages(OrderItems) [Page List of class OrderItem]
```
2. **Add Pages to pxPages:**
- You can add pages to the `pxPages` property programmatically using activities, data transforms, or through user actions.
3. **Accessing pxPages:**
- You can access the pages within `pxPages` using standard Pega property references. For example, `.pxPages(1).ProductName` would access the `ProductName` property of the first page in the `pxPages` list.
Example Scenario: Order with Line Items
Let's consider an example where you have an `Order` object that contains multiple `OrderItem` objects.
1. **Defining the Structure:**
- Define the `Order` class with a `pxPages` property to hold the `OrderItem` objects.
```plaintext
Order class:
- OrderID (Text)
- CustomerName (Text)
- pxPages(OrderItems) [Page List of class OrderItem]
```
- Define the `OrderItem` class with its own properties.
```plaintext
OrderItem class:
- ProductName (Text)
- Quantity (Integer)
- Price (Decimal)
```
2. **Adding Order Items:**
- Use a data transform or an activity to add `OrderItem` pages to the `OrderItems` `pxPages` property.
```plaintext
Data Transform: AddOrderItems
- Append to .pxPages(OrderItems)
- Set .ProductName = "Product A"
- Set .Quantity = 2
- Set .Price = 100.00
- Append to .pxPages(OrderItems)
- Set .ProductName = "Product B"
- Set .Quantity = 1
- Set .Price = 50.00
```
3. **Accessing Order Items:**
- In your UI or processing logic, you can access and iterate over the `OrderItems` `pxPages`.
```plaintext
.pxPages(OrderItems)(1).ProductName // "Product A"
.pxPages(OrderItems)(1).Quantity // 2
.pxPages(OrderItems)(1).Price // 100.00
```
Summary
- **Purpose:** `pxPages` is used to manage embedded pages within a parent clipboard page, allowing for complex data structures.
- **Use Cases:** Nested data structures, referencing related data, data aggregation, and complex forms.
- **How It Works:** Define a `pxPages` property, add pages to it, and access the nested pages using standard property references.
- **Example:** An `Order` object with multiple `OrderItem` objects, each represented as a page within the `pxPages` property.
By using `pxPages`, you can effectively manage complex data relationships and structures within your Pega application.
HI Harash,I have three local list values in radio control. If one selects, the next screen will refer to the same property, but the selected one will be disabled. how will implented
Pls Contact This Number :-+91 96525 32753
HI, I have two questions:-1. In Pega is there any Best practice instead of using DSS(Dynamic System settings)?.
2. We have table which is 100 records in production, so i need to modify or add new primary keys, Is there any configuration to change primary keys with out losing 100 records?.
Those are above questions asked in interview.
1st Question Answer
1. Alternatives to Dynamic System Settings (DSS) in Pega
Dynamic System Settings (DSS) are used to store global settings that can be changed without requiring a system restart. However, there are other best practices and alternatives for managing configuration settings in Pega:
A. Data Pages
Data Pages are a good alternative to DSS for storing and managing configuration data. They provide the following advantages:
Data Security: Data Pages can have security policies applied to them.
Dynamic Configuration: Data Pages can be sourced from data tables, allowing dynamic configuration without a restart.
Caching and Refresh Strategies: Data Pages can be configured with caching and refresh strategies to optimize performance.
B. Data Tables
Data Tables can be used to store configuration settings. These tables can be updated without requiring a restart and can be managed through the Pega UI:
Advantages: Easy to manage and update; supports bulk updates.
Use Case: Suitable for storing lists, mappings, or configuration settings that need to be frequently updated.
C. Rule-Admin-Product (RAP)
For settings that change infrequently, you can use RAP to package and deploy the settings across environments. This approach ensures that settings are version-controlled and can be rolled back if necessary.
2nd Question Answer
2. Modifying or Adding Primary Keys Without Losing Records
When modifying or adding primary keys to a table with existing records, it's essential to ensure data integrity and prevent data loss. Here are the steps you can follow to safely make these changes:
A. Backup the Table
Before making any changes, create a backup of the table to prevent data loss:
Backup Data: Export the table data to a file or copy the data to a new table.
B. Add the New Primary Key
You can add a new primary key to the table using SQL or the database administration tools. Here’s how you can do it:
Identify Unique Columns: Identify columns that will form the new primary key.
Add Primary Key Constraint: Use the following SQL command to add a primary key:
sql
Copy code
ALTER TABLE your_table_name
ADD CONSTRAINT your_new_primary_key_name PRIMARY KEY (column1, column2, ...);
C. Remove Existing Primary Key
If you need to remove the existing primary key, use the following SQL command:
sql
Copy code
ALTER TABLE your_table_name
DROP CONSTRAINT your_old_primary_key_name;
D. Update Pega Data Classes
After modifying the database table, ensure that the corresponding Pega data classes are updated to reflect the changes:
Update Data Classes: Update the data classes to include the new primary key properties.
Re-save Rules: Re-save any rules that depend on the data class to ensure they are correctly referencing the new primary key.
E. Testing
Thoroughly test the changes in a non-production environment to ensure that the modifications do not cause any issues with data integrity or system functionality.
Summary
Alternatives to DSS:
Data Pages: For dynamic configuration with security and caching.
Data Tables: For easily managed and frequently updated settings.
RAP: For infrequent changes with version control.
Modifying Primary Keys Without Losing Records:
Backup: Ensure data is backed up.
Add Primary Key: Use SQL to add the new primary key.
Remove Existing Key: If necessary, drop the old primary key.
Update Pega: Reflect changes in Pega data classes.
Test: Validate changes in a non-production environment.
These steps should help you manage configuration settings effectively and safely modify primary keys in your production tables.
Hi,I have one question
how do you check the application performance ?
1. **Use Performance Analyzer (PAL):**
PAL is a tool within Pega that helps you analyze performance issues. Here's how to use it:
- **Start PAL:** Navigate to **Dev Studio > System > Operations > Performance**.
- **Add Readings:** Click on **Add Reading** to capture performance data.
- **Download PAL Data:** After performing the actions you want to analyze, add another reading, then download the PAL data to review the performance metrics.
2. **Use Tracer:**
Tracer helps you trace and debug the processing of rules and activities in Pega.
- **Start Tracer:** Navigate to **Dev Studio > System > Operations > Tracer**.
- **Configure Tracer:** Set up the tracer settings based on what you need to capture.
- **Run Tracer:** Execute the actions you want to trace and observe the detailed logs to find performance bottlenecks.
3. **Database Query Performance:**
Check the performance of database queries executed by your application.
- **DB Trace:** Enable DB trace from the Tracer tool to capture SQL queries.
- **Analyze Queries:** Look at the execution time of queries to identify slow-running queries.
4. **Performance Profiler:**
Performance Profiler provides detailed information about the time taken by each rule execution.
- **Start Profiler:** Navigate to **Dev Studio > System > Operations > Performance Profiler**.
- **Run Profiler:** Execute the application actions you want to profile.
- **Analyze Data:** Review the profiler data to identify performance issues.
5. **Log Files:**
Review Pega log files for any performance-related issues.
- **Access Logs:** Navigate to **Dev Studio > System > Operations > Logs**.
- **Analyze Logs:** Look for errors, warnings, and performance-related messages.
6. **AES (Autonomic Event Services):**
If you have Pega AES (though not typically available in Personal Edition), it can provide advanced monitoring and alerting.
- **Setup AES:** Configure your Pega application to send data to AES.
- **Monitor Alerts:** Use AES dashboards to monitor and analyze performance metrics.
7. **System Reports:**
Use built-in reports to monitor application performance.
- **Access Reports:** Navigate to **Dev Studio > Reports > System Reports**.
- **Run Reports:** Execute reports like "Slowest Interactions," "Top SQL Statements," etc., to get insights into performance issues.
8. **Custom Performance Reports:**
Create custom reports tailored to your application's needs.
- **Create Report Definition:** Define a report in **Dev Studio > Reports**.
- **Configure Report:** Add the necessary filters and columns to capture performance data.
- **Analyze Results:** Use the report to identify performance trends and issues.
By combining these tools and techniques, you can comprehensively monitor and analyze the performance of your Pega Personal Edition application.
Hello Harsha ,
I am your student PEGA 571 batch.
I have been trying for multiple positions outside.
The below are the questions which i experienced as part of interview for
USA postion , if possible can you please create separate video for this :
(1) How to improve performance of Pega Application ? Especially while Using RD's for project?
(2) When user logins in to the screen , before operator naviagates to case creation , application should hit
5 different API's and get data and post on screen. But here the page should login immediately within 15 to 20
seconds only. How you will manage this? how you will handle exception handling?
(3) Pega Application has 1 TB data with attachments to case. How to take the back of all the 1TB data and place
it in Sharepoint folder?
(4) How to configure Data pages for cascading drop downs without hitting DB?
We need to get the Data on every drop down selection without hitting DB?
(5) How to configure Asynchronus in pega application?
(6) What are the backend features realted to PEGA constalation?
(7) How to handle load balancing in PEGA ? For eg , if there is huge load on node or server then how can we handle in routing to
other nodes or servers ?
(8) How do you analyze the slow page load in prod ?
(9) How do you see if a page is loading so slow in dev which has a lot of integration data?
(10) How do you report on embedded page structures?
(11) Which authentication is used in pega while operator login?
(12) What is the background process involved while operator logging to pega application?
(13) How to customize login screen in pega?
(14) What is security policy ? different security policys used in pega ?
(15) What is the difference between Authentication and Authrization in pega ?
Sure