首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAP /3从IDoc XML文件中删除尾随空格

SAP /3从IDoc XML文件中删除尾随空格
EN

Stack Overflow用户
提问于 2015-10-05 17:24:47
回答 3查看 1.8K关注 0票数 11

我有一个应用程序,它使用SAP JCo 3库。其中一个用例包括从SAP (R/3,ERP6.0 EhP 7)接收一个EhP文件,并将其转换为XML。问题是,在转换过程中(由IDoc库执行),字段末尾的正确空格会被裁剪。显然是为了缩小消息大小。到目前为止,我还没有找到任何可以从Java端完成的配置。

在网络搜索中,我从SAP端找到了以下建议:

  • 从XSD编辑器中设置whiteSpace=preserve
  • 在发件人文件/FTP适配器中设置xml.fieldContentFormatting=nothing

但是,我还没有找到这些工具,也没有相应地配置它们。

我希望对这两种方法或任何其他解决办法有任何见解。

EN

回答 3

Stack Overflow用户

发布于 2016-12-26 23:31:20

SAP类库不提供在IDoc字段中保留尾随空间的选项。

IDoc字段中的尾空间字符没有任何用途,只要IDoc最终将被发送到另一个IDoc系统。在这种情况下,它们实际上只会扩大XML消息的大小,而不会增加任何值。

我目前无法想象,你为什么要保留这些后跟空间?空格字符是ABAP类型字段的缺省初始值,因此您也无法知道这些字符中的一些是否由意图设置。

票数 2
EN

Stack Overflow用户

发布于 2015-11-17 09:25:53

您可以检查字段的总长度是否等于该特定段的长度。您可以使用RFC IDOCTYPE_READ_COMPLETE。在这个pass类型中,比如MATMAs01。在表PT_SEGMENTS中,可以获得段长。

您可以传递此段长度以获得完整的字段长度。

票数 0
EN

Stack Overflow用户

发布于 2017-12-15 16:25:29

在ABAP中使用XML时,您需要查看的是if_ixml_renderer (或if_ixml_parser)调用set_normalizing。默认情况下,这是打开的,您需要禁用它。

代码语言:javascript
复制
"Convert XML to string: l_string
lif_ostream = sif_streamfactory->create_ostream_cstring( l_string ).
lif_renderer = sif_xml->create_renderer( ostream  = lif_ostream
                                         document = mif_xml_document ).
" this stops SAP from removing whitespace and doing spurious edits:
lif_renderer->set_normalizing( false ).

lif_renderer->render( ).
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32954364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档