AzDataFactoryV2Activities.psm1

<#
     .SYNOPSIS
         This command provide the list of pipelines , the list of activities coressponding to the pipelines , the count of the activities per pipeline and count of overall pipelines and overall activities in an Azure Data factory
   
    
   
     .DESCRIPTION
         The function helps to provide the list of pipelines , the list of activities coressponding to the pipelines , the count of the activities per pipeline and count of overall pipelines and overall activities in an Azure Data factory. One can provide the specific pipeline as the parameter if the details pertaining to that specific pipeline is needed.
   
    
   
     .PARAMETER ResourceGroupName
     The resource group containing the DataFactory V2
   
    
   
     .PARAMETER DataFactoryName
     The name of the DataFactory V2.
   
    
   
     .PARAMETER PipelineName
     The name of the Pipeline in the DataFactory V2.
   
    
   
     .EXAMPLE
     Get-AzDataFactoryV2Activities -ResourceGroupName "<<RGName>>" -DataFactoryName "<<ADFV2Name>>"
     Get-AzDataFactoryV2Activities -ResourceGroupName "<<RGName>>" -DataFactoryName "<<ADFV2Name>>" -PipelineName "<<PipelineName>>"
     
#>

Function Get-AzDataFactoryV2Activities
{

 

    Param 
    (
    [Parameter(Mandatory=$true)]
    [string] $ResourceGroupName ,
    [Parameter(Mandatory=$true)]
    [string] $DataFactoryName ,
    [Parameter(Mandatory=$false)]
    [string] $PipelineName 

    )

 $RegexPattern='"name": "(.*?)",'
 $TempFilePath="C:\Temp\TempADF.txt"

if (!$PipelineName)
{

 $AllPipelineDataset = Get-AzDataFactoryV2Pipeline -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -ErrorAction Stop
 $PipelineCount = $AllPipelineDataset.Count
 $ActivityCount =0

 Write-Host "Pipelines Count :" $PipelineCount
 
 for ($i=0; $i -lt $PipelineCount ; $i++)
 {
$AllPipelineDataset[$i].Activities|Out-File $TempFilePath
[array]$InnerActivities=([regex]::Matches((Get-Content $TempFilePath),$RegexPattern).groups|Where-Object Name -EQ '1').Value
[array]$OuterActivities=$AllPipelineDataset[$i].Activities.Name
$ActivitiesName= $InnerActivities + $OuterActivities


 Write-Host ""   # To add a line break between consecutive pipeline details
 Write-Host "PipelineName :" ($AllPipelineDataset[$i]).Name
 Write-Host "Pipeline Activities :" $ActivitiesName
 Write-Host "Pipeline Activities Count :" $ActivitiesName.Count

 $ActivityCount= $ActivityCount + $ActivitiesName.Count

 Remove-Item $TempFilePath
 
 }
 Write-Host "`nTotal Number of Activities in $DataFactoryName : "  $ActivityCount
}
else
{

$PipelineDataset = Get-AzDataFactoryV2Pipeline -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name $PipelineName -ErrorAction Stop

$PipelineDataset.Activities|Out-File $TempFilePath
[array]$InnerActivities=([regex]::Matches((Get-Content $TempFilePath),$RegexPattern).groups|Where-Object Name -EQ '1').Value
[array]$OuterActivities=$PipelineDataset.Activities.Name

$ActivitiesName= $InnerActivities + $OuterActivities



Write-Host "PipelineName :" $PipelineName
Write-Host "Pipeline Activities :" $ActivitiesName
Write-Host "Pipeline Activities Count :" $ActivitiesName.Count

Remove-Item $TempFilePath

}
 
}


Export-ModuleMember -Function Get-AzDataFactoryV2Activities