这是我第一个面向CRM 2011的自定义WF,这需要是任何实体的通用EF,我想知道如何从上下文中获取执行实体,或者如果不可能,任何想法都会非常好
我像这样开始WF:
public class WFIntegracao: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
IWorkflowContext contexto = context.GetExtension<IWorkflowContext>();
}
}
答案 0 :(得分:4)
IWorkflowContext
应包含您需要的信息。
IWorkflowContext contexto = context.GetExtension<IWorkflowContext>();
String entityName = contexto.PrimaryEntityName;
Guid entityId = contexto.PrimaryEntityId;
答案 1 :(得分:0)
我之前没有为未指定类型的实体创建工作流程,但是您可能可以更改此代码来执行此操作;这是一个联系人参考:
[RequiredArgument]
[Input("Contact")]
[ReferenceTarget("contact")]
public InArgument<EntityReference> Contact { get; set; }
protected override void Execute(CodeActivityContext context)
{
ContactReference = Contact.Get(context);
if (ContactReference == null)
throw new InvalidPluginExecutionException("Contact reference is null.");
DoSomething();
}
请注意,我已明确声明预期的输入类型是联系人实体引用。您可以排除ReferenceTarget属性以解除此限制。您可以稍后通过查看.Get()结果的LogicalName成员来确定类型,因此在示例中它将是:
string entityType = ContactReference.LogicalName;