cancel
Showing results for 
Search instead for 
Did you mean: 

Problem with LOOKUP

Former Member
0 Kudos

Hi All,

I created a 1 function using lookup and now I have been receive the following error .

Somebody help-me???

Thanks.

ERROR..

18:06:29 Start of test

Compilation of mm_FUNC_ORACLE_MPB successful

Document start

Start tag

Add raw attribute [ xmlns:ns0="http://tbl.vmtubes.com.br"]

Start tag

Start tag

Add attribute: =[Execute]

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Start tag

Put value

Close tag

Runtime exception during processing target field mapping /ns0:mt_OracleFun_INFORMACOES_QUALIDADE/StatementName/M_FUN_QM_GRAVATND/tmp_liquido. The message is: Exception:[java.lang.IllegalArgumentException: Cannot cast Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull to float. ] in class com.sap.aii.mappingtool.flib3.Arithm method subtract[1.33761574074074074074074074074074074074E-01, Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull, com.sap.aii.mappingtool.tf3.rt.Context@75625d00] com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /ns0:mt_OracleFun_INFORMACOES_QUALIDADE/StatementName/M_FUN_QM_GRAVATND/tmp_liquido. The message is: Exception:[java.lang.IllegalArgumentException: Cannot cast Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull to float. ] in class com.sap.aii.mappingtool.flib3.Arithm method subtract[1.33761574074074074074074074074074074074E-01, Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull, com.sap.aii.mappingtool.tf3.rt.Context@75625d00] at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:347) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: com.sap.aii.utilxi.misc.api.BaseRuntimeException: Exception:[java.lang.IllegalArgumentException: Cannot cast Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull to float. ] in class com.sap.aii.mappingtool.flib3.Arithm method subtract[1.33761574074074074074074074074074074074E-01, Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull, com.sap.aii.mappingtool.tf3.rt.Context@75625d00] at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:56) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Root Cause: java.lang.reflect.InvocationTargetException 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:324) at com.sap.aii.mappingtool.tf3.rt.FunctionWrapper.getValue(FunctionWrapper.java:47) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:291) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:309) at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:398) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:141) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431) at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:301) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33) at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41) at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37) at java.security.AccessController.doPrivileged(Native Method) at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100) at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170) Caused by: java.lang.IllegalArgumentException: Cannot cast Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull to float. at com.sap.aii.mappingtool.flib3.Arithm.toFloat(Arithm.java:67) at com.sap.aii.mappingtool.flib3.ArithmOld.subtract(ArithmOld.java:17) at com.sap.aii.mappingtool.flib3.Arithm.subtract(Arithm.java:103) ... 26 more RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /ns0:mt_OracleFun_INFORMACOES_QUALIDADE/StatementName/M_FUN_QM_GRAVATND/tmp_liquido. The message is: Exception:[java.lang.IllegalArgumentException: Cannot cast Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull to float. ] in class com.sap.aii.mappingtool.flib3.Arithm method subtract[1.33761574074074074074074074074074074074E-01, Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA from m_tl_resl_parada where num_ordem_processo='RF00030501'com.sap.aii.ib.server.lookup.SerializableDataBaseResult@124ea6canull, com.sap.aii.mappingtool.tf3.rt.Context@75625d00]

18:06:30 End of test

Accepted Solutions (0)

Answers (5)

Answers (5)

Former Member
0 Kudos

Babu, Tank you !!!!

I change My variable resposta and now its work..

Look My Code.

//write your code here

String Query = " ";

Channel channel = null;

DataBaseAccessor accessor = null;

DataBaseResult resultSet = null;

Object resposta = null;

//Query = "Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA, NUM_ORDEM_PROCESSO

//from m_tl_resl_parada where num_ordem_processo='"+ NUN_ORDEM_PROCESSO +""';

Query = "Select SUM(dth_termino_parada-dth_inicio_parada) "+

" as TEMPO_PARADA"+

" from m_tl_resl_parada"+

" where num_ordem_processo='"+ NUN_ORDEM_PROCESSO + "'" ;

try{

//Determine a channel, as created in the Configuration

channel = LookupService.getChannel("TBL_XID","ccJDBC_TBL_FUNC_ORACLE_MPB_rcv");

//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.

accessor = LookupService.getDataBaseAccessor(channel);

//Execute Query and get the values in resultset

resultSet = accessor.execute(Query);

//

//Map rowMap = (Map)rows.next( );

//return.value((String)rowMap.get("TEMPO_PARADA"));

//return ((String)rowMap.get("TEMPO_PARADA"));

for(Iterator rows = resultSet.getRows();rows.hasNext();) {

Map rowMap = (Map)rows.next();

resposta = rowMap.get("TEMPO_PARADA");

}

return resposta.toString();

}

catch(Exception ex){

//result.addValue(ex.getMessage())

return ex.getMessage();

}

finally{

try{

if (accessor!=null) accessor.close();

}

catch(Exception e){

//result.addValue(e.getMessage())

return e.getMessage();

}

}

venkatanarayana_vagu
Active Participant
0 Kudos

It is type mismatch with the target field with this function SUM(dth_termino_parada-dth_inicio_parada) once change your target type with numeric instead of string or alphanumeric.

Former Member
0 Kudos

Hi,

This is my code!!!!

FUNCTION 1 (DB_FUNCTION_MPB)

//write your code here

String Query = " ";

Channel channel = null;

DataBaseAccessor accessor = null;

DataBaseResult resultSet = null;

String resposta= null;

//Query = "Select SUM(dth_termino_parada-dth_inicio_parada) as TEMPO_PARADA, NUM_ORDEM_PROCESSO

//from m_tl_resl_parada where num_ordem_processo='"+ NUN_ORDEM_PROCESSO +""';

Query = "Select SUM(dth_termino_parada-dth_inicio_parada) "+

" as TEMPO_PARADA"+

" from m_tl_resl_parada"+

" where num_ordem_processo='"+ NUN_ORDEM_PROCESSO + "'" ;

try{

//Determine a channel, as created in the Configuration

channel = LookupService.getChannel("TBL_XID","ccJDBC_TBL_FUNC_ORACLE_MPB_rcv");

//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.

accessor = LookupService.getDataBaseAccessor(channel);

//Execute Query and get the values in resultset

resultSet = accessor.execute(Query);

//

//Map rowMap = (Map)rows.next( );

//return.value((String)rowMap.get("TEMPO_PARADA"));

//return ((String)rowMap.get("TEMPO_PARADA"));

for(Iterator rows = resultSet.getRows();rows.hasNext();) {

Map rowMap = (Map)rows.next();

resposta = (String)rowMap.get("TEMPO_PARADA");

}

return resposta;

}

catch(Exception ex){

//result.addValue(ex.getMessage())

return ex.getMessage();

}

finally{

try{

if (accessor!=null) accessor.close();

}

catch(Exception e){

//result.addValue(e.getMessage())

return e.getMessage();

}

}

*********************************************************************************

FUNCTION 2 ( DB_OPERACAO)

//write your code here

String Query = " ";

Channel channel = null;

DataBaseAccessor accessor = null;

DataBaseResult resultSet = null;

String resposta = null;

//Query = "Select vornr from idi.qaimv_insp where prueflos = "+ COD_LOTE_CONTROLE +" and verwmerkm = (select nom_caract from

//idi.map_sap_mes_tnd where cod_area = 'TBL' and tip_insp = 'MPB' and status = 'A' ";

Query = "Select vornr from idi.qaimv_insp where prueflos = "+

COD_LOTE_CONTROLE +" and verwmerkm = " +

"(select nom_caract from idi.map_sap_mes_tnd "+

"where cod_area = 'TBL' and tip_insp = 'MPB' "+

" and status = 'A' )";

try{

//Determine a channel, as created in the Configuration

channel = LookupService.getChannel("TBL_XID","ccJDBC_TBL_FUNC_ORACLE_MPB_CODLOTE_rcv");

//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.

accessor = LookupService.getDataBaseAccessor(channel);

//Execute Query and get the values in resultset

resultSet = accessor.execute(Query);

//

//Map rowMap = (Map)rows.next( );

//return ((String)rowMap.get("vornr"));

for(Iterator rows = resultSet.getRows();rows.hasNext();) {

Map rowMap = (Map)rows.next();

resposta = (String)rowMap.get("vornr");

}

return resposta;

}

catch(Exception ex){

//result.addValue(ex.getMessage())

return ex.getMessage();

}

finally{

try{

if (accessor!=null) accessor.close();

}

catch(Exception e){

//result.addValue(e.getMessage())

return e.getMessage();

}

}

bhavesh_kantilal
Active Contributor
0 Kudos

Hi,

1. Can you post the DB Lookup code that you are using?

2. Make sure that the select statement you have created in the mapping actually returns some value.

Regards,

Bhavesh

STALANKI
Active Contributor
0 Kudos

I think you are mapping the alphanumeric field on sum which is calling for an exception.Check your mapping instance.