如何阻止用户更改母版中业务伙伴的名称

2020-08-24 08:48发布

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

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


大家好,

如果已为该BP进行任何交易,我们如何阻止用户在BP主数据库中更改业务伙伴的名称?

意味着如果我已向客户开具发票,那么我们不能在BP主数据库中更改BP代码,就像我们如何阻止在主数据库中更改BP名称一样?

关于

Amrut Sabnis

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

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


大家好,

如果已为该BP进行任何交易,我们如何阻止用户在BP主数据库中更改业务伙伴的名称?

意味着如果我已向客户开具发票,那么我们不能在BP主数据库中更改BP代码,就像我们如何阻止在主数据库中更改BP名称一样?

关于

Amrut Sabnis

付费偷看设置
发送
10条回答
Aaron 3364
1楼 · 2020-08-24 09:28.采纳回答

嗨,

尝试以下SPTN:

如果

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



BEGIN



IF

存在 (从OCRD T1中选择T1.CardCode

内部

在t2.cardcode = t1.cardcode

其中

T1上加入acrd t​​2 .Cardcode = @ list_of_cols_val_tab_del和t1.cardname <> t2.cardname)

开始

SET @error = 30

SET @error_message ='不允许您更改BP名称'

end

END

希望对您有所帮助。

感谢与问候,

Nagarajan

绿领巾童鞋
2楼-- · 2020-08-24 09:45

嗨Amrut Sabnis

尝试一下TNSP ...

如果(@object_type ='2')和(@transaction_type IN('U'))

BEGIN

IF存在(选择T1.cardcode FROM OCRD T1

< p>在t2.cardcode = t1.cardcode

上内部加入acrd t​​2,其中T0.DocEntry = @ list_of_cols_val_tab_del和t1.cardname <> t2.cardname)

开始

SET @error = 30

SET @error_message = N'您无权更改BP名称'

结尾

END

此致

肯尼迪

路亽曱_Ryan
3楼-- · 2020-08-24 09:36

嗨Amrut,

尝试此SP

如果( @object_type ='2')和(@transaction_type IN('U'))

BEGIN

如果存在(选择T1.CardCode FROM OCRD T1

t2.cardcode = t1.cardcode

上的内部连接acrd t​​2,其中T1.Cardcode = @ list_of_cols_val_tab_del和t1.cardname <> t2.cardname)

开始

SET @error = 30

SET @error_message = N'您无权更改BP名称'

结束

结束


关于此,

Raviraj

N-Moskvin
4楼-- · 2020-08-24 09:32

很抱歉要恢复这样的旧帖子,但我希望我能找到要发布的信息,以帮助我解决长期以来很重的问题。 在许多情况下,您不仅要阻止用户更改业务合作伙伴主信息中的名称,而且还要阻止用户更改销售人员,价格清单或付款条件,最后可能是信用额度 已分配。 我想出的解决方案使您可以通过TNSP限制业务伙伴主表OCRD中的任何列,并且它适用于任何表。

以下是我如何限制除管理员以外的所有用户更改"付款条款","业务合作伙伴名称","价格清单"和"信用额度"的信息:

如果('2')中的@object_type开始
   如果('U')中的@transaction_type开始
     -限制BP名称
     如果存在(从OCRD T1选择T1.CardCode
     t2.cardcode = t1.cardcode上的内部连接acrd t​​2
     其中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 @错误= 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那里选择max(LogInstanc)T5.CardCode = T1.CardCode)和T1.UserSign2 <> 1)
       开始
         SET @错误= 50
         SET @error_message ='您不能更改价目表'
       结束
     -销售人员限制变更
     如果存在(从OCRD T1选择T1.CardCode
     其中T1.CardCode = @ list_of_cols_val_tab_del和t1.SlpCode <>
     (从ACRD中选择SlpCode,其中CardCode = T1.CardCode AND 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 t​​2
     其中T1.Cardcode = @ 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 ='您不能更改付款条件'
     结束
     -限制更改信用额度
     如果存在(从OCRD T1选择T1.CardCode
     t2.cardcode = t1.cardcode上的内部连接acrd t​​2
     其中T1.Cardcode = @ list_of_cols_val_tab_del和t1.CreditLine <> 
(从ACRD中选择CreditLine,其中CardCode = T1.CardCode和LogInstanc =(从ACRD T5中选择max(LogInstanc)max,在T5.CardCode = T1.CardCode中))和 T1.UserSign2 <> 1) 开始 SET @错误= 50 SET @error_message ='您不能更改信用额度' 结束 结束 END

一周热门 更多>