在B1 HanaStudio中检查结构化消息

2020-09-09 12:22发布

         点击此处--->   EasySAP.com群内免费提供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技术顾问斯蒂芬。

         点击此处--->   EasySAP.com群内免费提供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技术顾问斯蒂芬。

付费偷看设置
发送
1条回答
Cikesha
1楼-- · 2020-09-09 12:57

所以我设法找到了将代码更改为的解决方案。

通过删除MAX()函数并针对list_of_cols_val_tab_del检查DocEntry

在主查询和内部查询中,事务通知现在都可以正常工作。

我将在一天之内结束这个问题,以使人们有机会提出可能更好的解决方案。

谢谢,希望对您有所帮助。

一周热门 更多>