Public/Activity.txt
|
#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]$OnwerUserId, [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") } $newfields = New-Object 'System.Collections.Generic.Dictionary[[String], [Object]]' if($Fields -ne $null) { foreach($field in $Fields.GetEnumerator()) { $newfield = [PSCustomObject]@{ Type = MapFieldTypeByFieldValue -Value $field.Value Value = $field.Value } $newfields.Add($field.Key, $newfield) } } try { $result = $conn.CreateNewActivityEntry($ActivityEntityType, $EntityLogicalName, $Id, $Subject, $Description, $OnwerUserId, $newfields, [Guid]::Empty) if($result -eq $null) { throw $_.Exception } } catch { throw $_.Exception } return $result } } #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 { $result = $conn.CloseActivity($ActivityEntityType, $ActivityId, $StateCode, $StatusCode, [Guid]::Empty) if(!$result) { throw $_.Exception } } catch { throw $_.Exception } } |