• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/523

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

523 Cards in this Set

  • Front
  • Back

When would you consider using Pega BPM as a project methodology?

When you are working with a client who is coming from waterfall and they consider agile too risky

When developing a flow action, section and privilege, what should these all have?

The Same Name


e.g BookAppointment

What would you use a Custom Field for?

Rules can be tagged with them to identify a theme

How do you search rules via a Custom Field?

Find Rules By Custom Field for decision rules. Otherwise create a report in Index-CustomFields

What do you need to do in Pega to enable feedback functionality?

Enable it on the Project Management landing page, give the operator the Feedback role.

What Page List Property on a Rule holds guardrails?

pxWarnings

To add or modify a Guardrail, which activity would you use?

"CheckForCustomWarnings" - @baseclass

When adding a custom guardrail message;


The ____________ function does not return a value and therefore must be called from a ____________

A)pxAddGuardrailMessage B) Java Step

Where can you modify the organizational hierarchy ?

The Organization landing page > Organization Chart

What is the best practice when Pega's OOTB organisational structure cannot handle requirements?

Properties can be added to the Org ect classes representing the organizational objects. Or a Data Table holding the info can be created, we would then need to implement custom routing.

What is the point of ruleset validation?

The purpose of ruleset validation is to guarantee that rules referenced are available on the target system when the ruleset is promoted.

What is the difference between Application based validation and Ruleset based validation, on a Ruleset?

RBV is more flexible allowing you to reference any Rulesets (as long as it isn't a cyclic ref). ABV is more restricted, allowing you to reference built on application and application Rulesets.

What are some of the benefits of ABV on Rulesets?

- Performance Advantages


- Closes the Gap between Design and Runtime



What can you run to check the ruleset/application build has not broken rule references?

DesignerStudio > Application >Tools > Validation

What are the actions we can take in the Ruleset Security tab?

-Set passwords for updating and creating Rulesets/Versions


-Specify an approval flow for rule check-in

What can you do with the Copy/Merge Ruleset wizard?

- Rename a ruleset


- Change a ruleset version number


- Merge/Copy several rulesets into one


- Merge/Copy ruleset versions into one version

After using the Delete a ruleset tool to delete a ruleset version, you release you need it back, what are the options?

The utility saves the deleted ruleset in an archive file named __DELETE.zip in the ServiceExport directory located under temp. To recover a ruleset, specify the name and version number and then click the Restore button, or alternatively use the Import utility.


What is the difference between a Major and Minor Version Skim?

-Major version will take the highest from all inside the major number, and bring it into a new Major number, it does not take Withdrawn rules


-Minor will take the highest from all inside the minor number, it will take withdrawn rules.

I have a flow rule that is mostly the same between implementations but some routing is different, should I save this into the implementation layer and tweek it?

You should consider designing it so you can use dynamic referencing and just pass in different properties for the routing in the implementation level.

When configuring dynamic referencing for a framework, it is often advisable to create your properties in a ______________

Data Class




Bonus: This class should be in the framework layer e.g CredCo-Pies-CrustFW-AppExtension

For dynamic referencing you would create a ____ this would reference a __________ in the _____ you created to hold the extension _________, you would then reference these at runtime. Often using specific ___________ to populate them.

A) Page Property


B) Data Page


C) Class


D) Properties


E) Data Transforms

How does a DCO session vary when using a industry specific framework?

There should be more of a focus on Gap Analysis. Talks will focus on Key Features of the framework, that can springboard the application.

What is the most common mistake to avoid when using solution frameworks?

-The Solution FW content is not fully known at inception and it isn't leveraged



We can only rename a class if the following conditions are met:

-The class must be visible in your access group.


-All rules to be modified must be checked in.


-All rules to be modified must belong to unlocked ruleset versions.


-The new name of the class must not already exist in the system.


-It is not possible to change an abstract class to a concrete class or vice versa.

After running a refactor wizard you realize you have an unwanted change, what can you do?

You should always do a backup before running a refactor wizard. But you could also go to the ServiceExport directory and fetch the file with “_REFACTOR” appended. This can be re-imported.

What is the impact of not renaming impacted rules when running the rename a class wizard?

Work items that referenced the original class can only be viewed as XML.

You can unlock rulesets in the rename a class wizard?

TRUE


Bonus: The wizard will relock them for you afterwards

The wizard can find all references without help?

FALSE




Bonus: we are asked to change values in strings that are not clearly class names. The wizard cannot determine whether these strings should be changed.

What errors are reported by the Rename a class wizard?

- Fail - The system was unable to refactor the rule.




- Skipped - Rules that were not selected for refactoring are marked as skipped.




- Refactored with errors - Indicates that the refactored rule was saved to the system, but is not valid. These rules must be reviewed and corrected.

When the rename a class wizard is complete what has changed?

- The class is renamed.


- Direct and pattern inheritance references the new class name.


- Work- instances associated with the class are renamed.


- Rules reference the new class name.


- The Data-Admin-DB-Table instance is updated to reflect the new class name if the class is a work pool or defines an external table.


-The wizard creates a new History- class for the new class and the one for the old class name is deleted.

What is a typical use case for the move rules wizard?

You want to move a bunch of rules to the parent class, this is a faster way of doing it.

What does the delete a class wizard remove?

- The class itself and all of its pattern- inheritance dependent classes.


- Associated rules such as properties and activities, including checked out ones.


- Instances, including work items.


- Attachments and assignments.


- Classes related to deleted classes by direct inheritance are not deleted.

What should you do before deleting a class?

Deleting a class might render an application inoperative. It is therefore recommended that a full backup be performed before running this utility.

Rules that are not deleted will be skipped and the delete a class tool will continue?

FALSE


Bonus:If there are undeleted rules, the class cannot be deleted. However, all other rules associated with the class have been deleted. To complete deleting the class, modify the rules listed so that they can be deleted and then run the wizard again.

What is the scope of the Search/Replace a String wizard?

Strings are replaced only in rules and data instances, not in work items, assignments, attachments, or other objects.

What is it recommended to do before running the Search/Replace a string Wizard?

-Enable full text search


-Do a system back-up


Bonus: Rules updated by the wizard are not automatically re-validated and may become invalid as a result of string replacement.

What should you never use the Search/Replace a string Wizard for?

Renaming class or ruleset names.

What does the rule compare wizard do?

Lets us compare any two rule instances of the same rule type.

(Possible LSA question found online, may be out of date)


A rule is shown in the Final Conflicts report after doing an upgrade. Which of the following describe what could be done to resolve the conflict?



B. The rule could be deleted or Withdrawn so that the standard version of the rule is executed


C. Do a SaveAs on the conflicting rule to a new name and update references to this new rule

(Possible LSA question found online, may be out of date)


When is it appropriate to use a spin-off?

When you wish to start another flow execution while continuing down the current process path

(based on possible LSA question found online, may be out of date)


You are trying to decide if a task needs 2 assignments or 2 subcases, how do you decide?

It must be possible to edit fields for "1" and "2" at the same time.


"1" and "2" require the capability to be reopened independently

An application administrator has been sent a number of complaints that after nightly server restarts the PRPC application is slow in the early morning. Which of the following actions can be used to mitigate this issue?

A. Enable Assembly Avoidance


B. Restart System Pulse


C. Configure and execute Static Assembler


D. Increase the size of the Rule Cache


Answer: C

What are the two major types of parallel business processing in Pega?

- Same-case parallelism


- Subcase parallelism

What is Same-Case Parallelism?

Parallelism via sub processes, within the same case.


e.g Split-Join, Split-For-Each, subprocess spin off

What are the options if we want the parent case to wait for it's subcase when one or more is spun off in the flow?

- Route to a Workbasket Assignment with no Flow Actions.


- Route to a Worklist Assignment with a single Flow Action that wraps back on that Assignment.


- Use a Wait Shape.


Bonus: 1 and 2 must use a ticket to progress

Using Sub-Case parallelism has the benefit of Dependency Management. What does this mean?

A subcase can be configured to launch based on its parent’s state as well as the states of one or more sibling cases. No such capability exists with same-case parallelism.

Using Sub-Case parallelism has the benefit of Data Propagation. What does this mean?

You can propagate values to child cases, restricting the access of what values the child needs, and if the info needs to be stale from the point of propagation. This isn't so much a benefit but a possible design choice.

Using Sub-Case parallelism has the benefit of Ad-Hoc Processing. What does this mean?

A subcase can be used to perform ad-hoc processing at run-time. There is no concept of ad-hoc processing with regard to same-case parallelism.

Using Sub-Case parallelism has the benefit of Case Designer Mediated Specialization. What does this mean?

Cases can be circumstanced using the Case Designer. Though it is possible to use circumstanced flows during same-case parallelism, the capability to circumstance flows is not supported by the Case Designer.

Using Sub-Case parallelism has the benefit of Class Specialization. What does this mean?

Being a work type, subcases can utilize class specialization unlike flows used in same-parallelism.

Using Same-Case parallelism has the benefit of Attachment View by Child Capability . What does this mean?

A parent case can view all child case


attachments. However, extra logic is required to avoid Data-WorkAttach- duplication should a child case need to see a parent case attachment. With same-case parallelism, every child process can view every attachment.

Using Same-Case parallelism has the benefit of Reporting Simplicity. What does this mean?

No joins will be necessary to report across the spun off logic. It is worth mentioning, the Case Designer-mediated Calculation mechanism can be used to reduce this complexity in subcase parallelism.

Using Same-Case parallelism has the benefit of Policy Override. What does this mean?

It is more complex to manage “Suspended work” when multiple cases are involved hence same-case has an advantage in this respect.

Using Same-Case parallelism has the benefit of Process Simplicity. What does this mean?

When the actions required from different users take very little time to complete, and temporary locking is a non-issue, OOTB solutions such PartyMajorApproval can be used that are much simpler than implementing the same functionality using subcases.

What do you call base and circumstanced cases in Pega?

- Circumstance-qualified case types (Circumstanced)


- Unqualified case type (Base)

What are the complications if you want to create a Circumstance-Qualified case using a Circumstance Template, date time range (not a single property circumstance)?

-The CQCT must use a single value property in order to be automatically or procedurally instantiated.


- You cannot circumstance cases using the details tab on Case Designer

What actions are available on the adhoc case dashboard?

- Add Tasks


- Configure for reuse


- Add a File



What are the properties of a task in an adhoc case?

-Deadline


-Instructions


-Assign To

When does an adhoc case get resolved?

When a user manually closes it

How do we typically include adhoc case functionality?

Typically, we use the standard flow action pyCreateAdhocCase as a local or connector action to create adhoc cases.

When the adhoc case action is submitted, the standard _______ instantiates an adhoc case called __________ of class group ___________.

A) pySimpleCaseWorkFlow


B) Simple Case


C) Work-Cover-SimpleCase

How do we modify the case prefix for adhoc cases ?

Two ways to do this:


1) Add the simple case to your application rule and update it there


2) Copy pyDefault from Work-Cover-, into the simple case class in your app ruleset, set it there.

How do we extend the adhoc dashboard?

Edit pyAdhocCaseActions (Section)

What are the rules for extending add task functionality (in adhoc cases) ?

The Add Tasks icon launches a local flow action pyCreateAdHocTasks in which users add tasks to the ad hoc case in the pyAdHocProcessesSequential section.

What order are tasks in adhoc cases processed?

Sequentially, deadline date does not impact this.

How is each task processed in adhoc cases?

A task is processed as a Complete Task assignment in the Data-AdHocTask.WorkTask Flow. A Split-For-Each shape in the AdHocProcess flow iterates across the Tasks page calling the WorkTask flow until all tasks on the grid are completed.

How can you create an adhoc case as a top level case?

Data-Portal.pyCreateQuickCase activity


Bonus: This is already configured with a section and button in the case manager portal

How do you create an adhoc case from pega pulse?

From pulse actions menu, select create task, this launches the pyCreateAdhocCaseFromPulse flow action.


Bonus: When submitted, a link to the case displays on the post.

In order to take advantage of making adhoc cases permanent, what prerequisites do we need?

- Users have the pyCaseInstitutionalize privilege.


- The current application contains an unlocked ruleset version.

What happens when you configure an adhoc case with an adhoc case subcase, for reuse?

You are prompted to name the parent and subcase, you do not have the include the subcase.


Bonus: other configurations such as top level case, subcase, adhoc subcase are all supported too.

Pega provides three Application Programming Interfaces, or APIs; What are they?

1) The Process API


2) Engine API


3) REST API

What is the Process API?

A collection of standard rules provided which can be directly reused or overridden in our application.

Where can you browse the Process API?

Processes landing page, APIs tab.

What is the engine API?

The Engine API is a java based API which offers a collection of interfaces.

What is the com.pega.pegarules.pub.runtime package?

It hosts public interfaces for activity, when, edit and stream rules.

What functionality does the PublicAPI interface provide?

It provides basic functionality and maintains the execution context associated with each Clipboard Thread.

How would we typically reference the PublicAPI?

We would use the keyword “tools” to identify the PublicAPI interface and access its functionality. For example, tools.findPage(“myPage”).

What is the com.pega.pegarules.pub.clipboard package?

It holds interfaces representing the clipboard pages and properties and allowing their manipulation.

What is the com.pega.pegarules.pub.context (in the Engine API) package?

It provides interfaces to Requestor, Thread and Node objects.

What is the com.pega.pegarules.pub.database package?

It provides different relational database functionality

What are some updates to Flows, that could cause problems for existing cases?



-Replacing/Removing an Assignment shape


-Removing or replacing wait points in the flow; Subprocess, Split-For-Each shapes ect.




Bonus: Replacing is a problem because existing cases will have old ids on them, which will then be invalid.

What are some examples of changes to flow properties that will cause problems?

- pxTaskName — the shape ID of the assignment shape to which it is linked


- pxTaskLabel — the developer-entered text label of the assignment shape.


- pyInterestPageClass — the class of the flow rule


- pyFlowType — the name of the flow rule

What are the three recommended ways to update risky flow rules that are in production ?

- Revert the user’s ruleset to the original, lower versions


- Process existing assignments in parallel with the new flow


- Add tickets to control processing of existing assignments

If you have Flow Problems, where can you go to view/resolve these?

Flow Problems landing page

What are the actions you can take on the Flow Problems Landing page? (for fixing flows)

- Resume Flow: resume flow execution after the step that paused.


- Retry Last Step: begin by re-executing the step that paused.


- Restart Flow: start the flow at the initial step.


- Delete Orphan Assignments: delete assignments for which the work item cannot be found.

What are the two "Problem Flows" Pega provides?

- Flow Problems


- pzStageProblem

When setting up a production system, what is an important step to take in the ToProblemFlowOperator activity?

Configure the routing so broken flows are routed to a meaningful operator

What is important customizing Flow Problems?

Do not change the name key

Where can you allow/disable locking?

Class Group Rule, Locks Tab.


If not part of a Class Group, it is set on the class.

When/How does a lock expire?

- on Commit


- After a configured timeout period


- log out

Pega takes care of most locking OOTB, but there are some rare cases where we have to edit configurations to enable it ourselves, what are examples of these?

Class instances that:


- are not embedded into work classes (“embedded pages”).


- are stored separately (so have key properties).


- have to be modified exclusively (and not in the optimistic manner).

What are Lock Key Properties?

They are concatenated to form a lock key for the instance. This is only used rarely, mostly the keys from the General tab are used.

Locks are implemented as instances of _______ and commited in _____________.

a) System-Locks


b) pr_sys_locks

What is the activity we customize when we want to re-configure the parent/child locking logic?

DetermineLockString


Bonus: we typically update the lock handle

How do you enable a property to be used as a reference property?

Advanced tab of the property

When would you use the property-ref method?

When to list/groups of properties have a relationship, and this needs to be defined. This is the cleanest way of doing it.

Explain the System Of Record Pattern

A Data page is setup to hold the external information, we then populate a property using the Data Page, providing us easy access.

Explain the Snapshot Pattern

A Data page is setup to hold the external information, we then populate a property using the Data Page, providing us easy access. What makes this different from SOR pattern is that the data is only copied once from the data page, only updating when parameters changes.

Explain the Reference Pattern

You have a data page which parameters are passed to, that can change the data held, making dynamic dropdowns ect

Explain the Keyed Access Pattern

The primary aspect of this pattern is that one data page can be utilized as both a list and a single page. All of the data is loaded into a single list data page during the initial load and then can subsequently be accessed as a single page via an auto-populating property.

What method do we use to pre-load a data page?

Load-DataPage

How would you pair a Load-DataPage with Connect-Wait?

PoolID

What is Pega?
(Please someone tell me I've been doing this for years...)

Pega is both a BRE and a BRMS embedded inside a Business Process Management System. Pega can call rules directly from the process. Pega’s rules can also be executed directly as a standalone rules engine from other applications using a number of protocols. This is sometimes referred as a standalone or pure-BRE application.

How would you implement field-level auditing?

You can use the field level auditing landing page. The Field Level Audit gadget creates a trigger and a data transform rule. The trigger rule named pyTrackedSecuityChanges is created in the appropriate class.

For a Declare Trigger rule, when can it be 'Triggered', apart from on Save?

- Deleted; instance that belongs to the Applies to class or a descendent of that class, is deleted using Obj-Delete.


- Commited Delete; deletes are committed to the database.


- Saved and; saved using Obj-Save AND one of the listed properties has been modified since the last save.

What is the name of the clipboard page where declare triggers run?

pyDeclarativeContext


Code-Pega-DeclarativeContext

How does On Change interact with declarative expressions?

Activities of type OnChange do not fire other forward chaining declarative rules, such as expressions, during the activity. The forward chaining rules are executed after the OnChange rule completes. This avoids any infinite loops.

What must you do when you create a custom function?

Create a library where this function can be grouped

What are some of the key benefits of a Collection rule?


- Useful in a Pega as pure business rules scenario


- Basically a more business friendly, more readable version of an activity.

How do we allow users to access their delegated rules in the case designer?

We can use the Configuration tab to display the delegated rules visible to that individual. Choosing the Edit button allows the user to edit the delegated rule.

How do we customize interfaces for delegated rules access?

Out of the box interfaces are just one option, but if we are working with highly specialized requirements we can use the MyRules instances to provide a custom interface. Since these instances are data instances we can easily use them programmatically to build custom interfaces for our business users.

When would you delegate rules in a Development environment?

When you want very low risk, and changes are not urgent.

When would you delegate the rules in Production?

When a certain amount of risk has been agreed, the scope of the rules and rules themselves have been de-risked as much as possible.

When would you delegate the rules in a separate authoring environment ?

This is a halfway house between high-risk/high-value and low-risk/low-value. And can be used as a compromise between the two approaches.



What is it highly recommended to do when delegating rules in a production environment? (with regards to when they go live)

It is highly recommended that we use a Check-in approval process especially when the users are making changes directly in the production system.

How do we implement check in approval in a production environment?

Check in approval flow on the production ruleset

What changes must be in place for operators involved in production delegated rules?

- Include Work-RuleCheckin as a workpool in the access group of the users.


- Enable Allow rule checkout on the operator IDs


- Add the ruleset named CheckInCandidates to the Access groups


- Approving operators get an access role with the privilege UpdatePrivateRuleSets.

How do we migrate instances of System-User-MyRules ?

Manually add them to our package rule

Portal Rules Don't have a Class but do have an applies to class in the rule form?

True

What are some common options for customizing a portal on a new application?

- Modify the sections that are used in OOTB portals.


- Modify the harness OOTB portals to include new sections.


- Create a new portal rule and a new harness rule. The harness can reference both new and existing sections.

Labels in a navigation rule must always be hardcoded?

FALSE


You can use property references, even page lists to display different sizes

What are the three ways you can present a dynamic container?

- Single Document


- Multiple Documents


- Dynamic layouts

What is the difference between Single and Multi Document? (dynamic container)

- In the case of Single documents, there is only one active document used (for example, a case).


- Multi Document mode allows opening multiple documents at the same time. (maximum of 16)

What is a benefit of Single Document mode on a Dynamic Container?

Single Documents are useful in cases when users work on one case at a time or access the work list to open cases. Single Documents are pretty useful in keeping the application from overloading too much data and the performance is always better.

What is important in regards to data sources with offline capable mobile applications?

Use Data Pages, as they can cache data

What two things define how offline browsing works on mobile?

- When the device is online, data required for offline access must be cached in memory for later access.


- Similarly when the device is online, data collected when offline must be synchronized back to server.

What things are necessary to enable offline mode for mobile?

- It must be enabled at case level


- The case must use optimistic locking

What functionality can you use offline with a mobile application?

- Users can Login or Logout from the application


- Create new cases that are offline enabled


- View cases and harnesses


- Update cases that are offline enabled


- View Worklist and process Assignments


- Some limited dynamic UI is supported

What locale does Pega 7 use by default?

The locales that are set in the environment settings of the client machine.




Bonus: You can change these via the control panel.

If you don't want to affect all programs on the machine with the localisation changes where else can we change the settings?

- Change the localisation setting in the browser


- Override the localisation setting in Pega

What can you do to test the affects of localisation?

Demo it the Locale Settings, Compute will only work if your machine is capable of running a JAVA applet

If we want the user to be able to switch locale's without logging off, how can we achieve this?

We can use the engine API named setLocaleName to change locales programmatically.

What does the localization wizard do?

- Translates the text strings in labels, captions, instructions, and so on, that appear in the Pega user interface. Though additional work will most likely need to be done afterwards.

What are the steps to create a translation package with the wizard?

Select Languages


Select Rulesets


Enable Records


Export Translations

When would we want to include the Pega fields in our language package for custom translation?

When we don't have a Pega Translation pack for the language.

What can we export translations as, and how do we view them?

- XML


-Excel


Bonus: this is a record of all strings for translation

How do we translate pega applications at a high level?

-Create a translation package


-Import that package to your system

Where would we ideally have a translation ruleset? (depending on the usecase)

At the organisation level, so it can be reused

What are the steps for uploading a translation pack to our application?

- Import Rulesets


- Upload Translation Pack


- View Import Results

What is the localisation guideline to do with enabling rules?

We must make sure that the localization flag is enabled in all harnesses and sections

What is the localisation guideline to do with manually uplifting?

Some rules such as correspondence, paragraph, and work parties contain text that must be manually created, translated and stored in the corresponding ruleset.

In order to leverage translation capabilities what standard rule should we be using?

Field Value

Hows does the field value rule work to aid translations?

The localized text in the To area contains the actual text that is saved as part of the rule. When we translate the application to Spanish, the localized label stores the translated field value for Hire Date in the Spanish ruleset.

What OOTB field values are automatically translated by Pega's Language packs?

- pyCaption


- pyInstructions


- pyStatusLabel


- pyLabel


- pyMessageLabel


- pyButtonLabel


- pyToolTip


- pyActionPrompt

What is Pega's accessibility ruleset called?

PegaWAI

What do we typically do with the PegaWAI ruleset?

We need to import the PegaWAI ruleset and add it to the application rule production ruleset list. We also add the ruleset to the access groups of users needing accessibility features and controls. On the access rule Advanced tab we enter the ruleset in the production ruleset list and click the Enable accessibility add-on checkbox.

What can we run to work out how accessibility friendly our application is?

Accessibility Report.

What are the accessibility guidelines to do with markup language?

- We should use relative and not absolute units in the markup language. We should avoid using px or px-fixed layouts. It is a best practice to use dynamic layouts.


- We should not use standard markup or inline styles. Instead, we should use style sheets.

What is an accessibility guideline to with mouse events?

Events based on mouse actions should be avoided because this impacts most of the AJAX calls. Typically this involves mouse actions like onClick on a checkbox, Hover, automatic calculation of values, and so on.

What is an accessibility guideline to do with Icons?

We should avoid icons and replace them with buttons and then add an ampersand “&”before the caption to create a shortcut. For a Save button we enter &SAVE as the caption and the shortcut key will be ALT-S.

What should we do regarding shortcuts in accessible friendly applications?

We can create shortcut keys for most common actions such as Submit, Save, and Cancel, and for the flow actions if there are multiple flow actions in the same assignment.

What does IAC refer to?

IAC, allows us to embed the Pega application as a mash up by way of a composite application embedded as a gadget in an existing Web application. A mash up is a term used for Web applications that merge data and content from multiple sources and presents them in a common user interface.

What is true about IAC and pega authentication?

IAC leverages all the different authentication and authorization methods supported in Pega. Standard IAC authentication activities in PegaRULES ruleset can be customized to integrate with the third party authentication implemented in the external Web application. IAC is designed to work seamlessly in any Java or .NET Web application.

What are the three main components in IAC?

- the Pega Gadget Manager


- the Pega Instance


- the Pega Composite Gateway

What is the Pega Gadget Manager?

It is a javascript file called PegaInternetApplicationComposer.js, it contains the scripts to launch the Pega application in a Web application as a gadget.





What steps do we need to perform to set up the Pega Gadget Manager?

1) Add the configuration properties such as, Servlet URL, Server System ID, App Name ect


2) Create an HTML DIV element for each Pega Gadget, the gadget should indicate the Pega action, action attributes and the Gadget Manager attributes (as per Gateway Configuration Console).

What is the Pega Instance?

The Pega server containing the application handles the requests coming from the IAC users.

What is the Pega Composite Gateway?

A servlet that is used to proxy the communication between the Gadget Manager and the Pega instance. This servlet (prgateway.war) is included in the Pega installation bundle. The system administrator must deploy prgateway in the Web server.

What is the Gateway Configuration Console?

It's the UI for the Pega Composite Gateway servlet we deploy. Here we can configure connection parameters for IAC gadgets



Why do we need to configure the host via the Gateway Configuration Console?

Pega is often installed on a different instance from where our Web Mash Up is happening. So this is how we communicate.


Bonus: Pega is often on a different instance, but is usually in the same Domain.

What is the ruleset for Pegas IAC?

the standard Pega-IAC ruleset

What do we need to do to prconfig.xml in the pega instance to enable IAC?

"<"env name=”Authentication/RedirectGuests” value=”false”">"


"" is used for < > because cram is weird..

What does the Gadget Setup page do in the Gateway Configuration Console?

- We use it to say what gadgets we want to use


- This generates the Gadget Manager and HTML needed that we include in the webpage



What is the pega action field in the Gateway Configuration Console?

The default action a gadget will take in Pega

Where would we configure presentation, response behavior, infrastructure, and intra-gadget communication for IAC?

We would use The Gadget Manager API in our markup

What do we use the Gateway Setup section in the gadget manager for?

We use the Gateway Setup section to adjust deployment settings for the IAC Gateway servlet, prgateway.war. Stored in the prgateway.xml properties file, these settings include custom error and logoff pages, session timeout values, log details level, cookies option, and URL header options.

We should develop the Pega Gadgets separately from the web application that it will be in?

FALSE


We should development together and test them together throughout development

What is best practice to test to do with rending your gadgets in the Mash-Up

Check the Harnesses and UI rendered by your gadget is compatible with the browser ect (most auto generated ones are)

How can we configure authentication for IAC?

Assuming we are not presented with login page..


The gadget passes the credentials, all the standard authentication techniques can be applied to IAC, pega has out of the box activities to help with this.

What are some composite application restrictions?

- The application can have only one work pool associated with it.


- It is difficult to access more than one application at a time



How do we typically unit test IAC mash up code?

Saving the DIV tags in an HTML stream rule in Pega. We can then create a Portal rule of Type Custom. The Portal rule can reference an activity rule and in the activity rule, we can use Show-HTML method to display the HTML rule. We can confirm this by opening the portal rule.

IAC must follow the same origin policy, what is that?

This is a security rule enforced by all browsers to guard against cross-site scripting attacks. This rule enforces that the protocol (http), host name and port number matches for the external Web page containing the gadget html and the Pega server. This requires a certain amount of co-location.

What kind of Column must we have when creating summary reports?

An aggregate column. This aggregate column can be a function applied on a column such as count, average, max, min on a specific property (Column).

When do we use a Summary Report?

When we have a huge amount of information and we are more interested in trends than granular information.

What do we do if, for example, we want a count of record, and did not want to do a count on a specfic field, we wanted to show all fields?

We create a blank count column, that can act as the aggregate column

What else can we do to give our reports extra context (from a data sorting point of view)

In addition to creating summary reports, we can also group reports using sorting.

We want to use groups in our report, we select to use place name and Vendor as our headings, we only want to show the top 4 in each category by max price, how do we do this?

By setting the rank in the Query tab of the report editor, under Top/Bottom Rank. Set Top Ranked, 4 and for each group based on Price.

How would you describe a pivot table?

A pivot table is a program tool that allows us to reorganize and summarize selected columns and rows of data in a spreadsheet or database table to obtain a desired report format.

What are Sub-Reports?
What do we use them for?

- Sub reports join two different classes using specific join conditions and the results from the second report can be used to filter the first report or can display as part of the first report.


- Sub reports can be used to calculate aggregate values, such as counts, maximums, and minimums.

Aggregate Calculations are required, when would you use a Sub Report over a Summary Report?

- If it is necessary to have an aggregate calculation for a flat list of distinct records, including multiple properties for each record, then we should use a list report with a sub report.


- If the aggregate calculation is needed for a group, then we should use a Summary Report.

When should we use a simple join to associate two classes versus a sub report?

- Joins are useful when we associate two different classes and present columns which belong to the class in the second class.




- If we want to show aggregate information, grouped and drilled down into from your report a sub report makes sense





What can we configure in the sub-report dialog?

1) Where the sub report result is used.


2) Filter conditions to join the report


3) Join conditions to configure inner, outer, left or right join

What is a use case for sub reports involving filters in our top report?

This use case for sub reports is to use the results of a report as a filter for the calling report. Joins can be used in some of these cases but sub reports are useful when we want to exclude the choices based on the results of a sub report. For example, we want to know the list of all operators who have no assignments past goal.

What is a trend report?

A trend report presents counts of cases or other data elements at a series of points along a continuum, normally a time line. The X-axis of a trend report displays data points on that continuum representing weeks, months, or quarters in a year, or some other meaningful increment.

The time axis of our trend report usually requires us to use what?

An OOTB SQL function, you can find this in the report def form.

What is true about reports and charts, in regard to aggregate columns?

- In order to define a chart, we must have atleast one aggregate coumns


-The other properties in the report are 'group by' properties


- Combo charts require 2 aggregate columns

Where is the best place to edit a chart?

The Report Editor, as you can preview them properly, with the exception of map rules.

What is a Bubble Chart?

Bubble chart is a special category that can be used to provide a 3-D view of three numeric columns. The third dimension is represented in the size of the bubble for each data point, while the other columns are represented in horizontal and vertical axis respectively.

What is a Gauge chart?

Gauge reports can be very effective in displaying burn rate, throughput and other measurements of current state. There are 10 different ways of displaying these charts (including five different Angular formats).

What is a pie chart?

Pie charts are extremely useful when presenting reports that show the percentages of various categories; such as how many new purchase requests are placed by various departments (engineering, marketing, HR) and so on.

What Pyramid and Funnel charts?

Funnel and pyramid are useful to display the numbers across various stages, such as the status of a claim case, how many are in Open, Pending-UnderwriterDecision, Pending-WaitingforDocuments, Pending-ManagerApproval, Resolved-Rejected, Resolved-Approved and so on.

What do we usually have for customer editable reports

A reporting production ruleset?

Where do we specify our reporting production ruleset?

On the application form, on the access group.

What should we make sure our production reporting ruleset has?

Make sure that the ruleset has one unlocked version, does not use check-out, and has the necessary application rulesets as prerequisites.

When a user creates a new report in production, before they give it a new name key, what standard reports are used?

Either pyDefaultReport or pyDefaultSummaryReport

If we want to customize the default report settings for a user in production what can we do?

We can copy the standard reports into the appropriate work class and application ruleset to customize the settings for reports created in production.

What are some of the settings on Reports for performance/data access ?

-Maximum num of rows


-Maximum elapsed time


-Max num of rows for export


-max time for export

How can we stop users using un-optimized properties?

Uncheck display un-optimized properties in the report definition

What are the editing commands we can turn on/off for report users?

- Edit Report


- List


- Summarize


- Save


- Save as

What are the print/export commands we can turn on and off for report users?

- Print


- Export to Excel


- Export to PDF

What are the paging settings on a report definition?

- Page Size


- Page Mode


- Page Navigation Alignment


- Paging Bar Position

Where can we assign a privilege to a report?

Data Access Tab

How can you change the default application wide data access options?

To see the current limits, go to Designer Studio > Reporting > Settings > Settings.




To edit use OOTB dynamic system settings.

What are the dynamic system setting properties that need to be edited for data access/performance in reports?

- pyMaxRecords


- pyTimeoutQueryInterval


- pyExportMaxRecords


- pyExportQueryTimeout

What is the most common problem when it comes to importing a report into a new environment?

- Issues with table rules not being imported.


- Issues with database tables not being as expected.

What is the class that reports use for logging statistics?

Log-ReportStatistics

How often is each log entry into Log-ReportStatistics recorded?

Once per hour

How can we turn off report statistics?

Set the dynamic system setting to false

There are four standard reports that provide visibility into this statistical data. What are they?

- pyDefaultReport


- pyDefaultSummaryReport


- pyReportErrorSummary


- pyReportUsageByUser

What does pyDefaultReport do?

Gives us a detailed view of report usage data

What does pyDefaultSummaryReport do?

Gives us a detailed view of report usage data in aggregate form

What does pyReportErrorSummary do?

Shows us what reports have produced errors?

What does pyReportUsageByUser do?

Shows us who has been running reports?

What might be useful to do with these reports in our applications?

We can copy the standard reports and make changes to them to suit our custom requirements.

If our reports are performing sub-optimally what are some things to watch out for in the joins configuration?

Selecting "Include all rows" on the Data Access tab can be costly. It causes the system to use an outer join for the report in which all instances of one of the classes are included in the report even if they have no matching instances in the other class: Select “Only include matching rows” if possible.

How can we stop large loads being pulled down from a server at once in regards to reports?

One of the main purposes of the paging feature is to prevent excessive amounts of data being pulled onto the server. Turn paging on by selecting Enable paging on the Report Viewer tab.

How can we analyse report performance outside of pega?

Use the clipboard viewer to locate the pyReportContentPage page, and get the value of the pxSQLStatementPost property. construct the SQL and run it in the DB, use explain plan.

How do we make sure that the report really addresses the business need?

Keep the end requirement in mind, don't be distracted by your design restrictions, what is in your comfort zone to build ect.

How does identifying the report audience helps us create better reports?

Identify the intended audience for a report, and the action that this person is expected to take from the report. For example, reports for assignees typically identify the specific work that must be performed. Managerial reports, on the other hand, are broader in scope and tend to identify trends and areas that are in need of improvement.

What are some guidelines for clear and long performing reports?

- Use only the necessary data, do not clutter.


- Leverage OOTB reports


- Keep in mind how your application will grow, ensure the report will work in 5 years time with large amounts of data

What are the key roles in the report building process?

- Application developer(s)


- Business analyst(s) and manager(s)


- Database administrator(s)

What is the role of Application Developer in the report building process?

Understand the data model and build it with reporting in mind. Empower the BAs/Business to maintain their own reports.

What is the role of BAs and Managers in the report building process?

They should be familiar with the data model built and understand the business processes. They are responsible for ad-hoc reports.

What is the role of the Database administrator in the report building process ?

To make performance and database table changes. (outside of pega)

What are the two most fundamental choices to be made in regards to reports?

- Case type — the class of instances to be reported


- Report type — list or summary

What can we sue to extract pega 7 data to an external data warehouse?

BIX

How do we incorporate BIX into pega 7?

BIX itself is a set of rules and rule types installed by including the BIX ruleset in the application stack. We set up BIX by configuring extract rules, a rule type included as part of the BIX installation.BIX can extract Pega 7 data to XML or CSV (comma separated value) files. It can also extract data directly to tables in a database schema.

What is the rule class we use for spanning different rule types and reporting over them?

Data-Rule-Summary

What are some essential properties for reporting on rules in Data-Rule-Summary?

- pzInsKey


- pyClass


- pyClassName


- pyRuleSet and pyRuleSetVersion


- pyRuleName


- pyLabel


- pyRuleAvailable


- pxUpdateDateTime, pxUpdateOperator ect

What are some of the classes that are most commonly joined with the rule classes?

- History-Rule


- Data-Rule-Locking


- Index-Warning


- Index-CustomFields

There are alot of OOTB standard rules for observing pega development details, where can you find them?

On the Application Development landing page by selecting Designer Studio > Application > Development.

There are OOTB standard report rules for development details, what else can we do the leverage these reports?

We can run the report rules outside of the landing pages, delegate for customers, customize ect

If we want to expose custom fields for rules what wizard can we use?

Designer Studio > System > Database > Modify Schema.


Note: Alternatively, a database administrator can create database columns outside Pega 7 (pr_index_customfields)

What is the main benefit of using message based integration?

It is loosely coupled, meaning that the two applications are independent and don’t need to know anything about each other, only about the message itself.

What are the two main standards Pega support with message based integration?

- Java Messaging Service (part of Java EE)


- WebSphere MQ (part of IBM-developed public standard)

In Message based integration, what is the sender of a message called?

The Producer


Producers create messages and send them to a destination on the M.O.M.

What does M.O.M mean?

Message-Oriented Middleware

In Message Based Integration, what is the receiver called?

The recipient application is called the message consumer. Consumers retrieve messages from the destination.

In Message Based Integration what is the JMS provider called?

The Destination.

Explain the Point-to-Point Model?

The destination acts as a Queue, we can have multiple producers, there can be several consumers to but there is a strictly 1 to 1 relationship between message and consumer.


Messages are always delivered in the order they are sent.

Explain the Publish and Subscribe Model?

In the Publish and Subscribe Model, the producer sends messages to the destination, the destination sends the message to all consumers 'subscribed' to that message "topic"

What is the basic anatomy of a JMS message?

- Header


- Body


- Properties

Tell me about the JMS header?

Contains general information about who the message is to, when it was sent and so on. These values are defined by the JMS specification, and are usually set by the JMS server.

Tell me about the JMS Body?

The payload.


Both sender and receiver need to know what kind of message it is, and how to decipher it.

Tell me about JMS Properties?

These are key-value pairs that the recipient can use to help filter or process the messages. These properties are defined by the application. As with the message body, both sender and receiver need to know what properties should be set.

In message architecture, applications can be ignorant of each other, but they must agree on some things in regard to the messages, what are these things?

- The delivery model: point-to-point or publish-and-subscribe.


- The JNDI names.


- The message type: text, map, byte string, stream, or a serialized Java object.


- The expected message content: header, body, and properties.


- Response: The type and format. (If required)

Customers using the IBM WebSphere application server have two choices for message-based integration: JMS and MQ. What’s the difference?

- WebSphere MQ is a proprietary service from IBM. (JMS is actually a wrapper for MQ)


- JMS is standard, not a specific implementation

Generally it is better to use JMS rather than MQ, why is this?

- JMS offers support for transactions using the Java Transaction API (JTA)


- MQ requires a Java thread to constantly “poll” for incoming messages


- JMS has better performance because it can take advantage of J2EE queue monitoring


- Applications that use a non-proprietary standard like JMS are inherently more portable.

When might we want to use MQ? over JMS

We usually want to use MQ when we need to integrate with a non-J2EE application that uses MQ.

What is a JNDIinstance and why do we need it for message based integration?

It stands for Java Naming Directory Interface, we can use this to identify the actors in our integration architecture, and refer to them using the names defined here.

Sending a JMS messages in pega requires 4 components, what are they?

1) A JNDI service instance to describe how to reach the JNDI server


2) A producer model instance which describes the producer


3) A Connect JMS rule, which actually handles sending the message


4) A connector activity to call the JMS Connector

When working with JMS messages it is very likely we will have to get the message into a certain format and if there is a reply we will have to handle this too. How do we do that?

Mappers for the data to the connector, parsers to map the reply back to the application.

JMS services are usually provided by the application server, what application server that Pega commonly uses will need a third party JMS provider?

Tomcat

In order for JNDI to work with Pega, what must we define in Pega?

In order to access the JMS destinations we need to create a JNDI Server data instance, which is available under the Integration-Resources category in the Records Explorer.

What information do we enter in the JNDI Server rule?

Info to connect to the JNDI server on the application server. URL ect

What can you do with JMS explorer?

JMS Explorer supports only queues, not topics, and only text-based message data can be displayed. It is a debug/test tool.

What can you use browse tree on a JNDI server rule to do?

We can also view the objects that are named by this JNDI server by clicking Browse Tree. JNDI does not only handle JMS destinations; it manages all named objects in a Java application.

What does the JMS Producer Model rule do?

It holds messaging settings for the JMS connector rules. It controls, Persistence, Priority, Expiration and Domain.

What does the service tab of a Connect JMS rule cover at a high level?

The Service tab contains properties that reflect the agreement between our application, which is the message producer, and the service application we are connecting with, the consumer.

How do we use JNDI names directly in our Connect JMS rule?

- Select Direct JNDI Lookup


- Type the JNDI names in the fields




Bonus: Select Resource Reference to use Global Resource Settings to specify the name of the JNDI Server.

What happens if in the point to point model, a reply is expected? (JMS connector)

The producer application stops and waits, and the connection stays open until a response is received from the consumer. In this case the response queue is usually a dynamic destination. Meaning the JMS server creates a temporary queue that exists just while the connection is open. Once the response has been received, the connection is closed and the dynamic queue goes away. Alternatively, we can specify a static destination name.

How do we do error handling on a Connect JMS rule?

There is an error handling section, The status value and status message fields are string properties to hold the results of the attempted message. The standard pyStatusValue and pyStatusMessage can be used.


If we go into an error state, control is passed to the error handler flow specified. The ConnectionProblem flow is useful here.

What are the header properties we can set and what do they do?

- JMSType – used to distinguish between different types of messages, for example, notifications versus requests.


- JMSCorrelationID – used in asynchronous messaging to associate a response with the original message.

What is on the response tab of a Connect JMS rule?

The data settings are similar to those on the Request tab, except instead of describing the data we are sending, we are telling the connector how to handle the data it receives. The consumer and producer must agree on the format of the response.

How do we call a JMS connector from an activity?

Call to the Connect-JMS method

How can we tell a messages has arrived for Pega (as a JMS Consumer)

Via a Listener

A JMS consumer includes what components?

- A JMS Service Package


- A Service JMS rule


- A JMS or JMS MDB listener


- Any necessary data mapping components for mapping message data to and from the clipboard


- An activity to do whatever processing is required for incoming messages


- And a JNDI server data instance to locate the destinations by name

There are two types of listeners for JMS depending on how our application is deployed. What are they?

- MDB Listener for EAR Deployment


- JMS Listener for WAR Deployment

The message send has 3 properties, Total, Yield and Count, we only want Yield and Count, how do we not include Total?

In the message properties section of the service rule, set properties for Count and Yield and where they map to. Enter nothing for Total.

Why does the Pega Rule JMS Listener, only work with WAR deployments?

A JMS listener runs in its own Java thread, started when our application starts. The listener works by attempting to retrieve a message, If there’s no message waiting, the thread stops and blocks until one is available. Periodically it wakes up to see if it’s received a signal telling it to stop. Having a long-running thread like this is not supported by J2EE, which is why this model only works in WAR deployments.

What are performance considerations when working with a WAR Deployment JMS listener?

We will want to configure startup and the number of threads.

What happens if we tick Send error messages in a JMS Listener (WAR, maybe both..) ?

- It will send an empty message if the pega service doesn't respond. This option only applies if responses are used in this integration.

If we wanted our message to pega to be consider delivered after it is processed, how do we configure this in the listener (War, maybe both) ?

- We set the acknowledgement drop down to "After message processing"

A listen starts running, there are messages for the topic our application is subscribed to, we want to make sure we pick them up even though the listener wasn't running when they were delivered, how do we do this?

If we want to be able to receive those messages, we check durable subscriber. Note that only some JMS providers support this feature.

What does checking no local messages on a JMS listener do?

Checking No Local Messages to filter out messages we sent. This allows us to use the same queue for messages and replies; otherwise, we’d receive our own responses as new messages.

In our messages we are receiving there is a header property of ProducerID, we only want messages from ProducerID = 4, how do we implement this?

Message Selector is a feature that allows the listener to filter out messages based on the JMS header or properties. If we set this to ProducerID =4, we would only get messages where that was true.

What are some pro's and cons of using EAR MDB listeners?

Pros: More performant, more flexible


Cons: Must be configured at the application server level

What is different for a EAR MDB JMS listener from a WAR JMS listener? Rule config wise

- None of the Java Thread settings are available


- No connecting to the request destination and retrieving the messages settings, except for replies


- Deployment Descriptor. Although we can configure the listener, it won’t run until we deploy it to the application server.

Is an EAR MDB JMS listener, what do we do with the Deployment Descriptor?

Details of how this is done varies between different application servers, but usually comes down to editing XML files called deployment descriptors. Click on the link to view the XML fragment.

What do we typically use XML mapping for?

Pega 7 uses the term data mapping for the task of converting data received from, or sent to, an outside source or system inthe formats, values, and objects needed by the application. XML is known to be the common protocol used by systems.

What wizard do we run to interpret an XML schema? and what do we usually provide it?

- SOAP Integration wizard


- WSDL

In the SOAP Integration wizard, what does it generate classes for?

- elements with anonymous complex type definitions


- named complex types


*i think..



What are generated classes called?

The name of the class is the base class specified in the wizard followed by a hyphen and the element or complex type name.

In our XML mapping we have a complex type sub-element that can only occur once, what does this become in pega?

A page. The class of the page property corresponds to the named (sub)complex type.

An Element in our XML mapping has a sub element that has a maxOccours value of 1 >, what does this become in pega?

If an element can occur more than once, that is if the maxOccurs attribute exists and is set to a number greater than 1 or unbounded, a page list property is created. There is no mechanism to limit the size of a page list so the list is unbounded even if a number is specified. Use validation to control the size of the list.

An Element has a scalar sub element, how is that mapped into pega?

Scalar sub elements use a series of out of the box classes. The classes start with a SingleValue- followed by the type.




Lets say our scalar element type is text, we have a page list of type SingleValue-Text. Every SingleValue- class has a pyValue property to hold the value.

What do we do with the XML schema namespace identifiers when mapped into Pega (via SOAP integration wizard)

The namespace identifiers defined by the schema appear as properties of the generated XML parse and stream rules, but are otherwise ignored.

What happens if XML data mapped into pega via the SOAP Integration Wizard has pega reserved strings in it? e.g Primary, PX, PY, PZ

Sometimes element names from the schema cannot be used as class or property names because they conflict with words that have special meaning. For example, elements and attributes cannot begin with the strings px, py, or pz and cannot use the word Primary.

In the Soap Integration Wizard; If the schema references reusable elements and attribute groups in the global schemas using the “include” or ”import” components what happens?

The wizard treats those references as if they were defined locally within the content model and generates properties and classes as appropriate.

How does pega treat simple content restrictions in XML via the Soap Integration Wizard?

It ignores them

When the SOAP Integration Wizard encounters substitution types, what is generated?

A base class for the abstract type, a class that inherits from the abstract type for each substitution. Parse XML rules are also generated in all the classes, for dealing with the type (in the integration) at run time, these are configured for substitution. XML Stream rules for all classes are generated, these use rule resolution to dynamically select the correct rule to include when building a stream.

What is the difference it what is generated when the SOAP Integration Wizard encounters substitution elements, to when it encounters substitution types?

There are a few differences in the configuration of the parse XML rule. The substitution is set to element on the Node tab and on the XML tab the Element Substitution section is used in contrast to the Type Substitution section which was used for complex type extensions/substitutions.

Content models for complex types might have sub-elements grouped into sequence choice, or all groups. And they can be nested inside of each other, what is true about how pega handles this in regards to the order of processing? (Soap Integration Wizard)

The wizard traverses the content model in depth-first order and creates properties for each element encountered. If the same element is used more than once in the same content model, only one property is generated.

In regards to the Soap Integration Wizard; What is a problem if sequence and choice groups are nested within each other. (Whole sequences of elements could be optional or interchangeable according to the schema)

This semantic cannot be enforced and illegal instances of the XML can easily be generated since all properties are included in the XML stream rule.

In the SOAP Integration Wizard, it is possible you will come across XML that has multiple values (sequence?) for one property in a single type. What problem could this cause?

The wizard only created one property. This means that the generated parse XML rule would discard one of the values. It is a problem for stream XML rules as well, since there is only one property to map from.

In the SOAP Integration Wizard, it is possible you will come across XML that has multiple values (sequence?) for one property in a single type. This can cause an overwriting problem, how do we fix it?

To overcome these problems consider editing the source schema and modify the complex type definitions that contain nested choice or sequence groups to contain a single choice or sequence group. If this is not possible you must manually edit the XML stream rules to enable conditional formatting of XML data.

With choice elements, it is important why should we make sure values we do not wish to choose are not on the clipboard, even if empty?

The XML stream rule generates an element for all properties available on the clipboard page that are referenced, even if they are empty. This could cause a problem for choice elements since validation will fail if more than one of the elements in a choice is present. Make sure that only one of the properties used in the choice is on the Clipboard.

A schema can leave the content model of an element partially defined, allowing the content to be interpreted by the application doing the processing at runtime. This can be accomplished using the “any” or “any attribute” components. What happens in this case?

The use of these tags means that anything will do. However, stating that anything will do is the equivalent of saying nothing at all. In this case, the wizard does not generate any properties because it has no information about what to create.

We want to use schemas with fully qualified concrete types that define the data. Why is this?

The wizard cannot generate a structure in pega for partially defined content, this will lead to problems when communicating between systems.


If changing the schema is not an alternative, then you would have to manually add the classes, properties, parse and stream rules.

What is Mixed Content in XML and how do we prefer to implement it?

Complex types can be declared as having “mixed” content to indicate that an element contains character content mixed with element content. Mixed content element is ignored. To overcome this problem use the built-in type string in the source schema and when including HTML or XML make sure to encode the tags embedded in the text.

How do we configure a connector to run in parallel?

From the activity that is calling it, set the Execution Mode to Run In Parallel.

How does the activity run these in parallel in regard to threads?

The activity acts as the parent thread, and however many connectors you have running in parallel are child threads.

The Parent Thread (Activity) has to wait for the connectors running in parallel to finish? (True or False)

FALSE


Use the Connect-Wait method, and set it to -1 in order to get the activity to wait until the connectors have finished. Or set it to a positive number to specify the number of seconds to wait.

Why can parallel running connectors not have the same step page?

Each connector running in parallel makes a copy of the step page and returns the results to its copy. Because of this each connector needs a separate step page even if the connectors share the same applies to class. If the same step page were to be used the connector finishing last would overwrite the results from the connector that finished first.

It is not possible to catch exceptions or check the step status using the StepStatusFail when rule in the connector step transition for connectors that run in parallel, since the result is not communicated from the child to the parent.




How should we handle errors?

Make sure the Error Handling section on the connector rule specifies properties for the status values ensuring that the values are set on the connector page in case an error occurs.




When awakened, we need to examine the pyStatusValue on the connector pages for errors. (Jump on the parent activity step)

How could we implement things so we could do some data entry while the connectors were loading?

We would run a connector smart shape configured to run in parallel, with one connector (flow connector), going to an assignment shape, and another to a Connect-Wait connector activity. The flows are rejoined at the connect wait.

We cannot use Named Pages with connectors that are run in parallel, why is this?

Named pages are not passed to child requestors, so do not use named pages in the data mapping on the Request and Response tabs. Because connector simulations rely on named pages it does not work for connectors configured to run in parallel.

Can we use parameters with connector's running in parallel?

The parameter page is passed to the child requestor so it can be used in the data mapping for the request. However, the parameter page is not passed back to the parent requestor so it cannot be used in the response.

How do we Queue a Connector?

In the activity, for Execution Mode on the connector step, set it to "Queue".


On the Connector it's self, you should set the Intended For dropdown to "Queue".


The Connector's Request Processor should be configured for queuing.

After our Connect- method in the activity, using the queue option, what method must follow it?

Since setting a queue is a database operation, we need a Commit method after the queue.

What happens in the background when queuing is used on a Connector?

When queuing is used, each request is queued then processed later in the background by an agent. The next time that the agent associated with the queue runs, it will attempt to execute the request. The queuing characteristics are defined in the Connector's Request Processor.

Which types of Connector's can be queued?

- HTTP


- SOAP


- REST


- SAP

What do we configure in the Connector's Request Processor?

The name of the queue, how many times the associated agent should attempt to execute the request if it fails, and whether or not the results should be stored in the queue is configured within the connector's Connect Request Processor. It also has options for defining the class of the queue. We can define multiple queues.

What is a Connect Request Processor rule/data instance?

We define a Connect Request Processor data instance to support an asynchronous HTTP connector or SOAP connector. This data instance defines the queuing and de-queuing options for the connector.

What standard queue class can we use for our connector queue? (for a Connect Request Processor rule)

System-Queue-ExecutionRequest-Connect-Default




Or define your own that inherits from it.

We can specify more than one queue, what must we have if we wish to use this configuration? (for a Connect Request Processor rule)

When more than one queue is specified, when rules are required to determine which queue to use. The conditions are tested top to bottom so always leave the bottom row empty as the default queue.

What are the de-queuing options meant to achieve? (for a Connect Request Processor rule)

The De-queuing Options tab contains instructions for the agent on how to handle requests stored in the queues.

On a Connect Request Processor rule, what should we set the maximum number of execution attempts to?

Typically, we want to set this value to more than 1 so the agent can try again if the request fails the first time.


We have the option to keep the item in queue after all execution attempts have failed or after successful execution.

What is the standard agent configured to process items in the default connector queue class called?

ProcessConnectQueue in the Pega-IntSvcs ruleset.

What do we do if we have created a custom queue class for our connector queue in regards to the Agent?

For each custom queue that has been defined an agent needs to be created and configured to process items from it. Specify the custom queue class in the class field. The agent must be of Advanced mode. Specify the standard activity ProcessQueue to process items in the queue.

How can we view queue item instances?

In the SMA by selecting Agent Management > System Queue Management.

In what case would we not see "Success" queue items in the System Queue Management Page (SMA) ?

If the Connect Request Processor was not configured to keep items in the queue they are deleted after they are processed. So we will not see Success Items.

What can incoming email messages trigger in Pega? (functionality wise)

Inbound email based work-processing lets users take an action using an email response.


e.g


Create


Approve


Reject


Attach email contents to cases


Handle auto replies ect

Where can we get an overview of email accounts and listeners available on the system?

DesignerStudio > Integration > Email

What are the tabs on the Email landing page?

Inbound Email, Outbound Email, Email Listeners and Email Accounts.

When do we need to check the create work checkbox on the Email Wizard?

The create work checkbox needs to be checked if new work objects are to be created by the email service. It also needs to be checked if email-based processing, such as approvals or other actions on a work object, is to be performed using an email reply.

In the Email Wizard, what can we set up for Email Listener?

- Listener Name


- Folder to watch


- Service Package


- Email Account


- Service Class


- Requestor ID


- Requestor Password

In the Service Package part of the Email Wizard, when would we select Stateless?

The Processing Mode should be set to stateless if the services in this package can be executed by any requestor in a pool of requestors without regard to processing that the requestor performed earlier; otherwise, select stateful.

What are the maximum types of rules the Email Wizard can create?

- Email Listener


- Email Account


- Service Package


- Service

What is the standard activity added to email services via the Email Wizard?

pyCreateAndManageWorkFromEmail

What is the standard page that incoming emails are mapped to (via the Request tab of the Email Service rule)?

pyInboundEmail


This is broken up into properties on the pyInboundEmail page. e.g pyBody

Where can we configure a reply to an email sent to pega?

Response tab of the Email Service rule.

What does the Email Listener do?

It identifies the listener, the email account name, the name of the mail folder to monitor, the message format of the incoming messages, which email service rule to route messages to, and so on.


Note that the listener needs to be manually started after it has been created.

How does an email know what case it is related to?

An email related to an existing case contains an identifier linking it to the case. We can assume a case needs to be created if an identifier is not present.

What is the standard response rule when you create a case via Email?

The confirmation response is defined in the HTML rule Work-.EmailResponse and can easily be customized.

Where are email attachments added?

The Attachment list for the case

What are common debug steps for email services?

- Monitor the inbox to make sure email messages arrive and are deleted.


- Keep Messages on Server option is cleared for the messages to get deleted.


- Check the log for any errors related to the email service.


- Use Trace Open Rule on the service rule to trace an incoming email to see how it is processed.

For work processing via incoming email what agent must be enabled?

ProcessEmailRequest agent in the Pega-ProcessEngine ruleset

What must we configure on an assignment shape to enable it for email processing?

We need to configure the parameters on the Notification section on the assignment to enable an email to be sent and automatically processed when returned.

What are the OOTB options to notify someone via email? (for assignments processed via email)

Notify


Notify All


Notify Assignee


Notify All Assignees


Notify Party

What is the OOTB correspondence rule used when notifying via email? (for email processing)

Work-.pyEmailApprovalActions


When customising this we should always include the pzEmailActions tag, as thats how users take actions on the email.

If a user sends an email to process an assignment and the case is locked what happens?

If the case is locked when the approve email is received the sender is notified with an email telling them they can retry at a later time.

How is the email response linked to the case and appropriate flow action?

It is the identifier in the email subject that links the email response to appropriate case and flow action.

How does pega identify the email conversation, to add it to the case? (In storing email conversations on a case)

Pega 7 creates a unique ID in the Message-ID field in the email header of outbound emails. This ID is used to route any reply messages to the appropriate case.

In the case we want email conversations saved in pega (this is without any processing via email functionality) what out of the box service and activity can we use?

There is a standard Service Email rule called CreateEmailFlow that attaches a response message to the appropriate case. It uses the standard ProcessInboundEmail service activity. We need to configure an email listener to use CreateEmailFlow.

What else does the CreateEmailFlow service do apart from attach emails to cases, when a message is incoming?

In addition to attaching the email to the case, the email is also forwarded to the party who sent the initial email.

If we wanted to combine storing email conversations on a case and doing work processing via incoming email how could we do that?

If we want to create and manage work as well as support email conversations in parallel, separate listeners are required, or alternatively we need to combine the Work-.pyCreateAndManageWorkFromEmail and Work-.ProcessInboundEmail activities in one service.

What can pega use to figure out if an email doesn't exist?

Delivery Status Notification (DSN) messages

If an auto reply message is sent to pega, how does it work it out and register that something needs to be done?

If the email listener finds the string “AutoReply” anywhere in the message, it sets the DSN status code to 2.2.0 and maps the Auto-Reply text as the message body.

What do we need to configure in order for DSN messages to be processed? (In Email Services)

DSN messages are ignored unless Process Delivery Notifications are selected on the Process tab on the email listener.

When Process Delivery Notifications is selected for the email listener, how are the DSN values mapped?

When an Email listener is enabled to process DSN messages, the DSN data is available and can be mapped in the Service Email rule. The standard page Work-.pyInboundEmail contains properties that can be used to map the DSN information.

If an email triggers a DSN message, we can use the Thread-Topic header in the email for what?

The parseThreadTopicHeader utility can be used to map the information to properties on pyInboundEmail, which can then be used in an exception flow to route the case details to an operator.

What is a consideration with DSN and creating new cases?

If your Email Service is creating new cases we recommend either disabling DSN handling or implementing a business process that handles DSN message since DSN messages might otherwise cause looping resulting in an infinite number of cases being created.

What is better about REST over SOAP?

It's faster, more lightweight.

REST operations are stateless? (true or false)

True


No client context is stored on the server between requests

What can we use to create a REST connector?

The REST Connector wizard

What is the first thing we enter in the Rest Connector Wizard?

We are prompted to enter a URL for the REST service.

What can the Rest Connector Wizard get from the service URL?

The wizard analyses the URL and suggests the elements that may represent parameters. Each resource path and query string element in the URL is listed individually.

In the Rest Connector Wizard, what do you do when you want resource path elements to be not static?

Select "Is Parameter".

By default the REST connector wizard will set Query String Parameters the same for all methods (GET, PUT, DELETE, POST) how can we customize them per method?

Configure them in the select methods step of the Wizard

If we have a file that is a good representation of a request/response from the client. What can we use this for in the REST Connector Wizard?

We can use this to generate the class structure needed for communicating with the client, as well as the XML parse and stream rules to map the data

What are the rules needed for a REST Service?

REST Service


Service Activity


XML Stream for the response


Service Package

Pega has a series of OOTB REST Service API's what does the Assignment API provide?

The ability to obtain a list of assignments for a user, obtain the details of any specific assignment, and perform an assignment action.

Pega has a series of OOTB REST Service API's what does the Authenticate API provide?

allows you to verify user credentials.

Pega has a series of OOTB REST Service API's what does the Cases API provide?

The means to obtain a list of cases for a user, create a new case, obtain case details, and update a specific case.

Pega has a series of OOTB REST Service API's what does the Casetypes API provide?

The list of casetypes for an authenticated user.

Pega has a series of OOTB REST Service API's what does the Data API facilitate?

The process of obtaining the contents of a data page and obtaining the metadata for a specific data page.

Pega has a series of OOTB REST Service API's what does the Docs API provide?

Access to the complete documentation for the Pega API

How do you secure Pega's REST Service API functionality?

On the Edit Service Package dialog box for the API service package, ensure that Requires authentication, Use TLS/SSL (REST only), and Suppress Show-HTML are selected. Create and install TLS/SSL digital certificates on your web application server for the Pega application.

How can we test the Pega API in Designer Studio for strong transport layer security?

- The URL starts with "https://"


- The connection is using TLS 1.2


- The user is prompted for their Pega credentials the first time the Pega API is used in a browser session

What role must the requestor have in order to access the PEGA API?

To access the Pega API the requestor requires the PegaRules:PegaAPI role is explicitly added to the users access group.

It is expected that multiple Pega API services are used together as part of a single process or multiple business application processes? (True or False?)

TRUE

What is a useful tool to do with the PEGA API that we can use to debug the responses, requests?

The try it out functionality on the API Services

What are some examples of Java EE compliant application servers that Pega can use?

IBM WebSphere, Oracle WebLogic Server, Red Hat JBoss Enterprise Application Platform, and Apache Tomcat (web container only).

What does the Client Tier do in Pega?

This layer provides information on how users access the application. Users access the PRPC application either by opening the PRPC portal in a browser or as a portlet embedded in another portlet. PRPC can also be deployed as a service and accessed by using a web service or other clients.

What does the Presentation Tier do in Pega?

This layer represents the client application (PRPC) and dynamic HTML pages running on the client machine. PRPC applications use JEE technologies such as Java Server Pages (JSP) delivering strong HTML content and Servlets which handles the HTTP interaction between the client and the server.

What does the Business Logic Tier do in Pega?

This layer manages the interaction between the Web clients and the PRPC’s business logic. PRPC can be run in the following ways:


- Web Tier


- Enterprise Tier


- Embedded EJB

The Business Logic Tier can be run in 3 ways in Pega. Explain running it in the Web Tier model?

This calls Servlet directly in a servlet container such as Tomcat or in Application server such as WebSphere or JBOSS.

The Business Logic Tier can be run in 3 ways in Pega. Explain running it in the Enterprise Tier model?

We call the Servlet directly in the web-tier, this runs the engine EJB in the enterprise tier.

The Business Logic Tier can be run in 3 ways in Pega. Explain running it in the Embedded EJB model?

Having a Java Client execute the engine EJB directly in the enterprise tier.

What does the Data Access Tier (Enterprise Information Systems Tier) do in Pega?

Data is stored in a relational database.


The JDBC API is primarily used to connect JEE application servers to an external database, JMS is useful to connect to an enterprise messaging system. JCA defines a standard architecture for connecting to heterogeneous EIS’s such as ERP, legacy applications and so on.

PRPC ‘assembles’ executable java as needed by generating and compiling java, then storing the class files back into the database table named ____________.

pr_assembledclasses

The run-time PRPC environment includes ‘engine’ and ‘application’ classes. The core PRPC engine is implemented through Java classes. Starting with _______ most of the PRPC ‘engine’ is actually loaded from the database table named ________________ .

- PRPC v6.1


- pr_engineclasses

What enables PRPC-based applications to be changed in a live system without having an outage or the need to redeploy?

Custom Java Class Loaders

What objects are stored in the database server?

- Transaction Data (Work)


- Pega Rules


- Reference Data


- Core engine Java Classes


- The assembled application java classes

In general when should you use EAR and when should you use WAR for deploying Pega?

In general, EAR should be used when you have cross-system transactional integrity (two phase commits), JEE security requirements or enterprise standards for applications to be distributed as enterprise beans.


WAR can be used in the absence of such requirements and when simpler configuration and operations are desired.

What are the 3 main application archives that must be deployed to the application server?

- prweb.war or prpc_j2ee.ear (Pega Engine)


- The System Management Archive (sma)


- prhelp.war (Pega Help)

What does prsysmgmt use to access those PRPC facilities represented as MBeans or Managed Beans and hosted inside the entity called MBean Server?

Java Management eXtension (JMX) tech

What does the EJB container provide?

Common functions, such as transaction support through the EJB engine and the connection to other enterprise information systems through the resource adapter.

What is the EJB engine hosted by in the pega deployment?

prbeans.jar which also provides all EJBs support including the eTier engine EJB

What is the PRPC resource adapter hosted by? (Part of the EJB Container)

Through the pradapter RAR (Resource Adapter aRchive).

What are Engine EJBs?

Engine EJBs are stateless EJBs providing an interface between the PRServlet in the Web container and the Rule Engine container in the EJB container.

What is the rules engine container?

Rules Engine Container is a single container which does all processing and contains static content and data (stored as clipboard pages). Processing in the Rules engine container can be Bean managed or container managed transactions.

What does the database EJB handle?

The database EJB handles secondary transactions such as locking and caching, this EJB uses bean-managed transactions since direct access to the database is required for each transaction.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What is JAAS or Java Authentication and Authorization Service?

It is a java security framework that provides, for example, a representation of user identity, a login service and a service that tests whether a user was granted a specific permission.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What is JDBC or Java Database Connectivity?


PRPC uses JDBC for all database interactions including persistence. JDBC enables java-based applications to execute SQL statements.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What is JTA or Java Transaction API?

It allows JEE components to participate in distributed transactions within the confines of a Transaction Manager. With the EAR deployment, JTA allows the support of two-phase commits as long as the database driver is an XA-type driver.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What does the JMS Server allow us to do?

The JMS server plays an important role in transparently handling many aspects of message pulling or pushing through a message queue or a message topic area. When deployed as a WAR file, PRPC only supports a JMS Listener whereas when deployed as an EAR file, it is possible to implement a JMS MDB Listener.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What does the JNDI Server allow us to do?

JNDI stands for Java Naming and Directory Interface. This allows named java objects of any type to be stored and accessed. We will encounter the use of JNDI in PRPC when creating Data-Admin-DB-Name instances for storing connection details of a database or when creating connection details in integration rules.

In the Java EE landscape that Pega fits in to, there are other java frameworks we may need to leverage.


What does JavaMail do?

JavaMail is another JEE API. It supports POP and IMAP protocols only and, as a result, PRPC supports only those two protocols. JavaMail is leveraged during Correspondence rules execution.

PRPC has three configuration files local to each JVM configuration that often require some degree of modification or customization by application server administrators. These files are?

prconfig.xml


prlogging.xml


prmbeans.properties

What can be configured in prconfig.xml?

PRPC server configuration file. Administrators must modify this file if they want to ‘classify’ a node (web, batch, agent, and listener) tune cache sizes, set alert thresholds or other behaviors specific to a single jvm (node).

What can be configured in prlogging.xml?

Administrators modify this file to implement log rolling, add custom log files, configure settings for integrating with PRPC ‘autonomic event services’ and ‘diagnostic cloud’ monitoring systems and to configure log filtering if required. Again editing this directly must be done only when behavior is specific to a single node.

What can be configured in prmbeans.properties?

The ‘mbean properties’ file controls the facilities available to the ‘management bean’ interface used by the pega-provided system management application or any custom JMX scripting. By default, there are restrictions on certain operations, like viewing user session business data on the clipboard. It is quite common to edit the mbean properties to lift such restrictions in the pre-production environment to provide better centralized debugging capabilities.

What are some of the benefits of connection pooling?

Improved performance, including garbage collection.



Where can PRPC get connection details for the Database from?

PRPC can leverage the JNDI data source defined as part of the application server or the servlet container (in case of tomcat) for the database connection details.

What is it highly recommended that we do on the application server (to do with connection pool size) ?

It is highly recommended that we set the connection pool size in the application server to make sure users are not waiting to acquire database connections.

How should we decide what to set the connection pool size as on the application server?

Careful introspection of alert log files helps to set the connection pool size.

Database connection properties can be set in prconfig but we shouldn't do this, what should we do?

In Tomcat the database connection should be defined specifically for our application by defining a resource definition in the context.xml file.


The rest of the time it should be done on the app server.

What PRPC Caches are stored on the client file system?

Static Content Cache

What PRPC Caches are stored on the Server File System?

Lookup List Cache


Static Content Cache

What PRPC Caches are stored in Memory?

Rule Instance Cache


Rule Assembly Cache


Conclusion Cache


Declarative Page Cache


Declarative Networks Cache

What PRPC Caches are stored in the Database?

Rule Assembly Cache


Conclusion Cache

What is the Rule Instance Cache?

This is a memory cache of rule data accessed through rule resolution. It records the XML payload of rules. It is set during the 'set the cache' step of rule resolution.

When a rule is requested from the Rule Instance Cache, what are the 3 possible outcomes?

- Cache Hit: This rule is in the cache, have it.


- Cache Miss: This rule isnt in the cache, i'll get it.


- Not Found: This rule isn't here.., I'll go.. oh wait, it's not here either. No idea.

When a rule is a Cache Miss in the Rule Instance Cache, it is fetched from the database, it is then added to the cache, always. (True or False)

False.


The rule may have to accessed several times, PRPC has an algorithm to decide how many times the rule must be accessed before it is added to the cache.

What happens in the Rule Instance Cache when a rule gets updated?

When the rule gets updated, the system checks the cache for any rule related to the changed rule and invalidates those entries, so that subsequent requests for this rule go to the database and get the updated rule information (rather than getting the outdated information from the cache).

The Rule Instance Cache is made up of two parts, the Alias Cache and the Instance Cache, what do these do?

The “alias cache” which captures rule resolution relationships and provides the pzInsKeys of the candidate rules.


The instance cache captures the blobs from database and stores the XML format in memory.


The alias cache says what rule we should run, the instance cache, caches the XML.

What is the rules assembly cache?

Rules Assembly is the process of generating and compiling all of the rules that need to be run by the Pega 7 system and for which Java compilation and generation is necessary. It actually provides access to the constructor of the java class generated.

When the system calls a rule to be run, if that rule was never executed, the Rules Assembly process must? (There are 4 steps designed to maximize efficiency)

1: Assemble the rule, including all the other rules required. (inc rule resolution)


2: Creates the Java code for the rule


3: The Java code is compiled and the resulting class is saved to the database


4: The class must be loaded by JVM for execution

In all PRPC releases prior to v6.3 what was the Rule Assembly Cache called?

FUA (First Use Assembly) cache

In PRPC v 6.3, the cache was grouped in applications instead of ruleset lists, what was this called?

Application Based Assembly Cache (ABA)

ABA stores the Rule Assembly cache in three database tables, what are they?

- pr_sys_appcache_shortcut: stores, mapped cache key to an assembled class name. Cache Key includes 'Top Level' application.


- pr_sys_appcache_dep: Inlined rule names for each assembled class


- pr_sys_appcache_entry: same as the shortcut table except the cache key includes 'owning application'.

For the ABA Rule Assembly Cache, to support the sharing, the system also maintains the application hierarchy and rulesets in database tables, what are they?

pr_sys_app_hierarchy_flat and pr_sys_app_ruleset_index respectively.

ABA Rule Assembly Cache is used in 7.1 applications as well as 6.3, but only for certain rules, which rules?

UI rules such as Harness, flow actions, sections, and paragraphs.

In 7.1 ABA (Application based Assembly) has been replaced by what?

VTable Virtual Rules Table

Describe the Virtual Rules Table (VTABLE), which is used for most rule assembly caching in 7.1 onwards.

Virtual Rules Table (VTable), which does not include inline rules and eliminates the context. VTable cache is stored in the database table named pr_sys_rule_impl and it contains only the mapping of the rule to the assembled classes.

How does the Virtual Rules Table (VTABLE) work at runtime?

It stores the key (Rule Class and name of the rule (Purpose)). When the rule gets saved, it creates an entry in the pr_sys_rule_impl table, saves the assembled class in the database table named pr_assembledclasses. When the rule gets invoked, it looks for the VTable cache and gets the mapped class name by searching the purpose.

What are some of the benefits of using the VTABLE System for rule assembly caching?

VTable caching offers several benefits such as the drastic reductions in the cache size and database table size, zero contention since updates happen only on the rule save and improved the performance significantly because the product ships with all Pega shipped Rules preassembled in the database table.

VTable cache requires little configuration, as it is so lightweight, but there is one case where we would use the SMA for it, what is this?

In rare cases, when the system pulse throws some exceptions or if rules are not consistent along different nodes, we have the option to use SMA to reload rules to make the same rule appear in all nodes. To do this, we navigate to Virtual Rule Table Cache Management page in SMA and then enter the name of the rule which we want to reload.

What is the Static Assembler used for?

The Static Assembler is useful in pre-assembling rules that are developed by your development team. Running the static assembler builds the VTable and Appcentric assembly cache. It makes sense to run the static assembler when new application rulesets are imported.

What is the Static Content Cache?

Static Content cache holds text and image files corresponding to the extracted text file and binary file rules. It is actually cached in two places, on the server and on the client. Static content refers to files that rarely change.

A file is stored in the Static Content Cache on the Application Server, the user accesses it, where else might we find the file cached?

Some of these files are stored in the client machine, typically on the browser cache. When users request data, it retrieves the data from the browser cache, which eliminates the need to request information from the server. By default, PRPC sets an expiration tag of 24 hours, so the file does not get updated from the server for 24 hours.

We are about to restart PRPC and we want to make sure the static content cache is cleared, how do we do this?

Static Content cache stored on the server file system is structured as sub-directories of the StaticContent common directory in the Pega temp directory. If you need to clear the static content cache at the next startup, delete the PegaRULES_Extract_Marker.txt file from the Pega temp directory before restarting the system.

Static content stored in the server can also be managed using SMA in the ETier Static Content management page in the Advanced Category. What can we do there?

There are reports and the summary provide statistics such as the number of files written, the number of files read from database, the elapsed time to write files, read files from database, time to invalidate rules, etc. This page also offers the ability to clear caches individually, such as lookup list, rule-file-cache, rule file and service export cache.

Static Content caching performance can be improved by exporting the static content caching to edge servers. If the users are located all around the globe, users connecting to PRPC might see some performance issues when accessing the files since the cache is stored in a server and it depends on the network speed. How do we config this?

Users who can access the edge servers should be assigned to a specific access group. Customize the stub activity shipped in the product (ApplicationProfileSetup) to set the edge server URL and then save it in a production ruleset. The production ruleset should then be added to the access group. Use the Extract Edge Server Files landing page to create the zip file and then import it to the corresponding edge server.

What is the Look-Up List Cache?

Lookup list cache stores data instances that are requested by rules that do a lookup on the PRPC database tables. This contains the XML format of the lookup list information displayed in drop-down boxes such as Smart Prompts or other list based controls. The system automatically deletes these files if the list becomes stale due to some operations.

When should you consider clearing the Look-Up List Cache?

It should be cleared rarely, but should definitely be cleared on the occasions when you import a file that updates these records or when there is an exception in the system pulse.

What is the Conclusion Cache?

Certain rules such as classes, field values, properties, property-alias, etc. are saved in the Conclusion cache. These rules are not saved in Rule cache and the rules also do not require assembly or compilation.

In what database table is the ConclusionCache stored?

pr4_rule_sysgen

The Conclusion Cache isn't stored in memory via metadata. (true or false)

False


This cache uses memory caching, the metadata information about these rules are stored in memory.

The conclusion cache can be viewed in SMA in the Advanced category. What can we do here?

The Conclusion cache page lists the details of each cache across rule categories (property, class, field value, etc.), it lists the size estimate, instance count, prune age, etc. It also lists options to clear cache for both memory and database.

Starting in PRPC v6.2, the conclusion cache parameters were externalized and can now be overridden using dynamic system settings. How do we do this?

To override these values, we should use the following as the setting purpose defined as:


prconfig/conclusioncache/typeName/minimumsize


prconfig/conclusioncahe/typeName/pruneatage


(typeName = Property or any others in the list)



What does the Property Reference Cache do?

The Property Reference Cache stores property references in memory based on its usage. Adjusting this memory is critical since it severely impacts performance.

How do we know that the default value for the property reference cache is not enough?

We access the factory report in the SMA, we go to the Property Reference Pool Report. Here we check the pruned count is 0, If you see “2nd class objects now ignored” then the system performance is being affected.

What is the Declarative Network Cache?

This cache supports how declarative processing functions. It uses the ruleset list to generate the cache and it lists various declarative networks that are associated with each ruleset list on a specific operator.

Where are all the declarative network instances stored?

In the pr_sys_decchg database table.


This act as a helper table in constructing the cache that is available on memory and also stores the relationships between various rules, however caching happens primarily in the memory.

Why is the system pulse necessary?

When PRPC is installed on a multi-node system, a copy of the various caches are stored on each node, and each of those nodes must be updated with rule changes. This update process is managed by the System Pulse functionality.

Which database table is used to manage the system pulse?

pr_sys_updatescache

What causes the pr_sys_updatescache table to write a row?

Saving a rule change (update, add, or delete)


Cache – for any changes to the rule cache (updates or deletes)


Index – when the Lucene index is changed


DELLC – when the lookup list cache is deleted


RFDEL – when any static content or rule-file- is deleted


IMPRT – when import occurs and it clears the lookup list and static content cache


RUF-X – when a function library is regenerated

How often does the System Pulse run and what controls it?

Every 60 seconds, the pulse (which is part of the standard PegaRULES agent) on each node wakes up (independently) and queries the pr_sys_updatescache table. The query retrieves records which are “not from this node” (which this node did not create), and which have a timestamp which falls within the window of time starting with the last pulse (or system startup) and now.

Where can we find system pulse info in the SMA?

System Pulse activity can be seen in System Management, under Administration > Pulse Status Page.

What are the most common things high-availability can be used to support?

- application server maintenance


- crash recovery


- software upgrades

Explain what Horizontal scaling is?


Explain what Vertical scaling is?


(In regards to clustering)

Horizontal Scaling: Multiple application servers are deployed on separate physical or virtual machines.


Vertical Scaling: Multiple PRPC servers are deployed on the same physical or virtual machines by running them on different port numbers.

A Shared Storage repository is not key in high availability (true or false)

False


A Shared Storage repository is the key component in achieving high availability because it’s used for crash recovery and Quiesce

What features are needed in application servers for high availability?

Features such as shared messages and buses to handle services and listeners during planned or unplanned outages.


Application servers such as websphere, weblogic or JBoss.

PRPC comes with two roles that can be added to access groups for administrators who will be managing high available applications. What are they?

PegaRULES:HighAvailabilityQuiesceInvestigator


and


PegaRULES:HighAvailabilityAdminstrator

What is the PegaRULES:HighAvailabilityQuiesceInvestigator role used for?

HighAvailabilityQuiesceInvestigator is given to administrative users who perform diagnositics or debug issues on a quiesced system. When a system is quiesced, the system reroutes all users other than the ones having this role. By default, a privilege named pxQuiesceAdminControl is created for granting this access.

What is the PegaRULES:HighAvailabilityAdminstrator role used for?

The High Availability Administrator role in addition to the pxQuiesceAdminControl privilege, offers the ability to access the high availability landing pages in Designer Studio.

It is better to use AES or SMA than the Designer Studio High Availability landing page? (true or false)

True


Since Designer Studio updates rely on System Pulse for the update to be applied on other servers. This mechanism is slower (requires at least two minutes for the system pulse to update other servers) than using AES or SMA.

What are the three ways we can set Configuration values for high availability?

1) Using prconfig.xml - available for all users on a server


2) Using dynamic system settings - available for all servers on a cluster


3) Using a shared prconfig.xml file – We use a shared drive or NFS to store the prconfig.xml, available to all servers

Pega Applications have four sets of requestor types logging in to an application. They are?

1) Browser Requestors - ID's begin with a H


2) Batch Requestors are background processes - ID's begin with B


3)Application Requestors (Services) - ID's begin with A


4) Portal Requestors (Service Portlet) - ID's begin with P

Where can we view all current active requestors?

SMA - Requestor Management

The requestor type is a data instance record and it exists under the SysAdmin category (true or false?)

True

Requestor Types (APP, Browser ect) have definitions, where can we view all our definitions?

System > General (landing page)

There are two sets of requestor types, prpc and pega. The current version of PRPC uses?

pega


prpc exists for backwards compat

We want to modify browser sessions to use something other than PRPC:Unauthenticated before login, where can we do this?

Open the BROWSER Requestor Type definition rule, change the access group.

A PRThread is not related to a JVM thread but is a namespace used as a container for clipboard pages. (true or false?)

True

BROWSER requestor sessions get closed in one of three ways, what are they?

1) User Logs off


2) Session times out


3) Server is restarted

By default, a requestor session times out after 60 minutes of inactivity, while a PRThread and clipboard page times out after 30 and 15 minutes respectively. These values can be overwritten using?

Dynamic system settings

When the requestor timeout is reached, the corresponding information is saved in the disk by default. The requestor information is retained on the disk for a specified amount of time after which it is removed. What is the process called?

Passivation

What does the term Activation refer to? In user sessions

This is the reverse process of restoring the passivated data back into memory. If a session has been passivated but is then accessed again before it is cleared out, it is Activated.

In passivation we can customize DASS settings to write passivated sessions to the database instead of the disc, why would we not do this in high availability applications?

In high availability applications shared storage between balanced servers must be used, so sessions can be activated from any server.

What is the dynamic system setting for customizing where sessions are passivated (disc or db)?

prconfig/initialization/persistrequestor/storage

What is the dynamic system setting for customizing where passivated sessions are saved on the file server? (disc)

prconfig/storage/class/passivation/rootpath

Where can we view passivation settings on the SMA?

Advanced > Passivation Management


(used for checking settings are performent)

PRPC uses another timeout named Authentication timeout. Where is this configured and what does it do?

This timeout is configured in the access group record. PRPC forces users to login after this timeout is reached.


In cases where external authentication is used this timeout is disabled. If authentication timeout is expired then the user should login again to activate their session.

PRPC requires all requests from the same browser session to go to the same JVM. How do we achieve this in a high availability application?

We must have a fit for purpose load balancer that supports “sticky” HTTP Sessions (also known as session affinity).

For high availability applications, the load balancer must also support (apart from sticky sessions):

- Automatic monitoring for any failure detection


- Disable a JVM so that it does not allow any new user sessions but allows existing user sessions to continue, to facilitate shutdown.


- Scripting capabilities to support cookie management, allocation of work to jvms, and so on.

Session affinity or sticky sessions can be established in many ways, and PRPC uses cookies to manage sticky sessions. Where can we set these cookies for PRPC?

The cookies can be set using the session/ha/quiesce/customSessionInvalidationMethod in prconfig.xml or in dynamic system settings.

Explain what happens in Pega with Cold Failover?

In a cold failover, load balancing systems send a heartbeat to the nodes to check if they are still running. This heartbeat can be configured in the application server and can be sent each minute, or once every two minutes or so. When the server is down, it sends a notification to the load balancer and moves the sessions to another server.

During a crash, there is a setting helps in redrawing the user screen to bring back all values and restore the user interface to the previous state. What is that?

session/ha/crash/RecordWorkInProgress=true This setting stores the user interface metadata in the shared file system.

There are steps that occur to help recover a crashed session, 3 of them, what are they?

1) PRPC saves the structure of UI and metadata (in shared storage)


2) The Load balancer finds the failed server, it removes that PRPC server from the load balancer pool


3) The users next request goes to a new server, data is retrieved.

Pega can be configured to handle browser crashes, how does it handle those?

In the case of High Availability applications, when the browser crashes, a new browser session connects to the correct server based on session affinity. The user interface metadata and clipboard are used to repaint the screen.

In a multi-node clustered environment, these are the steps done to follow to upgrade the system. What are they?

1) In the Load balancer console, disable the PRPC Server that is slated to be upgraded.


2) To start moving existing users, PRPC recommends using a process named Quiesce.

Explain what Quiesce does?

It is an accelerated passivation setting. When users send another request, it activates their session in another PRPC server without them losing any information. (the default is 5 secs)

Where are the two places we can start Quiesce from?

-AES


-SMA

In Split-Schema architecture, we want to upgrade the users to a new version of PRPC, can we do this by creating a new Rules database (for the new version) alongside the old rules database?

Yes


Pega 7 high availability features can then be used to move users from the old rule schema to the new schema on the production system to complete the upgrade.

What are the 7 steps when performing an high-availability upgrade in a split schema?

1) Freeze rule development in the existing system


2) Create a new schema


3) Migrate rules from the old schema to the new schema


4) Upgrade the new schema to a new PRPC release


5) Update the data instances in the existing data schema


6) Modify the DB connections to point to the new schema


7) Quiesce one server after another to perform a rolling start

There are 4 basics flavours of Pega Mobile, what are they?

1) Pega Mobile Web - accessed through web


2) Pega Mobile Client - Pega's App


3) Pega Mobile Mash-Up - Embed Pega in your app


4) Pega Mobile SDK - Embed Pega in your app, custom UI, custom app build

What is the 2 major downsides to using Pega Mobile Web?

No Offline Mode


No Access to device capabilities

What is the Pega AMP?

Pega AMP (Application Mobility Platform) is a platform for building, integrating, and managing native and hybrid mobile applications with PRPC. Pega AMP consists of a communications framework, a set of APIs, and services for mobile-specific tasks such as authentication, integration, GPS position reporting, and push notifications.

What is the Pega AMP Manager?

Pega AMP Manager provides the ability to manage users, devices, apps, and backend mobile services in an enterprise. Pega AMP Manager is the main component in implementing both Mobile Application Management (MAM) and Mobile Device Management (MDM) services.

I want to access a Pega 6 application via mobile, how would I do that?

Add the Pega Mobile ruleset to the application stack.

When creating a Custom Mobile App in Pega (splash screens customized ect). What do we need to proceed?

- A Pega Mobile Licence


- Application rule configured for custom app


- Upload our custom assets


- Set it up to work with our Mobile build server

What do we do with the Assets zip file? (pega mobile)

The development team can modify the images and upload it.

The build process for the hybrid mobile app uses a hosted build server, which is a licensed product. There are two system-wide settings that we need to put in place based on our separate build server account. What are they?

1) The build URL - DASS: pega/mobilebuild/baseurl in Pega-AppDefinition ruleset


2) The authentication profile - modify MobileBuildServerAuthentication modified to set the authentication scheme, user name, build server host name and so on.

When you don't want your custom app's hosted in the APP store, what can you use instead?

Pega's AMP Manager to host and distribute the apps.

What can the Pega AMP Manager do?

- Push Applications to users via access groups


- Show statics, how many users, devices and apps are set up.


- Auto-Remove the App when user is removed from access group

How do we set up the AMP Manager to work?

- Have the correct licence


- configure the application rule to communicate with AMP Manager

What languages does the Pega SDK support for integration with?

- Java


- Objective C

Pega SLAs.


What is the name of the agent that enforces SLAs? And how often does it run?

ServiceLevelsAgent


Every 30 seconds by default

What happens if a case is locked when the ServiceLevelsAgent runs?

An error is put against the queue's pxErrorList the pxLastExecutionDateTime will also be set to the time when the lock was attempted.

In what activity is pxEvent on a SLA queue set for the first time?

Assign-.AddAssign activity called. If a ServiceLevel rule is configured against the assignment, AddAssign creates a ServiceLevel queue item with the value of pxEvent set to “Goal”.

The SLA agent "ServiceLevelsAgent" runs an activity called ProcessEvent. How does it handle pxEvent?

ProcessEvent checks if the Service Level has run its course. If not, a new queue item is constructed using values from the currently examined queue item. The value of the new queue item’s pxEvent property is set using:




.pxEvent = Primary.pxEvent == "Goal" ? "Deadline" : "Late"

What happens at the end of the ProcessEvent SLA activity?

At the end of the ProcessEvent activity, the ExecuteSLA activity is called. The ExecuteSLA activity is where the Assignment’s ServiceLevel rule, if any, is opened and processed.


pxServiceLevelName holds the service rule name on the assignment.

What is a WorkSLA? (as opposed to a Task SLA)

It is an SLA defined against a Case rather than a single task

Where can we set a Work level SLA?

The Case Designer supports this value being set within the “Case Details” tab.

How does a Work level SLA process in the background?

It uses the OverallSLA flow in parallel to the case flow. pySLAName is taken from the case and transfered to the assign class for the workbasket used in the OverallSLA flow (default@orgname), this is .pxServiceLevelName

Is it possible to set unique “.pySLAGoal” and “.pySLADeadline” DateTime properties on each case?

Yes, For these properties to take effect, the ServiceLevel rule represented by “.pySLAName” must be configured to use those properties as the Goal and Deadline times, respectively.

Is it possible to work on a case/assignment early when a SLA’s “Assignment Ready” is on "Timed Delay" (that has not been reached yet)?

Yes. The confirm harness is displayed but the user can continue, the The “Assignment Ready” SLA value is set into Assign-.pyActionTime.

Work level SLAs are closely related to the Quality and Processes report groups. Explain each.

Quality” and “Processes” reports report against case tables. The difference between the two is that “Quality” reports report against resolved cases and "Processes" report against unresolved cases.

Task level SLAs are closely related to the "Performance" and "Assignment" report groups. Explain each.

“Performance” reports report against resolved items whereas “Assignments” reports report against open assignments.


They report against case history records that contain a “pyHistoryType” field.

In task level SLAs we report against the history records, what are some key values that are used?

The "HistoryType" a different letter is used for each (F for flow action).


Also “.pxAssignmentPastGoal” and “.pxAssignmentPastDeadline”, these are used to work out if an assignment is past goal, deadline or neither, and by how much.

What does the urgency declare expression look like for work level SLAs?

pxUrgencyWork =@min(100, @max(0,.pxUrgencyWorkClass + .pxUrgencyWorkAdjust + .pxUrgencyWorkSLA + .pxUrgencyPartyTotal + .pxUrgencyWorkStageSLA))

What does the urgency declare expression look like for assignment level SLAs?

pxUrgencyAssign = @min(100, @max(0, .pxUrgencyWork + .pxUrgancyAssignSLA + pyUrgencyAssignAdjust))

An assignment is created an the urgency is computed, the assignments SLA increases the urgency, but the assignment's urgency is unaffected why is that?

The assignment’s value for pxUrgencyWork is the value of the Work-.pxUrgencyWork's expression at the time the Assignment was created. Should the ServiceLevel increase work urgency after an assignment is created, any existing assignment would be unaffected.





In assignment SLA's we want to implement it so the assignment's urgency is the same as the work item's urgency, how do we do this?

- An advanced agent could be implemented that periodically examines every case.


- a different parallel flow that contains a single workbasket assignment could be spun off when each case is created, which updates the assignment urgency

What are some common considerations with SLAs and Locking?

- If the SLA has a high turnover (every hour counts), locking could slow down timeliness. We should design our locking strategy accordingly.

XML MAPPING.


What is a Namespace Identifier and what does it become in Pega?

-Gives an element a name


- Becomes properties of XML stream and parse, otherwise ignored.

XML MAPPING.


What are annoymous complex type definitions and what do they become in Pega?

- A complex type without a name at the top level of the schema


- Mapped via class

XML MAPPING.


What are named complex type definitions and what do they become in Pega?

- A named complex type at the top level of the schema


- Mapped via a class, uses the defined name, properties created for content within (attributes.., more complex content)

XML MAPPING.


What are Scalar Sub-Elements and what do they become in Pega?

-Reoccurring simple element


-C