点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我的界面是Proxy(x...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我的界面是Proxy(x...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好
我的界面是Proxy(xml)-> PI-> SFTP(EDIFACT)。
我想使用NRO生成的序号来构造文件名(例如; EDI_DELFOR_
如果我将这个( $ B2B_UEBNRTestNRO $ B2B_END_UEBNR )映射到目标结构中的一个字段,我就能在文件中获得一个顺序号。
模块:
文件名UDF:
公共字符串FileName(字符串a,容器容器)抛出StreamTransformationException
{
尝试
{
DynamicConfiguration conf =(DynamicConfiguration)container.getTransformationParameters()。get(StreamTransformationConstants.DYNAMIC_CONFIGURATION); DynamicConfigurationKey键= DynamicConfigurationKey.create(" http://sap.com/xi/ XI/System/File "," FileName"); conf.put(key,a); 返回
}
捕获(异常e)
{
字符串异常= e.toString();
返回异常;
}}
nro.jpg (33.1 kB)
巴瓦那,
之所以将值获取为常量$ B2B_UEBNRTestNRO $ B2B_END_UEBNR的原因是因为您将值EDI_DELFOR_ $ B2B_UEBNRTestNRO $ B2B_END_UEBNR作为报头级别常量而不是有效负载传递,TransmissionNumberModule仅检查有效负载中的值而不是报头 级别,因此该值不会被计数器代替。
但是,当您在目标文件之一中传递$ B2B_UEBNRTestNRO $ B2B_END_UEBNR时,该计数器将替换为计数器,因为该计数器存在于目标有效负载中。
因此,如果您仍想为文件名计数器实现NRO,则需要在映射级别通过java api调用NRO,在这种情况下,无需增加TransmissionNumberModule,就可以增加值。
查看此博客,了解如何通过Java在映射级别访问NRO API:
https://blogs.sap.com/2016/09/01/use-case-nro-api-access-dynamic-counter-variable /
https://blogs.sap.com/ 2016/09/01/nro-access-from-mapping-esr /
请注意,要对此进行测试,必须从运行时运行接口,本地ESR测试会出错。
Br,
Manoj
一周热门 更多>