2012-07-30 19 views
5

यह सीआरएम 2011 के लिए मेरा पहला कस्टम डब्ल्यूएफ है, और इसे किसी भी इकाई के लिए सामान्य ईएफ होना आवश्यक है, मैं जानना चाहता हूं कि संदर्भ से निष्पादन इकाई कैसे प्राप्त करें या नहीं संभव है, कोई विचार बहुत अच्छा होगा।कस्टम वर्कफ़्लो निष्पादन इकाई कैसे प्राप्त करें

मैं इस तरह WF शुरू:

public class WFIntegracao: CodeActivity 
    { 

     protected override void Execute(CodeActivityContext context) 
     { 

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


     } 
    } 

उत्तर

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

ध्यान दें कि मैंने स्पष्ट रूप से कहा है कि अपेक्षित इनपुट प्रकार एक संपर्क इकाई संदर्भ के साथ है। आप इस प्रतिबंध को उठाने के लिए संदर्भ लक्ष्य लक्ष्य को बाहर करने में सक्षम हो सकते हैं। आप बस .Get() का परिणाम की LogicalName सदस्य को देखकर बाद में प्रकार का निर्धारण कर सकता है, तो उदाहरण में यह हो जाएगा:

string entityType = ContactReference.LogicalName; 
+0

तो InArgument है , ReferenceTarget विशेषता आवश्यक है – Mac

4

IWorkflowContext जानकारी आप की आवश्यकता शामिल करना चाहिए।

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

MSDN IWorkflowContext