2016-09-28 65 views
0

我需要知道附加到特定實體及其字段的所有插件嗎?如何查找插件CRM的相應實體和字段

我已經獲取所有插件。以下是我獲取所有插件的代碼。

public void retrievePlugin() 
     { 
      QueryExpression q = new QueryExpression("plugintype"); 

      q.ColumnSet = new ColumnSet() { AllColumns = true }; 
      EntityCollection ec = serviceProxy.RetrieveMultiple(q); 


     } 

回答

0

我相信你不需要插件,但他們的步驟。所以你應該讀取的實體是sdkmessageprocessingstep而不是plugintype。要獲得爲特定實體註冊的步驟,您需要獲取該實體的ObjectTypeCode,並將其用作由鏈接的sdkmessagefiter實體的primaryobjecttypecode字段進行篩選。換句話說,要註冊插件步驟來處理與帳戶相關的消息,您可以使用以下FetchXml:

<fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false"> 
    <entity name="sdkmessageprocessingstep"> 
    <attribute name="name" /> 
    <attribute name="description" /> 
    <attribute name="eventhandler" /> 
    <attribute name="impersonatinguserid" /> 
    <attribute name="supporteddeployment" /> 
    <attribute name="statuscode" /> 
    <attribute name="statecode" /> 
    <attribute name="sdkmessagefilterid" /> 
    <attribute name="sdkmessageid" /> 
    <attribute name="filteringattributes" /> 
    <attribute name="configuration" /> 
    <attribute name="asyncautodelete" /> 
    <link-entity name="sdkmessagefilter" from="sdkmessagefilterid" to="sdkmessagefilterid" alias="a1"> 
     <attribute name="secondaryobjecttypecode" /> 
     <attribute name="primaryobjecttypecode" /> 
     <filter type="and"> 
     <condition attribute="primaryobjecttypecode" operator="eq" value="1" /> 
     </filter> 
    </link-entity> 
    </entity> 
</fetch> 
+0

謝謝! 我沒有嘗試過你的代碼。但我使用查詢表達式來獲取它。首先,我從sdkmessgaefilter實體獲取sdkmessagefilterid,並在primaryobjecttypecode上應用條件,然後在sdkmessageprocessingstep實體中使用sdkmessagefilterid作爲條件。所以最後我得到了所有的插件程序集名稱。 我想你也是這樣做過 –

相關問題