SAP PO 7.5迁移中的Java映射错误-

2020-09-23 00:19发布

         点击此处--->   EasySAP.com群内免费提供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中的局部变量

请让我知道错误原因是什么

谢谢

         点击此处--->   EasySAP.com群内免费提供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中的局部变量

请让我知道错误原因是什么

谢谢

付费偷看设置
发送
4条回答
DafaDDDa
1楼-- · 2020-09-23 00:52

嗨,

更改此行:

DynamicConfigurationKey.create(" http://sap.com/xi/XI/System/File "," FileName");

收件人:

DynamicConfigurationKey.create(" http://sap.com/xi/XI/System"," FileName");

此致

Anoop Rai

95年老男孩
2楼-- · 2020-09-23 01:17

嗨Anoop,

谢谢。。我确实从ICo保留了软件组件,看来这是MT的错误; 我们创建了正确的MT和SI,现在消息已成功传递。

悻福寶寶
3楼-- · 2020-09-23 01:15

您好,Gurudatta!

检查是否在"文件发送器"通道中启用了ASMA属性。

关于Evgeniy。

Doze时光
4楼-- · 2020-09-23 01:05

嗨,Evgeniy

是的,启用了ASMA属性。

谢谢

大师

一周热门 更多>