Input time range
Is there a way to restrict users inputs of a number (formatted) line item to values between -1 and 1. I cant use a list for this as users are free to add any decimals.
Thank you in advance for any suggestions.
Here's an idea for a possible workaround, though it may not work in your particular case.
Note that in the example below, I've set up a process where the user imports data into a module based on a pre-configured csv template and runs a designated process to import the data.
Let's start with the final result.
First, we have a blank slate for importing or inputting values.
Next, we fill out a csv template with values to import.
Next, we import the file using a process.
When we run the process, we can see the validation step has failed!
The errors can be downloaded via csv, but the more user-friendly option is to display the validation results on the UX page.
Okay, so how does this work?
The basic premise is that we can layer on a second step to an import and force that step to fail when the validation fails.
The way the example above accomplishes this is by setting up a list that has a single item in it, and then trying to import invalid values into that list.
System module configuration:
Next, in our input/calculation module, we determine if a cell is valid, and then generate a text-formatted code to represent the result of the validation rule (
Code: Valid Value Item).
Then, we set up an import step that tries to import that code into an associated list-formatted item that matches our configuration above.
Finally, we add that import action as a step in our import process.
While this meets the need of raising an error on import, there are definitely some other considerations.
- Text-formatted line items are generally inefficient. You'll want to consider how this may impact model performance. See Planual rule 2.03-02.
- Generally, we want to avoid end users running actions in a model as it has a negative impact on user concurrency. See Planual rule 5.01-03.
- The output error file only lists intersections where there was an error, and will not include the specific value that was attempted to be imported. In this example, the error message is not very descriptive. Read through the user input validation article for suggestions on how you might generate a more descriptive error message.
We don't have the ability to control input in that way but you can allow end users to input numbers, then provide some conditional logic to alert if they are out of range and/or not allow any subsequent calcs to use the numbers out of range. If the numbers are used in a process, you can disable an action button until the conditional logic is met.
Hope that helps1
Thanks. Thats what we have done. Problem is that users enter a value (via import) and dont check any further meaning they load data that they tink is "loadad" but (due to the calculation we have) doesn't get shown in the output.0
@Michael.downer I have previously compiled a summary of options around user input validation. Of course, these are all still dependent on the user actually inputting the data as opposed to importing it and ignoring any output.
I would also suggest reviewing the business process and end user instructions and see if there is a way you can have them validate the data was actually accepted. For example:
- User imports their data
- Surface the number of values that are outside the accepted range on the same page (see above link for options)
- Use vibrant formatting to show that there are errors with the data
Unfortunately, there is no native way that Anaplan can outright reject values outside of a given range, whether this is via input or import.2
In addition to the above suggestions, we follow 'exception reporting'. You may want to publish a KPI that summarises number of instances the data is falling out of range, or number of items affected due to the same.
And lead the KPI to a page where the data can be fixed (OR) provide a filter on the same page to show all those exceptional instances, seeking corrections.2
My suspician confirmes. Might be a good feature to get on the roadmap for Anaplan.0
Wow that really cleaver. Using Anaplan against itself. So in effect you are forcing an error as part of the proces s. Thank you that helps.😁1