I am getting below error while creating JCoFunction
object for BAPI "SWNC_STATREC_READ_INSTANCE"
for S/4HANA
system. But, I am able to create object for R/3
system.
java.lang.IllegalArgumentException: Unknown type -1 when trying to add field MESSAGE_ID to record [Ljava.lang.String;@42c4641f
at com.sap.conn.jco.rt.AbstractMetaData.add(AbstractMetaData.java:256)
at com.sap.conn.jco.rt.DefaultRecordMetaData.add(DefaultRecordMetaData.java:363)
at com.sap.conn.jco.rt.AbapRepository$DDICHelper.constructMetaData(AbapRepository.java:2889)
at com.sap.conn.jco.rt.AbapRepository$DDICHelper.constructMetaData(AbapRepository.java:2734)
at com.sap.conn.jco.rt.AbapRepository$DDICHelper.constructMetaData(AbapRepository.java:2824)
at com.sap.conn.jco.rt.AbapRepository$DDICHelper.queryRecordMetaData(AbapRepository.java:2421)
at com.sap.conn.jco.rt.AbapRepository.queryRecordMetaData(AbapRepository.java:1108)
at com.sap.conn.jco.rt.AbapRepository.queryRecordMetaData(AbapRepository.java:703)
at com.sap.conn.jco.rt.AbapRepository.getRecordMetaData(AbapRepository.java:929)
at com.sap.conn.jco.rt.AbapRepository$DDICHelper.queryFunctionTemplate(AbapRepository.java:2110)
at com.sap.conn.jco.rt.AbapRepository.queryFunctionTemplate(AbapRepository.java:1044)
at com.sap.conn.jco.rt.AbapRepository.queryFunctionTemplate(AbapRepository.java:623)
at com.sap.conn.jco.rt.AbapRepository.getFunctionTemplate(AbapRepository.java:885)
at com.sap.conn.jco.rt.BasicRepository.getFunction(BasicRepository.java:163)
at com.grc.riskanalysis.util.SAPUtil.getReportTypeTxns(SAPUtil.java:1201)
Below is the Java code to create JCoFunction
object:
final JCoDestination destination = getDestination(sapSystemVO.getDestinationName().trim());
JCoFunction function = destination.getRepository().getFunction("SWNC_STATREC_READ_INSTANCE");
Is there any other way to create object for this BAPI for S/4HANA system?
Any additional authorizations are required to user to create JCoFunction
object in S/4HANA ?
The issue is not related to R/3 or S/4HANA, but to the use of the "latest" ABAP types (int8, UTCLONG, etc.) in the parameters of the RFC-enabled function module you call from JCo, i.e. with an old S/4HANA version your JCo program could successfully call SWNC_STATREC_READ_INSTANCE
if its parameter interface doesn't refer to the newest ABAP types.
Solution: install and use the latest JCo library.
References (depending on JCo version):
EDIT: referenced notes edited after trixx remark about the different JCo flavors.