交易通知,用于验证与基础采购订单金额相关的应付账款金额

2020-09-06 06:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我编写了一个存储过程,该过程可以...

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

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


我编写了一个存储过程,该过程可以验证AP发票中的金额是否与其采购订单相差0.05或5%。 如果发票金额超出给定的差异,则应阻止过帐。 我尝试多次调整代码以给出适当的响应未成功,但是我肯定在表链接,JOINS或条件中缺少某些内容。 以下是我所拥有的:

如果@transaction_type ='A'和@Object_type ='18'


 开始


 如果存在(从[OPCH]内部联接中选择[OPCH] .DocEntry [OPCH] .DocEntry = [POR1] .TrgetEntry


 [OPCH] .DocTotal <(SELECT SUM([POR1] .LineTotal)-(SUM([POR1] .LineTotal)* 0.05)来自[POR1],在[POR1] .TrgetEntry = [OPCH] .DocEntry AND [OPCH]  .DocEntry = @list_of_cols_val_tab_del)或[OPCH] .DocTotal>(SELECT SUM([POR1] .LineTotal)+(SUM([POR1] .LineTotal)* 0.05)FROM [POR1]在[POR1] .TrgetEntry = [OPCH]  .DocEntry AND [OPCH] .DocEntry = @list_of_cols_val_tab_del)和[OPCH] .DocEntry = @list_of_cols_val_tab_del)


 开始




 SELECT @Error = 18,@error_message ='不允许过帐...发票值超出定义的差异'


 结束
 结束
 

任何建议将不胜感激。

-麦克唐纳

4条回答
spaceman01
2020-09-06 07:44

由于我们的SAPB1设置未使用OPCH表而不是PCH1的BaseEntry,并且如果金额超出方差,我想阻止过帐,因此我对您的代码做了一些小修改以给出 我正在寻找的结果。

如果@transaction_type ='A'和@Object_type ='18'
 开始
 声明@BaseEntry INT =(从PCH1中选择TOP 1个BaseEntry,其中DocEntry = @list_of_cols_val_tab_del并且BaseEntry不为空);
 DECLARE @UpperLimit FLOAT =(从DocEntry中的SELECT DocTotal +(DocTotal * 0.05)= @BaseEntry);
 DECLARE @LowerLimit FLOAT =(从DocEntry中的SELECT DocTotal-(DocTotal * 0.05)= @BaseEntry);

 如果存在(从OPCH中选择DocEntry,而DocEntry = @list_of_cols_val_tab_del和DocTotal不在@LowerLimit和@UpperLimit之间)
 开始
 SELECT @Error = 18,@error_message ='不允许过帐...发票值超出定义的差异'
 结束
 结束
 

非常感谢您的帮助。

一周热门 更多>