Update: I've discovered that when I change the SOAP Attribute "CreateAction" to "CreateNew" vs **UpdateOrCreate **(or Update) the UploadItems request is successful. Now what I'm trying to understand is why the UpdateOrCreate and Update create actions are failing - the only difference is the latter action uses the passed Item Id and ChangeKey. This code WORKED prior prior to March 2024 with UpdateOrCreate as the create action (CreateNew ignores the supplied Item Id and ChangeKey).
$child = ($soapRequestXML.CreateElement("t:Item", "http://schemas.microsoft.com/exchange/services/2006/types"))
$child.SetAttribute("CreateAction", "CreateNew")
($soapRequestXML.SelectSingleNode("//m:Items", $nsmgr).AppendChild($child)) | Out-Null
$child = ($soapRequestXML.CreateElement("t:ParentFolderId", "http://schemas.microsoft.com/exchange/services/2006/types"))
$child.SetAttribute("Id", $DestFolder.Id.UniqueId)
$child.SetAttribute("ChangeKey", $DestFolder.Id.ChangeKey)
($soapRequestXML.SelectSingleNode("//t:Item[$i]", $nsmgr).AppendChild($child)) | Out-Null
$child = ($soapRequestXML.CreateElement("t:ItemId", "http://schemas.microsoft.com/exchange/services/2006/types"))
$child.SetAttribute("Id", $node.ItemId.Id)
$child.SetAttribute("ChangeKey", $node.ItemId.ChangeKey)
($soapRequestXML.SelectSingleNode("//t:Item[$i]", $nsmgr).AppendChild($child)) | Out-Null
$child = ($soapRequestXML.CreateElement("t:Data", "http://schemas.microsoft.com/exchange/services/2006/types"))
$child.InnerText = $node.Data
($soapRequestXML.SelectSingleNode("//t:Item[$i]", $nsmgr).AppendChild($child)) | Out-Null
I'd love to get this resolved. Usable in the current form, but I can see re-runs could be problematic.
Your help appreciated