Wishing to learn Pega/PRPC?

There is no easy way to say this, but there is no easy way to learn Pega PRPC 🙂

Although the PRPC software provided by Pegasystems does not really have “pre-requisites” required of those who plan to learn it, I have found it is very helpful for developers to have some experience in an Object Oriented programming language such as Java or C++, due to the importance the class structure and inheritance used within the product.

Many companies also provide training internally to their employees, or have the ability to train promising job applicants.

Unfortunately there are no known books available for purchase to perform self-study on PRPC. Pegasystems, the software vendor, does offer training classes, and information about those can be found here:

While the product is very powerful in the tools it provides OOB to use, and thus, enables a developer to build an entire system with little to no “hard coding”, it does benefit the developer to have a good solid technical background.

It is also helpful for new developers to PRPC to have a good understanding of various types of integrations
including, but not limited to, SOAP, SQL/RDBMS, EJBs, and various queuing technologies like JMS, MQ, and MSMQ. An understanding of XML, HTML, and javascript is a plus.

Pega Training topics

1. Introduction to PRPC
2. Using Process Commander and PRPC Developer Portal Basics
3. Architecture
4. Common Rule Types
5. Examining Rules Using PRPC (Class, ClassGroup, Rule Sets etc)
6. Understanding work and data class structures
7. Understanding Properties
8. Process Flows (Flow types, Shapes )
9. User Interface overview (Harness, Section etc…)
10. Rule Set and Security Overview
11. Using the Clipboard and tracer
12. Implementing PRPC
13. Building Class Structure
14. Creating Property and Model Rules
15. Creating Flow Rules
16. Building the User Interface
17. Enhancing the User Interface
18. An overview of Declarative rules
19. Validation
20. Using decision rules
21. Using Activities
22. Assigning work
23. Integrating PRPC Applications
24. Connecting to an External Relational Database
25. Documenting and Saving your Work

PRPC Code: Write message to the log

oLog.infoForced(“Creating queue connection factory using server string:” + AQserverString);

oLog.infoForced(“AQ Interface adding Work Item:”+ tools.findPage(“WorkTicket”).getString(“pyID”) +” of class:”+ tools.findPage(“WorkTicket”).getString(“pxObjClass”));

oLog.error(“error in incoming AQ from Workflow interface, could not add support item”);
oLog.error(“Received message: ” + tools.findPage(“WorkTicket”).getString(“message”));
oLog.error(“error in DB Workflow interface, could not add support item”);
oLog.error(“Received message: ” + tools.findPage(“SupportWFLDBError”).getString(“Message”));


Pega Rules Process Commander – PRPC

Pega Rules process Commander is a rules engine for business processes. Advantages are:
1. This eliminates manual programming
2. Captures business objectives into fully automated processes

Pegasystems is one of the leaders in Business Process Management softwares (BPM) and Customer Relationship Management (CRM) softwares.

Rules engines are popular in expert systems, such as diagnostic systems. The rules are defined on what should happen when certain rules are met.

Rules are declarative (not programmatic)

Flows are then defined to various applications – like call centers, order processing, technical support, etc.

Date Format

function FormatDate(cname)
   if (cname == null)
    return false;
   var re = new RegExp(/(d{6})(d{2})?/);
   var v1 = cname.value;
   if (cname.value.length > 0)
    if (cname.value.length == 8)
     cname.value = ‘0’+v1.substring(0,1)+’/’+’0’+v1.substring(2,2)+v1.substring(2,v1.length+1);
      cname.value = v1.substring(0, 2) + ‘/’ + v1.substring(2, 4) + ‘/’ + v1.substring(4, 8);
          else if (cname.value.length == 6)
     cname.value = ‘0’+ cname.value.substring(0, 1) + ‘/’ +’0’+ cname.value.substring(1, 2) + ‘/’ + cname.value.substring(2, 6);
          else if (cname.value.length == 7)
     var o = cname.value.substring(0,1);01/22011
     if(o != 0)
       cname.value = ‘0’ +cname.value.substring(0, 1) + ‘/’ + cname.value.substring(1, 3) + ‘/’ + cname.value.substring(3, 7);
      cname.value = cname.value.substring(0, 2) + ‘/’+’0’+ cname.value.substring(2, 3) + ‘/’ + cname.value.substring(3, 7);