如何通过FCC在xml结果中仅获取一条记录? (文本文件到xml文件)

2020-09-14 12:29发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我...

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

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


大家好,

我有问题:

有我的文本文件:

 !!! 测试上传!!!
 错误邮件2018/08/10 11:18
 上传的文件:n/a
 

我想要这个结果:

 
 <文字>
 
 !!! 测试上传!!!
 错误邮件2018/08/10 11:18
 上传的文件:n/a
 
 
 
 

但是我得到了这个结果:

 
 <文字>
 
 !!! 测试上传!!!
 
 
 错误邮件2018/08/10 11:18
 
 
 上传的文件:n/a
 
 
  

我认为需要更改text.fieldSeparator,但我不知道哪个分隔符正确或可用。

 ignoreRecordsetName true
   text.fieldSeparator'nl'
   text.fieldNames字符串

期待您的答复。

谢谢。

3条回答
2020-09-14 12:50 .采纳回答

大家好,

我认为我们可以使用JAVA映射来解决此问题。

FCC似乎在这里不起作用。

删除FCC。 在"发件人协议"中删除SWCV。 实施Java映射,然后根据需要进行其他图形映射。

使用ICO读取二进制文件

如何在SAP PI/PO中创建Java映射

包转换文件;


 导入com.sap.aii.mapping.api。*;
 导入java.io. *;


 公共类TextToXML_JavaMapping扩展AbstractTransformation {


     @Override
     公共无效transform(TransformationInput TransformationInput,TransformationOutput transformOutput)引发StreamTransformationException {
         尝试{
             InputStream inputstream = TransformationInput.getInputPayload()。getInputStream();
             OutputStream outputstream = TransformationOutput.getOutputPayload()。getOutputStream();
            //将输入内容读入字符串。
             byte [] b =新的byte [inputstream.available()];
             inputstream.read(b);
             字符串inputStr =新的String(b);
            //用转义序列替换XML特殊字符。
             inputStr = inputStr.replace("&","&")。replace(" <"," <")。replace(">",">")。replace("'","'")。replace(  " \"",""");
            //将输入文本内容拆分为字符串数组。
             字符串eachLineArr [] = inputStr.split(" \ r \ n");
            
            //构造输出XML。
             outputstream.write(" <?xml version ='1.0'encoding ='UTF-8'?> "。getBytes());
             对于(String eachLine:eachLineArr){
                 outputstream.write(("" " + eachLine +" "。getBytes());
         } catch(Exception exception){
             getTrace()。addDebugMessage(exception.getMessage());
             抛出新的StreamTransformationException(exception.toString());
         }
     }
 }
 

谢谢。

顺便说一句,因为我需要判断XML文件是否包含归档的"邮件"。

最后,我在ICO接收器中添加了条件:

包含(/p1:MT_XX/.,'Mail'):(true)

 !!!测试上传!!!
 错误邮件2018/08/1011:18
 上传的文件:不适用

包含(/p1:MT_XX/text/string,'Mail'):(false)

 !!!测试上传!!! 

谢谢。

一周热门 更多>