Obj-Browse method |
Use the Obj-Browse method to search instances of one class and copy the entire instances, or specified properties, to the clipboard as an array of embedded pages. 5.4 PROJ-822
Only properties exposed as columns can be used as selection criteria. However, values of properties that are not exposed as columns, including embedded properties, can be returned.
Use the Obj-Browse method optionally followed by the Obj-Filter method to create a list of search results. The Obj-Browse method selects instances based on values of properties exposed as a column. The Obj-Filter method qualifies and filters list results based on all property values, exposed or not. Together these two methods provide greater control over which properties are returned, and better performance, than the Obj-List method.
The Obj-Browse method has five base parameters and an optional array of selection criteria.
Parameter |
Description |
PageName |
Enter the name of the destination page to contain search results. The system uses Code-Pega-List as the class of this page. |
ObjClass |
Identify a class to search. You can search one concrete class, or all classes in a class group. Within the PegaRULES database, the class can correspond to a database table or to a database view. REMOVED Specify an internal class. You can't use the Obj-Browse method with an external class. Removed perSuprakash 7/15/08 |
MaxRecords |
Optional. Enter the maximum number of instances you want returned in the list at runtime. If left blank, the default value is 10,000. GARFJ 7/8/09 As a best practice, specify a MaxRecords value to reduce the demand for database activity memory. If necessary, your activity can test the property pxMore on the results page to see whether additional rows were not returned because the MaxRecords limit was reached. |
GetRowKey |
Select to include the primary key in the set of property values returned. Clear to exclude the primary key. (Selected by default.) 5.5 Suprakash Das 8/14/08 |
RowKey |
Optional. Leave blank unless the class in the ObjClass parameter corresponds to an external table. Enter the name of a property in the external table, or an expression involving one or more property names, that specifies the unique key of rows of the external table. 5.5 Suprakash Das 8/14/08 B-14713 |
ReadOnly |
Select to mark the embedded pages for the selected instances as read-only, meaning that later processing by the requestor cannot update or delete data in the page. Leave unselected if you plan to update the embedded pages. As a best practice, select this checkbox. This records your intent that the embedded pages are not to be altered and can reduce memory requirements by retaining only specific property values extracted from the Storage Stream (Blob) column. Marking the embedded pages as read-only with this checkbox prevents changes to the values of properties on the embedded pages. It does not affect your ability to remove an embedded page completely (with the Obj-Filter or Page-Remove method). If the Select array is empty, the ReadOnly setting is ignored. The result of the method is a Code-Pega-List structure that contains all rows and all columns of the object, including the Storage Stream pzPVStream (BLOB) column. The embedded pages are not read-only. BUG-1709 Rejected MIRAT |
Logic |
Optional. Enter a boolean statement that defines how the rows of the parameter array are to be combined. Identify rows by the Label field. You can use the operators AND and OR in this statement, and parentheses for grouping. For example, A AND (B OR C OR (E AND F)). If you leave this blank, the system assumes the AND operation applies to all rows of the array. |
Optional. Complete one or more rows of this array to define the selection criteria and the properties to be returned. If you leave this array blank, all rows (and all columns including the pzPVStream column) are selected, up to the MaxRecords limit. For an external class, complete at least one row of the array. |
|
Label |
Enter a unique letter or identifier for this row, referenced in the Logic field. |
Select |
Select to return the value of this property on each embedded page. In the resulting SQL statement at runtime, this property is listed in the SELECT list (as well as the WHERE condition). |
Field |
Enter a property reference. You can
specify a You can return any property — exposed as a column or
not — in the results by setting the
Condition field to Click the pencil button () to open the property rule. (Do not use the magnifying glass button ) BUG? To restrict the search to specific values of a property, enter a property reference that is exposed as a database column. You can review the database schema to determine which properties are exposed for a class. Consult your database administrator for information on the current database schema, or use the Modify Database Schema facility. See How to expose a property as a database column. |
Condition |
Select a comparison, such as
Value Only .
|
Value |
Enter a constant value, a property
reference or other expression for the comparison. Leave blank if
the Condition is Click the pencil button () to open a property rule. Click the magnifying glass button () to start the Expression Builder.
For example, if the Field field contains a
But if the Value field contains a second property RenewalDateTime, then the system compares the value of the two properties ExpireDateTime and RenewalDateTime for each instance of the class. |
Sort |
Select If the Condition is |
At runtime, the system converts the parameters to an SQL query statement, creating a SELECT WHERE and ORDER BY query based on the parameters, and sends the query to the PegaRULES database.
This method operates on the database response to create a results page containing one embedded page for each instance retrieved. See Standard properties in the Code-Pega-List class.
If the Field parameters identify only Single
Value
properties exposed as columns, each embedded page in the
results contains only those properties. However, if one or more of the
Field parameters identifies a property that is not an
exposed column, the entire pzPVStream column, also known as
the Storage Stream or Blob column, is also returned.
The Obj-Browse method returns the data either to a previously created step page — which is cleared and reused — or to a new page of that this method creates of class Code-Pega-List. The system writes search results in the specified step page, along with information that controlled the search.
This method also adds or updates these properties in the step page:
true
or false
.true
.Execution of this method does not trigger declarative rule processing that depends on change tracking. Even when a property retrieved by the Obj-Browse method is involved in a Declare Expression, Declare Constraint or other declarative rule, retrieval does not cause the declarative rule to re-evaluate. GENTJ 04/05/05
This method can return thousands of database rows and create large clipboard pages. Use care to retrieve only the rows (instances) and columns (properties) you truly need. Similarly, specify sorting only when needed.
Execution of this method may cause an
alert to be added to the Alert log, of type
PEGA004
-PEGA007
, PEGA0025
,
PEGA0027
, or PEGA0028
. Review the Alert log to
understand the frequency and sources of such alerts, and for best
performance, alter your application or database to eliminate those alerts
that occur frequently. For example, if execution of an Obj-Browse method
accesses properties within the Storage Stream column, a
PEGA0025
alert occurs. The alert indicates that exposing one
or more columns in the PegaRULES database table that holds instances of
the class is likely to improve performance.
This method updates the pxMethodStatus property. See How to test method results using a transition.
See Pega Developer Network article PRKB-25063 Comparing the Obj-List-View, Obj-Browse and Obj-List methods.