2012-07-30 21 views
5

To jest moja pierwsza niestandardowa WF dla CRM 2011, a to musi być ogólny EF dla dowolnego podmiotu, chciałbym wiedzieć, jak uzyskać podmiot wykonawczy z kontekstu lub jeśli nie możliwe, każdy pomysł byłby bardzo miły.Niestandardowy przepływ pracy, jak zdobyć jednostkę wykonawczą

zacznę WF tak:

public class WFIntegracao: CodeActivity 
    { 

     protected override void Execute(CodeActivityContext context) 
     { 

      IWorkflowContext contexto = context.GetExtension<IWorkflowContext>(); 


     } 
    } 

Odpowiedz

0

ja nie zrobiłem przepływ pracy dotyczący podmiotów typu nieokreślonego wcześniej, jednak może być w stanie zmienić ten kod, aby to zrobić; to jest dla odniesienia kontaktowego:

[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(); 
} 

Należy zauważyć, że wyraźnie stwierdziłem, że oczekiwanym typem danych wejściowych jest odwołanie do jednostki kontaktu. Być może uda ci się wykluczyć atrybut ReferenceTarget w celu zniesienia tego ograniczenia. Można określić typ później po prostu patrząc na członka LogicalName w wyniku .get(), więc w tym przykładzie byłoby:

string entityType = ContactReference.LogicalName; 
+0

Jeśli InArgument jest wymagany jest atrybut ReferenceTarget – Mac

4

IWorkflowContext powinien zawierać informacje, które wymagają.

IWorkflowContext contexto = context.GetExtension<IWorkflowContext>(); 
String entityName = contexto.PrimaryEntityName; 
Guid entityId = contexto.PrimaryEntityId; 

MSDN IWorkflowContext

Powiązane problemy