日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dynamics CRM中的操作(action)是否是一个事务(transaction)?

發(fā)布時間:2025/7/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dynamics CRM中的操作(action)是否是一个事务(transaction)? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
關(guān)注本人微信和易信公眾號: 微軟動態(tài)CRM專家羅勇 ,回復(fù)168或者20151104可方便獲取本文,同時可以在第一時間得到我發(fā)布的最新的博文信息,follow me! 以前的博文?微軟Dynamics CRM 2013介紹系列之二十三:操作(Action)的開發(fā)與配置?簡單介紹了Dynamics CRM 2013起新增一種新的流程類型--操作,英文是action,沒有做實驗證實,操作中所有的步驟是否是同一個事務(wù)?是否存在可選的選項?如果不是的話,Microsoft Dynamics CRM Online 2015 Update 1 的更新中包括了一個新的消息叫做 ExecuteTransactionRequest 用來在同一個事務(wù)中執(zhí)行多個消息應(yīng)該是個補充,我因為沒有CRM Online 2015 Update 1環(huán)境,而Dynamics CRM 2015本地部署的版本又一直沒有出Update 1功能包,所以暫時無法演示給這個消息給大家看。相信待到今年出來Dynamics CRM 2016出來后是可以演示的。 在解決方案中,我們建立一個簡單的流程,如下:我這里選擇的實體是 無(全局) ,這樣執(zhí)行起來方便點。 ? 我先增加兩個簡單的字符串類型的參數(shù)如下: 我這里增加兩個簡單的類型為 創(chuàng)建記錄 的步驟,步驟一創(chuàng)建的客戶為本操作的參數(shù)AccountName1的值,步驟二創(chuàng)建的客戶為本操作的參數(shù) AccoutName2 的值。 ? ?然后激活這個操作,這樣我們就可以調(diào)用這個操作了。 ? 我目前階段只能通過代碼來調(diào)用這個操作。因為在Dynamics CRM 2015中還不支持直接在工作流中調(diào)用操作,而到了Dynamics CRM 2015 Update 1則支持了。代碼如下: static void Main(string[] args) {var service = GetOrganizationService();var whoAmIReq = new WhoAmIRequest();var whoAmIResp = service.Execute(whoAmIReq) as WhoAmIResponse;OrganizationRequest req = new OrganizationRequest("new_TestAction");req["AccountName1"] = "測試創(chuàng)建的客戶一";req["AccountName2"] = "測試創(chuàng)建的客戶二";req["Target"] = new EntityReference("systemuser", whoAmIResp.UserId);service.Execute(req);Console.WriteLine("程序運行完成!");Console.ReadKey(); }

?

運行代碼后真的創(chuàng)建了兩個客戶如下: 為了測試我將這兩個新建的客戶刪除,然后我在創(chuàng)建客戶時間上注冊了一個實時工作流來讓創(chuàng)建客戶產(chǎn)生異常: ? ? 激活工作流以后,如果我手工創(chuàng)建客戶名稱包括 二 的客戶會報錯如下: 當(dāng)然用代碼來執(zhí)行也會報錯,我還是執(zhí)行前面的代碼,代碼會跑出異常如下: ? 這個時候我去刷新下客戶界面看看第一個步驟增加的 測試創(chuàng)建的客戶一 是否增加,發(fā)現(xiàn)沒有增加。是我的代碼沒有處理異常嗎?我用異常處理塊將代碼包括起來還是同樣的錯誤。看來至少兩個CRM操作是在同一個事務(wù)中。 細(xì)心的朋友可能會發(fā)現(xiàn),定義操作的時候有個選項默認(rèn)是選中的,那就是啟用回滾選項,如下: ? 所以我在想,如果我去掉這個選中,也就是不選中 啟用回滾 ,會不會就不在同一事務(wù)中了?于是我這樣修改后激活去測試下: 然后我去執(zhí)行前面相同的代碼,結(jié)果是創(chuàng)建了 測試創(chuàng)建的客戶一,沒有創(chuàng)建 測試創(chuàng)建的客戶二 ,看來是沒有回滾,也就是這個選項還是很重要的。 ? 我們繼續(xù)做一個小實驗,就是在前面兩個步驟以后加一個調(diào)用自定義工作流活動的步驟,這個自定義工作流活動我只是簡單的下載一個鏈接的文件作為第二個客戶的附件而已,代碼如下:稍微注意下,如果輸入類型是EntityReference,需要通過ReferenceTarget屬性指定是那個實體。

?

public sealed class GetNoteContent : CodeActivity {[RequiredArgument][Input("要添加附件的客戶")][ReferenceTarget("account")]public InArgument<EntityReference> InAccount { get; set; }protected override void Execute(CodeActivityContext executionContext){IOrganizationServiceFactory serviceFactory = executionContext.GetExtension<IOrganizationServiceFactory>();IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);try{// TODO: Implement your custom Workflow business logic.using (WebClient client = new WebClient()){byte[] responseBytes = client.DownloadData(@"http://www.luoyong.me/GetAnnotationDocument.ashx?AnnotationId=B39F0691-C377-E511-80ED-000D3A800514");var annotationEntity = new Entity("annotation");annotationEntity["documentbody"] = Convert.ToBase64String(responseBytes);annotationEntity["subject"] = "微軟MVP羅勇用代碼增加的帶附件的注釋標(biāo)題";annotationEntity["notetext"] = "微軟MVP羅勇用代碼增加的帶附件的注釋內(nèi)容";annotationEntity["filename"] = "附件.pdf";annotationEntity["mimetype"] = "application/pdf";annotationEntity["isdocument"] = true;annotationEntity["objectid"] = InAccount.Get(executionContext);service.Create(annotationEntity);}}catch (FaultException<OrganizationServiceFault> e){tracingService.Trace("Exception: {0}", e.ToString());// Handle the exception.throw;}tracingService.Trace("Exiting GetNoteContent.Execute(), Correlation Id: {0}", context.CorrelationId);} }

?

同時我還禁用然后刪除了之前創(chuàng)建的自定義工作流,這樣創(chuàng)建第二個客戶才能成功。修改了測試的操作,增加了一個調(diào)用自定義工作流活動的步驟如下: ? 我先測試 啟用回滾的情況,測試結(jié)果發(fā)現(xiàn)兩個客戶創(chuàng)建成功,且第二個客戶也增加了附件。
正常的能成功,我就稍微修改下自定義工作流活動的代碼,故意把URL搞錯,然后測試,拋出了如下異常: 然后我們?nèi)タ磩?chuàng)建的客戶,發(fā)現(xiàn)沒有創(chuàng)建客戶。 ? ?如果我將操作的 啟用回滾 選項去掉,然后激活測試結(jié)果如下,可以看到客戶創(chuàng)建了,但是附件沒有創(chuàng)建。 ? 然后我還測試下,將這個創(chuàng)建附件的步驟放到第二步,且是為第一個創(chuàng)建的客戶添加附件: ? 當(dāng)沒有選中 啟用回滾 選項的時候測試結(jié)果是:客戶一創(chuàng)建成功,第二個步驟出錯,沒有回滾整個操作,第三個步驟沒有執(zhí)行。 如果我選中 啟用回滾 選項的話,測試結(jié)果是回滾了整個操作所做的事情。 ? 所以稍微總結(jié)下就是,操作如果選中了 啟用回滾 這個選項,操作的所有步驟都是一個事務(wù),如果沒有選中,則是成功的會commit,失敗的當(dāng)然失敗,后面的步驟不會執(zhí)行。可以用來保證一次多個操作的事務(wù)性。 當(dāng)我要刪除創(chuàng)建的測試工作流活動的時候,又碰到使用SDK的插件注冊工具(PluginRegistration)刪除自定義工作流活動的時候登陸以后出現(xiàn)空白的情況,按照帖子?CRM SDK 2015 Plugin registration tool not working?的說法,是語言包的問題,我得解決辦法就是把插件注冊工具文件夾中的除了 en, en-us 文件夾外所有的語言包都刪除掉: ? 當(dāng)然還可以用Developer Toolkit來刪除,如下,自己再刪除源文件和 RegisterFile.crmregister 文件中的相應(yīng)內(nèi)容即可:

轉(zhuǎn)載于:https://www.cnblogs.com/luoyong0201/p/Dynamics_365_Is_Action_In_Transaction.html

總結(jié)

以上是生活随笔為你收集整理的Dynamics CRM中的操作(action)是否是一个事务(transaction)?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 激情五月色综合国产精品 | 成年人视频免费看 | 国产一级片免费在线观看 | 亚洲乱码少妇 | 日本亲近相奷中文字幕 | 长腿校花无力呻吟娇喘的视频 | 看片国产 | 99精品国产成人一区二区 | 91性 | 香蕉久久一区二区三区 | 九九精品在线播放 | 日本高清不卡码 | 国产麻豆精品久久一二三 | 在线免费福利视频 | www一区二区| 毛片免费视频 | 成人av黄色 | 亚洲一二三四 | 亲切的金子片段 | a猛片 | 想要xx在线观看 | 法国空姐 在线 | 国产在线精品播放 | 色婷婷色婷婷 | 久热热 | 中国黄色一级毛片 | 99re色 | 久久久精品国产免费爽爽爽 | 性生生活性生交a级 | 中文字幕亚洲不卡 | 男生和女生差差视频 | 做a爰小视频 | 久久9久久 | 国产激情对白 | 成人综合av| 色视屏 | 一级免费a | 成人性生交免费看 | 国模私拍xvideos私拍 | 久久99久久99精品 | 男女插插插视频 | 日本高清一区二区视频 | 国产a一区 | xx视频在线观看 | 综合久久影院 | 成人一级毛片 | 国产精品久久国产愉拍 | 国产黄色美女视频 | 欧美日韩一区二区三区四区五区六区 | 国产最新自拍视频 | 女儿的朋友4在线观看 | 欧美另类videosbestsex | 亚洲一区二区人妻 | 国产suv精品一区二区 | 亚欧日韩 | ass大乳尤物肉体pics | 黄色在线免费播放 | 女人叫床高潮娇喘声录音mp3 | 黄色av免费播放 | 国产激情av | 两性午夜视频 | 亚洲天堂首页 | 日本黄图 | 欧洲成人在线观看 | 日本人妻丰满熟妇久久久久久 | 小草av在线 | 日本新japanese乱熟 | 啪啪综合 | 青青草国产在线观看 | 国产一级久久久久毛片精品 | 影音资源av | 哪个网站可以看毛片 | 免费看的一级片 | 亚洲国产精品久久久久久 | 在线中文字幕播放 | 免费观看av的网站 | 在线免费观看欧美大片 | 丰满人妻一区二区三区无码av | 欧美福利在线视频 | 亚洲精品高潮久久久久久久 | 男女插插视频 | 亚洲www久久久 | 欧美丝袜视频 | 中文字幕五区 | 亚洲精品成人网 | 欧美日韩123 | 欧洲在线一区 | 密臀av在线播放 | 在线观看三级网站 | 欧美日韩激情在线观看 | jizzjizzjizz国产| 疯狂做受xxxx国产 | 国产精品黄 | 男人喷出精子视频 | 久久亚洲精精品中文字幕早川悠里 | 色五丁香| 日韩中文第一页 | 伊人久久影视 | 中文字幕第15页 |