CRM学习笔记(一)
被抽調(diào)學(xué)習(xí)CRM兩個(gè)禮拜,要回java組了,以后接觸機(jī)會(huì)應(yīng)該不多了。記錄下這段時(shí)間的學(xué)習(xí)總結(jié),以備不時(shí)之需。
通過微軟提供的視頻教程,基本上你想了解的一些很基礎(chǔ)的問題,都能找到入口處,剩下的就是通過sdk和在各個(gè)論壇尋找解決方法了。
http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/Series/CRM.aspx
這個(gè)里面包含了的視頻雖然不多,但老師都講得很詳細(xì),對(duì)開發(fā)方面也有了相當(dāng)篇幅的介紹。如plugin、ReportingService、workflow這些自定義開發(fā)都做了入門的基礎(chǔ)介紹和例子。
?學(xué)習(xí)圈子:
微軟的CRM的圈子,目前我去得比較多的是google論壇上的Microsoft Dynamics CRM 3.0/4.0 微軟客戶管理系統(tǒng)。(:)因?yàn)闀?huì)把所有我討論關(guān)心的話題都發(fā)到郵箱中。)還有當(dāng)然就是微軟的官方論壇了。
這里面不得不提的幾個(gè)人,刀客、darren liu 人都很不錯(cuò)呢,技術(shù)很牛,而且很熱心,基本上都是有問必答。
好了,剩下的就是自己在學(xué)習(xí)過程中遇到的一些怪問題了
1.工作流突然不能使用。不知是不是與虛擬機(jī)遷移服務(wù)器有關(guān),工作流不管設(shè)置如何的啟動(dòng)條件都無法運(yùn)行。后來到了服務(wù)器上,查看日志發(fā)現(xiàn),MSSQLSERVER審核失敗。發(fā)現(xiàn)Microsoft CRM 異步處理服務(wù)的服務(wù)怪異的停止了。重新啟動(dòng)完后流程正常。在后面的3.0到4.0升級(jí)也發(fā)現(xiàn)了這個(gè)問題,把自己覺得相關(guān)的服務(wù)啟動(dòng)了后,也可以了。沒有一個(gè)具體的說法,就是覺得很奇怪。
?2.視圖排序問題。看了Darren Liu的視圖隱藏方式后,稍加修改,變成了現(xiàn)在的視圖排序。目前自己還沒有找到更好的對(duì)系統(tǒng)視圖排序的方法,使用了一種很笨的方式來實(shí)現(xiàn)客戶要求的視圖排序順序(通常客戶提出的是按照他們的使用習(xí)慣來分類的,所以沒有辦法按照name來order)。
以下是實(shí)現(xiàn)方式。
public class ViewSort : IPlugin
??? {
??????? #region IPlugin 成員
??????? public void Execute(IPluginExecutionContext context)
??????? {
??????????? if (context.InputParameters != null && context.InputParameters.Contains(ParameterName.Query))
??????????? {
??????????????? QueryExpression qe = (QueryExpression)context.InputParameters.Properties[ParameterName.Query];
??????????????? if (qe.EntityName == "savedquery")
??????????????? {
??????????????????? if (qe.Criteria != null)
??????????????????? {
??????????????????????? if (qe.Criteria.Conditions != null)
??????????????????????? {
??????????????????????????? OrderExpression order = new OrderExpression("modifiedon", OrderType.Descending);
??????????????????????????? qe.Orders.Clear();
??????????????????????????? qe.Orders.Add(order);
??????????????????????????? context.InputParameters.Properties[ParameterName.Query] = qe;
??????????????????????? }
??????????????????? }
??????????????? }
??????????? }
??????? }
??????? #endregion
??? }
呵呵,看完代碼,大家大概明白我是用了什么方式來實(shí)現(xiàn)自定義排序的吧。在 savedquerybase表中提供了修改時(shí)間的字段(modifiedon),大家如果要將視圖位置往前排的話,只要讓視圖modify一下就可以了。主要是為了使當(dāng)前的修改時(shí)間靠前而已。這個(gè)方法很笨,如果知道的朋友,希望能提出更簡(jiǎn)單的方式。
3.在之前的crm實(shí)踐中說到,owner字段在更新后是無法捕捉onchange事件的。其實(shí)認(rèn)真觀察一下,在對(duì)商機(jī)選擇完負(fù)責(zé)人后,系統(tǒng)直接對(duì)數(shù)據(jù)庫進(jìn)行更改,更新負(fù)責(zé)人。然后刷新頁面重新加載商機(jī)。頁面重新加載了,當(dāng)然就沒有什么onchange事件了。
在google論壇上,刀客提過可以通過assign message plugin來實(shí)現(xiàn),但是我在做測(cè)試的時(shí)候發(fā)現(xiàn),context.InputParameters.Properties["Target"]是Moniker。所以通過了TargetRetrieveDynamic來獲得DynamicEntity對(duì)象。底下只是代碼只是進(jìn)行了update操作的測(cè)試。具體要實(shí)現(xiàn)選擇更新,可以根據(jù)需要進(jìn)行更改。
?? public class AssignUpdatePlugin: IPlugin
??? {
??????? #region IPlugin 成員
??????? public void Execute(IPluginExecutionContext context)
??????? {
??????????? Moniker m = (Moniker)context.InputParameters.Properties["Target"];
??????????? if (m.Name == EntityName.opportunity.ToString())
??????????? {
??????????????? ICrmService service = context.CreateCrmService(true);
??????????????? TargetRetrieveDynamic targetRetrieve = new TargetRetrieveDynamic();
??????????????? targetRetrieve.EntityName = m.Name;
??????????????? targetRetrieve.EntityId = m.Id;
??????????????? RetrieveRequest request = new RetrieveRequest();
??????????????? request.ColumnSet = new AllColumns();
??????????????? request.Target = targetRetrieve;
??????????????? request.ReturnDynamicEntities = true;
??????????????? RetrieveResponse response = (RetrieveResponse)service.Execute(request);
??????????????? DynamicEntity entity = (DynamicEntity)response.BusinessEntity;
??????????????? entity.Properties["description"] = "ss";
??????????????? service.Update(entity);
??????????? }
??????? }
??????? #endregion
??? }
?
4.工作流實(shí)踐:
待填充
5.報(bào)表實(shí)踐:
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/monya/archive/2008/10/06/1304701.html
總結(jié)
以上是生活随笔為你收集整理的CRM学习笔记(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: voip是利用计算机网络,计算机三级网络
- 下一篇: 如何安装仿宋GB2312字体