Pega PRPC is where growth is

Pega is rapidly growing.

Pega is being implemented across multiple industry verticals such as Health care, Insurance, Banking and Financial Services, Retail and Energy.

Pegasystems was founded in 1983 by Alan Trefler. Trefler’s early experiences teaching computers how to play chess provide the intellectual foundation for his thinking on the importance of rules and automated decision support. Pegasystems went public in 1996 and is listed on the NASDAQ exchange under the symbol PEGA.
On 15 March 2010 Pegasystems announced it was acquiring Chordiant for a price of up to approximately $161.5 million.

Pega Implementation lifecycle – SmartBPM

SmartBPM methodology covering the Pega implementation lifecycle – Inception, Elaboration, Construction, and Transition

The methodology used to implement and improve a BPM solution is critical to the success of BPM projects. Business 
Process Management methodology serves two functions: Providing a framework for understanding and improving 
business processes in general, and offering tools as part of  a BPMS (Business Process Management Suite) to define, 
implement, and improve processes using software.

A BPMS is a platform to automate policies and procedures and manage human interactions in business processes, 
improving business responsiveness across the enterprise. BPMS features and capabilities contribute significantly to the success or failure of a BPM project, but the implementation methodologies, guidelines, and governance practices of the project are as critical to its success. 

Independent process improvement practices — both BPM and broader business management disciplines such as Lean and Six Sigma — may be attractive methodologies for a BPM project, but they could add unnecessary complexity 
to BPM solution development, requiring translations between tools and manual updates for reporting and governance.

For real project agility, the BPMS must provide tools and constructs to support iterative and agile methodologies with BPMS-specific accelerators. In each phase and iteration of a project, the project and methodology must be in synch to avoid needless mapping, and the BPMS must implement the objectives of the methodology while advancing the project itself. The methodology should leverage the BPMS and be consistent with its terminology, capabilities, and change management approach.

Generate a PDF and send that though email

A requirement in underwriting application
To generate quote letter for insured and home office. send insured letter with signature digitally signed and email it the same to insured.

1.Generate a pdf
2.Add signature and date time stamp
3.Email the same to different users..

To achieve it using java and iText library (open source)

package com.vasu.edelivery;
import java.awt.Color;
import java.util.Date;
import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;
import com.lowagie.text.Anchor;
import com.lowagie.text.BadElementException;
import com.lowagie.text.Cell;
import com.lowagie.text.Chapter;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;import com.lowagie.text.Font;
import com.lowagie.text.List;import com.lowagie.text.ListItem;
import com.lowagie.text.Paragraph;import com.lowagie.text.Section;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.PdfWriter;
public class HomeOfficeCopy {
private static String FILE = “c:/vasu/tmp/HomeOfficeCopy.pdf”; 
private static Font catFont = new Font(Font.TIMES_ROMAN, 18, Font.BOLD);
private static Font redFont = new Font(Font.TIMES_ROMAN, 12, Font.NORMAL, Color.RED);
private static Font subFont = new Font(Font.TIMES_ROMAN, 16, Font.BOLD); 
private static Font smallBold = new Font(Font.TIMES_ROMAN, 12, Font.BOLD);
public static void main(String[] args) { 
try {
Document document = new Document(); 
PdfWriter.getInstance(document, new FileOutputStream(FILE));; addTitlePage(document); addContent(document); 
document.close(); } catch (Exception e) { e.printStackTrace(); } }
private static void addTitlePage(Document document) throws DocumentException { Paragraph preface = new Paragraph(); // We add one empty line addEmptyLine(preface, 1); // Lets write a big header preface.add(new Paragraph(“xyz Insurance”, catFont));
addEmptyLine(preface, 1); // Will create: Report generated by: _name, _date preface .add(new Paragraph( “Report signed by: ” +”n”+ System.getProperty(“”) + ” , ” + new Date(), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ smallBold)); addEmptyLine(preface, 3); preface.add(new Paragraph( “This document describes something which is very important “, smallBold));
addEmptyLine(preface, 8);
preface .add(new Paragraph( “This document is a preliminary version for HomeOffice and not subject to AIG ;-).”, redFont));
document.add(preface); // Start a new page document.newPage(); }
private static void addContent(Document document) throws DocumentException { Anchor anchor = new Anchor(“First Chapter”, catFont); anchor.setName(“First Chapter”);
// Second parameter is the number of the chapter Chapter catPart = new Chapter(new Paragraph(anchor), 1);
Paragraph subPara = new Paragraph(“Subcategory 1”, subFont); Section subCatPart = catPart.addSection(subPara); subCatPart.add(new Paragraph(“Hello”));
subPara = new Paragraph(“Subcategory 2”, subFont); subCatPart = catPart.addSection(subPara); subCatPart.add(new Paragraph(“Paragraph 1”)); subCatPart.add(new Paragraph(“Paragraph 2”)); subCatPart.add(new Paragraph(“Paragraph 3”)); // Add a little list createList(subCatPart);
// Add a small table createTable(subCatPart); // Now a small table 
// Now add all this to the document document.add(catPart);
// Next section anchor = new Anchor(“Second Chapter”, catFont); anchor.setName(“Second Chapter”);
// Second parameter is the number of the chapter catPart = new Chapter(new Paragraph(anchor), 1);
subPara = new Paragraph(“Subcategory”, subFont); subCatPart = catPart.addSection(subPara); subCatPart.add(new Paragraph(“This is a very important message”)); // Now add all this to the document document.add(catPart);
private static void createTable(Section subCatPart) throws BadElementException { Table t = new Table(3,2);
t.setBorderColor(Color.GRAY); t.setPadding(4); t.setSpacing(4); t.setBorderWidth(1);
Cell c1 = new Cell(“Table Header 1”); c1.setHeader(true); t.addCell(c1); c1 = new Cell(“Table Header 2”); t.addCell(c1); c1 = new Cell(“Table Header 3”); t.addCell(c1); t.endHeaders(); t.addCell(“1.0”); t.addCell(“1.1”); t.addCell(“1.2”); t.addCell(“2.1”); t.addCell(“2.2”); t.addCell(“2.3”);
private static void createList(Section subCatPart) { List list = new List(true, false, 10); list.add(new ListItem(“First point”)); list.add(new ListItem(“Second point”)); list.add(new ListItem(“Third point”)); subCatPart.add(list); }
private static void addEmptyLine(Paragraph paragraph, int number) { for (int i = 0; i < number; i++) { paragraph.add(new Paragraph(” “)); } }

public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException{
boolean debug = false;
//Set the host smtp address Properties props = new Properties(); 
props.put(“”, “”);
// create some properties and get the default Session Session session = Session.getDefaultInstance(props, null); session.setDebug(debug);
// create a message Message msg = new MimeMessage(session);
// set the from and to address InternetAddress addressFrom = new InternetAddress(from); msg.setFrom(addressFrom);
InternetAddress[] addressTo = new InternetAddress[recipients.length]; 
for (int i = 0; i < recipients.length; i++) {
addressTo[i] = new InternetAddress(recipients[i]); } 
msg.setRecipients(Message.RecipientType.TO, addressTo); 
// Optional : You can also set your custom headers in the Email if you Want msg.addHeader(“MyHeaderName”, “myHeaderValue”);
// Setting the Subject and Content Type msg.setSubject(subject); 
msg.setContent(message, “text/plain”); 


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

Pega PRPC syllabus

> Introduction to PRPC
> Using Process Commander and PRPC Developer Portal Basics
> Architecture
> Common Rule Types
> Examining Rules Using PRPC (Class, Class Group, Rule Sets etc)
> Understanding work and data class structures
> Understanding Properties
> Process Flows (Flow types, Shapes )
> User Interface overview (Harness, Section etc )
> Rule Set and Security Overview
> Using the Clipboard and tracer
> Implementing PRPC
> Building Class Structure
> Creating Property and Model Rules
> Creating Flow Rules
> Building the User Interface
> Enhancing the User Interface
> An overview of Declarative rules
> Validation
> Using decision rules
> Using Activities
> Assigning work
> Integrating PRPC Applications
> Connecting to an External Relational Database
> Documenting and Saving your Work

PRPC Detailed installation procedure

1) create tablespace
create tablespace pegatablespace
datafile ‘C:oracleproduct10.2.0oradataorclpegadatafile.dbf’
size 100m
autoextend on
next 100m maxsize 3096m
extent management local;

2)create user
create user pegauser
identified by pegauser
default tablespace pegatablespace
temporary tablespace temp;

3) grant access
grant resource,connect,dba to pegauser;

4) logon

5)go to Administration and click users and select pegauser and click on edit
and goto Roles and checl all AdminOptions and click on apply
then click on System Privileges then editlist
then select some privileges and click on apply then select Admin option for all and click Apply

6) Login as pegauser in sql+

7) copy oracledate_install0503.sql to C direcory and run sql> @C:oracledate_install0503.sql;

8) set the classpath with java/lib, tomcat/lib under system variables

9) set the poolsize for tomcat/java

10) copy prdbutil.war from Training to tomcat/webapps
start tomcat then stop tomcat and delete prdb.util.war

11) create new folder with name pegatemp in C drive

12) open prconfig.xml in tomcat/webapps/prdbutil/web-inf/classes

13) change the value of explicittempdir to C:/pegatemp

14) add the env for oracle in prconfig to

15) copy classes12.jar from oracle/lib to tomcat/common/lib

16) http:\localhost:8080prdbutil
upload TrainingpegaPRPCv5_v53_relcand_0049.jar
next, skip
enter ip and port
next, verify
next, exit
stop tomcat

17) copy prweb.war to tomcat/webapps

start tomcat and stop tomcat and delete prweb.war

18) copy prconfig.xml from tomcat/webapps/prdbutil/web-inf/classes and paste in tomcat/webapps/prweb/web-inf/classes

19) start tomcat
http:\localhost:8080prwebPRServlet pwd: xxxx
click on process