UDF延迟IDOC传输

2020-08-16 11:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨 我在延时上已经通过了此链接。...

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

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


我在延时上已经通过了此链接。 尝试实施时不起作用

请告知我是否缺少某些东西。

http://scn.sap.com/community/pi-and-soa-middleware/ blog/2013/05/01/how-to-delay-use-wait-step-message-in-sap-pi-without-ccbpm

我的场景是从IDOC到IDOC 接收方,我需要延迟一分钟。

公共字符串TimeDelay(字符串Timevar,容器容器)抛出StreamTransformationException {

{

try

{

Thread.sleep(60000);

}

catch(InterruptedException即)

{}

return Timevar;

}}

此延迟udf插入到顶部根节点。

FIDCCP02 ---->延迟UDF -------> FIDCCP02

但是在接收方SAP系统上,我同时获得了IDOCS

< p>谢谢

Anusha

7条回答
歪着头看世界
2020-08-16 12:15 .采纳回答

嗨Anusha,

尝试将UDF提升到元素级别,而不是映射到根节点。 这样就存在直接映射,例如

field1(source)---------> field2(target)

在此处插入UDF

公共字符串TimeDelay(字符串field1,容器容器)抛出StreamTransformationException {

{

MappingTrace mt = container.getTrace();

mt.addInfo();

DateFormat dateFormat = new SimpleDateFormat(" yyyy/MM/dd HH:mm:ss");

日期date = new Date();

尝试

{

mt.addInfo("当前时间:" + dateFormat.format(date));

Thread.sleep(60000);

}

catch(InterruptedException即)

{}

date = new Date();

mt.addInfo("最终时间:" + dateFormat.format(date));

return field1;

}

现在将此UDF放入Mapping

field1(source)----> UDF-- -> field2(target)。

使用跟踪打印在调用Thread.sleep()方法之前的当前时间以及在调用该方法之后的另一时间。 使用"测试"选项卡对此进行测试,然后检查是否可行。 在 blog 作者提到将UDF映射到根节点,但我认为这也应该起作用。

致谢

Anupam

一周热门 更多>