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

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条回答
me_for_i
2020-09-06 07:20 .采纳回答

你好

您应该知道,在事务处理过程中始终要处理当前文档。您具有当前文档字段。 您可以使用此信息来访问旧文档。

您可以在过程中定义变量。 例如,在这种情况下,您可以这样做:

如果@transaction_type ='A'和@Object_type ='18'
 开始
 DECLARE @BaseEntry INT =(从OPCH的DocEntry中选择BaseEntry = @list_of_cols_val_tab_del);
 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 ='不允许过帐...发票值超出定义的差异'
 结束
 结束
 

一周热门 更多>