Private/Get-CorrectGuidForSavedQuery.ps1
Function Get-CorrectGuidForSavedQuery { param ( [SolutionComponent]$Component, [hashtable]$metadata, [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$SourceConn, [Microsoft.Xrm.Tooling.Connector.CrmServiceClient]$TargetConn ) $savedQueryName = Get-SavedQueryName -Component $Component -Conn $SourceConn $savedQueryReturnedTypeCode = Get-SavedQueryReturnedTypeCode -Component $Component -Metadata $Metadata -Conn $SourceConn $query = @" <fetch> <entity name="savedquery" > <filter type="and" > <condition attribute="name" operator="eq" value="$savedQueryName" /> <condition attribute="returnedtypecode" operator="eq" value="$savedQueryReturnedTypeCode" /> </filter> </entity> </fetch> "@ try { $result = (Get-CrmRecordsByFetch -Conn $TargetConn -Fetch $query -AllRows -ErrorAction Stop -WarningAction SilentlyContinue).CrmRecords } catch { $err = $_.Exception.Message throw $err } $targetMetadataId = $result[0].savedqueryid if ($targetMetadataId -and ($targetMetadataId -ne $Component.ObjectId)) { $component.OriginalObjectId = $component.ObjectId $component.ObjectId = $targetMetadataId Write-Verbose ("Set objectid {0} to target metadataid {1} for savedquery {2} on ObjectTypeCode {3} " -f $Component.OriginalObjectId, $targetMetadataId, $savedQueryName, $savedQueryReturnedTypeCode) } Write-Output $Component } |