Improved smart column editing
As a Solution builder
I want improved editing features for smart columns that allow me to copy portions of fact statements between smart columns or within a smart column, or simply copy the text output at the bottom to a new smart column.
Moreover, i would like the ability to use uncached smart columns embedded into other smart columns.
Real life Examples
- Example 1 - Date Completeness Counts
I want to create a smart column that shows me the data completeness for an Application element. An Application in this context has a variable number of relevant fields (depending on the user's selections some hidden fields become visible in the input section, on average we're talking maybe around 60 fields). To accomplish this i must choose, a) do i want a configuration that is easy to maintain or b) do i want a configuration that is difficult to maintain, but responds immediately to the user's input.
If i choose A i'll use a number of cached smart columns that i aggregate to my total of completed fields, so if i need to change the counted fields in the future i just need to go in to the specific sub-smart column and modify the fact statement there.
If i choose B I'll use a uncached single smart column to contain my entire count of fields, and all the relevant queries that returns 1 or 0 if the field/relation is filled out. To make it easier for myself i do this as embedded sums.
Now let's suppose i'd like to take the smart columns i created in either A or B, and do some processing of the result, for instance i might want to output a percentage of filled out fields rather than just the count of filled out fields.
With implementation A i would reference the existing cached smart column and divide it by the denominator. With implementation B i'm forced to duplicate the existing smart column and add the logic to divide by the denominator, thus creating two almost similar smart columns i need to maintain in a format that is already very difficult to maintain.
Now suppose i would like for whateer reason to convert the sum that the smart columns in implementation A or B returns into a string rather than a number. Woe is me, i will need to add the Number to String statement at the first line and then recreate the entire smart column within that statement.
In practice we've had to go with implementation B as it's too unintuitive for the customer to have a count of filled out fields that doesn't update immediately when you've updated the values, and managing the cache on the fly so it resets every x minutes or on any "save" user interaction instead of hourly is a performance drain.
- Example 2 - Complex scoring logic
A customer asks us to implement a feature that will rank an application giving it a risk score based on the cumulative answers across a series of many pick lists.
The logic is somewhat complex, if there's any of A, or more than x of B or more than y of C across then assign Rank 1, if there's no A, B or C across all the pick lists, then assign rank 3, else assign rank 2.
This logic would be very time consuming to implement, the correct approach is, of course, to do it with elements instead, but in this case we didn't have the possibility of doing so.
In this case we had to abandon the idea of even doing this as a traditional smart column, instead resorting to custom sql to find and evaluate the values.
In other cases we have however gone through and created the smart columns with fact statements that literally fill an entire page, only to find later that the customer want's to change a small part of the logic, resulting in having to re-order long-chained if statements. In which case the option to at least copy statements from one part of a smart column to another would have been a godsend.
So That We can develop smarter solutions for the customer in a less time-consuming manner and reduce maintenance costs.
Benefits Better solutions, we'll be less likely to look outside MooD for reporting and dashboarding solutions that can handle this more flexibly.
Acceptance Criteria:
- Ability to copy a snippet of a fact statement within the fact statement AND/OR to another fact statement.
- Ability to use uncached smart columns as a part of the fact statement of other smart columns AND/OR
Ability to define a custom Cache interval for the repository, so if needs be I can cache my results for e.g. 5 minutes. - Sticky selections when creating smart columns, e.g. having to navigate to query->query group->specific query 60 times when creating a smart column is very bothersome.
- Ability to edit the readable text in the bottom of the smart column to modify the statement rather than having to navigate to the individual statements to change things
- When changing from a simple expression to an embedded expression, please retain the existing simple expression as the first embedded expression, I can easily delete it if I don't need it anyway, but it's a pain to have to recreate the fact just to add the missing logic that could only be done using an additional embedded statement.
Customer / Originator Rune Kjerulff
Priority Medium
Please sign in to leave a comment.
Comments
0 comments