Saturday, August 1, 2009

Find rules from advance search

Using Find Rules option under "Tools".Once you click the Find Rules Option,click the second button(Advanced) starting from right side of the screen.
Once you clicked it,it will open up Rule Content Search screen with more options.
Please note: You need to build PegaRules Index via Monitor Servlet before you find the list of all rules referenced by single rule which you are going to search for :)

Issues and hot fix

Issue: Invalid Date format and Parse Errors

.........HotFix-419 (3 MB).

Pega KB Link

Security auditing

  • PRKB-24127 How to audit field-level changes to security rule and data instances
  • PRKB-24131 How to extend the security auditing feature to record changes to additional properties


Load-balancing a multi-node cluster


System Operations - Contents


Index: Technology Papers


Generic import/export ruleset operations using command line


Mapping Classes to Tables

Friday, February 27, 2009

PEGA SYSTEMS SMART BPM SUITE (PRPC)



Company and product Background

SmartBPM offers a number of insurance-specific workflow frameworks that serve as thestarting point for developing SmartBPM applications: new business workflow for personaland commercial auto, businessowner’s policy, and term life; change of policy in forceworkflow for the same set of products as new business; and claims workflow for propertylosses.

Customer Base and references

Pegasystems BPM solution are its rules engine, “superb ability to integrate Java and vendorsupplied methods/utilities,” and “ability to allow for dynamic change.” They also cited thesolution’s SOA and other integration capabilities as real strengths.

Functionality

SmartBPM provides all the elements in a complete BPM solution. SmartBPM is completely unified with the PegaRULES rules engines. PegaRULES also serves as SmartBPM's execution engine. Microsoft Visio is used to design processes. Analytics are provided by an OLAP tool and by a process simulator for what-if scenarios. All three people and system interaction pairs are supported. For person:person interactions, SmartBPM offers a large number of routing methods including: route to manager, route by skills, and route by availability. Person:system and system:system hand-offs can be created in the design process through the use of an integrator shape in Visio.

Usability and Security

Users in service roles have customized views, worklists, and workbaskets. Managers have activity monitors and customizable reports. System administrators have a dedicated portal thatcontrols various user and performance functions. They also have access to the Autonomic Event Services Manager that can diagnose and tune SmartBPM’s performance. For security SmartBPM uses an authentication-authorization-auditing model. For authentication, it uses standard LDAP or JNDI (a standard Java API) to access an identification and security directory. Authorization is based on user IDs having appropriate role-based privileges to access functionality and information. Audit information tracks access to objects and to rules.

Technology

SmartBPM has a J2EE open, service-oriented architecture. It executes processes in a distributed J2EE architecture. It can interoperate with .NET systems through co-location on common servers or by using Web services to communicate with .NET applications. SmartBPM can run on pretty much any mainframe or server operating system platform, with the exception of OS/400. It can use Oracle, DB2, or SQL Server databases. It is written completely in Java.SOA is central to the design of SmartBPM. It views internal and external applications as exposed Web services, using WSDL documents, published on UDDI registries, and accessed via SOAP over HTTP. SmartBPM also offers quite a number of other integration and connectivity methodsincluding: MQ, JMS, EJB, .NET, CORBA, COM and SQL. It also supports insurance-specific standards including IAA; ACORD: XML, Messages Services; and XML Message Mapping to IAA. SmartBPM can import and export process definitions using BPEL. This solution is scalable both vertically on a single system or on a multi-node system. It can also be scaled horizontally homogeneous or heterogeneous clusters. Applications are developed in SmartBPM's design environment using Visio, rule forms, and wizards to define integration methods.

Costs and Implementation

First year license cost and implementation costs for a midsize insurer would be in the range of US$200,000 to US$1 million. The same costs for a large insurer would range from US$1 million to US$2 million, or possibly higher for a larger carrier with more complex business processes.Initial implementation is usually under 90 days. This relatively short cycle time is due to an emphasis on rapid iterative development and object reuse. Pegasystems calls its implementation approach “customer co-production.” A typical team would have a Pegasystems engagement leader, lead system architect, and lead process architect, working with a client project manager, and technical and business leads.



How To Draw a Process Model

Planning to draw a Process Model
There are a variety of Modelling software packages available which have all the tools you need build models on your PC- these include Microsoft Visio, Microsoft PowerPoint and even Microsoft Word. One of the BPM tool PRPC also uses the process model for its implementation. It is generally preferred first time to draw the process model by a simple pencil and paper or on a whiteboard because elements can be quickly moved around and easily edited. There are no hard and fast rules for constructing models, but there are guidelines that are useful to bear in mind.Here are six steps that can be used as a guide for creating models of your processes:
1. Describe the process to be charted
2. Start with a 'trigger' event
3. Note each successive action concisely and clearly
4. Go with the main flow (put extra detail in other charts)
5. Make cross references to supporting information
6. Follow the process through to a useful conclusion (end at a 'target' point)





Processes that can be monitor and improve with BPM

Supply Chain Management
The main characteristic of supply chain is to deliver a product to end user. It involves many team many processes so we have to be very care full at every stage so that we can deliver a product at the right time. Using BPM we can monitor every stage every team and also improve the process in terms of fast delivery of product by reducing the time gap between suppliers and Consumers
Manufacturing
To improve the process in manufacturing we uses following Business process
Lean• Six Sigma• Quality Assurance• Assembly
Lean: A style of management that places high priority on reducing waste. The 7 areas of waste Lean focuses on are:
• Transportation,
• Inventory,
• Motion,
• Waiting Time,
• Over Production,
• Processing,
Defective Products.
Six Sigma
A popular method of improving processes to reduce defects in products and services.Using process models in conjunction with Six Sigma methodologies maximizes the ROI for a company improving their processes.
Quality Assurance
The process of establishing a baseline for quality and testing that all products meet this baseline.

Why BPM?

In today’s business scenario, People are looking for a solution that can provide the end to end visibility of the business so that they have a better control on their business. People may have some artifacts in their existing business model where business driven changes are frequent. the artifact can be likeA business groups are faced with a dynamic, ever-changing business environment, IT groups are looking for ways to deliver new solutions while leveraging and managing their existing infrastructure. A robust Business Process Management System (BPMS) can address the needs of both groups in a collaborative manner. The question comes in to the mind that in which areas the BPM solutions are useful?

We Need Business Process Management Because
Enterprises do not have adequate understanding of or control over their processes.
BPM solves business problems not addressed by packaged software.
Know what's going on in your business to know how to stay on track.
Manage the 'entire' process, not just the fragments.
Change your processes without needing to change out your software.
Innovate in your business, do it differently, change it quickly.
Have analytics at your finger tips based on current process data.
Perform processes consistently.
Management might have a model of an ideal process, but the actual execution of that process might be strikingly different, leading toward redundancy, error, gaps, and inefficiency.
Businesses without agile control over their processes often impede their own success.Run your business the way you want, not the way the software wants.


To understand the terminology of BPM, we can define it

“Business Process Management is the ability to have end-to-end visibility and control over all parts of a long-lived, multi-step information request or transaction that spans multiple applications and people in one or more companies.”- Hurwitz Research Group

Story of Business process management:

Business process management (BPM) is a method of efficiently aligning an organization with the wants and needs of clients. This approach increases the effectiveness and efficiency of business. BPM attempts to continuously improve processes - the process to define, measure and improve your processes – a ‘process optimization' process. Organizations often start a BPM project or program with the objective to optimize an area which has been identified as an area for improvement. Business Process Management encompasses other process elements, such as Total Quality Management (TQM), Six Sigma, Performance Management, etc.Both of the concepts SOA and modeling go into the definition of Business Process Management. We can say that using software technology, BPM acts as the bridge between Information Technology (IT) and Business.
Business process management Cyclic Stages:
BPM have some certain stages in their life cycle which are listed below:
Design
Process Design encompasses both the identifying of existing processes (“As-is” and designing the "to-be" process). Areas of focus include:· representation of the process flow,· the actors within it,· alerts & notifications,· escalations,· Standard Operating Procedures,· Service Level Agreements,· And task hand-over mechanisms.Good design reduces the number of problems over the lifetime of the process. The aim of this step is to ensure that a correct and efficient theoretical design is prepared.
Modeling
By knowing the theoretical design, we implements it on the different variable to know how it respond under different circumstances.
Execution
As a response to these problems, software has been developed that enables the full business process (as developed in the process design activity) to be defined in a computer language which can be directly executed by the computer. The system will either use services in connected applications to perform business operations (e.g. calculating a repayment plan for a loan) or, when a step is too complex to automate, will message a human requesting input. Compared to either of the previous approaches, directly executing a process definition can be more straightforward and therefore easier to improve. However, automating a process definition requires flexible and comprehensive infrastructure which typically rules out implementing these systems in a legacy IT environment.Business rules have been used by systems to provide definitions for governing behavior, and a business rule engine can be used to drive process execution and resolution.
Monitoring
Monitoring encompasses the tracking of individual processes so that information on their state can be easily seen and statistics on the performance of one or more processes provided. An example of the tracking is being able to determine the state of a customer order (e.g. ordered arrived, awaiting delivery, invoice paid) so that problems in its operation can be identified and corrected. The degree of monitoring depends on what information the business wants to evaluate and analyze and how business wants it to be monitored, in real-time or ad-hoc.
Optimization
Process optimization includes retrieving process performance information from modeling or monitoring phase and identifying the potential or actual bottlenecks and potential rooms for cost savings or other improvements and then applying those enhancements in the design of the process thus continuing the value cycle of business process management.

PRPC System Architect

To be a system architect you should have following traits listed below:
Abstract thinker
Concise communicator
Wise decision-maker
Experienced business-focused technologist


A system architect must posses flowing responsibilities so that they can implement the business solution into technological solutions. The responsibilities to
Create and preserve conceptual integrity across multiple systems.
Promote architectural goals such as adaptability.
Understand the (business) problem domain, identifying requirements and constraints.
Understand technological possibilities.
Understand technological limits.
Identify risks and perform meaning feasibility studies

Technical Knowledge and Skills

The system architect is the Renaissance man (or woman) of computing, at least relative to the organization is which he/she works. Sometimes derogatorily called a "jack of all trades, master of none", the system architect should, indeed, be a jack of all trades, but will be a master of some, advanced in others, and at least intermediate in just about everything else. In a larger corporate environment today (or really in any organization doing distributed computing), the system architect should have knowledge and skill in most or all of the following areas.

Network Infrastructure

Routers, Switches and Hubs. Differences between devices, backplanes, configuration, throughput.Link Layer, Control and Routing Protocols.Higher Layer Protocols. DNS, HTTP, FTP, SMTP, Telnet, POP, IMAP, RPC, NFS, NetBIOS, SMB.Network Monitoring and Administration.Firewalls. Proxies, wrappers, relays, stateful inspection.

Server Platforms

Server Hardware. CPU chip, scalability (SMP, NUMA, MPP, clustering), system bus technology and throughput, I/O subsystem technology and throughput, RAID, SCSI.Server Operating Systems. Memory management, thread and process models, interprocess synchronization and communication, filesystems.Relational Database Management Systems. Disk and network I/O, thread and/or process model, physical database layout.File and Print Services.System Monitoring and Administration.

Middleware

Directory and Security Services.Remote Procedure Calls.Message Queuing.Message Brokering (Publish and Subscribe).Object Request Brokers.Transaction Processing Monitors.

Software Development

Development Process and Methodologies.Development Languages. 3GL (C, C++, Java, Ada, Pascal, COBOL, Fortran), 4GL (PowerBuilder, Visual Basic, Centura, Delphi), Enterprise (Forte, Dynasty, Seer HPS, Unify, Uniface, JAM), Miscellaneous (perl, UNIX shell, Smalltalk, CLOS, Eiffel)Testing and Quality Assurance.Application and Performance Monitoring.Client PlatformsGUI.Threading.Configuration Management.

Wednesday, February 18, 2009

PRPC code: SQL QUERY

Save:
External database
{SQLPage:SQLErrorPage}
UPDATE REPOSITORY.tabledetails
SET statusCode={.pyStatusWork}
WHERE name={.Name}
AND tr={.TransRef}

General approach to create Work Object with error handling:

Create new page and add model
Call add work activity on pywork page or pyworkCover
Commit by calling “Call WorkCommit”
If error then add message to “Param.Message” at the page
Call error handling flow.

PRPC Code: Lock/Unlock the string

Lock the string:
return tools.getDatabase().getLockManager().lock(lockString, false);
Unlock the string
return tools.getDatabase().getLockManager().unlock(lockString, false);

PRPC Code: Java code to check the privilege

// Check if the requestor has access ...
// The reqeustor must have either one of the Roles specified
// OR access to one of the privileges specified.
// If both lists are empty the the requestor passes this access check
// Also a list is considered empty if not defined correctly (ie not a page list of the expected class)
// The privilegeList property expects a Page List of Embed-Rule-PrivilegeSecurity

// find tools, as usual
PublicAPI tools = null;
PRThread thisThread = (PRThread)ThreadContainer.get();
if (thisThread != null) {
tools = thisThread.getPublicAPI();
}
ClipboardProperty privilegeList = RulePage.getProperty("pyPrivilegeList");
String strClassName = RulePage.getString("pyClassName");
if (privilegeList.size() == 0) return true;
Dictionary dict = thisThread.getDictionary();
boolean hasSecurity = true;
boolean privsEmpty = true;
String nextPrivValue = null;
String nextPrivClass = null;
ClipboardProperty nextPrivProp;
ClipboardPage nextPrivPage;
Iterator iter = privilegeList.iterator(); // loop over the list of privileges
while (iter.hasNext()) {
nextPrivProp = (ClipboardProperty) iter.next();
nextPrivPage = nextPrivProp.getPageValue();
nextPrivValue = nextPrivPage.getString(".pyPrivilegeName");
if (nextPrivValue == null || nextPrivValue.equals("")) return true;
if (nextPrivValue.equals(PrivilageToCheck)) hasSecurity = false;
} //end more privs
return hasSecurity;

PRPC Code: Java Code

The pyPrimaryPageName parameter passed in a URL can reference only a top-level clipboard page. Any sub-page reference is stripped off.

tools.findPage("Support").putString("WorkObjectXML",tools.findPage("WorkTicket").getXML());
tools.findPage("Support").putString("ErrMsg",tools.findPage("WorkTicket").getMessagesAll());
return inActivity.getStepPage().getProperty(strReference).hasAttrError();
ClipboardPage thePage = tools.getPrimaryPage();
tools.getActive().getPageValue().getString("pyLabel");

@Pega-RULES:Utilities.callActivity(pyWorkPage,testtam, tools.getParameterPage());

ParameterPage pp = tools.getParameterPage();
ClipboardProperty portalList = myStepPage.getProperty("pyUserPortals");
ClipboardPage newPortalPage = tools.createPage("Embed-PortalLayout","");


Run the activity:
PublicAPI tools = null;
PRThread thisThread = (PRThread)ThreadContainer.get();
if (thisThread != null)
tools = thisThread.getPublicAPI();
else
throw new PRAppRuntimeException("Pega-RULES", 0, "Unable to obtain current thread");

HashStringMap params = new HashStringMap();
params.putString("pxObjClass", "Rule-Obj-Activity");
params.putString("pyClassName", primaryPage.getClassName());
params.putString("pyActivityName", activityName);
tools.doActivity(params, primaryPage, paramPage);*/
return false;

PRPC Code: Jsp Tag


PRPC Code: Function

@replaceAll(.Links.TechniciansView, ".jsp?", "?")
@applyEditInput(tools, MrktRepDate, PrDate, .ReceivedPrDate)
@length(@trim(pyWorkCover.Team)) > 0
@if(@CurrentDate(DDMMYYYY, GMT) >= 07052007, "Yes", "No")
@substring(@CurrentDateTime(), 0, 9) + "000000.000"
@hasMessages(myStepPage)
@startsWith(.pyStatusWork, "R")
@contains(.pyStatusWork, "Pend")
@PropertyExists("WFLRDBConnection.pxResults(1).priority", tools)

@if(@differenceBetweenDays(.DueDate, .SLAPaused, true, Calendar > .SLADays, .SLADays, @differenceBetweenDays(.DueDate, .SLAPaused, true, Calendar))

@lookup("pyLabel", "Rule-Obj-Class", "pyClassName", primary.pxObjClass, "",".pyCaption")

"Validate-SaveFailed-CommitError\t" + @getWorstMessage(tools)

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"));

oLog.fatal(myStepPage.getMessagesAll());