Solved

Mechanism of resulting different search results with the ROW_LIMIT param

  • 10 March 2022
  • 2 replies
  • 130 views

Userlevel 2
Badge +4

Hi Experts,

Row limit (and Max rows) are in the application by design - to avoid overly broad searches from causing the user to wait for the screen to respond.

Can anyone further explain the mechanism of the ROW_LIMIT param?

Thank you,

Charith Rajapaksha.
 

icon

Best answer by Ruchira Jayasinghe 10 March 2022, 22:52

View original

This topic has been closed for comments

2 replies

Userlevel 4
Badge +9

Hi @Charith Rajapaksha ,
 
Did you refer the FSM Reference Guide? I could see the below in that. With this description, and your interpretation go hand in hand in my opinion.
 

Hope this helps,

Kalpa

Userlevel 5
Badge +7

Dear Charith,

 

The ROW_LIMIT parameter defines the maximum number of rows that the FSM Application server can return (sent to the client) in a single transaction.

 

I will use a scenario where a user wants to view the list of requests by pressing the Search button in the Request screen.

The basic behavior of FSM is, the FSM Client (E.g.: Smart Client) makes that request from the FSM Server using “hierarchy_select”.

Then, the FSM Server converts this “hierarchy_select” to SQL and executes it against the FSM Database.

Finally, the output of the request made will be packed as a “request_hierarchy_select_result” from the FSM Application Server and sent back to the client to display to the user.

 

In said operation, the number of <request> nodes under “request_hierarchy_select_result” will be decided by the ROW_LIMIT parameter.

As I mentioned earlier, the <request> nodes are generated from the Application Server based on the output received from the FSM Database.

Then this implies that, the ROW_LIMIT parameter works as a controlling agent of the number of rows outputted by the database.

 

Below 2 examples can be used to explain this further.

  1. ROW_LIMIT to “8” – The SQL runs again the DB looks like below (taken from the Server Log):

Message: Prepare database command: SELECT TOP 8 convert(datetime, request.created_dttm,120) as created_dttm,request.cust_prob_descr,request.place_id,request.priority,request.req_status,request.req_type,request.request_id FROM  request   WHERE (request.internal_type <> 'W' AND request.internal_type <> 'R') ORDER BY request.request_id ASC

 

  1. ROW_LIMIT to “11” – The SQL runs again the DB looks like below (taken from the Server Log):

Message: Prepare database command: SELECT TOP 11 convert(datetime, request.created_dttm,120) as created_dttm,request.cust_prob_descr,request.place_id,request.priority,request.req_status,request.req_type,request.request_id FROM  request   WHERE (request.internal_type <> 'W' AND request.internal_type <> 'R') ORDER BY request.request_id ASC

 

Hope you got a clear understanding of how FSM client to server and server to client communication happens and how the ROW_LIMIT parameter affects this.

 

Thanks and Regards

Ruchira