Elliott.Davis Member since 2013 27 posts
Crestone Technology
Posted: 4 years ago
Last activity: 4 years 6 months ago

How to change the number of records returned from a work object search/how to configure ElastiSearch?


  • I'm working in 7.1.8
  • I’m trying to specify the behavior of the new-style search for work objects from the Find Work Gadget
  • My immediate need is to change the number of results returned from the default limit of 1,000.
  • I don’t see a system setting for this
  • I don’t see where I could pass a parameter
  • And I’m running into a wall of Final rules and opaque system behavior


- I enter search criteria that match 1,200 records into the Find Work Gadget (the rule name is FindWorkGadget) and press Enter

- the FindWorkGadget initially returns 20 results

- from that initial resultset, I click "See All Results" to see more

- Pega pops up a new window with 1,000 results

- For searches matching more than 1,000 records, I get the message "Showing first 1000 of 8667 work object matches. Try a more specific search."

I’m sure that’s a reasonable limitation in many cases. However, it’s not a useful limit in my application.


Question: where can I modify the 1,000 record limit?


Here’s what I have looked at:


The OOTB MgrTopPanel includes the gadget FindWorkGadget. I can specify the style of search behavior for FindWorkGadget by supplying a parameter. OOTB, the search style is "V6Search", which is what I want. So far, so good. But then this path ends.

  • Neither of the parameters for FindWorkGadget concern the limit of results returned
  • FindWorkGadget is Final and is the beginning of a series of Final rules and opaque function calls like pega.ui.gadget.FindWork.SearchforWork

System Settings and Dynamic System Settings

I used the very scientific method of looking at all settings with a value of 20 or 1,000. None of them appear to control the numbers of results I mentioned above.

ListView pySearchResultsWork

The FindWorkGadget initially executes ListView Pega-Search-Work-Results.pySearchResultsWork.

- pySearchResultsWork has a maximum results value of 500, so clearly it's being ignored/overridden

- I tried specifying paging. That was the behavior in the earlier version of my application, running on 6.1. Paging also appears to be ignored.

- the get content activity is pzSearchResultsWork

Activity pzSearchResultsWork

- The limit on initial results from the FindWorkGadget appears to be hard-coded to 20 by step 3 of pzSearchResultsWork, which sets .pyMaxWork = 20

- I don't see a parameter that specifies the 1,000 record limit

- I do see this, also in step 3: .pyAllResults set to param.allResults

- pyAllResults is a flag. In the tracer, param.allResults is TRUE everywhere I've found it.

- I gather that the meaning of “All” results means “All results up to the 1000-record limit specified somewhere”

- Step 16 does the search by calling Pega-Search-Work-Param.pzSearchWork

Activity Pega-Search-Work-Param.pzSearchWork

I'm not quite sure which step does the search. in the Tracer, I have seen a SOAP call. In step 4 of this activity, I see a Connect-HTTP to call pySearchHTTPConnectWork

ListView pySearchResultsWorkFull

When I click “See All Results” and watch the Tracer, I eventually see the ListView pySearchResultsWorkFull is run. It calls the same get content activity "pySearchResultsWork", which I have already looked at.

Search Service

I haven’t found a way to dig further into the details.

Bottom line

- I don't see anywhere that I can change the 1,000-record limit on work object search results

- Paging appears to be ignored

- I get the sense that the records limit is buried somewhere in the workings of Elastisearch

Does anyone know how I can configure the limit?

As I said above, the max records limit is my immediate concern. If there are additional parameters/settings I can supply, I would be eager to learn of any reference material on the subject.

Low-Code App Development
Moderation Team has archived post
Share this page LinkedIn