点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨
我在延时上已经通过了此链接。 尝试实施时不起作用
请告知我是否缺少某些东西。
我的场景是从IDOC到IDOC 接收方,我需要延迟一分钟。
公共字符串TimeDelay(字符串Timevar,容器容器)抛出StreamTransformationException {
{
try p>
{
Thread.sleep(60000);
}
catch(InterruptedException即)
{}
return Timevar;
}}
此延迟udf插入到顶部根节点。
FIDCCP02 ---->延迟UDF -------> FIDCCP02
但是在接收方SAP系统上,我同时获得了IDOCS
< p>谢谢Anusha
嗨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
对不起 我以为您在使用ICO的PI 7.3中。
我的失误
致谢
嗨Anusha,
IMO, 您应该在IDoc节点上应用此UDF,以便在每次创建Idoc时引起延迟。
这应该可行
希望它会有所帮助!
Ambrish
PS:我同意Raja的观点,这不是最佳做法。
与流程团队讨论后,您也可以寻求替代解决方案。
在ECC中收集IDoc,并每5分钟运行一次后台作业以处理IDoc。
消息的编辑者:Ambrish Mishra
为什么不尝试在ccBPM中使用等待方法,而不是使用线程睡眠代码片段。
您是否尝试在通信通道监视(右上角)->可用性时间计划下进行配置。
您可以避免在以后的UDF中创建维护
>re
注意
只需尝试以下代码,让我知道是否可行
字符串a;
try
{Thread.sleep(
60000
); }
catch
(InterruptedException ie){}
return
a;
在主节点之间使用此UDF 要插入延迟
,请尝试
,还请检查SXI_MONITOR是否可以使用延迟。 您应该在它们之间看到一分钟的延迟。
关于
大家好,
我们已按照博客中的说明在测试区域中完成了此工作。
在尝试一条或两条消息时,我们会看到消息在出现时间延迟时显示在消息监视器的"计划"列中。
但是,我对此的担心是,如果我们同时有很多消息(可能同时有50条以上)通过,那么映射(?)线程的最大数目不会有问题。 可以随时使用吗? 并且,如果是这样,这是否会影响SAP PI的整体性能,是否会因此影响可能同时处理的其他接口消息?
因此,在没有ccBPM的情况下,也许有更好的方法来延迟IDoc传输? 我听说我们可以使用BPM,但这会使流程复杂化吗?
非常感谢,
Gareth
一周热门 更多>