protected override void Execute(CodeActivityContext executionContext) { #region "Load CRM Service from context" Common objCommon = new Common(executionContext); objCommon.tracingService.Trace("Load CRM Service from context --- OK"); #endregion #region "Read Parameters" String _IncidentRecordURL = this.IncidentRecordURL.Get(executionContext); if (_IncidentRecordURL == null || _IncidentRecordURL == "") { return; } string[] urlParts = _IncidentRecordURL.Split("?".ToArray()); string[] urlParams = urlParts[1].Split("&".ToCharArray()); string ParentObjectTypeCode = urlParams[0].Replace("etc=", ""); string ParentId = urlParams[1].Replace("id=", ""); objCommon.tracingService.Trace("ParentObjectTypeCode=" + ParentObjectTypeCode + "--ParentId=" + ParentId); #endregion #region "ApplyRoutingRuleRequest Execution" string EntityName = objCommon.sGetEntityNameFromCode(ParentObjectTypeCode, objCommon.service); ApplyRoutingRuleRequest routeRequest = new ApplyRoutingRuleRequest(); routeRequest.Target = new EntityReference(EntityName, new Guid(ParentId)); ApplyRoutingRuleResponse routeResponse = (ApplyRoutingRuleResponse)objCommon.service.Execute(routeRequest); #endregion }
/// <summary> /// Applies the active <c>Routing Rule</c> to the <c>Incident (case)</c>. /// <para> /// For more information look at https://msdn.microsoft.com/en-us/library/microsoft.crm.sdk.messages.applyroutingrulerequest(v=crm.8).aspx /// </para> /// </summary> /// <param name="id"><c>Incident</c> Id</param> /// <returns> /// <see cref="ApplyRoutingRuleResponse"/> /// </returns> public ApplyRoutingRuleResponse ApplyRoute(Guid id) { ExceptionThrow.IfGuidEmpty(id, "id"); ApplyRoutingRuleRequest request = new ApplyRoutingRuleRequest() { Target = new EntityReference(this.EntityName, id) }; return((ApplyRoutingRuleResponse)this.OrganizationService.Execute(request)); }