Skip to main content
Closed

Combined filter in Functionality screen should include table names of assignments

Related products:Software Factory
  • October 18, 2022
  • 4 replies
  • 104 views

Control procedures can be assigned to multiple tables. Usually these are more generic procedures e.g. a default to set a date field to today (default_set_today), or a layout procedure to make a field mandatory (layout_mand).

Finding these control procedures can be difficult as they don’t include a table name in their name. When copying a table name from the application and then pasting that name in the Functionality search bar then does not provide the right result.

Alternatively we have the Code Overview screen, but this can be slow to load and displays (only generated) full program objects instead of control procedures.

Can't we include a column in the Functionality screen, that displays all tables that the control procedure is assigned to?

This can then be assigned as a filterable column by the combined filter, and decrease the time required to look up what control procedures are connected to the table/screen you are working on.

This new column would be updated every time an (un)assignment is done so that it would always be available, also when the project version is not yet generated fully.

Using this approach would also encourage developers to create smaller chunks of code, which could be an extra incentive to create unit tests for these smaller chunks of code, providing a higher unit test coverage.

Did this topic help you find an answer to your question?

4 replies

Mark Jongeling
Administrator
Forum|alt.badge.img+23
NewUnder review

Mark Jongeling
Administrator
Forum|alt.badge.img+23

Hi Ken,

In the 2023.2, we have improved the Code overview screen and have added Tasks with which you can jump to the Functionality or Template screen, filtered based on your selection inside the Code overview screen.

Go to (selected) control procedure in Functionality

 

Adding table names to Control procedures for the Combined filter will not be a great option I'm afraid due to the expression field needing to be calculated for every singe control procedure. If you take for example control procedures such as Default procedure for Trace columns, this control procedure is connected to every table that uses this concept. In a test on one of our big models, it causes the load to take 3x longer:

Tested code:

Show content
set statistics time on
select *
from control_proc 
where model_id = /*model*/
  and branch_id = /*branch*/
  and development_status <> 2 
  and control_proc_type <> 2

select *, ((select ';' + concat_ws('|', po.tab_id, 
                                        po.task_id, 
                                        po.report_id, 
                                        po.process_flow_id, 
                                        po.process_action_id, 
                                        po.subroutine_id)
            from prog_object_item poi
            join prog_object po
              on po.model_id = poi.model_id
             and po.branch_id = poi.branch_id
             and po.prog_object_id = poi.prog_object_id
            where poi.model_id = t1.model_id
              and poi.branch_id = t1.branch_id
              and poi.control_proc_id = t1.control_proc_id
              and (po.tab_id is not null
               or po.task_id is not null
               or po.report_id is not null
               or po.process_flow_id is not null
               or po.process_action_id is not null
               or po.subroutine_id is not null)
            for xml path('')))
from control_proc t1 
where t1.model_id = /*model*/
  and t1.branch_id = /*branch*/
  and t1.development_status <> 2 
  and t1.control_proc_type <> 2
set statistics time off

 

 

With the added task for jump from the Code overview to Functionality, does this resolve the idea?

 


Mark Jongeling
Administrator
Forum|alt.badge.img+23
Under reviewNeeds feedback

Mark Jongeling
Administrator
Forum|alt.badge.img+23
Needs feedbackClosed

Reply


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