private/ConvertTo-SfStandardValueSetXml.ps1
|
function ConvertTo-SfStandardValueSetXml { <# .SYNOPSIS Converts a single StandardValueSet entry into its *.standardValueSet-meta.xml content. .DESCRIPTION Builds the XML for a StandardValueSet from the given entry and the picklist values found in MetadataModel.Tables._PicklistValues, filtered by ValueSetType = 'StandardValueSet' and matching ValueSetName. .OUTPUTS [string] The raw XML content for the *.standardValueSet-meta.xml file. #> [CmdletBinding()] param ( # Single entry from MetadataModel.Tables._StandardValueSets. [Parameter(Mandatory, Position = 0)] [PSCustomObject] $ValueSet, # The metadata model as imported from *.csv and/or *.xlsx with Import-SfMetadataModel [Parameter(Mandatory)] [PSCustomObject] $MetadataModel ) $ErrorActionPreference = 'Stop' $PicklistValues = $MetadataModel.Tables._PicklistValues | Where-Object { ($_._ValueSetType -eq 'StandardValueSet') -and ($_._ValueSetName -eq $ValueSet._Name) } $xml = '<?xml version="1.0" encoding="UTF-8"?>' $xml += '<StandardValueSet xmlns="http://soap.sforce.com/2006/04/metadata">' $xml += ConvertTo-XmlTag 'sorted' $ValueSet._Sorted -IsTrueFalseNull foreach ($PicklistValue in $PicklistValues) { $xml += ConvertTo-SfPicklistValueXml $PicklistValue } $xml += '</StandardValueSet>' return $xml } |