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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

MSCRM二次开发实现自动编号功能

發布時間:2023/11/30 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MSCRM二次开发实现自动编号功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

功能描述:對客戶實體實現自動編號功能,1、2、3、4......? 自動編號存放于屬性accountnumber.
原  理:在mscrm服務器用一個文本文件存放當前最新編號,每當創建客戶記錄時在PreCreate事件接口做以下步驟:
1、鎖定文本文件(避免其他人同時讀取造成編號重復)
2、獲取當前最新編號
3、當前最新編號+1更新到文本文件
4、解除鎖定文本文件
5、使用當前最新編號+1作為當前客戶記錄的編號
實現步驟:
1、客戶化把Account實體屬性accountnumber設置為只讀。
2、在<installdir>\Program Files\Microsoft CRM\server\bin\assembly\目錄下創建一個文本文件,命名為AccountAutoNumber.txt,打開AccountAutoNumber.txt,輸入初始化值為0。
??????設置文件AccountAutoNumber.txt安全屬性,如下圖:
?????
3、寫PlugIn接口處理函數,代碼如下:
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.IO;
using?Microsoft.Win32;
using?Microsoft.Crm.Sdk;
using?Microsoft.Crm.SdkTypeProxy;

namespace?AutoNumber
{
????
public?class?PreCreateAccount?:?IPlugin
????{
????????
#region?IPlugin?Members

????????
public?void?Execute(IPluginExecutionContext?context)
????????{
????????????
if?(context.InputParameters.Properties.Contains("Target")?&&?context.InputParameters.Properties["Target"]?is?DynamicEntity)
????????????{
????????????????DynamicEntity?entity?
=?(DynamicEntity)context.InputParameters.Properties["Target"];
????????????????
string?CurrentAutoNumber;

????????????????
if?(entity.Name?==?EntityName.account.ToString())
????????????????{
????????????????????
if?(entity.Properties.Contains("accountnumber")?==?false)
????????????????????{
????????????????????????
lock?(this)
????????????????????????{
????????????????????????????RegistryKey?regkey?
=?Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\MSCRM");
????????????????????????????
string?InstallDir?=?regkey.GetValue("CRM_Server_InstallDir").ToString()?+?@"\Server\bin\assembly\AccountAutoNumber.txt";

????????????????????????????TextReader?textReader?
=?File.OpenText(InstallDir);
????????????????????????????CurrentAutoNumber?
=?textReader.ReadLine();
????????????????????????????textReader.Close();
????????????????????????????CurrentAutoNumber?
=?(long.Parse(CurrentAutoNumber)?+?1).ToString();
????????????????????????????TextWriter?textWriter?
=?File.CreateText(InstallDir);
????????????????????????????textWriter.WriteLine(CurrentAutoNumber);
????????????????????????????textWriter.Close();
????????????????????????}

????????????????????????StringProperty?accountNumber?
=?new?StringProperty("accountnumber",?CurrentAutoNumber);
????????????????????????entity.Properties.Add(accountNumber);
????????????????????}
????????????????????
else
????????????????????{
????????????????????????
throw?new?InvalidPluginExecutionException("自動編號只能由系統產生!");
????????????????????}
????????????????}
????????????}
????????}

????????
#endregion
????}
}
4、注冊PlugIn插件,Plugin注冊畫面:


完整代碼下載

轉載于:https://www.cnblogs.com/caims/archive/2008/08/11/1265527.html

總結

以上是生活随笔為你收集整理的MSCRM二次开发实现自动编号功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。