点击此处---> 群内免费提供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 ='不允许过帐...发票值超出定义的差异' 结束 结束
任何建议将不胜感激。
-麦克唐纳
你好
您应该知道,在事务处理过程中始终要处理当前文档。您具有当前文档字段。 您可以使用此信息来访问旧文档。
您可以在过程中定义变量。 例如,在这种情况下,您可以这样做:
由于我们的SAPB1设置未使用OPCH表而不是PCH1的BaseEntry,并且如果金额超出方差,我想阻止过帐,因此我对您的代码做了一些小修改以给出 我正在寻找的结果。
非常感谢您的帮助。
嗨,
如果您始终从PO到AP发票进行处理,则可以在上面的存储过程中使用下面的查询, p>
SELECT T2。[DocEntry]来自OPOR T0内连接POR1 T1在T0上。[DocEntry] = T1。[DocEntry]左连接T2上的PCH1 T2。[BaseEntry] = T1。[DocEntry]和T2。[ BaseLine] = T1。[LineNum] T2上的内联接选项T3。[DocEntry] = T3。[DocEntry] W2。[BaseType] = 22
问候,
Nagarajan
感谢您的指导,我现在了解了这两个营销文档之间的链接。
一周热门 更多>