<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: WFA - Return parameters from a repeated row in Active IQ Unified Manager Discussions</title>
    <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142712#M26071</link>
    <description>&lt;P&gt;Hi Renaud,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've encountered this scenario in WFA and am sharing the solution i developed for adding return paramaters for mulitple LUNs in a repeat row. The trick is to "variablize" the return parameter names into a custom command (this way you can increment the return paramater name. EG "lun_path_01", "lun_path_02" etc). I named the command "get_lun_return_parameters", if you don't set the return parameter names it will assign defaults (EG "lun_id", "lun_path", "lun_serial_number", "lun_naa_number") however by enabling you set the return paramater name as a variable you can use it to return paramaters for multiple LUNs in a repeat row.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this is useful.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Param(
   [Parameter(Mandatory=$True, HelpMessage="The cluster name or IP Address")]
   [String]$Cluster,
   [Parameter(Mandatory=$True, HelpMessage="The vserver name")]
   [String]$VserverName,
   [Parameter(Mandatory=$True, HelpMessage="The LUN path")]
   [String]$LunPath,
   [Parameter(Mandatory=$False, HelpMessage="The LUN name return parameter name")]
   [String]$LunPathReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN serial return parameter name")]
   [String]$LunSerialReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN NAA return parameter name")]
   [String]$LunNaaReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN ID return parameter name")]
   [String]$LunIdReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The number of times to retry commands that return with errors that may succeed after a retry")]
   [Int]$ZapiRetryCount
)
#'------------------------------------------------------------------------------
Function ConvertFrom-AsciiToHex{
   Param( 
      [Parameter(Mandatory=$False, HelpMessage="The ASCII value to convert to Hexidecimal")]
      [String]$Ascii
   )
   [Array]$result = @()
   For($i = 1; $i -le $Ascii.Length; $i++){
      [String]$character = $Ascii.SubString(($i -1), 1)
      [Array]$result    += "{0:X}" -f [Byte][Char]$character
   }
   Return [String]::join("", $result).ToLower();
}#End Function
#'------------------------------------------------------------------------------
#'Connect to the cluster.
#'------------------------------------------------------------------------------
Connect-WfaCluster $Cluster
#'------------------------------------------------------------------------------
#'Enumerate the LUN.
#'------------------------------------------------------------------------------
Get-WFALogger -Info -Message "Enumerating Return Parameters for LUN ""$LunPath"" on vserver ""$VserverName"""
[String]$command = "Get-NcLun -Path $LunPath -VserverContext $VserverName "
If($ZapiRetryCount){
   [String]$command += "-ZapiRetryCount $ZapiRetryCount "
}
[String]$command += "-ErrorAction Stop"
Try{
   $lun = Invoke-Expression -Command $command -ErrorAction Stop
   Get-WFALogger -Info -Message "Executed Command`: $command"  
   Get-WFALogger -Info -Message "Enumerated LUN ""$LunPath"" on vserver ""$VserverName"""
}Catch{
   Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
   Throw "Failed enumerating LUN ""$lunPath"" on vserver ""$VserverName"""
}
[String]$lunSerial = $lun.SerialNumber
[Bool]$lunMapped   = $lun.Mapped
If($lunMapped){
   [String]$command = "Get-NcLunMap -Path $LunPath -VserverContext $VserverName "
   If($ZapiRetryCount){
      [String]$command += "-ZapiRetryCount $ZapiRetryCount "
   }
   [String]$command += "-ErrorAction Stop"
   Try{
      $lunMapping = Invoke-Expression -Command $command -ErrorAction Stop
      $lunId      = $lunMapping.LunId
      Get-WFALogger -Info -Message "Executed Command`: $command"  
      Get-WFALogger -Info -Message "Enumerated mapping for LUN ""$LunPath"" as LUN ID ""$lunID"" on vserver ""$VserverName"""
   }Catch{
      Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
      Throw "Failed enumerating mapping for LUN ""$lunPath"" on vserver ""$VserverName"""
   }
}
Get-WFALogger -Info -Message "The Serial Number for LUN ""$lunPath"" is ""$lunSerial"""
#'------------------------------------------------------------------------------
#'Enumerate the LUN Serial number.
#'------------------------------------------------------------------------------
If($lunSerial -eq ""){
   Throw "Failed enumerating Serial Number for LUN ""$LunPath"" on vserver ""$VserverName"""
}
#'------------------------------------------------------------------------------
#'Enumerate the LUN NAA number.
#'------------------------------------------------------------------------------
[String]$identifier   = "naa.600a0980"
[String]$lunNaaNumber = $identifier + (ConvertFrom-AsciiToHex -Ascii $lunSerial)
#'------------------------------------------------------------------------------
#'Set the LUN Path return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNPathReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_path" -Value $LunPath -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_path"" as ""$LunPath"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunPathReturnParameterName" -Value $LunPath -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunPathReturnParameterName"" as ""$LunPath"""
}
#'------------------------------------------------------------------------------
#'Set the LUN Serial Number return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNSerialReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_serial_number" -Value $lunSerial -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_serial_number"" as ""$lunSerial"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunSerialReturnParameterName" -Value $lunSerial -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunSerialReturnParameterName"" as ""$lunSerial"""
}
#'------------------------------------------------------------------------------
#'Set the LUN NAA Number return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNNaaReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_naa_number" -Value $lunNaaNumber -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_naa_number"" as ""$lunNaaNumber"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunNaaReturnParameterName" -Value $lunNaaNumber -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunNaaReturnParameterName"" as ""$lunNaaNumber"""
}
#'------------------------------------------------------------------------------
#'Set the LUN ID Number return parameter.
#'------------------------------------------------------------------------------
If($LunMapped){
   If(-Not($LunIdReturnParameterName)){
      Add-WfaWorkflowParameter -Name "lun_id" -Value $lunId -AddAsReturnParameter $True
      Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_id"" as ""$lunId"""
   }Else{
      Add-WfaWorkflowParameter -Name "$LunIdReturnParameterName" -Value $lunId -AddAsReturnParameter $True
      Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunIdReturnParameterName"" as ""$lunId"""
   }
}
#'------------------------------------------------------------------------------&lt;/PRE&gt;
&lt;P&gt;Please let me know if you have any questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/Matt&lt;/P&gt;</description>
    <pubDate>Thu, 13 Sep 2018 23:02:48 GMT</pubDate>
    <dc:creator>mbeattie</dc:creator>
    <dc:date>2018-09-13T23:02:48Z</dc:date>
    <item>
      <title>WFA - Return parameters from a repeated row</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142696#M26068</link>
      <description>&lt;P&gt;Hello everybody,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;We do have a WFA workflow that create mutliple LUNs based on a Table (user inputs). This is using the repeat row feature.&amp;nbsp;Workflow is working great. My question now is how can I get back, in the return parameters, the serial of every LUN created on this repeated row?&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;On the repeated row "Number of times" is based on the getSize() of my table and I'm using the Index Variable to access the line on the table. But I don't know what to put on "parameter value" in the "Return Parameters" tab to have the wished info for every lun created.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Any advise?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Many thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Renaud&lt;/P&gt;</description>
      <pubDate>Wed, 04 Jun 2025 13:19:24 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142696#M26068</guid>
      <dc:creator>RenaudTouillet</dc:creator>
      <dc:date>2025-06-04T13:19:24Z</dc:date>
    </item>
    <item>
      <title>Re: WFA - Return parameters from a repeated row</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142712#M26071</link>
      <description>&lt;P&gt;Hi Renaud,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've encountered this scenario in WFA and am sharing the solution i developed for adding return paramaters for mulitple LUNs in a repeat row. The trick is to "variablize" the return parameter names into a custom command (this way you can increment the return paramater name. EG "lun_path_01", "lun_path_02" etc). I named the command "get_lun_return_parameters", if you don't set the return parameter names it will assign defaults (EG "lun_id", "lun_path", "lun_serial_number", "lun_naa_number") however by enabling you set the return paramater name as a variable you can use it to return paramaters for multiple LUNs in a repeat row.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this is useful.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;Param(
   [Parameter(Mandatory=$True, HelpMessage="The cluster name or IP Address")]
   [String]$Cluster,
   [Parameter(Mandatory=$True, HelpMessage="The vserver name")]
   [String]$VserverName,
   [Parameter(Mandatory=$True, HelpMessage="The LUN path")]
   [String]$LunPath,
   [Parameter(Mandatory=$False, HelpMessage="The LUN name return parameter name")]
   [String]$LunPathReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN serial return parameter name")]
   [String]$LunSerialReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN NAA return parameter name")]
   [String]$LunNaaReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The LUN ID return parameter name")]
   [String]$LunIdReturnParameterName,
   [Parameter(Mandatory=$False, HelpMessage="The number of times to retry commands that return with errors that may succeed after a retry")]
   [Int]$ZapiRetryCount
)
#'------------------------------------------------------------------------------
Function ConvertFrom-AsciiToHex{
   Param( 
      [Parameter(Mandatory=$False, HelpMessage="The ASCII value to convert to Hexidecimal")]
      [String]$Ascii
   )
   [Array]$result = @()
   For($i = 1; $i -le $Ascii.Length; $i++){
      [String]$character = $Ascii.SubString(($i -1), 1)
      [Array]$result    += "{0:X}" -f [Byte][Char]$character
   }
   Return [String]::join("", $result).ToLower();
}#End Function
#'------------------------------------------------------------------------------
#'Connect to the cluster.
#'------------------------------------------------------------------------------
Connect-WfaCluster $Cluster
#'------------------------------------------------------------------------------
#'Enumerate the LUN.
#'------------------------------------------------------------------------------
Get-WFALogger -Info -Message "Enumerating Return Parameters for LUN ""$LunPath"" on vserver ""$VserverName"""
[String]$command = "Get-NcLun -Path $LunPath -VserverContext $VserverName "
If($ZapiRetryCount){
   [String]$command += "-ZapiRetryCount $ZapiRetryCount "
}
[String]$command += "-ErrorAction Stop"
Try{
   $lun = Invoke-Expression -Command $command -ErrorAction Stop
   Get-WFALogger -Info -Message "Executed Command`: $command"  
   Get-WFALogger -Info -Message "Enumerated LUN ""$LunPath"" on vserver ""$VserverName"""
}Catch{
   Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
   Throw "Failed enumerating LUN ""$lunPath"" on vserver ""$VserverName"""
}
[String]$lunSerial = $lun.SerialNumber
[Bool]$lunMapped   = $lun.Mapped
If($lunMapped){
   [String]$command = "Get-NcLunMap -Path $LunPath -VserverContext $VserverName "
   If($ZapiRetryCount){
      [String]$command += "-ZapiRetryCount $ZapiRetryCount "
   }
   [String]$command += "-ErrorAction Stop"
   Try{
      $lunMapping = Invoke-Expression -Command $command -ErrorAction Stop
      $lunId      = $lunMapping.LunId
      Get-WFALogger -Info -Message "Executed Command`: $command"  
      Get-WFALogger -Info -Message "Enumerated mapping for LUN ""$LunPath"" as LUN ID ""$lunID"" on vserver ""$VserverName"""
   }Catch{
      Get-WFALogger -Error -Message $("Failed Executing Command`: $command. Error " + $_.Exception.Message)
      Throw "Failed enumerating mapping for LUN ""$lunPath"" on vserver ""$VserverName"""
   }
}
Get-WFALogger -Info -Message "The Serial Number for LUN ""$lunPath"" is ""$lunSerial"""
#'------------------------------------------------------------------------------
#'Enumerate the LUN Serial number.
#'------------------------------------------------------------------------------
If($lunSerial -eq ""){
   Throw "Failed enumerating Serial Number for LUN ""$LunPath"" on vserver ""$VserverName"""
}
#'------------------------------------------------------------------------------
#'Enumerate the LUN NAA number.
#'------------------------------------------------------------------------------
[String]$identifier   = "naa.600a0980"
[String]$lunNaaNumber = $identifier + (ConvertFrom-AsciiToHex -Ascii $lunSerial)
#'------------------------------------------------------------------------------
#'Set the LUN Path return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNPathReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_path" -Value $LunPath -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_path"" as ""$LunPath"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunPathReturnParameterName" -Value $LunPath -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunPathReturnParameterName"" as ""$LunPath"""
}
#'------------------------------------------------------------------------------
#'Set the LUN Serial Number return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNSerialReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_serial_number" -Value $lunSerial -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_serial_number"" as ""$lunSerial"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunSerialReturnParameterName" -Value $lunSerial -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunSerialReturnParameterName"" as ""$lunSerial"""
}
#'------------------------------------------------------------------------------
#'Set the LUN NAA Number return parameter.
#'------------------------------------------------------------------------------
If(-Not($LUNNaaReturnParameterName)){
   Add-WfaWorkflowParameter -Name "lun_naa_number" -Value $lunNaaNumber -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_naa_number"" as ""$lunNaaNumber"""
}Else{
   Add-WfaWorkflowParameter -Name "$LunNaaReturnParameterName" -Value $lunNaaNumber -AddAsReturnParameter $True
   Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunNaaReturnParameterName"" as ""$lunNaaNumber"""
}
#'------------------------------------------------------------------------------
#'Set the LUN ID Number return parameter.
#'------------------------------------------------------------------------------
If($LunMapped){
   If(-Not($LunIdReturnParameterName)){
      Add-WfaWorkflowParameter -Name "lun_id" -Value $lunId -AddAsReturnParameter $True
      Get-WFALogger -Info -Message "Added value for WFA return parameter name ""lun_id"" as ""$lunId"""
   }Else{
      Add-WfaWorkflowParameter -Name "$LunIdReturnParameterName" -Value $lunId -AddAsReturnParameter $True
      Get-WFALogger -Info -Message "Added value for WFA return parameter name ""$LunIdReturnParameterName"" as ""$lunId"""
   }
}
#'------------------------------------------------------------------------------&lt;/PRE&gt;
&lt;P&gt;Please let me know if you have any questions.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/Matt&lt;/P&gt;</description>
      <pubDate>Thu, 13 Sep 2018 23:02:48 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142712#M26071</guid>
      <dc:creator>mbeattie</dc:creator>
      <dc:date>2018-09-13T23:02:48Z</dc:date>
    </item>
    <item>
      <title>Re: WFA - Return parameters from a repeated row</title>
      <link>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142721#M26072</link>
      <description>&lt;P&gt;Hello Matt,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;THANK YOU, this is great!&amp;nbsp;And working perfectly!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Have a great week-end&lt;/P&gt;
&lt;P&gt;Renaud&lt;/P&gt;</description>
      <pubDate>Fri, 14 Sep 2018 10:07:09 GMT</pubDate>
      <guid>https://community.netapp.com/t5/Active-IQ-Unified-Manager-Discussions/WFA-Return-parameters-from-a-repeated-row/m-p/142721#M26072</guid>
      <dc:creator>RenaudTouillet</dc:creator>
      <dc:date>2018-09-14T10:07:09Z</dc:date>
    </item>
  </channel>
</rss>

