Private/Update-RootComponentBehavior.ps1
Function Update-RootComponentBehavior { Param ( [string]$SolutionName, [hashtable]$Metadata, [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$Conn ) Write-Verbose "Updating RootComponentBehaviors..." $component = Get-CrmSolutionComponent -Conn $conn -SolutionName $solutionName $entities = $component | Where-Object -Property ComponentType -EQ 1 $badRootComponents = $entities | Where-Object -Property rootcomponentbehavior -EQ 0 $updatedRootComponents = @() Foreach ($component in $badRootComponents){ $entityName = $metadata.Source.All[$component.ObjectId].SchemaName $objectId = $component.ObjectId Write-Verbose ('Updating component behavior for {0}:{1}' -f $ObjectId, $entityName) Remove-CrmComponentFromSolution -Conn $Conn -SolutionName $SolutionName -Component $component Add-CrmEntityToSolution -EntityName $entityName -EntityMetadata $metadata.Source.All[$ObjectId] -Conn $conn -SolutionName $SolutionName -IncludeSubComponentSet 'Custom' $updatedRootComponents += $Component } Write-Output $updatedRootComponents } |