易飞响应式处理
背景
- 背景
-
- 解决方案
-
- 触发器
- 易飞本身影响应式处理
- 总结:
因启用项目信息,易飞处理逻辑,若单头项目信息与单身必须一致且单头若选错项目编号,则无法修改。若要修改只能通过删除重新新建。这样导致用户体验非常不好!用户提出针对某种单据必须填写项目编号。这样减少返工!
解决方案 触发器优点:灵活自由
GO /****** Object: Trigger [dbo].[TR_SampleOutProNo] Script Date: 2021/11/17 8:43:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --建立触发器,1106 单据必须选择项目编号 ALTER trigger [dbo].[TR_SampleOutProNo] ON [dbo].[INVTA] FOR INSERT,UPDATE AS DECLARE @msg VARCHAR(50), @DocType VARCHAR(4), @ProNo VARCHAR(20) SELECT @DocType=RTRIM(TA001),@ProNo=RTRIM(TA033) FROM inserted IF (@DocType='1106' AND @ProNo='********************') BEGIN SET @msg='请选择归属项目'; --抛出自定义错误信息 raiserror('%s[%s]存在异常,%s',16,1,'样品出库单',@DocType,@msg) END
测试:
基本符合用户需求,但存在一个缺点。
只有在单据保存(写入数据库时)提示,用户可能已经填写单身数据。无法做到及时响应,这也是触发器本身的特点。
通过易飞本身的机制去响应,利用用户自定义字段UDF01 不可空白来实现。
当1106单据且无项目编号(20*),UDF01为空白。
(1)录入信息传递
(2)响应式检查(不可空白)
(3)测试单据与项目编号
(4)测试乱输入项目编号(易飞本身有校验)
触发器:优点:灵活自由,支持复杂计算逻辑,缺点:滞后 响应式:优点:响应式反馈,用户体验较好 缺点:利用扩展字段+信息传递,自由度不够,有一定的局限性。