1) Difference Between Edit Validate&Obj-Validate?
1) Difference Between Edit Validate&Obj-Validate?
1) Difference Between Edit Validate&Obj-Validate?
Ans: Edit Validate is a rule referred in the definition of a property. This rule is
triggered when user modify the value in the UI element mapped to the
property. This is also invoked using Page-Validate method in activity.
Obj-validate is a method that can be used in a step of an activity to apply
Rule-Obj-Validate rule for the object identified on the step page.
2) How to call List View from Activities?
Ans: Using Obj-List-View method.
3) Difference between Forward chaining & Backwardchaining?
Ans: Totally there are 5 declarative rules: Declare Expression, Declare
Constraint, Declare Onchange, Declare Index, and Declare Trigger. Declare
Expression is the only rule which provides both Forward&Backwardchaining
and all other declarative rules by default provide Forward chaining.
Forward chaining in DE is defined for a particular property. The property value
is computed and updated on the clipboard whenever inputs change.
Backward chaining in DE is defined when property value is missing or
property value is empty or whenever used.
Backward chaining can be initiated using Property-Seek-Value method in
activity. Only DE provides the option to program Backward chaining.
4) About Connect SOAP? JAR&WSDL?
5) About Connect SQL? Explain the steps involved?
Ans: Steps involved:
1. There needs to be a DB with the particular table.
2. We need to create Database instance in Data-Admin-DB-Name
3. Create database table instance in Data-Admin-DB-Table
4. Create a service package to hold the Connect-SQL rule.
5. Create Connect-SQL with required business logic in the respective
Open/Save/Delete/Browse tabs.
6. Use this in activity using RDB methods.
A Database instance and one or more Database Table instances that provide
access to the tables or views of the external database.
A JDBC library that provides access to the external database software.
Special data mapping syntax to associate properties with database columns.
Use Connect SQL rules when your application needs to run complex
Structured Query Language statements such as joins or stored procedures to
update or extract information from an external database.
Alternative: If your application needs to perform a simple browse, open,
delete, or update operation against an external database, use the Connector
and Metadata Accelerator to configure external table access. When external
table access is configured for an external table, you can use the Obj-Open,
Obj-Browse, and other Obj- methods to interact with that table through a
class that represents it and you do not need to create SQL connector rules
6) About Declare Expression?
Ans: Declare Expression(DE) is a declarative rule. Declarative rules are never
referred from any other rules. Declare expression provides the option to
program backward chaining. No other declarative rule has this capability. The
mechanism of Forward or Backward chaining can be specified in the Change
tracking tab of DE rule. When ever inputs change is the only Forward
chaining option available. All other options When used, if no value present/
When used, if property is missing/Whenever used/When applied by a
Rule collection applies to Backward chaining.
7) Decision rules Vs. Declarative Rules?
Ans: Declarative rules are never referred from any rules. These rules are
triggered when the condition specified in the Declarative rules occur. When
the value of a property is involved in any of these declarative rules, the
system automatically checks using an internal dependency network for other
values that are affected and performs other processing as determined by the
network. This is known as forward chaining.
Decision rules are referred from Flows, Activities, and Other decision rules.
These rules compute the logic specified in the rules and the output is
updated accordingly to the clipboard.
process.
A flow rule that consists only of assignments or decisions and meets
11)
12)
Section?
Ans: ListView is a form of reporting in PRPC,other form being SummaryView.
Embedded?checkbox needs to be checked to include a Listview into a
section. The default method to pull up the contents of listview is getContent
and stored in pyListViewContentPage on clipboard. The JOIN tab of listview
can be used to pull data from multiple related tables. All the required fields
for preparation of listview can be mentioned in GET THESE FIELDS section.
But the fields to be displayed to the end user should be mentioned in
SHOW THESE FIELDS section. Events like Singleclick or Doubleclick can be
handled through scripting or activities from EVENT HANDLING section of
FORMAT tab. The fields used in CRITERIA section has to be exposed
properties.
13) Difference between ListView and SummaryView?
Ans:ListView provides a simple view of the records(nice interactive and
attractive display of report) fetched from the db with fields that are
configured in the rule.
Summary View provides a beautiful view of the information fetched from db
using pie charts, bar graphs etc.
Process Flow
Process flow is a mix of human
an application.
Limited no. of shapes are available.
available.
Any process can be a Subprocess in
process flow.
assignments.
connectors.
Decision
Decision tree or Decision table or Map
route.
Connectors available are: Always, Status,
When, Else
define the rules, rather than writing Java source code. This approach
improves developer productivity, program modularity, and maintainability.
Using rule forms enables less technical people to work with familiar "objects"
rather than learn a new language or syntax. When PRPC accesses rules to
execute them, it assembles executable Java code.
30) What are the important readings in PAL?
Ans: Total Elapsed, Total CPU, Total Rules Used, Activity Count,AlertCount,
RDBI/O Count.
31) What is IAC?
Ans: To display the PegaRULES Process Commander (PRPC) application
harness on the web page, you include an HTML <DIV ...> element that
specifies the PRPC application as a gadget. You also include a JavaScript
application on the page, the Pega Gadget Manager
(PegaInternetApplicationComposer.js) that supports event handling between
the PRPC and the Pega gadgets on the page, and enables communication
between multiple gadgets on the same page.
If the client web page is in the same enterprise intranet as the PRPC
application, you can configure the Gadget to connect directly to the PRPC
application.
32) Difference between SpinOff, SplitForEach&SplitJoin shapes?
Ans:SpinOf: It will be used for asynchronous processing of a subflow within
a main flow. The main flow triggers the subflow and continues with its
processing. It doesnt wait for the subflow to complete.
SplitJoin: It will be used for synchronous processing as well as asynchronous
processing. Split Join guarantee that "sub flows" of your flow are completed
before continuing with the current flow. Choose Any or All, to resume your
main flow. If all is specified, your main flow will resume only when all sub
flows are completed. If any is selected, your main flow will resume when any
one of the sub flows are completed.
SplitForEach: Split for Each shape is used to send a work object through
another flow based on information in the pages of a Page List or Page Group
property.
33) Difference between DeclareContraint&ValidateRule?
Ans: DeclareConstraint need not be referred from any other rule but Validate
rule needs to be called to get it triggered. DeclareConstraint support the
guard rail of programming declaratively rather programmatically.
ValidateRule defines the validations that are required on a particular property
rule. This rule has to be referred from any other rule to come into action.
34)
environment?
Ans: n number of work objects can be created. That means, the number of
work objects is not limited by any parameter in Pega. Its completed based on
the availability of RAM/memory on the server.
35) Explain the deployment process in production environment?
Ans: A rule of type Rule-Admin-Product (RAP) can be prepared with the
required applications and rule sets and rule set versions. This product can be
exported to a zip file or jar file. This application zip file will be sent for
deployment.
In the production server, PegaButton Application Distribution Import
wizard can be used to import the application zip file.
36) Differences between Connect-SOAP & Connect-HTTP?
Ans: Use Simple Object Access Protocol (SOAP) over HTTP, the SOAP
integration interface in Process commander supports interactions with
external systems through Web services. Use SOAP connector rules when your
Process Commander applications need to call an external Web service.
Use HTTP connector rules when you want your application to send XML or
string data (text) as messages to an external system without the need to
comply with messaging standards or protocols like SOAP. Use the ConnectHTTP method to start an HTTP request/response interaction between Process
Commander and the external system identified by a Connect HTTP rule.
37)
available?
Ans: Declared pages are instances of Rule-Declare-Page class. These pages
on clipboard are used to hold static information that is used and referred by
all requestors in the application. This can also be some infrequently changing
information. These rules are created only when they are first accessed.
Different modes are specified in PageScope field and can be Node, Thread &
requestor.
38) What is Passivation?
Ans: Passivation allows the state of a Java object such as an entire Process
Commander PRThread context, including the clipboard state to be saved to
a file. A later operation, known as activation, restores the object.
PRPC supportstwo types of passivation,
Clipboard Page passivation:When all or part of a requestor
clipboard is idle for an extended period and available JVM memory is
the transaction.
Container managed:Container-managed transactions are those for
which Process Commanderparticipates as one resource in a distributed
transaction. When transactions are container-managed, they are
Ans: Equivalent to deleted rule. The rule cannot be referred from any of
higher version and current version rules.
72) Difference between Obj methods and RDB methods?
Ans: Obj methods are used to operate on instances stored in the PegaRULES
database and in an external database linked to an external class.
RDB methods are used to operate only on an external relational database. Do
not use RDB methods to operate on the PegaRULES database, because not all
properties in the PRPC databases are distinct database columns.
Obj- methods can be used to retrieve data from the BLOB(pzpvstream
column) and save data to the BLOB . So they can be used for properties that
are not exposed along with the exposed properties.
RDB- methods cannot read from or update the BLOB.
So if our table has the pzpvstream(BLOB) column then we should always use
Obj- methods. This will work on the exposed columns as well as the BLOB.
.
73) How do you achieve Call and Branch functionalities in BPM?
Ans: Call can be implemented using a simple sub process in the main flow.
When a subprocess is encountered in the main flow, the main flow is halted
temporarily and the subprocess is executed. Once the subprocess execution
is completed, the main flow is continued. (Assuming further shapes are
present after the subprocess call in the main flow)
Branch can be achieved in a flow. Lets say, I have a main flow with 3
assignments(Assignment 1, Assignment 2, Assignment 3) and then a
subprocess. There are no more shapes in the main flow. And the in the
subprocess there are 2 assignments (Assignment 4, Assignment 5) and then
an End shape.
74) What are the key things that needs to be considered while
designing
Ans: Class structure, application architecture, DB Model, DB Designing.
75) What is the difference between node and thread?
Ans:
A PegaRULES Thread object is a named context of clipboard pages.
Most processing for a requestor is single-threaded. Ordinarily, each
interactive user, accessing PRPC through HTTP and a browser has only
a single, dedicated process, and one Thread named STANDARD. The
pxThread page is a named top-level clipboard page sometimes
referred to as the thread page. The class for the page is Code-PegaThread.
76)
@baseclass?
Ans: There are 12 toplevel classes which are immediate to @baseclass. They
are
Assign-, Code-, Data-, Embed-,History-, Index-, Link-, Log-, Pega-, Rule-,
System-, Work77) In an activity, can we jump to a previous step i.e. lower
numbered steps?
Ans: No. Pega doesnt support this.
78) What is the purpose of skimming?
79) Localization?
Ans: The localization process overrides text in user-visible field value rules
that appear in application elements such as user forms and portal displays.
This process makes an application available in one or more additional
languages.
80) When will a work object be actually saved in a screen flow?
81) If we write System.out.println in java code then where can we
see the message, tracer or clipboard?
Ans: System->Tools->Logs->Log Files
82) How do you call 2 assignments at time? About map value?
83) What is AJAX? How we used in Pega?
Ans: Asynchronous JavaScript and XML (AJAX) is a Web technology that allows
browser-based applications to communicate with a server without
transmitting the entire HTTP input, and to render only parts of the form rather
than the entire form.
Using XML and the Document Object Model, AJAX-based software can provide
more interactivity to browser-based applications and reduce the traffic
between the client (browser) and the server.
Process Commander uses AJAX technology in:
Dynamic select operations
User interface events such as Visible When, Refresh When
Deferred loading of sections of user forms
Display on user forms and flow action forms of calculated values
84)
Workbasket?
Ans: Using spinoff shape or Slit-join shapes in workflow.
85)
performance aspect?
Ans:Performance wise, Decision table is more efficient than Decision tree.
Basically, as a rule of thumb,
If you're making decisions on series of data that are different from one
table.
If you're making decisions on the basis of only 1 or 2 values, then use
MapValue.
If you want to get a Boolean returned, or when your decision employs a
lot of complexity but doesn't need to be applied to a lot of cases,
Members of a folder can belong to different work types, which need not
many-to-many.
As a business example, consider a purchasing application where a basic work
item is a line item on a single purchase order:
The purchase order corresponds to a cover object. Every line item
system.
When the Agent Manager master agent notices a newly added Agents
rule (Rule-Agent-Queue), it generates agent schedules (Data-Agent-
93)
Ans:
94)
95)
96)
assignments.
pr_ and pr4_ identify tables for activities, properties, requestors, and
other features of the rules engine, corresponding to Pega-
RULESRuleSet capabilities.
pvbv4_ identifies views that speed queries and reporting.
sppc_ and sppr_ identify stored procedures.
trpr4_ identifies database triggers.
100) I have consumed a WSDL using Connect-SOAP and created
We can also use Obj methods to do transactions in external DB, but usually while we
are connecting to external databases/systems we usually may have complex
queries to fetch data and some customization might required.
Obj methods are preferred for simple transactions, whereas RDB methods are
preferred for complex custom transactions with external DB(major cases).
1. We can use both Obj and RDB methods for retrieving data from External
Database and internal Pega Database. But if we have requirement to fetch the data
from External DB using "Stored Procs", then we should go for RDB insted of Obj
methods.
2. To run the SQL calls in parallel to your applcaition, then we can use RDB methods
where we have an option called "Run parallel". If we enable that option then the
connector call will run in parallel and data will available in your clipboard. But
Exception handling should be handled here.
How To set up two-way SSL for SOAP over HTTP using Rule-Connect-SOAP :
To prevent unauthorized access to your Web services, you may implement two-way
SSL (Secure Socket Layer). Two-way SSL requires the Web services server to present
a signed certificate to the client proving its identity, as well as requiring the client to
present a signed certificate to the server verifying its identity.
If two-way SSL is not configured properly, no connection is made and an error
similar to the following may appear:
Suggested Approach
To initiate two-way SSL over HTTPS using Rule-Connect-SOAP, you need to configure the trust
store and key store files, and then configure the client and server.
Configure the trust store and key store files
The trust store and key store files should already be configured. If not, your Web Services
system administrator needs to perform the following steps.
1. Create and Import the server certificate into the client trust store.
2. Create and Import the client certificate into the server trust store.
NOTE: See the instructions at the following link to complete steps 1 and 2:
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
Server configuration
On the server, configure the HTTPS connector in Tomcats server.xml file
($CATALINA_HOME/conf/server.xml):
1. Uncomment the connector definition in the file (by default it is commented out).
2. Set the clientAuth attribute to true.
3. Enter values for the following attributes to point to their configured file locations:
keystoreFile
truststoreFile
keystorePass
truststorePass
The updated connector definition in the server.xml file will be similar to the following:
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="true"sslProtocol="TLS"
keystoreFile="server_keystore.keystore"
keystorePass="server_keystore_pw_mypassword"
truststoreFile="server_truststore.keystore"
truststorePass=" server_truststore_pw_mypassword"/>
It should be noted that that relative filepaths for the keystoreFile and truststoreFile are resolved
relative to the $CATALINA_HOME directory.
NOTE: For Tomcat, the keystore password and the key password should be the same. This
applies to the client keystore specified below as well. (For details, see the section entitled
Prepare the Certificate Keystore in the Tomcat URL referenced above.)
Client configuration
On the client, add the following command line arguments to the Tomcat setenv.bat file:
-Djavax.net.ssl.keyStore=C:/tomcat/client_keystore.keystore
-Djavax.net.ssl.keyStorePassword=client_keystore_pw_mypassword
-Djavax.net.ssl.trustStore= C:/tomcat/client_truststore.keystore
-Djavax.net.ssl.trustStorePassword= client_truststore_pw_mypassword
where the values for these arguments are the file locations and the passwords.
For further details on this step, see the instructions at the following link:
http://java.sun.com/j2se/1.5.0/docs/tooldocs/solaris/keytool.html
Error reporting
Two-way SSL involves heavy HTTP traffic. If an error message displays, this traffic makes it
difficult to determine where in the process the error occurred. To resolve this issue, set the
following command line option in Process Commander:
For Sun JVMs:
-Djavax.net.debug=all