Public/Activity.ps1
|
#CreateNewActivityEntry function Add-CrmActivityToCrmRecord{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1, ParameterSetName="CrmRecord", ValueFromPipeline=$true)] [PSObject]$CrmRecord, [parameter(Mandatory=$true, Position=1, ParameterSetName="NameWithId")] [string]$EntityLogicalName, [parameter(Mandatory=$true, Position=2, ParameterSetName="NameWithId")] [guid]$Id, [parameter(Mandatory=$true, Position=3)] [string]$ActivityEntityType, [parameter(Mandatory=$true, Position=4)] [string]$Subject, [parameter(Mandatory=$true, Position=5)] [string]$Description, [parameter(Mandatory=$true, Position=6)] [string]$OwnerUserId, [parameter(Mandatory=$false, Position=7)] [hashtable]$Fields ) begin { $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) } process { if($CrmRecord -ne $null) { $EntityLogicalName = $CrmRecord.logicalname $Id = $CrmRecord.($EntityLogicalName + "id") } $entity = New-Object Microsoft.Xrm.Sdk.Entity($ActivityEntityType) $entity["subject"] = $Subject $entity["description"] = $Description $entity["regardingobjectid"] = New-Object Microsoft.Xrm.Sdk.EntityReference($EntityLogicalName, $Id) if(-not [string]::IsNullOrWhiteSpace($OwnerUserId)) { $entity["ownerid"] = New-Object Microsoft.Xrm.Sdk.EntityReference("systemuser", ([Guid]$OwnerUserId)) } if($Fields -ne $null) { foreach($field in $Fields.GetEnumerator()) { $entity[$field.Key] = $field.Value } } try { return $conn.Create($entity) } catch { throw } } } #CloseActivity function Set-CrmActivityRecordToCloseState{ # .ExternalHelp Campgemini.Xrm.Data.PowerShell.Help.xml [CmdletBinding()] PARAM( [parameter(Mandatory=$false)] [Microsoft.Xrm.Sdk.IOrganizationService]$conn, [parameter(Mandatory=$true, Position=1, ParameterSetName="CrmRecord")] [PSObject]$CrmRecord, [parameter(Mandatory=$true, Position=1, ParameterSetName="NameWithId")] [string]$ActivityEntityType, [parameter(Mandatory=$true, Position=2, ParameterSetName="NameWithId")] [guid]$ActivityId, [parameter(Mandatory=$true, Position=3)] [string]$StateCode, [parameter(Mandatory=$true, Position=4)] [string]$StatusCode ) $conn = VerifyCrmConnectionParam -conn $conn -pipelineValue ($PSBoundParameters.ContainsKey('conn')) if($CrmRecord -ne $null) { $ActivityEntityType = $CrmRecord.logicalname $ActivityId = $CrmRecord.("activityid") } try { $entity = New-Object Microsoft.Xrm.Sdk.Entity($ActivityEntityType) $entity.Id = $ActivityId $entity["statecode"] = New-Object Microsoft.Xrm.Sdk.OptionSetValue([Int32]$StateCode) $entity["statuscode"] = New-Object Microsoft.Xrm.Sdk.OptionSetValue([Int32]$StatusCode) $conn.Update($entity) } catch { throw } } |