Active IQ Unified Manager Discussions

Standard Command Parameter Mapping for Array

korns
5,456 Views

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:

  • Create Export - which Paramter maps Array to attribute volume.aggregate.array.ip
  • Create Share - which Paramter maps Array to attribute volume.aggregate.array.ip
  • Create Volume - which Paramter maps Array to attribute aggregate.array.ip

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. 


1 ACCEPTED SOLUTION

ktim
5,456 Views

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

View solution in original post

6 REPLIES 6

abhit
5,456 Views

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

korns
5,457 Views

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.

abhit
5,457 Views

Thanks Korns.

Regards

Abhi

korns
5,457 Views

OKay, here is a simple workflow that should run in any environment and demonstrates my problem quickly and easily. Brief description of workflow:

  • ask the user to choose a filer
  • ask the user to choose a volume within that filer
  • create a qtree (using built-in certified  'Create Qtree' command) .,, the qtree should be placed in the chosen volume on the chosen filer
  • create an export of that qtree

My WF has three commands:

  • No-Op which creates filer and volume objects "by filling in attributes" and the name attribute is a $ userInput variable (which has a QUERY to let user chose)
  • a Create Qtree command step
  • a Create Export command step

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 ???

ktim
5,457 Views

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

korns
5,457 Views

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.

Public