AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2015, 00:28   #1  
GetLucky is offline
GetLucky
Участник
Лучший по профессии 2014
 
99 / 13 (1) ++
Регистрация: 03.09.2013
Incident Resolution In CRM Online 2013
Коллеги, добрый вечер!

Давно не писал под СРМ, хотелось бы узнать какое решение выбрать.

Пытаемся внедрить ITIL, используем базовую сущность - Обращение (Incident).
Добавил три кастомных поля: Факт. реакция, Дата Завершения и Затраченное время.
Так вот, js заполняю поле Факт. реакция, а дату Завершения и Затраченное время
устанавливаю в процессе закрытия обращения плагином
  • Message: Update
  • Primary entity: Incident
  • Stage of execution: Post-operation
  • Execution mode: Synchronous
  • Execution order: 1
Наскольо я понял надо вешать плагин на SetState

X++:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xrm.Sdk;
using Microsoft.Crm.Sdk.Messages;
using Microsoft.Xrm.Sdk.Query;
using System.ServiceModel.Description;
using System.ServiceModel;
using System.Globalization;


namespace AmicaPackage.SetCaseDurationPlugin
{
    public class SetFactDuration : IPlugin
    {
        //Resolved
        public readonly int problemResolved = 5;
        public readonly int infoGranted = 1000;

        public void Execute(IServiceProvider ServiceProvider)
        
        {

            IPluginExecutionContext Context = (IPluginExecutionContext)ServiceProvider.GetService(typeof(IPluginExecutionContext));

            IOrganizationServiceFactory ServiceFactory = (IOrganizationServiceFactory)ServiceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService Service = ServiceFactory.CreateOrganizationService(Context.UserId);
            ITracingService tracingService = (ITracingService)ServiceProvider.GetService(typeof(ITracingService));
            if (Context.PostEntityImages.Contains("PostImage") && Context.PostEntityImages["PostImage"] is Entity)
            {
                if (Context.Depth > 1)  return;

               Entity incident = (Entity)Context.PostEntityImages["PostImage"];
               var startDate = incident.GetAttributeValue<DateTime>("new_factreaction");
               var dueDate = DateTime.Now;
               var statusCode = ((OptionSetValue)incident["statuscode"]).Value;
               if (statusCode == problemResolved || statusCode == infoGranted)
               {
                   if (startDate != null)
                   {
                       var minutes = Math.Abs(Math.Round(((startDate - dueDate).TotalMinutes), 2));
                       incident.Attributes.Add("new_facttime", dueDate);
                       incident.Attributes.Add("new_duedate", dueDate);
                       incident.Attributes.Add("new_timediff", minutes);

                   }
               }
               Service.Update(incident);
            }
        }
    }
}
Так вот, проблема, что плагин пытается редактировать завершенное обращение, а оно только ReadOnly

Как правильно апдейтить поля после завершения кейса?

Последний раз редактировалось GetLucky; 22.05.2015 в 00:42.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 15 Blog bot Dynamics CRM: Blogs 1 10.02.2016 10:26
Leon's CRM Musings: Book Review: Microsoft Dynamics CRM 2013 Unleashed Blog bot Dynamics CRM: Blogs 0 31.10.2014 10:11
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 17 Blog bot Dynamics CRM: Blogs 0 10.05.2014 06:30
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2013 Update Rollup 2 Blog bot Dynamics CRM: Blogs 0 15.04.2014 01:15
crminthefield: Podcast and Overview: Microsoft Dynamics CRM 2011 Update Rollup 16 Blog bot Dynamics CRM: Blogs 0 23.01.2014 03:15

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:24.