Edi*_*son 5 workflow dynamics-crm-2011
这是我的第一个自定义WF for CRM 2011,这需要是任何实体的通用EF,我想知道如何从上下文中获取执行实体,或者如果不可能,任何想法都会非常好.
我像这样开始WF:
public class WFIntegracao: CodeActivity
{
protected override void Execute(CodeActivityContext context)
{
IWorkflowContext contexto = context.GetExtension<IWorkflowContext>();
}
}
Run Code Online (Sandbox Code Playgroud)
IWorkflowContext 应包含您需要的信息。
IWorkflowContext contexto = context.GetExtension<IWorkflowContext>();
String entityName = contexto.PrimaryEntityName;
Guid entityId = contexto.PrimaryEntityId;
Run Code Online (Sandbox Code Playgroud)
我之前没有为未指定类型的实体创建工作流程,但是您可以更改此代码来执行此操作;这是一个联系参考:
[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();
}
Run Code Online (Sandbox Code Playgroud)
请注意,我已明确指出预期的输入类型是联系人实体引用。您也许可以排除 ReferenceTarget 属性以解除此限制。您稍后可以通过简单地查看 .Get() 结果的 LogicalName 成员来确定类型,因此在示例中为:
string entityType = ContactReference.LogicalName;
Run Code Online (Sandbox Code Playgroud)