阻止用户更新业务合作伙伴主数据中的付款条件

2020-08-30 12:07发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我确实有交易通知,阻止特定用户更改付款期限,但奇怪的是它仅适用于供应商。 每次用户编辑客户时,除了付款条件以外的任何其他字段,系统都会阻止其更新。 参见下面的代码,这有什么问题吗? 谢谢

如果@TRANSACTION_TYPE IN('A','U')AND(@OBJECT_TYPE ='2')

如果存在就开始(从OCRD T1中选择T1.CARDCODE

内部联接(从ACRD TA组中选择MAX(TA.LogInstanc)作为LogInstan,TA.CARDCODE,TA.GroupNum由TA.CARDCODE,TA.GroupNum选择)T0 ON T0.CARDCODE = T1.CARDCODE

T1上的INNER JOIN DBO.OUSR T2.USERSIGN2 = T2.USERID

T1.CARDCODE = @LIST_OF_COLS_VAL_TAB_DEL AND(T0。[GroupNum] <> T1。[GroupNum])和T1.USERSIGN2不在('96')中)

BEGIN SELECT @ERROR = 81,@ERROR_MESSAGE ='不允许您添加/更改付款条款'

结束

END

谢谢

玛丽亚

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我确实有交易通知,阻止特定用户更改付款期限,但奇怪的是它仅适用于供应商。 每次用户编辑客户时,除了付款条件以外的任何其他字段,系统都会阻止其更新。 参见下面的代码,这有什么问题吗? 谢谢

如果@TRANSACTION_TYPE IN('A','U')AND(@OBJECT_TYPE ='2')

如果存在就开始(从OCRD T1中选择T1.CARDCODE

内部联接(从ACRD TA组中选择MAX(TA.LogInstanc)作为LogInstan,TA.CARDCODE,TA.GroupNum由TA.CARDCODE,TA.GroupNum选择)T0 ON T0.CARDCODE = T1.CARDCODE

T1上的INNER JOIN DBO.OUSR T2.USERSIGN2 = T2.USERID

T1.CARDCODE = @LIST_OF_COLS_VAL_TAB_DEL AND(T0。[GroupNum] <> T1。[GroupNum])和T1.USERSIGN2不在('96')中)

BEGIN SELECT @ERROR = 81,@ERROR_MESSAGE ='不允许您添加/更改付款条款'

结束

END

谢谢

玛丽亚

付费偷看设置
发送
2条回答
骆驼绵羊
1楼 · 2020-08-30 12:51.采纳回答

如果(@object_type ='2'和@transaction_type位于('A','U')中,您可以在下面做类似的事情

 开始
 声明@currPayment int
 声明@oldPayment int


 选择@currPayment =来自OCRD的GroupNum CardCode = @list_of_cols_val_tab_del
 选择TOP(1)@oldPayment = GroupNum从ACRD那里CardCode = @list_of_cols_val_tab_del ORDER BY LogInstanc DESC


 如果@currPayment <> @oldPayment
 开始
 设置@error = 1234
 结束
 结束
 
Alawn_Xu
2楼-- · 2020-08-30 12:37

您好! 由于存在相同的问题,我一直在寻找一种方法,仅允许特定用户更新BP上的付款条件。 我们使用的是SAP B1 9.2 11.这是在TN上使用的查询im

IF(@object_type ='2'和@transaction_type IN('U'))

开始

声明@currPayment INT

DECLARE @oldPayment INT

DECLARE @MYUSER NVARCHAR(20)

SET @currPayment =(从OCRD WHERE卡代码中选择GroupNum = @list_of_cols_val_tab_del)

SET @oldPayment =(从ACRD WHERE卡代码= TOP TOP(1)GroupNum = @list_of_cols_val_tab_del ORDER BY LogInstanc DESC)

SET @MYUSER =(从[dbo]中选择T2.User_Code。[OINV] T0内部联接[dbo]。[OUSR] T2在T0上。[UserSign] = T2。[USERID]其中t0.DocEntry = @list_of_cols_val_tab_del )

如果@currPayment <> @oldPayment

开始

如果@MYUSER!='vmorales'

开始

SET @error = 1

SET @error_message ='没有社会责任的实际条件'

END

END

END

查询工作正常,但是当我尝试更新SAP上的bp付款条款时,出现查询错误,提示[Microsoft] [SQL Server Native Client 10.0] [SQL Server]将nvarchar值" clientnumber"转换为数据时转换失败 输入int。 (CINF)

有什么主意我在这里做错什么吗?

谢谢!

一周热门 更多>