Question
How to change the number of records returned from a work object search/how to configure ElastiSearch?
Summary
- 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
Details
- 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:
FindWorkGadget
Summary
- 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
Details
- 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:
FindWorkGadget
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.