Sorry if this is a Noob question but I am wanting to simplify a workflow by removing and hardcoding some of the inputs. I figured how to specify defaults but I would also like to know where I could hardcode them. For example, say I wanted to always provision to a particular SVM or always use a particular export policy. How could I do that so the user inputs don't appear. I can't see where those are set as variables.
No worries. Some people like to choose... and in some cases it's better to have the workflow make the choices (or set the standards).
Here is what I'd recommend you do:
First, you will need to update your 'Create CM Volume' command... specifically for the 'export policy. What you will need to do is to hover your mouse pointer over the export_policy field until you see the three dots on the right, then click on the three dots.
this will bring up the 'export_policy' dialog box where you can select one of the filters (from the WFA Filters list... it's possible to create new ones for export_policy, if needed):
Here you can see that I chose the Filter "export policies by key". I identified the following:
Cluster Name is a user input variable = $Cluster_name
Export Policy Name is a constant value = 'exp_policy_name'
Vserver Name is a constant value = 'SVM_name'
of course your values will be different, but hopefully this answers your question.
The last piece of the puzzle was realizing that the Cluster Name and vServer name were variables defines in the Aggr search function. Once I hardcoded those there the user inputs updated right away... An "Ah ha" moment!
As to your question... I guess the answer depends on what sort of variable you have defined. There are several types of variables in WFA:
Constant Variables - defined as constants in a tab under Preferences in the Workflow Designer UI. An example would be SnapResrvePercent... and it would be set to a specific value under Preferences.
'Regular' Variables - there's probably a better name for this... but these are the variable names assigned when defining the WFA command. These variables have their own attributes, like volume1.name
User Input Variables - these are variables that are preceded by a $ sign. this would be something like $RWhosts.
It sounds like you are familiar with the types of user inputs... but for folks who might not be... some of this is covered at around 7min 30seconds in the Workflow Automation Technical Introduction video... give or take a few seconds, that is
For your issue... I'm not sure what the problem is.
As a question, did you save and exit the workflow after removing the 'create export policy' command? I know it sounds odd, but sometimes it works.
Have you looked into any of the 'No-Op' commands to see if that user input is in one of the tabs?
Yep, this reminds me of an enhancement request to be able to add and delete User Input Variables from the User Input Variable tab of Workflow Preferences, instead of having to hunt them down like you're struggling with. It has yet to be implemented (or added to the roadmap, AFAIK) At a minimum, it sure would be helpful to have a button that would locate where all a User Input Variable is used in the Workflow.
Anywaaay... In the meantime, as Kevin suggests you can continue to search through all the parameters in the various instances of commands in the workflow via the GUI for the $UserInputVariable you're looking for.
If you still can't find it, or if you're an old-school text file hacker like me, here's a secret way to find things like this...
Export the workflow, save the .dar file in a temp area.
Extract the workflow.dar file with something like WinRAR or WinZIP.
Find the "TabularWorkflow"*.XML file that represents your workflow. Open it with a text editor or XML viewer.
Search for your $UserInputVariable.
When you find it, note the location that it's in. It will show up in the XML section where user inputs are defined, but will also show up at least one other place. It may be in a row/column definition. In that case, you can find your missing variable as one of the command parameter inputs, and you can use the XML to determine what row, and what command to look for.
Or, you could find what "workflow-command" it's inside of, then search on the workflow-command's uuid till you find where it's defined, and find the command name it maps to. (Count the number of rows down to know where to start your search back in the GUI.)
As a best practice, I like to define my User Input Variables as Global Constants, then use the Constant name in the workflow instead of the User Input Variable name. That way, when I go to delete a User Input Variable, I know right where to look - the Global Constants tab of the Workflow Preferences screen.
Hope documenting this hack doesn't get me shot and helps someone.
Thanks for the suggestions guys. I'm glad this wasn't a silly problem. Since this was a lab and I'm learning I gave the 2.1 beta a try and yep the Search feature worked like a charm. MUCH easier finding those variables.
I agree though, being able to set them as fixed amounts from the preference screen would be the easiest and would allow customers to easily restore them as variables in the future if their needs changed.