2010-04-10 45 views
1

我希望有一個工作流創建任務,然後通過電子郵件向指定的用戶發送他們有新任務幷包含指向新創建任務的鏈接電子郵件的正文。我有客戶端代碼,它將使用實體GUID正確地創建編輯URL並將其存儲在自定義屬性中。但是,當從工作流內創建任務時,客戶端腳本不會運行。實體如何在MS Dyanmics CRM 4.0的插件中編輯URL

所以,我認爲一個插件應該可以工作,但我無法弄清楚如何確定CRM安裝的URL。我在一個測試環境中創作這個作品,當我轉向生產時絕對不想改變它。我確定我可以使用配置文件,但看起來像插件應該能夠在運行時弄清楚。

任何人有任何想法如何從插件內訪問crm服務的URL?任何其他想法?

謝謝!

回答

1

沒有簡單的方法來做到這一點。但是,有一個。

MSCRM_Config是處理物理部署屬性的部署數據庫,例如用戶正在訪問CRM部署的URL。您可能需要的URL是存儲在MSCRM_CONFIG.dbo.DeploymentProperties表中的「ADWebApplicationRootDomain」中的URL。您可能需要一些權限才能訪問此數據庫。

請注意,這不適用於面向Internet的部署。

另一種方法可能是查詢發現服務以檢索相同的信息(如果您使用的是MSCRM4的聯機版)。

+0

爲了澄清,你在說什麼,該網址是表,但只有當我不使用IFD?我還沒有嘗試IFD,但我認爲它將面臨部署的互聯網添加到現場部署。即都工作。這是不正確的? – 2010-04-10 14:48:08

+0

問題是,如果您使用IFD部署CRM,則從互聯網訪問時,URL應爲http://orgname.dnsprefix.company.com。但是,存儲在CRM中的內容是http:// internalservername,這不能從互聯網上訪問...... – BeardinaSuit 2010-04-10 16:57:07

+0

好了,所以內部URL仍然可以工作,但URL不適用於IFD用戶。這使得(不幸的)感覺。謝謝 – 2010-04-12 19:04:34

1

你是什麼意思的「改變事物」?

如果您創建自定義工作流程程序集,則可以爲其提供服務器url輸入。一旦您向CRM註冊它,您可以在配置工作流時簡單地輸入服務器URL。移動到生產環境後,您必須更新使用自定義工作流程組合的任何工作流程的網址,但您只需要進行一次這樣的操作。

我很抱歉,如果這是你的意思,你想避免。

編輯:聽起來像你可能能夠使用CustomConfiguration屬性,當你註冊插件。這裏有一些更多的信息。

http://blogs.msdn.com/crm/archive/2008/10/24/storing-configuration-data-for-microsoft-dynamics-crm-plug-ins.aspx

+0

這很好理解,但我使用的是插件,而不是自定義的工作流程活動。我需要能夠將URL插入到電子郵件正文中(sendemailactivity),它是指向特定實體的鏈接。 – 2010-04-10 14:45:49

0
String Url = ((string)(Registry.LocalMachine.OpenSubKey(
          "Software\\Microsoft\\MSCRM").GetValue("ServerUrl")) 
      ).Replace("MSCRMServices", ""); 
相關問題