2013-02-05 12:01 PM
I need to iterate a command over all LUNs in a volume, but there's a chance the volume won't exist. I use a regular find chart to get the volume, which is then used as an argument to the row repetition finder. When I preview, in the case where the volume isn't found, I get "The finder parameters used to define the repetitions of row #2 could not be resolved". I make the single command in the repeating row conditional on whether the volume was found, but the row finder is still invoked.
Is there any way to work around this?
2013-02-05 09:23 PM
I tried recreating your scenario with the only difference of using a 'no op command' to find the volume instead of using a find chart. Please find the No-op command in the list of WFA commands which helps you in finding an object and storing it as a variable.
PFA the workflow that I have created and please let me know if this is the desired workaround.
This workflow design will let you abort the workflow in case the volume was not found.
I have done the following steps in the workflow:
1. commands used in workflow:
a. No op command to find volume
b. Map lun command which runs in a loop for all luns in the above volume
2. In the no-op command, I give a condition as seen in snapshot below to abort the workflow if the volume was not found. This is one advantage of using the no op command instead of the findchart.
2013-02-06 05:57 AM
I can easily abort the workflow from my Find Chart based solution as well, but my objective is to not abort the workflow. If the volume doesn't exist, I want to skip the row repetition that operates on all the LUNs in the volume all together, and continue with the workflow. If the row wasn't a repeating row, the command conditions could be set to skip the commands that operate on the volume and LUNs when the volume doesn't exist, but with row repetition, it appears that there is no way to avoid aborting the workflow.
2013-02-06 06:50 AM
To elaborate, I think we need control over the not-found case for a repeating row finder, with the option to abort the workflow or treat not found as the empty set, and thus skip the row altogether. If there is a workaround to achieve this, that is what I'm looking for.
2013-02-06 07:56 AM
I for one think that you are right, and this mechanism is a little lacking. I found that need myself a short while back.
Let me offer this suggestion, which I used:
1) Use the no-op (Providing you work with 2.0) to find the volume, or know it is not there.
2) If the volume was not found, feed parameters to the repeat row finder that would ascertain NOTHING would be found,
and thus the row would be skipped.
Presuming that the volume is found into "vol1" you can write in the volume name parameter of the row finder:
vol1._found ? vol1.name : "NEVER_FIND_THIS"
This would work, as it did for another customer of mine (The customer wanted to resize a trio of volumes,
original, secondary and tertiary. Obviously, sometimes there's no secondary, and thus no tertiary....)
Hope that helps.