【发布时间】:2011-06-02 07:46:53
【问题描述】:
我目前有一个工作流,当某个小数字段发生更改时会触发该工作流。
是否可以通过工作流获得新旧值之间的差异?
【问题讨论】:
标签: dynamics-crm workflow-foundation-4 dynamics-crm-2011
我目前有一个工作流,当某个小数字段发生更改时会触发该工作流。
是否可以通过工作流获得新旧值之间的差异?
【问题讨论】:
标签: dynamics-crm workflow-foundation-4 dynamics-crm-2011
终于有时间对此进行测试,完全可以使用工作流程序集检索工作流中的 pre 值。
这就是我所做的:
我在联系人上创建了一个工作流,并在姓氏上创建了一个触发器。 工作流包含对字段姓氏的引用和自定义工作流程序集。我打开了一个联系人并将其姓氏从“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"));
}
这是输出:
编写工作流汇编
lastname pre image value: Foo
希望这可以帮助任何人以供将来使用。
【讨论】: