on 03-30-2012 5:54 AM
Hi Guys,
I am getting a Null point exception while using following UDF code you have recommended.
Could you please help identify the cause of the error.
public String setFileName(String var1, Container container) throws StreamTransformationException{
String filename = new String("");
DynamicConfiguration conf1 = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key1 = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","FileName");
filename = "DD0" + var1 + ".TXT";
conf1.put(key1,filename);
return "";
}
Here is the error.
Compilation of MM_INVOIC02_TO_DespatchIT successfulException:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_ method setFileName[0417318, com.sap.aii.mappingtool.tf7.rt.Context@5c7f9723]com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_ method setFileName[0417318, com.sap.aii.mappingtool.tf7.rt.Context@5c7f9723]at com.sap.aii.mappingtool.tf7.rt.MethodImplementedIteratorHelper.executeMethod(MethodImplementedIteratorHelper.java:184)at com.sap.aii.mappingtool.tf7.rt.FunctionWrapper.calculateCurrentValue(FunctionWrapper.java:99)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.cacheValue(AbstractFunctionWrapper.java:32)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.gotoNextContext(AbstractFunctionWrapper.java:42)at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:315)at com.sap.aii.mappingtool.tf7.AMappingProgram.start(AMappingProgram.java:496)at com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:134)at com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:628)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.transformInternal(ExecuteXiMappingCommand.java:197)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.execute(ExecuteXiMappingCommand.java:94)at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43)at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40)at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40)at sun.reflect.GeneratedMethodAccessor630.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133)at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)at $Proxy1505.execute(Unknown Source)at sun.reflect.GeneratedMethodAccessor629.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234)at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)Caused by: java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.aii.mappingtool.tf7.rt.MethodImplementedIteratorHelper.executeMethod(MethodImplementedIteratorHelper.java:173)... 47 moreCaused by: java.lang.NullPointerExceptionat com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_.setFileName(_MM_INVOIC02_TO_DespatchIT_.java:252)... 52 moreRoot Cause:java.lang.reflect.InvocationTargetExceptionat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.aii.mappingtool.tf7.rt.MethodImplementedIteratorHelper.executeMethod(MethodImplementedIteratorHelper.java:173)at com.sap.aii.mappingtool.tf7.rt.FunctionWrapper.calculateCurrentValue(FunctionWrapper.java:99)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.cacheValue(AbstractFunctionWrapper.java:32)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.gotoNextContext(AbstractFunctionWrapper.java:42)at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:315)at com.sap.aii.mappingtool.tf7.AMappingProgram.start(AMappingProgram.java:496)at com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:134)at com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:628)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.transformInternal(ExecuteXiMappingCommand.java:197)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.execute(ExecuteXiMappingCommand.java:94)at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43)at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40)at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40)at sun.reflect.GeneratedMethodAccessor630.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133)at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)at $Proxy1505.execute(Unknown Source)at sun.reflect.GeneratedMethodAccessor629.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234)at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)Caused by: java.lang.NullPointerExceptionat com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_.setFileName(_MM_INVOIC02_TO_DespatchIT_.java:252)... 52 moreRoot Cause:java.lang.NullPointerExceptionat com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_.setFileName(_MM_INVOIC02_TO_DespatchIT_.java:252)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.aii.mappingtool.tf7.rt.MethodImplementedIteratorHelper.executeMethod(MethodImplementedIteratorHelper.java:173)at com.sap.aii.mappingtool.tf7.rt.FunctionWrapper.calculateCurrentValue(FunctionWrapper.java:99)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.cacheValue(AbstractFunctionWrapper.java:32)at com.sap.aii.mappingtool.tf7.rt.AbstractFunctionWrapper.gotoNextContext(AbstractFunctionWrapper.java:42)at com.sap.aii.mappingtool.tf7.AMappingProgram.processNode(AMappingProgram.java:315)at com.sap.aii.mappingtool.tf7.AMappingProgram.start(AMappingProgram.java:496)at com.sap.aii.mappingtool.tf7.Transformer.start(Transformer.java:134)at com.sap.aii.mappingtool.tf7.AMappingProgram.transform(AMappingProgram.java:628)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.transformInternal(ExecuteXiMappingCommand.java:197)at com.sap.aii.ibrep.server.mapping.exec.ExecuteXiMappingCommand.execute(ExecuteXiMappingCommand.java:94)at com.sap.aii.ib.server.mapping.exec.CommandManager.execute(CommandManager.java:43)at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:40)at com.sap.aii.ibrep.server.mapping.MapServiceBean.execute(MapServiceBean.java:40)at sun.reflect.GeneratedMethodAccessor630.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.ejb3.runtime.impl.RequestInvocationContext.proceedFinal(RequestInvocationContext.java:43)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:166)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatesTransition.invoke(Interceptors_StatesTransition.java:19)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Resource.invoke(Interceptors_Resource.java:71)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.doWorkWithAttribute(Interceptors_Transaction.java:38)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_Transaction.invoke(Interceptors_Transaction.java:22)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:189)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_StatelessInstanceGetter.invoke(Interceptors_StatelessInstanceGetter.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_SecurityCheck.invoke(Interceptors_SecurityCheck.java:21)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.Interceptors_ExceptionTracer.invoke(Interceptors_ExceptionTracer.java:16)at com.sap.engine.services.ejb3.runtime.impl.AbstractInvocationContext.proceed(AbstractInvocationContext.java:177)at com.sap.engine.services.ejb3.runtime.impl.DefaultInvocationChainsManager.startChain(DefaultInvocationChainsManager.java:133)at com.sap.engine.services.ejb3.runtime.impl.DefaultEJBProxyInvocationHandler.invoke(DefaultEJBProxyInvocationHandler.java:164)at $Proxy1505.execute(Unknown Source)at sun.reflect.GeneratedMethodAccessor629.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:585)at com.sap.engine.services.rmi_p4.P4DynamicSkeleton.dispatch(P4DynamicSkeleton.java:234)at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:351)at com.sap.engine.services.rmi_p4.server.ServerDispatchImpl.run(ServerDispatchImpl.java:70)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:62)at com.sap.engine.services.rmi_p4.P4Message.execute(P4Message.java:37)at com.sap.engine.services.cross.fca.FCAConnectorImpl.executeRequest(FCAConnectorImpl.java:872)at com.sap.engine.services.rmi_p4.P4Message.process(P4Message.java:53)at com.sap.engine.services.cross.fca.MessageReader.run(MessageReader.java:58)at com.sap.engine.core.thread.execution.Executable.run(Executable.java:108)at com.sap.engine.core.thread.execution.CentralExecutor$SingleThread.run(CentralExecutor.java:304)Runtime exception when processing target-field mapping /ns0:MT_DespatchIT_Response; root message: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._MM_INVOIC02_TO_DespatchIT_ method setFileName[0417318, com.sap.aii.mappingtool.tf7.rt.Context@5c7f9723] 14:48:01 End of test
you cant test this code in message mapping it will output the value at runtime only (and if i am not wrong you are doing the same)..in case you want to test your message mapping just put your DC code under try catch block and test your mapping...
Your code seems fine to me ..just try to execute your scenario end to end it will set the filename dynamically
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi Sam,
Hope you are not testing it in Test tab of Message mapping. You cannot test dynamic configuration from there.
Secondly, Why are you returning empty value. Use return filename. So your code should be like
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
String fileName = "DD0" + var1 + ".TXT";
conf.put(key, fileName);
key= null;
return fileName;
Hope this helps,
Ankit
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
Aside from what Amit mentioned, can you confirm that the Enable Adapter-Specific Message Attributes(under advanced tab) is checked in your communication channel and that you have checked FileName for it.
Hope this helps,
Mark
Message was edited by: Mark Angelo Dihiansan
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Dear Sam
this is the problem
target-field mapping /ns0:MT_DespatchIT_Response
Also with which node you have mapped the UDF? Ideally if it not required anywhere else, it should be mapped to the root node,
Regards
Monika
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi ,
have you mapped to target root node ?
ex:- logic(if requited)->udf-> target Rootnode
pls refer below link for ex's:
http://wiki.sdn.sap.com/wiki/display/XI/Combining+three+different+aspects+of+PI+in+one+shot
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
93 | |
10 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.