Active IQ Unified Manager Discussions
Active IQ Unified Manager Discussions
Over 4-5 months I find myself running into a similar problem over and over. When I preview a workflow I'll get an error like: Illegal expression: xxxx.xxx.array.ip - property 'array' can't be resolved. I've had it come up with shares, volumes, and exports and probably others. In each case I end up having to change the Command's Parameter Mapping attribute for Array. This of course requires cloning a perfectly good WFA Command just to get another version of it so that I can get my workflow to preview and for x.x.array.ip to resolve. I feel I'm cloning commands for what seems an invalid reason.I would much rather figure out how to get my workflow to properly specify and match up the parameter but I've never had time to understand this properly.
Here is my current example (7-mode). I'm trying to create an export using the certified Create Export command. Here is it's Parameter Mapping tab. Notice Array Attribute is volume.aggregate.array.ip. I presume that means the command will determine the array to execute the create export on from the referenced volume which references an aggregate which references an array which has an attributed called ip.
I created the volume that I will export in a prior step of the workflow called vol_pri so in my Create Export workflow command step details I reference that.
I use a No-Op step earlier in the workflow to make Resource Selections for the Aggregate and Array (or Filer) which are named aggr_pri and filer_pri
But when I preview this workflow I get this error on the Create Export step: Illegal Expression: exp_pri.volume.aggregate.array.ip - property 'array' can't be resolved
I know how to fix this but the way I know how to fix it is to clone the command and edit the parameter mapping for Array from volume.aggregate.array.ip to a simplier array.ip or array.name and then the workflow step details will THEN ask/include array which I will specify as filer_pri, the array object I resource selected in my No-Op.
How can I stop cloning so many commands and learn to satisfy these built-in certified commands and the way they parameter map 'array' with the long nested series of object types ??? I have this issue with:
I must be missing a key concept ... or should I expect to be cloning and propagating new commands for no reason other than parameter mapping adjustments.
Solved! See The Solution
Hi David,
I think the issue is that you are creating filer and volume objects "by filling in attributes" rather than "by searching for an existing..." and using a filter/finder. Filling in attributes will only populate the fields that you put in, whereas a filter will populate all of the attributes from the cache including references.
Regards,
Tim
I must be missing a key concept ... or should I expect to be cloning and propagating new commands for no reason other than parameter mapping adjustments.
[Abhi] That should not be ideally done. Can you please attach the workflow with which you are facing the problem while previewing.
Meaning the workflow where you are facing the problem " Illegal expression: xxxx.xxx.array.ip - property 'array' can't be resolved. ".
We will analyze it.
Regards
Abhi
Thanks Abhi,
I will provide an example the next time I hit it. The problem is I have to resolve my issue quickly so I clone/tweak the command and move on … so I don’t have a ready-example … but I’ll get you one.
Thanks Korns.
Regards
Abhi
OKay, here is a simple workflow that should run in any environment and demonstrates my problem quickly and easily. Brief description of workflow:
My WF has three commands:
In Preview mode the UserInput forms lets the user select filer/volume. Clicking Preview then gives this error from the 'Create Qtree' command parameter step. How to I make this work that way I want without edit the 'Create Qtree' command ???
Hi David,
I think the issue is that you are creating filer and volume objects "by filling in attributes" rather than "by searching for an existing..." and using a filter/finder. Filling in attributes will only populate the fields that you put in, whereas a filter will populate all of the attributes from the cache including references.
Regards,
Tim
That was indeed the my problem. I think I am repeatedly making that mistake because in either case ('by filling in attributes' -or- 'by searching for an existing') I'm asking the user to select from a userInput QUERY drop-down list to actually choose an existing object instance. When I'm doing that, I don't think about finders/filters and resource selection but rather userInput QUERY's. I'm still getting the hang of it.