点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我正在研究从旧PO到新PO的迁移,并且场景使用Java映射。代码如下。该代码是旧系统的精确副本,并且在旧系统中工作。
导入com.sap。*;
导入com.sap.aii.mapping.api。*;
导入com.sap.aii.mapping.api.AbstractTrace;
导入com .sap.aii.mapping.api.AbstractTransformation;
导入com.sap.aii.mapping.api.Attachment;
导入com.sap.aii.mapping.api.DynamicConfiguration;
导入com.sap .aii.mapping.api.DynamicConfigurationKey;
导入com.sap.aii.mapping.api.OutputAttachments;
导入com.sap.aii.mapping.api.StreamTransformationConstants;
导入com.sap.aii .mapping.api.StreamTransformationException;
导入com.sap.aii.mapping.api.TransformationInput;
导入com.sap.aii.mapping.api.TransformationOutput;
import java.io 。*;
import java.util.HashMap;
import java.util.Map;
公共类JavaMapping_MT940_Attachment扩展了AbstractTransformation {
Map param = null;
public void transform(TransformationInput arg0,TransformationOutput arg1)
抛出 StreamTransformationException {
//TODO自动生成的方法stub
InputStream InpStream;
OutputStream OutStream;
byte [] b;
附件newAttachment; < br> AbstractTrace trace = this.getTrace();
字符串strxml ="";
字符串fileName = null;
InpStream = arg0.getInputPayload()。getInputStream ();
OutStream = arg1.getOutputPayload()。getOutputStream();
try
{
//对于附件
b =新字节[InpStream.available()];
InpStream.read(b) ;
OutputAttachments outputAttachments = arg1.getOutputAttachments();
newAttachment = outputAttachments.create(" MT940"," application/text",b);
outputAttachments.setAttachment(newAttachment);
//对于文件名
DynamicConfigurationKey keyFilename = DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/File "," FileName");
字符串conf = arg0.getDynamicConfiguration()。get(keyFilename );
strxml =" <?xml version = \" 1.0 \" encoding = \" UTF-8 \"?>" ;;
strxml = strxml.concat(" < ns0:MT940 xmlns:ns0 = \" 命名空间已将acc更改为新系统\">");
strxml = strxml.concat("
strxml = strxml .concat(conf.toString());
strxml = strxml.concat("
strxml = strxml.concat(" ");
//对于消息类型,有效载荷
OutStream.write(strxml.getBytes(" UTF-8"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void setParameter(Map map)
{
param = map;
if(param == null)
param = new HashMap();
}
}
并且我遇到错误
MappingException:在运行应用程序映射程序JavaMapping_MT940_Attachment时,运行时映射失败。 详细信息:java.lang.NullPointerException; 尝试调用从插槽12的局部变量加载的空对象的方法java.lang.String.toString()时,ApplicationRuntimeException:执行应用程序映射程序JavaMapping_MT940_Attachment时发生运行时异常; 详细信息:java.lang.NullPointerException; 尝试调用从插槽12的局部变量加载的null对象的方法java.lang.String.toString()时,NullPointerException:尝试调用加载的null对象的方法java.lang.String.toString()时 从插槽12中的局部变量
请让我知道错误原因是什么
谢谢
嗨,
更改此行:
DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/File "," FileName");
收件人:
DynamicConfigurationKey.create(" http://sap.com/xi/XI/System a>"," FileName");
此致
Anoop Rai
嗨Anoop,
谢谢。。我确实从ICo保留了软件组件,看来这是MT的错误; 我们创建了正确的MT和SI,现在消息已成功传递。
您好,Gurudatta!
检查是否在"文件发送器"通道中启用了ASMA属性。
关于Evgeniy。
嗨,Evgeniy
是的,启用了ASMA属性。
谢谢
大师
一周热门 更多>