Dynamics CRM 用程式碼註冊Plugin Step
平時我們開發時,外掛的註冊要麼通過工具,要麼通過SDK提供的VS元件,註冊完外掛還需要新增步驟等,那如果碰到根據業務需要靈活配置step時,再去通過工具新增或者刪除就不大友好了,最好能在介面上進行視覺化的操作。
本篇要分享的場景是自動編號中,每增加一條實體配置時,點選頁面上的安裝就能自動建立外掛step,而不用手工去工具中新增
下面開始上程式碼,在正式建立前會有一些程式碼塊來獲取一些必需的引數
首先是獲取assembly的id,這是決定你要在哪個assembly下附加
QueryExpression query = new QueryExpression("pluginassembly");
query.ColumnSet = new ColumnSet("pluginassemblyid");
query.Criteria.AddCondition("name", ConditionOperator.Equal, "NY_AutoNumber");
EntityCollection collection = organizationServiceProxy.RetrieveMultiple(query);
string assemblyid = collection.Entities[0].Id.ToString();
然後是typeid,這個決定你的step掛在哪個plugin下面,這裡有個condition引數typename,初看之下可能並不知道是什麼,看下我紅框中框出來的和我程式碼中的名字對應下就看出來了
//get plugin types within assembly
query = new QueryExpression("plugintype");
query.ColumnSet = new ColumnSet("plugintypeid");//
query.Criteria.AddCondition("pluginassemblyid", ConditionOperator.Equal, assemblyid);
query.Criteria.AddCondition("typename", ConditionOperator.Equal, "NY_AutoNumber.CRM.Plugins.AutoNumber");
collection = organizationServiceProxy.RetrieveMultiple(query);
string pluginTypesId = collection.Entities[0].Id.ToString();
然後是sdkmessageid,我這裡用的是Create, 可以根據業務靈活設定name
//GetSdkMessageId
query = new QueryExpression("sdkmessage");
query.ColumnSet = new ColumnSet("sdkmessageid");
query.Criteria.AddCondition("name", ConditionOperator.Equal, "Create");
collection = organizationServiceProxy.RetrieveMultiple(query);
string sdkmessageId = collection.Entities[0].Id.ToString();
然後是sdkmessagefilterid
//GetSdkMessageFilterId
query = new QueryExpression("sdkmessagefilter");
query.ColumnSet = new ColumnSet(true);//"sdkmessagefilterid"
query.Criteria.AddCondition("primaryobjecttypecode", ConditionOperator.Equal, entityName);
query.Criteria.AddCondition("sdkmessageid", ConditionOperator.Equal, sdkmessageId);
collection = organizationServiceProxy.RetrieveMultiple(query);
string sdkmessagefilterId = collection.Entities[0].Id.ToString();
到這裡準備工作就齊活了,然後就是根據引數來建立step了
Entity entity = new Entity("sdkmessageprocessingstep");
entity.Attributes.Add("name", "NY_AutoNumber.CRM.Plugins.AutoNumber: Create of " + entityName);
entity.Attributes.Add("description", "NY_AutoNumber.CRM.Plugins.AutoNumber: Create of " + entityName);
entity.Attributes.Add("sdkmessagefilterid", new EntityReference("sdkmessagefilter", new Guid(sdkmessagefilterId)));
entity.Attributes.Add("plugintypeid", new EntityReference("plugintype", new Guid(pluginTypesId)));
entity.Attributes.Add("eventhandler", new EntityReference("plugintype", new Guid(pluginTypesId)));
entity.Attributes.Add("componentstate", new OptionSetValue(0));
entity.Attributes.Add("sdkmessageid", new EntityReference("sdkmessage", new Guid(sdkmessageId)));
entity.Attributes.Add("asyncautodelete", false);
entity.Attributes.Add("mode", new OptionSetValue(0));
entity.Attributes.Add("stage", new OptionSetValue(20));
entity.Attributes.Add("rank", 1);
entity.Attributes.Add("supporteddeployment", new OptionSetValue(0));
organizationServiceProxy.Create(entity);
通過上述方式建立出來的step如下
相關文章
- Dynamics CRM2016 plugin註冊step時報Assembly file name is in invalid format錯的解決辦法PluginORM
- Dynamics CRM 2013 常用JS指令碼JS指令碼
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(一)之註冊原始碼
- sublime text for Mac註冊啟用 sublime text4註冊碼Mac
- Navicat for MySQL 11註冊碼\啟用碼MySql
- CRM中介軟體裡CRM local changes的註冊管理
- Dynamics CRM Connectivity and Firewall Port Requirements——CRM安裝UIREM
- IntelliJ IDEA 註冊碼啟用IntelliJIdea
- Emeditor 註冊碼
- WebStorm註冊碼WebORM
- Mac裝機必備程式碼編輯工具:sublime text for Mac 註冊啟用版 附 註冊碼 支援M1Mac
- 讓共享程式自己顯示註冊碼
- Dynamics CRM Asynchronous Service Performance: Code ManiaORM
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(三)之下線原始碼
- 蘋果專用解壓縮:BetterZip 5 中文註冊安裝版(含註冊碼)蘋果
- datagrip 2021.1啟用註冊碼
- Proxifier註冊碼「Proxifier啟用安裝包」
- PhpStorm註冊碼PHPORM
- Navicat for MySQL註冊碼MySql
- SecureCRT 7 註冊碼Securecrt
- 註冊中心 Eureka 原始碼解析 —— 應用例項註冊發現(五)之過期原始碼
- Dynamics CRM 2013 批處理
- 一種非明碼比較程式的註冊------NS-SHAFT註冊碼破解 (9千字)
- 強大的程式碼編輯器Sublime Text for Mac註冊啟用版Mac
- JProfiler mac 14.0最新註冊啟用碼版Mac
- SecureCRT 註冊碼啟用資源附完整教程Securecrt
- SecureCRT 註冊碼啟用版 支援m1Securecrt
- Dynamics CRM 介紹兩款Chrome元件,用於提升開發效率Chrome元件
- 將windows應用程式註冊為windows服務Windows
- Dynamics CRM 使用ILMerge 合併CRM開發後的DLL
- MyEclipse下EJB應用程式的開發Step By StepEclipse
- gitee(碼雲)的註冊和程式碼提交【手把手】Gitee
- 登陸註冊頁面html程式碼(仿知乎)HTML
- 程式碼編輯器:sublime text for Mac 註冊版Mac
- Viscosity for Mac 註冊碼:Mac
- PLSQL Developer 12 註冊碼SQLDeveloper
- PLSQL Developer 9.0註冊碼SQLDeveloper
- Dynamics CRM 資料遷移工具DataMigrationUtility