Skip to main content
Solved

Mechanism of resulting different search results with the ROW_LIMIT param


Charith Rajapaksha
Sidekick (Employee)
Forum|alt.badge.img+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.
 

Best answer by Ruchira Jayasinghe

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

View original
This topic has been closed for comments

Forum|alt.badge.img+9
  • Hero (Former Employee)
  • March 10, 2022

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


Ruchira Jayasinghe
Hero (Employee)
Forum|alt.badge.img+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


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings