select 1 from [parameter]
In a small piece of code the parameter is obvious. In a large code template this parameter is less obvious. Now it's very easy to break this logic and setting a hardcoded value to this parameter. If you always work from template this should not happen however, we live in a world of copy/paste so accidents do happen (especially in a large chunk of code)
To make template parameters safer to edit i suggest the following two changes:
- during creation add a validation. This validation will give a warning if a template has no parameter set but the parameter is assigned in the assigned templates. In this case someone probably broke the template parameter logic.
- In functionality - templates give some kind of indicator that a parameter is being used for the template. Now you would only know by looking at the assigning screen and selecting the specific program object in assigned templates.