Dynamics CRM 2011 编程系列(27):使用触发器

时间:2021-08-22 07:27:32

    在Dynamics CRM系统中使用触发器虽然不被官方建议,但却是解决一些疑难需求的有力工具。它也能快速的解决一些比较常用的需求,例如:编号。触发器和插件的使用背景很像,那我们什么应该怎样来对它们进行选择呢。我的建议是:如果实现的功能单一且涉及大量的Select实体操作,就选择触发器;如果实现的功较繁琐但不包含复杂的Select实体操作,就选择插件。插件和触发器还有另一个重要的区别:触发器的开发简单,没有繁杂的调试步骤,方便代码维护。接下来我们来看一个编号功能,该功能是用触发器来完成的。

操作步骤

Dynamics CRM 2011 编程系列(27):使用触发器

图1

Dynamics CRM 2011 编程系列(27):使用触发器

图2

Dynamics CRM 2011 编程系列(27):使用触发器

图3

Dynamics CRM 2011 编程系列(27):使用触发器

图4

Dynamics CRM 2011 编程系列(27):使用触发器

图5

 

程序代码

create TRIGGER dbo.CreateNo_Campaign 
ON dbo.CampaignExtensionBase
AFTER INSERT
AS
BEGIN
declare @RecordNum int,
@year int,
@month int,
@day int,
@no nvarchar(100),
@id uniqueidentifier

select @id=campaignid from inserted
select @RecordNum=COUNT(*) from Campaign
set @year=YEAR(getdate())
set @month=MONTH(getdate())
set @day=DAY(getdate())

set @no='CP-'+CONVERT(nvarchar,@year)+'-'+CONVERT(nvarchar,@month)+'-'+CONVERT(nvarchar,@day)+'-'+CONVERT(nvarchar,@RecordNum)

update Campaign set new_no=@no where Campaign.CampaignId=@id


END