在SAP PI中从XML删除特殊字符

2020-08-21 12:46发布

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

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


当XML/有效载荷中包含俄语西里尔字符集时,我们将得到错误提示

在应用Java映射com/sap/xi/tf/_MM_Mail_to_MT_PurchaseOrderMailConfirmation_IB_的应用过程中发生RuntimeException抛出:com.sap.aii.utilxi.misc.api.BaseRuntimeException:致命错误:com .sap.engine.lib.xml.parser.ParserException:无效的char#0x3(:main :, row:1,col:100)在com.sap.aii.mappingtool.tf7.Transformer.checkParserException(Transformer.java:206 )com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:160)com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:698)com.sap.aii。 ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:112)

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

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


当XML/有效载荷中包含俄语西里尔字符集时,我们将得到错误提示

在应用Java映射com/sap/xi/tf/_MM_Mail_to_MT_PurchaseOrderMailConfirmation_IB_的应用过程中发生RuntimeException抛出:com.sap.aii.utilxi.misc.api.BaseRuntimeException:致命错误:com .sap.engine.lib.xml.parser.ParserException:无效的char#0x3(:main :, row:1,col:100)在com.sap.aii.mappingtool.tf7.Transformer.checkParserException(Transformer.java:206 )com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:160)com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:698)com.sap.aii。 ib.server.mapping.execution.JavaMapping.executeStep(JavaMapping.java:112)

付费偷看设置
发送
1条回答
渐行渐远_HoldOn
1楼 · 2020-08-21 13:10.采纳回答

我们已使用以下代码解决了该问题

 import java.io.InputStream;


 导入java.io. *;
 导入com.sap.aii.mapping.api.AbstractTransformation;
 导入com.sap.aii.mapping.api.StreamTransformationException;
 导入com.sap.aii.mapping.api.TransformationInput;
 导入com.sap.aii.mapping.api.TransformationOutput;




 公共类Convert_to_UTF8扩展了AbstractTransformation {
 @Override
 公共无效的transform(TransformationInput输入,TransformationOutput输出)抛出StreamTransformationException {
 尝试{
 字符串content ="";
 字符串行="";
 国际
 InputStream ins = in.getInputPayload()。getInputStream();
 BufferedReader br = new BufferedReader(new InputStreamReader(ins," UTF-8"));
 而((l = br.read())!= -1)
 {
 if((l> 31 && l <127)||(l> 159))
 line + =(char)l;

 }
 br.close();
 content + = line +'\ n';
 out.getOutputPayload()。getOutputStream()。write(content.getBytes(" UTF-8"));


 }
 catch(Exception e){throw new StreamTransformationException(e.getMessage());  }


 }
 }


 

一周热门 更多>