We had a user delete a Marketing List. I needed to recreate it. I went to a database backup and found the GUID of the deleted list.
Then I used the following SQL query to find the GUIDs of all the members of that list:
SELECT FullName ,ParentCustomerIdName ,[EntityId] ,[ListId] ,[ListMemberId] FROM [CRMDataBaseName].[dbo].[ListMember],[CRMDataBaseName].[dbo].Contact where ListId = '787b77ca-c47d-431b-863e-12a98969b097' AND [EntityId] = ContactId order by LastName,FirstName
I saved the EntityId column to a text file, and then I used the following PowerShell code to loop through the GUIDs and add them to a new MarketingList
$ListMembers = Get-Content C:\IT\Temp\ListMemberGUIDs.txt foreach ($EntityId in $ListMembers){ $xml = "" $xml += "<s:Envelope xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'>"; $xml += " <s:Body>"; $xml += " <Execute xmlns='http://schemas.microsoft.com/xrm/2011/Contracts/Services' xmlns:i='http://www.w3.org/2001/XMLSchema-instance'>"; $xml += " <request i:type='b:AddMemberListRequest' xmlns:a='http://schemas.microsoft.com/xrm/2011/Contracts' xmlns:b='http://schemas.microsoft.com/crm/2011/Contracts'>"; $xml += " <a:Parameters xmlns:c='http://schemas.datacontract.org/2004/07/System.Collections.Generic'>"; $xml += " <a:KeyValuePairOfstringanyType>"; $xml += " <c:key>ListId</c:key>"; $xml += " <c:value i:type='d:guid' xmlns:d='http://schemas.microsoft.com/2003/10/Serialization/'>5deb4efb-4ed7-47f3-8e8e-bb487e0db423</c:value>"; $xml += " </a:KeyValuePairOfstringanyType>"; $xml += " <a:KeyValuePairOfstringanyType>"; $xml += " <c:key>EntityId</c:key>"; $xml += " <c:value i:type='d:guid' xmlns:d='http://schemas.microsoft.com/2003/10/Serialization/'>$($EntityId)</c:value>"; $xml += " </a:KeyValuePairOfstringanyType>"; $xml += " </a:Parameters>"; $xml += " <a:RequestId i:nil='true' />"; $xml += " <a:RequestName>AddMemberList</a:RequestName>"; $xml += " </request>"; $xml += " </Execute>"; $xml += " </s:Body>"; $xml += "</s:Envelope>"; $url="http://crm.sardverb.com/SardVerbinnen/XRMServices/2011/Organization.svc/web" $http_request = New-Object -ComObject Msxml2.XMLHTTP $http_request.Open('POST', $url, $false) $http_request.setRequestHeader("SOAPAction", "http://schemas.microsoft.com/xrm/2011/Contracts/Services/IOrganizationService/Execute") $http_request.setRequestHeader("Content-Type", "text/xml; charset=utf-8") $http_request.setRequestHeader("Content-Length", $xml.length) $http_request.send($xml) }
Comments are closed.