2020-08-24 08:48发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
如果已为该BP进行任何交易,我们如何阻止用户在BP主数据库中更改业务伙伴的名称?
意味着如果我已向客户开具发票,那么我们不能在BP主数据库中更改BP代码,就像我们如何阻止在主数据库中更改BP名称一样?
关于
Amrut Sabnis
嗨,
尝试以下SPTN:
如果
(@ object_type ='2')和(@transaction_type IN('U'))
BEGIN
IF
存在 (从OCRD T1中选择T1.CardCode
内部
在t2.cardcode = t1.cardcode
其中
T1上加入acrd t2 .Cardcode = @ list_of_cols_val_tab_del和t1.cardname <> t2.cardname)
开始
SET @error = 30
SET @error_message ='不允许您更改BP名称'
end
END
希望对您有所帮助。
感谢与问候,
Nagarajan
很抱歉,我希望恢复这样的旧帖子,但我希望 找到了我要发布的信息,以帮助我解决长期困扰的问题。 在许多情况下,您不仅要阻止用户更改业务合作伙伴主信息中的名称,而且还要阻止用户更改销售人员,价格清单或付款条件,最后可能是信用额度 已分配。 我想出的解决方案使您可以通过TNSP限制业务伙伴主表OCRD中的任何列,并且它适用于任何表。
以下是我如何限制除管理员以外的所有用户更改"付款条款","业务合作伙伴名称","价格清单"和"信用额度"的信息:
如果('2')中的@object_type开始 如果('U')中的@transaction_type开始 -对BP名称的限制更改如果存在(选择T1.CardCode FROM OCRD T1 t2.cardcode = t1.cardcode上的内部连接acrd t2 其中T1.Cardcode = @ list_of_cols_val_tab_del和t1.CardName <> (从ACRD中选择CardName,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5那里选择max(LogInstanc)T5.CardCode = T1.CardCode)和T1.UserSign2 <> 1) 开始 SET @error = 50 SET @error_message ='您不能更改BP名称'结束 -价格表的限制更改 如果存在(从OCRD T1选择T1.ListNum,T2.ListNum T2.CardCode = T1.CardCode上的内部联接ACRD T2 其中T1.Cardcode = @ list_of_cols_val_tab_del和t1.ListNum <> (从ACRD中选择ListNum,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5 WHERE T5.CardCode = T1.CardCode中选择max(LogInstanc))和T1.UserSign2 <> 1)开始 SET @ 错误= 50 SET @error_message ='您不能更改价目表'结束-如果SALESPERSON的限制已更改如果存在(请从OCRD T1 中选择T1.CardCode,其中T1.CardCode = @ list_of_cols_val_tab_del和t1。 SlpCode <> (从ACRD中选择SlpCode,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5 WHERE T5.CardCode = T1.CardCode中选择max(LogInstanc))和T1.UserSign2 <> 1)开始 SET @ 错误= 50 SET @error_message ='您不能更改销售人员' 结束 -限制更改付款条款 如果存在(从OCRD T1选择T1.CardCode t2.cardcode = t1.cardcode上的内部连接acrd t2 其中T1.DocEntry = @ list_of_cols_val_tab_del和t1.GroupNum <> (从ACRD中选择GroupNum,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5那里选择max(LogInstanc)T5.CardCode = T1.CardCode)和T1.UserSign2 <> 1) 开始 SET @错误= 50 SET @error_message ='您不能更改付款条件' 结束 -信用额度的限制更改如果存在(选择T1。从OCRD T1选择CardCode) t2.cardcode = t1.cardcode上的内部连接acrd t2 其中T1.DocEntry = @ list_of_cols_val_tab_del和t1.CreditLine <> (从ACRD中选择CreditLine,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5那里选择max(LogInstanc)T5.CardCode = T1.CardCode)和T1.UserSign2 <> 1) 开始 SET @错误= 50 SET @error_message ='您不能更改信用额度' 结束 结束 END
嗨,Amrut,
您可以使用SP_TransactionNotification存储过程来完成此操作。
但是,我认为这不会 发生很多。 日志足够吗?
打开BP主数据窗口,选择受影响的BP,然后打开日志( Tools> ChangeLog ... )以查看之前的名称
此致,
Johan
是的,如果您遇到问题,请关闭线程 解决。
您可以通过SPTN实现此目的,但可以轻松使用授权。 向用户授予"显示"权限。 因此,可以显示BP主数据,但不能更新。
希望对您有帮助
嗨,肯尼迪,
此查询对于已完成事务的BP更新非常有效。
但是它也阻止更新在系统中未完成事务的BP的名称。
强化,
嗨Amrut
SPTN绝对可以满足您的需求。 但是,考虑系统负担,警报或检查日志应该足够好。
谢谢
戈登
最多设置5个标签!
嗨,
尝试以下SPTN:
如果
(@ object_type ='2')和(@transaction_type IN('U'))
BEGIN
IF
存在 (从OCRD T1中选择T1.CardCode
内部
在t2.cardcode = t1.cardcode
其中
T1上加入acrd t2 .Cardcode = @ list_of_cols_val_tab_del和t1.cardname <> t2.cardname)
开始
SET @error = 30
SET @error_message ='不允许您更改BP名称'
end
END
希望对您有所帮助。
感谢与问候,
Nagarajan
很抱歉,我希望恢复这样的旧帖子,但我希望 找到了我要发布的信息,以帮助我解决长期困扰的问题。 在许多情况下,您不仅要阻止用户更改业务合作伙伴主信息中的名称,而且还要阻止用户更改销售人员,价格清单或付款条件,最后可能是信用额度 已分配。 我想出的解决方案使您可以通过TNSP限制业务伙伴主表OCRD中的任何列,并且它适用于任何表。
以下是我如何限制除管理员以外的所有用户更改"付款条款","业务合作伙伴名称","价格清单"和"信用额度"的信息:
嗨,Amrut,
您可以使用SP_TransactionNotification存储过程来完成此操作。
但是,我认为这不会 发生很多。 日志足够吗?
打开BP主数据窗口,选择受影响的BP,然后打开日志( Tools> ChangeLog ... )以查看之前的名称
此致,
Johan
嗨,Amrut,
是的,如果您遇到问题,请关闭线程 解决。
嗨,Amrut,
您可以通过SPTN实现此目的,但可以轻松使用授权。 向用户授予"显示"权限。 因此,可以显示BP主数据,但不能更新。
希望对您有帮助
嗨,肯尼迪,
此查询对于已完成事务的BP更新非常有效。
但是它也阻止更新在系统中未完成事务的BP的名称。
强化,
Amrut Sabnis
嗨Amrut
SPTN绝对可以满足您的需求。 但是,考虑系统负担,警报或检查日志应该足够好。
谢谢
戈登
一周热门 更多>