点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好专家
我已经制作了一个结构化消息生成器,该生成器使用DocNum文档作为其结构化消息的基础。
示例:DocNum 18742292将变为+++ 001/8742/29249 +++。
现在,在用户可以添加或更新A/发票之前,我需要检查以确保结构化消息正确无误并带有交易通知。 因此,我决定使用下面的代码通过TransactionNotification进行此操作。
如果(:error = 0)那么
如果:object_type ='13'AND(:transaction_type ='A'或:transaction_type ='U')然后
选择将COUNT(OINV。" PaymentRef")放入cnt
从" OINV"到" OINV"。" PaymentRef" IN(SELECT'+++'|| SUBSTRING(lpad(MAX(OINV。" DocNum""),'10','0'),1,3 )||
'/'|| SUBSTRING(lpad(MAX(OINV。" DocNum"),'10','0'),4,4)||
'/'|| SUBSTRING(lpad(MAX(OINV。" DocNum"),'10','0'),8,3)||
lpad(MOD(MAX(O(INV。" DocNum"),97),'2','0')='00'时的情况
当'97'ELSE lpad(MOD(MAX(OINV。" DocNum"),97),'2','0')END || '+++'AS StructuredMessage FROM" OINV");
IF(:cnt = 0)THEN/
错误:= 36;
error_message:='FOUT de gestructureerde boodschap moet gebaseerd zijn op het document nummer。 Betauk ref veld中的Druk op het vergrootglas icoontje。";
END IF;
END IF;
END IF;
这样的想法是,代码通过DocNum再次重新构造结构化消息,并查看两者是否相同。 但是,这不能获得活动的DocNum,对于如何获得活动的DocNum来使它起作用,我有些迷惑了,将不胜感激。
谢谢
jr技术顾问斯蒂芬。
所以我设法找到了将代码更改为的解决方案。
通过删除MAX()函数并针对list_of_cols_val_tab_del检查DocEntry
在主查询和内部查询中,事务通知现在都可以正常工作。
我将在一天之内结束这个问题,以使人们有机会提出可能更好的解决方案。
谢谢,希望对您有所帮助。
一周热门 更多>