Рабочие процессы CRM 2011: поиск предыдущих значений - PullRequest
5 голосов
/ 02 июня 2011

У меня есть рабочий процесс, который запускается при изменении определенного десятичного поля.

Можно ли получить разницу между старым и новым значениями с помощью рабочего процесса?

1 Ответ

5 голосов
/ 07 мая 2012

Наконец-то было время проверить это, и вполне возможно получить предварительные значения в рабочем процессе, используя сборку рабочего процесса.

Вот что я сделал:

Я создал рабочий процессв контакте, с триггером на LastName. Рабочий процесс содержит ссылку на поле фамилия и пользовательскую сборку рабочего процесса .Я открыл контакт и изменил его фамилию с 'Foo' на 'Bar'

Код пользовательской сборки рабочего процесса:

protected override void Execute(CodeActivityContext context)
        {
            IWorkflowContext workflow = context.GetExtension<IWorkflowContext>();
            Entity preImage = workflow.PreEntityImages.Values.FirstOrDefault();

        string content = RetrievePreImageLastname(preImage);

        using (StreamWriter writer = new StreamWriter(@"C:\temp\log.txt", true))
        {
            writer.WriteLine("writing workflow assembly");
            writer.Write(content);
        }
    }

    public string RetrievePreImageLastname(Entity value)
    {
        if (value == null)
            return "PreImage is Empty";

        return string.Format("lastname pre image value: {0}", value.GetAttributeValue<string>("lastname"));
    }

И это был вывод:

запись сборки рабочего процесса

фамилия, предварительное значение изображения: Foo

Надеюсь, что это поможет любому в будущем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...